summaryrefslogtreecommitdiff
path: root/src/core/Tracker.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/Tracker.c')
-rw-r--r--src/core/Tracker.c2025
1 files changed, 2025 insertions, 0 deletions
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;
+}
+
+
+