[gnome-photos] Merge PhotosCollectionManager into PhotosItemManager
- From: Debarshi Ray <debarshir src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-photos] Merge PhotosCollectionManager into PhotosItemManager
- Date: Wed, 24 Sep 2014 10:12:31 +0000 (UTC)
commit 34edc98b448c122d07ead5f7d2af098b59fc0890
Author: Debarshi Ray <debarshir gnome org>
Date: Fri Sep 19 18:19:14 2014 +0200
Merge PhotosCollectionManager into PhotosItemManager
Fixes: https://bugzilla.gnome.org/737071
src/Makefile.am | 2 -
src/photos-application.c | 22 ++--
src/photos-base-manager.c | 56 +++++---
src/photos-base-manager.h | 2 +
src/photos-collection-icon-watcher.c | 7 +-
src/photos-collection-manager.c | 69 ---------
src/photos-collection-manager.h | 75 ----------
src/photos-delete-notification.c | 10 +-
src/photos-dlna-renderers-dialog.c | 10 +-
src/photos-embed.c | 12 +--
src/photos-fetch-collection-state-job.c | 7 +-
src/photos-item-manager.c | 209 ++++++++++++++++++++-------
src/photos-item-manager.h | 9 +-
src/photos-main-toolbar.c | 54 ++++----
src/photos-main-window.c | 9 +-
src/photos-offset-collections-controller.c | 12 +-
src/photos-offset-favorites-controller.c | 12 +-
src/photos-organize-collection-model.c | 2 +-
src/photos-overview-searchbar.c | 10 +-
src/photos-preview-model.c | 12 ++-
src/photos-preview-nav-buttons.c | 10 +-
src/photos-properties-dialog.c | 10 +-
src/photos-query-builder.c | 10 +-
src/photos-search-context.c | 8 +-
src/photos-search-context.h | 4 +-
src/photos-selection-controller.c | 11 ++-
src/photos-selection-toolbar.c | 10 +-
src/photos-tracker-collections-controller.c | 16 +-
src/photos-tracker-controller.c | 2 +-
src/photos-tracker-favorites-controller.c | 16 +-
src/photos-tracker-search-controller.c | 11 +-
src/photos-view-container.c | 9 +-
src/photos-view-model.c | 13 +-
33 files changed, 372 insertions(+), 359 deletions(-)
---
diff --git a/src/Makefile.am b/src/Makefile.am
index 2f4f09b..3888c5c 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -80,8 +80,6 @@ gnome_photos_SOURCES = \
photos-camera-cache.h \
photos-collection-icon-watcher.c \
photos-collection-icon-watcher.h \
- photos-collection-manager.c \
- photos-collection-manager.h \
photos-create-collection-icon-job.c \
photos-create-collection-icon-job.h \
photos-create-collection-job.c \
diff --git a/src/photos-application.c b/src/photos-application.c
index 32044ff..bd6c010 100644
--- a/src/photos-application.c
+++ b/src/photos-application.c
@@ -72,7 +72,6 @@ struct _PhotosApplicationPrivate
GSimpleAction *set_bg_action;
GSimpleAction *remote_display_action;
GtkWidget *main_window;
- PhotosBaseManager *item_mngr;
PhotosCameraCache *camera_cache;
PhotosModeController *mode_cntrlr;
PhotosSearchContextState *state;
@@ -205,7 +204,7 @@ photos_application_activate_item (PhotosApplication *self, GObject *item)
PhotosApplicationPrivate *priv = self->priv;
photos_application_create_window (self);
- photos_base_manager_set_active_object (priv->item_mngr, item);
+ photos_base_manager_set_active_object (priv->state->item_mngr, item);
g_application_activate (G_APPLICATION (self));
/* TODO: Forward the search terms when we exit the preview */
@@ -223,10 +222,10 @@ photos_application_activate_query_executed (TrackerSparqlCursor *cursor, gpointe
if (cursor == NULL)
goto out;
- photos_item_manager_add_item (PHOTOS_ITEM_MANAGER (priv->item_mngr), cursor);
+ photos_item_manager_add_item (PHOTOS_ITEM_MANAGER (priv->state->item_mngr), cursor);
identifier = tracker_sparql_cursor_get_string (cursor, PHOTOS_QUERY_COLUMNS_URN, NULL);
- item = photos_base_manager_get_object_by_id (priv->item_mngr, identifier);
+ item = photos_base_manager_get_object_by_id (priv->state->item_mngr, identifier);
photos_application_activate_item (self, item);
@@ -246,7 +245,7 @@ photos_application_activate_result (PhotosApplication *self,
priv->activation_timestamp = timestamp;
- item = photos_base_manager_get_object_by_id (priv->item_mngr, identifier);
+ item = photos_base_manager_get_object_by_id (priv->state->item_mngr, identifier);
if (item != NULL)
photos_application_activate_item (self, item);
else
@@ -337,7 +336,7 @@ photos_application_open_current (PhotosApplication *self)
PhotosBaseItem *item;
guint32 time;
- item = PHOTOS_BASE_ITEM (photos_base_manager_get_active_object (priv->item_mngr));
+ item = PHOTOS_BASE_ITEM (photos_base_manager_get_active_object (priv->state->item_mngr));
if (item == NULL)
return;
@@ -353,7 +352,7 @@ photos_application_print_current (PhotosApplication *self)
PhotosApplicationPrivate *priv = self->priv;
PhotosBaseItem *item;
- item = PHOTOS_BASE_ITEM (photos_base_manager_get_active_object (priv->item_mngr));
+ item = PHOTOS_BASE_ITEM (photos_base_manager_get_active_object (priv->state->item_mngr));
if (item == NULL)
return;
@@ -369,7 +368,7 @@ photos_application_properties (PhotosApplication *self)
GtkWidget *dialog;
const gchar *id;
- item = photos_base_manager_get_active_object (priv->item_mngr);
+ item = photos_base_manager_get_active_object (priv->state->item_mngr);
if (item == NULL)
return;
@@ -470,7 +469,7 @@ photos_application_remote_display_current (PhotosApplication *self)
GtkWidget *dialog;
const gchar *urn;
- item = photos_base_manager_get_active_object (priv->item_mngr);
+ item = photos_base_manager_get_active_object (priv->state->item_mngr);
if (item == NULL)
return;
@@ -526,7 +525,7 @@ photos_application_set_bg (PhotosApplication *self)
{
PhotosBaseItem *item;
- item = PHOTOS_BASE_ITEM (photos_base_manager_get_active_object (self->priv->item_mngr));
+ item = PHOTOS_BASE_ITEM (photos_base_manager_get_active_object (self->priv->state->item_mngr));
if (item == NULL)
return;
@@ -861,8 +860,6 @@ photos_application_startup (GApplication *application)
photos_application_tracker_extract_priority,
g_object_ref (self));
- priv->item_mngr = photos_item_manager_dup_singleton ();
-
/* A dummy reference to keep it alive during the lifetime of the
* application.
*/
@@ -994,7 +991,6 @@ photos_application_dispose (GObject *object)
g_clear_object (&priv->sel_all_action);
g_clear_object (&priv->sel_none_action);
g_clear_object (&priv->set_bg_action);
- g_clear_object (&priv->item_mngr);
g_clear_object (&priv->camera_cache);
g_clear_object (&priv->mode_cntrlr);
g_clear_object (&priv->extract_priority);
diff --git a/src/photos-base-manager.c b/src/photos-base-manager.c
index 9c88898..b1f0328 100644
--- a/src/photos-base-manager.c
+++ b/src/photos-base-manager.c
@@ -59,6 +59,22 @@ static guint signals[LAST_SIGNAL] = { 0 };
G_DEFINE_TYPE_WITH_PRIVATE (PhotosBaseManager, photos_base_manager, G_TYPE_OBJECT);
+static void
+photos_base_manager_default_add_object (PhotosBaseManager *self, GObject *object)
+{
+ GObject *old_object;
+ const gchar *id;
+
+ id = photos_filterable_get_id (PHOTOS_FILTERABLE (object));
+ old_object = photos_base_manager_get_object_by_id (self, id);
+ if (old_object != NULL)
+ return;
+
+ g_hash_table_insert (self->priv->objects, g_strdup (id), g_object_ref (object));
+ g_signal_emit (self, signals[OBJECT_ADDED], 0, object);
+}
+
+
static gchar *
photos_base_manager_default_get_filter (PhotosBaseManager *self, gint flags)
{
@@ -73,6 +89,22 @@ photos_base_manager_default_get_where (PhotosBaseManager *self, gint flags)
}
+static void
+photos_base_manager_default_remove_object_by_id (PhotosBaseManager *self, const gchar *id)
+{
+ GObject *object;
+
+ object = photos_base_manager_get_object_by_id (self, id);
+ if (object == NULL)
+ return;
+
+ g_object_ref (object);
+ g_hash_table_remove (self->priv->objects, id);
+ g_signal_emit (self, signals[OBJECT_REMOVED], 0, object);
+ g_object_unref (object);
+}
+
+
static gboolean
photos_base_manager_default_set_active_object (PhotosBaseManager *self, GObject *object)
{
@@ -159,8 +191,10 @@ photos_base_manager_class_init (PhotosBaseManagerClass *class)
object_class->dispose = photos_base_manager_dispose;
object_class->finalize = photos_base_manager_finalize;
object_class->set_property = photos_base_manager_set_property;
+ class->add_object = photos_base_manager_default_add_object;
class->get_filter = photos_base_manager_default_get_filter;
class->get_where = photos_base_manager_default_get_where;
+ class->remove_object_by_id = photos_base_manager_default_remove_object_by_id;
class->set_active_object = photos_base_manager_default_set_active_object;
g_object_class_install_property (object_class,
@@ -223,16 +257,7 @@ photos_base_manager_class_init (PhotosBaseManagerClass *class)
void
photos_base_manager_add_object (PhotosBaseManager *self, GObject *object)
{
- GObject *old_object;
- const gchar *id;
-
- id = photos_filterable_get_id (PHOTOS_FILTERABLE (object));
- old_object = photos_base_manager_get_object_by_id (self, id);
- if (old_object != NULL)
- return;
-
- g_hash_table_insert (self->priv->objects, g_strdup (id), g_object_ref (object));
- g_signal_emit (self, signals[OBJECT_ADDED], 0, object);
+ PHOTOS_BASE_MANAGER_GET_CLASS (self)->add_object (self, object);
}
@@ -418,16 +443,7 @@ photos_base_manager_remove_object (PhotosBaseManager *self, GObject *object)
void
photos_base_manager_remove_object_by_id (PhotosBaseManager *self, const gchar *id)
{
- GObject *object;
-
- object = photos_base_manager_get_object_by_id (self, id);
- if (object == NULL)
- return;
-
- g_object_ref (object);
- g_hash_table_remove (self->priv->objects, id);
- g_signal_emit (self, signals[OBJECT_REMOVED], 0, object);
- g_object_unref (object);
+ PHOTOS_BASE_MANAGER_GET_CLASS (self)->remove_object_by_id (self, id);
}
diff --git a/src/photos-base-manager.h b/src/photos-base-manager.h
index 21b696d..1a28cb2 100644
--- a/src/photos-base-manager.h
+++ b/src/photos-base-manager.h
@@ -66,8 +66,10 @@ struct _PhotosBaseManagerClass
GObjectClass parent_class;
/* virtual methods */
+ void (*add_object) (PhotosBaseManager *self, GObject *object);
gchar *(*get_filter) (PhotosBaseManager *self, gint flags);
gchar *(*get_where) (PhotosBaseManager *self, gint flags);
+ void (*remove_object_by_id) (PhotosBaseManager *self, const gchar *id);
gboolean (*set_active_object) (PhotosBaseManager *self, GObject *object);
/* signals */
diff --git a/src/photos-collection-icon-watcher.c b/src/photos-collection-icon-watcher.c
index d13e778..a9f358f 100644
--- a/src/photos-collection-icon-watcher.c
+++ b/src/photos-collection-icon-watcher.c
@@ -406,12 +406,17 @@ static void
photos_collection_icon_watcher_init (PhotosCollectionIconWatcher *self)
{
PhotosCollectionIconWatcherPrivate *priv;
+ GApplication *app;
+ PhotosSearchContextState *state;
self->priv = photos_collection_icon_watcher_get_instance_private (self);
priv = self->priv;
+ app = g_application_get_default ();
+ state = photos_search_context_get_state (PHOTOS_SEARCH_CONTEXT (app));
+
priv->item_connections = g_hash_table_new_full (g_direct_hash, g_direct_equal, NULL, g_object_unref);
- priv->item_mngr = photos_item_manager_dup_singleton ();
+ priv->item_mngr = g_object_ref (state->item_mngr);
priv->queue = photos_tracker_queue_dup_singleton (NULL, NULL);
}
diff --git a/src/photos-delete-notification.c b/src/photos-delete-notification.c
index e10d9a8..f79f5ba 100644
--- a/src/photos-delete-notification.c
+++ b/src/photos-delete-notification.c
@@ -23,10 +23,11 @@
#include <glib/gi18n.h>
#include "photos-base-item.h"
+#include "photos-base-manager.h"
#include "photos-delete-notification.h"
#include "photos-icons.h"
#include "photos-notification-manager.h"
-#include "photos-item-manager.h"
+#include "photos-search-context.h"
struct _PhotosDeleteNotificationPrivate
@@ -212,12 +213,17 @@ static void
photos_delete_notification_init (PhotosDeleteNotification *self)
{
PhotosDeleteNotificationPrivate *priv;
+ GApplication *app;
+ PhotosSearchContextState *state;
self->priv = photos_delete_notification_get_instance_private (self);
priv = self->priv;
+ app = g_application_get_default ();
+ state = photos_search_context_get_state (PHOTOS_SEARCH_CONTEXT (app));
+
priv->ntfctn_mngr = g_object_ref_sink (photos_notification_manager_dup_singleton ());
- priv->item_mngr = photos_item_manager_dup_singleton ();
+ priv->item_mngr = g_object_ref (state->item_mngr);
}
diff --git a/src/photos-dlna-renderers-dialog.c b/src/photos-dlna-renderers-dialog.c
index d1f077c..767332c 100644
--- a/src/photos-dlna-renderers-dialog.c
+++ b/src/photos-dlna-renderers-dialog.c
@@ -27,15 +27,16 @@
#include <glib.h>
#include <glib/gi18n.h>
+#include "photos-base-manager.h"
#include "photos-dleyna-renderer-device.h"
#include "photos-dleyna-renderer-push-host.h"
#include "photos-dlna-renderer.h"
#include "photos-dlna-renderers-manager.h"
#include "photos-icons.h"
-#include "photos-item-manager.h"
#include "photos-local-item.h"
#include "photos-mode-controller.h"
#include "photos-remote-display-manager.h"
+#include "photos-search-context.h"
struct _PhotosDlnaRenderersDialogPrivate
@@ -219,12 +220,17 @@ static void
photos_dlna_renderers_dialog_init (PhotosDlnaRenderersDialog *self)
{
PhotosDlnaRenderersDialogPrivate *priv;
+ GApplication *app;
GList *renderers;
+ PhotosSearchContextState *state;
self->priv = photos_dlna_renderers_dialog_get_instance_private (self);
priv = self->priv;
- priv->item_mngr = photos_item_manager_dup_singleton ();
+ app = g_application_get_default ();
+ state = photos_search_context_get_state (PHOTOS_SEARCH_CONTEXT (app));
+
+ priv->item_mngr = g_object_ref (state->item_mngr);
priv->renderers_mngr = photos_dlna_renderers_manager_dup_singleton ();
priv->remote_mngr = photos_remote_display_manager_dup_singleton ();
priv->mode_cntrlr = photos_mode_controller_dup_singleton ();
diff --git a/src/photos-embed.c b/src/photos-embed.c
index d74452b..27e138b 100644
--- a/src/photos-embed.c
+++ b/src/photos-embed.c
@@ -32,7 +32,6 @@
#include <gio/gio.h>
#include <glib/gi18n.h>
-#include "photos-collection-manager.h"
#include "photos-embed.h"
#include "photos-filterable.h"
#include "photos-item-manager.h"
@@ -77,7 +76,6 @@ struct _PhotosEmbedPrivate
GtkWidget *stack;
GtkWidget *stack_overlay;
GtkWidget *toolbar;
- PhotosBaseManager *col_mngr;
PhotosBaseManager *item_mngr;
PhotosBaseManager *src_mngr;
PhotosBaseManager *srch_mngr;
@@ -331,8 +329,8 @@ photos_embed_active_changed (PhotosBaseManager *manager, GObject *object, gpoint
{
PhotosEmbed *self = PHOTOS_EMBED (user_data);
PhotosEmbedPrivate *priv = self->priv;
+ PhotosBaseItem *active_collection;
PhotosWindowMode mode;
- GObject *active_collection;
GObject *active_item;
GVariant *state;
gboolean show_search;
@@ -341,7 +339,7 @@ photos_embed_active_changed (PhotosBaseManager *manager, GObject *object, gpoint
* preview or collection viewin. Restore it when we are back.
*/
- active_collection = photos_base_manager_get_active_object (priv->col_mngr);
+ active_collection = photos_item_manager_get_active_collection (PHOTOS_ITEM_MANAGER (priv->item_mngr));
active_item = photos_base_manager_get_active_object (priv->item_mngr);
mode = photos_mode_controller_get_window_mode (priv->mode_cntrlr);
show_search = (mode == PHOTOS_WINDOW_MODE_PREVIEW && active_item == NULL && active_collection == NULL)
@@ -650,7 +648,6 @@ photos_embed_dispose (GObject *object)
g_clear_object (&priv->ntfctn_mngr);
g_clear_object (&priv->loader_cancellable);
- g_clear_object (&priv->col_mngr);
g_clear_object (&priv->item_mngr);
g_clear_object (&priv->src_mngr);
g_clear_object (&priv->srch_mngr);
@@ -775,10 +772,7 @@ photos_embed_init (PhotosEmbed *self)
G_CALLBACK (photos_embed_query_status_changed),
self);
- priv->col_mngr = g_object_ref (state->col_mngr);
- g_signal_connect (priv->col_mngr, "active-changed", G_CALLBACK (photos_embed_active_changed), self);
-
- priv->item_mngr = photos_item_manager_dup_singleton ();
+ priv->item_mngr = g_object_ref (state->item_mngr);
g_signal_connect (priv->item_mngr, "active-changed", G_CALLBACK (photos_embed_active_changed), self);
priv->src_mngr = g_object_ref (state->src_mngr);
diff --git a/src/photos-fetch-collection-state-job.c b/src/photos-fetch-collection-state-job.c
index a4d98e4..bb6270a 100644
--- a/src/photos-fetch-collection-state-job.c
+++ b/src/photos-fetch-collection-state-job.c
@@ -41,7 +41,6 @@
struct _PhotosFetchCollectionStateJobPrivate
{
GHashTable *collections_for_items;
- PhotosBaseManager *col_mngr;
PhotosBaseManager *item_mngr;
PhotosSelectionController *sel_cntrlr;
PhotosFetchCollectionStateJobCallback callback;
@@ -94,7 +93,7 @@ photos_fetch_collection_state_job_emit_callback (PhotosFetchCollectionStateJob *
const gchar *coll_idx;
collection_state = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
- collections = photos_base_manager_get_objects (priv->col_mngr);
+ collections = photos_item_manager_get_collections (PHOTOS_ITEM_MANAGER (priv->item_mngr));
/* For all the registered collections… */
g_hash_table_iter_init (&iter1, collections);
@@ -196,7 +195,6 @@ photos_fetch_collection_state_job_dispose (GObject *object)
PhotosFetchCollectionStateJob *self = PHOTOS_FETCH_COLLECTION_STATE_JOB (object);
PhotosFetchCollectionStateJobPrivate *priv = self->priv;
- g_clear_object (&priv->col_mngr);
g_clear_object (&priv->item_mngr);
g_clear_object (&priv->sel_cntrlr);
@@ -233,8 +231,7 @@ photos_fetch_collection_state_job_init (PhotosFetchCollectionStateJob *self)
g_free,
photos_fetch_collection_state_job_value_destroy_func);
- priv->col_mngr = g_object_ref (state->col_mngr);
- priv->item_mngr = photos_item_manager_dup_singleton ();
+ priv->item_mngr = g_object_ref (state->item_mngr);
priv->sel_cntrlr = photos_selection_controller_dup_singleton ();
}
diff --git a/src/photos-item-manager.c b/src/photos-item-manager.c
index 8615188..3e062a4 100644
--- a/src/photos-item-manager.c
+++ b/src/photos-item-manager.c
@@ -28,6 +28,7 @@
#include <glib.h>
#include <tracker-sparql.h>
+#include "photos-filterable.h"
#include "photos-item-manager.h"
#include "photos-local-item.h"
#include "photos-query.h"
@@ -40,17 +41,57 @@
struct _PhotosItemManagerPrivate
{
+ GHashTable *collections;
GIOExtensionPoint *extension_point;
GQueue *collection_path;
- PhotosBaseManager *col_mngr;
+ PhotosBaseItem *active_collection;
PhotosTrackerChangeMonitor *monitor;
};
+enum
+{
+ ACTIVE_COLLECTION_CHANGED,
+ LAST_SIGNAL
+};
+
+static guint signals[LAST_SIGNAL] = { 0 };
+
G_DEFINE_TYPE_WITH_PRIVATE (PhotosItemManager, photos_item_manager, PHOTOS_TYPE_BASE_MANAGER);
static void
+photos_item_manager_add_object (PhotosBaseManager *mngr, GObject *object)
+{
+ PhotosItemManager *self = PHOTOS_ITEM_MANAGER (mngr);
+ PhotosItemManagerPrivate *priv = self->priv;
+ PhotosBaseItem *item;
+ const gchar *id;
+ gpointer *old_collection;
+
+ g_return_if_fail (PHOTOS_IS_BASE_ITEM (object));
+
+ item = PHOTOS_BASE_ITEM (object);
+
+ if (!photos_base_item_is_collection (item))
+ goto end;
+
+ id = photos_filterable_get_id (PHOTOS_FILTERABLE (item));
+ if (id == NULL)
+ goto end;
+
+ old_collection = g_hash_table_lookup (priv->collections, id);
+ if (old_collection != NULL)
+ goto end;
+
+ g_hash_table_insert (priv->collections, g_strdup (id), g_object_ref (item));
+
+ end:
+ PHOTOS_BASE_MANAGER_CLASS (photos_item_manager_parent_class)->add_object (mngr, object);
+}
+
+
+static void
photos_item_manager_item_created_executed (TrackerSparqlCursor *cursor, gpointer user_data)
{
PhotosItemManager *self = PHOTOS_ITEM_MANAGER (user_data);
@@ -89,7 +130,6 @@ static void
photos_item_manager_changes_pending_foreach (gpointer key, gpointer value, gpointer user_data)
{
PhotosItemManager *self = PHOTOS_ITEM_MANAGER (user_data);
- PhotosItemManagerPrivate *priv = self->priv;
PhotosTrackerChangeEvent *change_event = (PhotosTrackerChangeEvent *) value;
PhotosTrackerChangeEventType change_type;
const gchar *change_urn;
@@ -117,8 +157,6 @@ photos_item_manager_changes_pending_foreach (gpointer key, gpointer value, gpoin
if (object != NULL)
{
photos_base_item_destroy (PHOTOS_BASE_ITEM (object));
- if (photos_base_item_is_collection (PHOTOS_BASE_ITEM (object)))
- photos_base_manager_remove_object_by_id (priv->col_mngr, change_urn);
photos_base_manager_remove_object_by_id (PHOTOS_BASE_MANAGER (self), change_urn);
}
}
@@ -139,64 +177,102 @@ photos_item_manager_collection_path_free_foreach (gpointer data, gpointer user_d
}
+static gchar *
+photos_item_manager_get_where (PhotosBaseManager *mngr, gint flags)
+{
+ PhotosItemManager *self = PHOTOS_ITEM_MANAGER (mngr);
+ PhotosItemManagerPrivate *priv = self->priv;
+
+ if (priv->active_collection == NULL)
+ return g_strdup ("");
+
+ return photos_base_item_get_where (priv->active_collection);
+}
+
+
+static void
+photos_item_manager_remove_object_by_id (PhotosBaseManager *mngr, const gchar *id)
+{
+ PhotosItemManager *self = PHOTOS_ITEM_MANAGER (mngr);
+ PhotosItemManagerPrivate *priv = self->priv;
+ gpointer *collection;
+
+ if (id == NULL)
+ goto end;
+
+ collection = g_hash_table_lookup (priv->collections, id);
+ if (collection == NULL)
+ goto end;
+
+ g_hash_table_remove (priv->collections, id);
+
+ end:
+ PHOTOS_BASE_MANAGER_CLASS (photos_item_manager_parent_class)->remove_object_by_id (mngr, id);
+}
+
+
static gboolean
photos_item_manager_set_active_object (PhotosBaseManager *manager, GObject *object)
{
PhotosItemManager *self = PHOTOS_ITEM_MANAGER (manager);
PhotosItemManagerPrivate *priv = self->priv;
+ GObject *active_item;
GtkRecentManager *recent;
- gboolean ret_val;
+ gboolean active_collection_changed = FALSE;
+ gboolean ret_val = FALSE;
const gchar *uri;
g_return_val_if_fail (PHOTOS_IS_BASE_ITEM (object) || object == NULL, FALSE);
- ret_val = PHOTOS_BASE_MANAGER_CLASS (photos_item_manager_parent_class)->set_active_object (manager,
object);
+ active_item = photos_base_manager_get_active_object (manager);
- if (!ret_val)
- goto out;
+ /* Passing NULL is a way to go back to the current collection or
+ * overview from the preview. However, you can't do that when you
+ * are looking at a collection.
+ */
+ if (object == NULL)
+ {
+ if (active_item != (GObject *) priv->active_collection)
+ object = (GObject *) priv->active_collection;
+ else
+ goto out;
+ }
+ /* This is when we are going back to the overview from the preview. */
if (object == NULL)
- goto out;
+ goto end;
if (photos_base_item_is_collection (PHOTOS_BASE_ITEM (object)))
{
- GObject *collection;
-
- collection = photos_base_manager_get_active_object (priv->col_mngr);
- g_queue_push_head (priv->collection_path, (collection != NULL) ? g_object_ref (collection) : NULL);
- photos_base_manager_set_active_object (priv->col_mngr, object);
- goto out;
+ /* This is when we are going back to the collection from the
+ * preview.
+ */
+ if (object == (GObject *) priv->active_collection)
+ goto end;
+
+ g_queue_push_head (priv->collection_path,
+ (priv->active_collection != NULL) ? g_object_ref (priv->active_collection) : NULL);
+
+ g_clear_object (&priv->active_collection);
+ priv->active_collection = g_object_ref (object);
+ active_collection_changed = TRUE;
+ goto end;
}
recent = gtk_recent_manager_get_default ();
uri = photos_base_item_get_uri (PHOTOS_BASE_ITEM (object));
gtk_recent_manager_add_item (recent, uri);
+ end:
+ ret_val = PHOTOS_BASE_MANAGER_CLASS (photos_item_manager_parent_class)->set_active_object (manager,
object);
+ if (active_collection_changed)
+ g_signal_emit (self, signals[ACTIVE_COLLECTION_CHANGED], 0, priv->active_collection);
+
out:
return ret_val;
}
-static GObject *
-photos_item_manager_constructor (GType type,
- guint n_construct_params,
- GObjectConstructParam *construct_params)
-{
- static GObject *self = NULL;
-
- if (self == NULL)
- {
- self = G_OBJECT_CLASS (photos_item_manager_parent_class)->constructor (type,
- n_construct_params,
- construct_params);
- g_object_add_weak_pointer (self, (gpointer) &self);
- return self;
- }
-
- return g_object_ref (self);
-}
-
-
static void
photos_item_manager_dispose (GObject *object)
{
@@ -210,7 +286,8 @@ photos_item_manager_dispose (GObject *object)
priv->collection_path = NULL;
}
- g_clear_object (&priv->col_mngr);
+ g_clear_pointer (&priv->collections, (GDestroyNotify) g_hash_table_unref);
+ g_clear_object (&priv->active_collection);
g_clear_object (&priv->monitor);
G_OBJECT_CLASS (photos_item_manager_parent_class)->dispose (object);
@@ -221,18 +298,13 @@ static void
photos_item_manager_init (PhotosItemManager *self)
{
PhotosItemManagerPrivate *priv = self->priv;
- GApplication *app;
- PhotosSearchContextState *state;
self->priv = photos_item_manager_get_instance_private (self);
priv = self->priv;
- app = g_application_get_default ();
- state = photos_search_context_get_state (PHOTOS_SEARCH_CONTEXT (app));
-
+ priv->collections = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref);
priv->extension_point = g_io_extension_point_lookup (PHOTOS_BASE_ITEM_EXTENSION_POINT_NAME);
priv->collection_path = g_queue_new ();
- priv->col_mngr = g_object_ref (state->col_mngr);
priv->monitor = photos_tracker_change_monitor_dup_singleton (NULL, NULL);
if (G_LIKELY (priv->monitor != NULL))
@@ -249,14 +321,28 @@ photos_item_manager_class_init (PhotosItemManagerClass *class)
GObjectClass *object_class = G_OBJECT_CLASS (class);
PhotosBaseManagerClass *base_manager_class = PHOTOS_BASE_MANAGER_CLASS (class);
- object_class->constructor = photos_item_manager_constructor;
object_class->dispose = photos_item_manager_dispose;
+ base_manager_class->add_object = photos_item_manager_add_object;
+ base_manager_class->get_where = photos_item_manager_get_where;
base_manager_class->set_active_object = photos_item_manager_set_active_object;
+ base_manager_class->remove_object_by_id = photos_item_manager_remove_object_by_id;
+
+ signals[ACTIVE_COLLECTION_CHANGED] = g_signal_new ("active-collection-changed",
+ G_TYPE_FROM_CLASS (class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (PhotosItemManagerClass,
+ active_collection_changed),
+ NULL, /*accumulator */
+ NULL, /*accu_data */
+ g_cclosure_marshal_VOID__OBJECT,
+ G_TYPE_NONE,
+ 1,
+ PHOTOS_TYPE_BASE_ITEM);
}
PhotosBaseManager *
-photos_item_manager_dup_singleton (void)
+photos_item_manager_new (void)
{
return g_object_new (PHOTOS_TYPE_ITEM_MANAGER, NULL);
}
@@ -266,13 +352,21 @@ void
photos_item_manager_activate_previous_collection (PhotosItemManager *self)
{
PhotosItemManagerPrivate *priv = self->priv;
- GObject *collection;
+ gpointer *collection;
- collection = G_OBJECT (g_queue_pop_head (priv->collection_path));
- photos_base_manager_set_active_object (priv->col_mngr, collection);
+ collection = g_queue_pop_head (priv->collection_path);
+ g_assert (collection == NULL || PHOTOS_IS_BASE_ITEM (collection));
- if (collection == NULL)
- photos_base_manager_set_active_object (PHOTOS_BASE_MANAGER (self), NULL);
+ g_clear_object (&priv->active_collection);
+
+ if (collection != NULL)
+ g_object_ref (collection);
+ priv->active_collection = PHOTOS_BASE_ITEM (collection);
+
+ PHOTOS_BASE_MANAGER_CLASS (photos_item_manager_parent_class)
+ ->set_active_object (PHOTOS_BASE_MANAGER (self), (GObject *) collection);
+
+ g_signal_emit (self, signals[ACTIVE_COLLECTION_CHANGED], 0, priv->active_collection);
g_clear_object (&collection);
}
@@ -296,9 +390,6 @@ photos_item_manager_add_item (PhotosItemManager *self, TrackerSparqlCursor *curs
item = photos_item_manager_create_item (self, cursor);
photos_base_manager_add_object (PHOTOS_BASE_MANAGER (self), G_OBJECT (item));
- if (photos_base_item_is_collection (item))
- photos_base_manager_add_object (self->priv->col_mngr, G_OBJECT (item));
-
out:
g_clear_object (&item);
}
@@ -351,3 +442,17 @@ photos_item_manager_create_item (PhotosItemManager *self, TrackerSparqlCursor *c
g_free (identifier);
return ret_val;
}
+
+
+PhotosBaseItem *
+photos_item_manager_get_active_collection (PhotosItemManager *self)
+{
+ return self->priv->active_collection;
+}
+
+
+GHashTable *
+photos_item_manager_get_collections (PhotosItemManager *self)
+{
+ return self->priv->collections;
+}
diff --git a/src/photos-item-manager.h b/src/photos-item-manager.h
index e2d3e93..d176c51 100644
--- a/src/photos-item-manager.h
+++ b/src/photos-item-manager.h
@@ -68,11 +68,14 @@ struct _PhotosItemManager
struct _PhotosItemManagerClass
{
PhotosBaseManagerClass parent_class;
+
+ /* signals */
+ void (*active_collection_changed) (PhotosItemManager *self, PhotosBaseItem *collection);
};
GType photos_item_manager_get_type (void) G_GNUC_CONST;
-PhotosBaseManager *photos_item_manager_dup_singleton (void);
+PhotosBaseManager *photos_item_manager_new (void);
void photos_item_manager_activate_previous_collection (PhotosItemManager *self);
@@ -82,6 +85,10 @@ void photos_item_manager_add_item (PhotosItemMana
PhotosBaseItem *photos_item_manager_create_item (PhotosItemManager *self,
TrackerSparqlCursor *cursor);
+PhotosBaseItem *photos_item_manager_get_active_collection (PhotosItemManager *self);
+
+GHashTable *photos_item_manager_get_collections (PhotosItemManager *self);
+
G_END_DECLS
#endif /* PHOTOS_ITEM_MANAGER_H */
diff --git a/src/photos-main-toolbar.c b/src/photos-main-toolbar.c
index 71ab74c..edbbd5e 100644
--- a/src/photos-main-toolbar.c
+++ b/src/photos-main-toolbar.c
@@ -30,7 +30,6 @@
#include <gtk/gtk.h>
#include <glib/gi18n.h>
-#include "photos-collection-manager.h"
#include "photos-dlna-renderers-manager.h"
#include "photos-dropdown.h"
#include "photos-header-bar.h"
@@ -56,7 +55,6 @@ struct _PhotosMainToolbarPrivate
GtkWidget *selection_button;
GtkWidget *selection_menu;
GtkWidget *toolbar;
- PhotosBaseManager *col_mngr;
PhotosBaseManager *item_mngr;
PhotosModeController *mode_cntrlr;
PhotosRemoteDisplayManager *remote_mngr;
@@ -80,12 +78,12 @@ static void
photos_main_toolbar_set_toolbar_title (PhotosMainToolbar *self)
{
PhotosMainToolbarPrivate *priv = self->priv;
- GObject *active_collection;
+ PhotosBaseItem *active_collection;
PhotosWindowMode window_mode;
gboolean selection_mode;
gchar *primary = NULL;
- active_collection = photos_base_manager_get_active_object (priv->col_mngr);
+ active_collection = photos_item_manager_get_active_collection (PHOTOS_ITEM_MANAGER (priv->item_mngr));
selection_mode = photos_selection_controller_get_selection_mode (priv->sel_cntrlr);
window_mode = photos_mode_controller_get_window_mode (priv->mode_cntrlr);
@@ -97,7 +95,7 @@ photos_main_toolbar_set_toolbar_title (PhotosMainToolbar *self)
if (!selection_mode)
{
if (active_collection != NULL)
- primary = g_markup_printf_escaped ("%s", photos_base_item_get_name (PHOTOS_BASE_ITEM
(active_collection)));
+ primary = g_markup_printf_escaped ("%s", photos_base_item_get_name (active_collection));
}
else
{
@@ -115,7 +113,7 @@ photos_main_toolbar_set_toolbar_title (PhotosMainToolbar *self)
if (active_collection != NULL)
{
primary = g_markup_printf_escaped ("<b>%s</b> (%s)",
- photos_base_item_get_name (PHOTOS_BASE_ITEM
(active_collection)),
+ photos_base_item_get_name (active_collection),
label);
}
else
@@ -175,12 +173,12 @@ photos_main_toolbar_coll_back_button_clicked (PhotosMainToolbar *self)
static void
-photos_main_toolbar_col_active_changed (PhotosMainToolbar *self, GObject *object)
+photos_main_toolbar_col_active_changed (PhotosMainToolbar *self, PhotosBaseItem *collection)
{
PhotosMainToolbarPrivate *priv = self->priv;
PhotosHeaderBarMode mode;
- if (object != NULL)
+ if (collection != NULL)
{
mode = PHOTOS_HEADER_BAR_MODE_STANDALONE;
if (priv->coll_back_button == NULL)
@@ -309,8 +307,8 @@ photos_main_toolbar_add_selection_button (PhotosMainToolbar *self)
G_CALLBACK (photos_main_toolbar_select_button_clicked),
self);
- g_signal_connect_object (priv->col_mngr,
- "active-changed",
+ g_signal_connect_object (priv->item_mngr,
+ "active-collection-changed",
G_CALLBACK (photos_main_toolbar_col_active_changed),
self,
G_CONNECT_SWAPPED);
@@ -363,11 +361,11 @@ photos_main_toolbar_clear_state_data (PhotosMainToolbar *self)
g_variant_unref (state);
}
- if (priv->col_mngr != NULL)
- g_signal_handlers_disconnect_by_func (priv->col_mngr, photos_main_toolbar_col_active_changed, self);
-
if (priv->item_mngr != NULL)
- g_signal_handlers_disconnect_by_func (priv->item_mngr, photos_main_toolbar_item_active_changed, self);
+ {
+ g_signal_handlers_disconnect_by_func (priv->item_mngr, photos_main_toolbar_col_active_changed, self);
+ g_signal_handlers_disconnect_by_func (priv->item_mngr, photos_main_toolbar_item_active_changed, self);
+ }
if (priv->sel_cntrlr != NULL)
g_signal_handlers_disconnect_by_func (priv->sel_cntrlr, photos_main_toolbar_set_toolbar_title, self);
@@ -490,7 +488,7 @@ static void
photos_main_toolbar_populate_for_collections (PhotosMainToolbar *self)
{
PhotosMainToolbarPrivate *priv = self->priv;
- GObject *object;
+ PhotosBaseItem *collection;
gtk_header_bar_set_show_close_button (GTK_HEADER_BAR (priv->toolbar), TRUE);
photos_header_bar_set_mode (PHOTOS_HEADER_BAR (priv->toolbar), PHOTOS_HEADER_BAR_MODE_NORMAL);
@@ -500,8 +498,8 @@ photos_main_toolbar_populate_for_collections (PhotosMainToolbar *self)
if (gtk_widget_get_parent (priv->searchbar) == NULL)
gtk_container_add (GTK_CONTAINER (self), priv->searchbar);
- object = photos_base_manager_get_active_object (priv->col_mngr);
- photos_main_toolbar_col_active_changed (self, object);
+ collection = photos_item_manager_get_active_collection (PHOTOS_ITEM_MANAGER (priv->item_mngr));
+ photos_main_toolbar_col_active_changed (self, collection);
}
@@ -527,7 +525,7 @@ static void
photos_main_toolbar_populate_for_favorites (PhotosMainToolbar *self)
{
PhotosMainToolbarPrivate *priv = self->priv;
- GObject *object;
+ PhotosBaseItem *collection;
gtk_header_bar_set_show_close_button (GTK_HEADER_BAR (priv->toolbar), TRUE);
photos_header_bar_set_mode (PHOTOS_HEADER_BAR (priv->toolbar), PHOTOS_HEADER_BAR_MODE_NORMAL);
@@ -537,8 +535,8 @@ photos_main_toolbar_populate_for_favorites (PhotosMainToolbar *self)
if (gtk_widget_get_parent (priv->searchbar) == NULL)
gtk_container_add (GTK_CONTAINER (self), priv->searchbar);
- object = photos_base_manager_get_active_object (priv->col_mngr);
- photos_main_toolbar_col_active_changed (self, object);
+ collection = photos_item_manager_get_active_collection (PHOTOS_ITEM_MANAGER (priv->item_mngr));
+ photos_main_toolbar_col_active_changed (self, collection);
}
@@ -546,7 +544,7 @@ static void
photos_main_toolbar_populate_for_overview (PhotosMainToolbar *self)
{
PhotosMainToolbarPrivate *priv = self->priv;
- GObject *object;
+ PhotosBaseItem *collection;
gtk_header_bar_set_show_close_button (GTK_HEADER_BAR (priv->toolbar), TRUE);
photos_header_bar_set_mode (PHOTOS_HEADER_BAR (priv->toolbar), PHOTOS_HEADER_BAR_MODE_NORMAL);
@@ -556,8 +554,8 @@ photos_main_toolbar_populate_for_overview (PhotosMainToolbar *self)
if (gtk_widget_get_parent (priv->searchbar) == NULL)
gtk_container_add (GTK_CONTAINER (self), priv->searchbar);
- object = photos_base_manager_get_active_object (priv->col_mngr);
- photos_main_toolbar_col_active_changed (self, object);
+ collection = photos_item_manager_get_active_collection (PHOTOS_ITEM_MANAGER (priv->item_mngr));
+ photos_main_toolbar_col_active_changed (self, collection);
}
@@ -623,7 +621,7 @@ static void
photos_main_toolbar_populate_for_search (PhotosMainToolbar *self)
{
PhotosMainToolbarPrivate *priv = self->priv;
- GObject *object;
+ PhotosBaseItem *collection;
gtk_header_bar_set_show_close_button (GTK_HEADER_BAR (priv->toolbar), TRUE);
photos_header_bar_set_mode (PHOTOS_HEADER_BAR (priv->toolbar), PHOTOS_HEADER_BAR_MODE_NORMAL);
@@ -633,8 +631,8 @@ photos_main_toolbar_populate_for_search (PhotosMainToolbar *self)
if (gtk_widget_get_parent (priv->searchbar) == NULL)
gtk_container_add (GTK_CONTAINER (self), priv->searchbar);
- object = photos_base_manager_get_active_object (priv->col_mngr);
- photos_main_toolbar_col_active_changed (self, object);
+ collection = photos_item_manager_get_active_collection (PHOTOS_ITEM_MANAGER (priv->item_mngr));
+ photos_main_toolbar_col_active_changed (self, collection);
}
@@ -690,7 +688,6 @@ photos_main_toolbar_dispose (GObject *object)
photos_main_toolbar_clear_state_data (self);
g_clear_object (&priv->searchbar);
- g_clear_object (&priv->col_mngr);
g_clear_object (&priv->item_mngr);
g_clear_object (&priv->mode_cntrlr);
g_clear_object (&priv->remote_mngr);
@@ -776,8 +773,7 @@ photos_main_toolbar_init (PhotosMainToolbar *self)
photos_header_bar_set_selection_menu (PHOTOS_HEADER_BAR (priv->toolbar), GTK_BUTTON
(priv->selection_menu));
- priv->col_mngr = g_object_ref (state->col_mngr);
- priv->item_mngr = photos_item_manager_dup_singleton ();
+ priv->item_mngr = g_object_ref (state->item_mngr);
priv->mode_cntrlr = photos_mode_controller_dup_singleton ();
diff --git a/src/photos-main-window.c b/src/photos-main-window.c
index a2dfbf1..fcfb397 100644
--- a/src/photos-main-window.c
+++ b/src/photos-main-window.c
@@ -44,7 +44,6 @@ struct _PhotosMainWindowPrivate
{
GtkWidget *embed;
GSettings *settings;
- PhotosBaseManager *col_mngr;
PhotosBaseManager *item_mngr;
PhotosModeController *mode_cntrlr;
PhotosSelectionController *sel_cntrlr;
@@ -154,12 +153,12 @@ static gboolean
photos_main_window_go_back (PhotosMainWindow *self)
{
PhotosMainWindowPrivate *priv = self->priv;
+ PhotosBaseItem *active_collection;
PhotosWindowMode mode;
- GObject *active_collection;
gboolean handled = TRUE;
mode = photos_mode_controller_get_window_mode (priv->mode_cntrlr);
- active_collection = photos_base_manager_get_active_object (priv->col_mngr);
+ active_collection = photos_item_manager_get_active_collection (PHOTOS_ITEM_MANAGER (priv->item_mngr));
switch (mode)
{
@@ -363,7 +362,6 @@ photos_main_window_dispose (GObject *object)
PhotosMainWindowPrivate *priv = self->priv;
g_clear_object (&priv->settings);
- g_clear_object (&priv->col_mngr);
g_clear_object (&priv->item_mngr);
g_clear_object (&priv->mode_cntrlr);
g_clear_object (&priv->sel_cntrlr);
@@ -414,8 +412,7 @@ photos_main_window_init (PhotosMainWindow *self)
if (maximized)
gtk_window_maximize (GTK_WINDOW (self));
- priv->col_mngr = g_object_ref (state->col_mngr);
- priv->item_mngr = photos_item_manager_dup_singleton ();
+ priv->item_mngr = g_object_ref (state->item_mngr);
priv->mode_cntrlr = photos_mode_controller_dup_singleton ();
g_signal_connect_swapped (priv->mode_cntrlr,
diff --git a/src/photos-offset-collections-controller.c b/src/photos-offset-collections-controller.c
index cc2af7a..69e63c3 100644
--- a/src/photos-offset-collections-controller.c
+++ b/src/photos-offset-collections-controller.c
@@ -27,7 +27,7 @@
#include <gio/gio.h>
-#include "photos-base-manager.h"
+#include "photos-item-manager.h"
#include "photos-query-builder.h"
#include "photos-offset-collections-controller.h"
#include "photos-search-context.h"
@@ -35,7 +35,7 @@
struct _PhotosOffsetCollectionsControllerPrivate
{
- PhotosBaseManager *col_mngr;
+ PhotosBaseManager *item_mngr;
};
@@ -49,11 +49,11 @@ photos_offset_collections_controller_get_query (PhotosOffsetController *offset_c
{
PhotosOffsetCollectionsController *self = PHOTOS_OFFSET_COLLECTIONS_CONTROLLER (offset_cntrlr);
GApplication *app;
- GObject *collection;
+ PhotosBaseItem *collection;
PhotosSearchContextState *state;
gint flags;
- collection = photos_base_manager_get_active_object (self->priv->col_mngr);
+ collection = photos_item_manager_get_active_collection (PHOTOS_ITEM_MANAGER (self->priv->item_mngr));
if (collection != NULL)
flags = PHOTOS_QUERY_FLAGS_NONE;
else
@@ -91,7 +91,7 @@ photos_offset_collections_controller_dispose (GObject *object)
{
PhotosOffsetCollectionsController *self = PHOTOS_OFFSET_COLLECTIONS_CONTROLLER (object);
- g_clear_object (&self->priv->col_mngr);
+ g_clear_object (&self->priv->item_mngr);
G_OBJECT_CLASS (photos_offset_collections_controller_parent_class)->dispose (object);
}
@@ -110,7 +110,7 @@ photos_offset_collections_controller_init (PhotosOffsetCollectionsController *se
app = g_application_get_default ();
state = photos_search_context_get_state (PHOTOS_SEARCH_CONTEXT (app));
- priv->col_mngr = g_object_ref (state->col_mngr);
+ priv->item_mngr = g_object_ref (state->item_mngr);
}
diff --git a/src/photos-offset-favorites-controller.c b/src/photos-offset-favorites-controller.c
index d1a097e..fd8539f 100644
--- a/src/photos-offset-favorites-controller.c
+++ b/src/photos-offset-favorites-controller.c
@@ -27,7 +27,7 @@
#include <gio/gio.h>
-#include "photos-base-manager.h"
+#include "photos-item-manager.h"
#include "photos-query-builder.h"
#include "photos-offset-favorites-controller.h"
#include "photos-search-context.h"
@@ -35,7 +35,7 @@
struct _PhotosOffsetFavoritesControllerPrivate
{
- PhotosBaseManager *col_mngr;
+ PhotosBaseManager *item_mngr;
};
@@ -49,11 +49,11 @@ photos_offset_favorites_controller_get_query (PhotosOffsetController *offset_cnt
{
PhotosOffsetFavoritesController *self = PHOTOS_OFFSET_FAVORITES_CONTROLLER (offset_cntrlr);
GApplication *app;
- GObject *collection;
+ PhotosBaseItem *collection;
PhotosSearchContextState *state;
gint flags;
- collection = photos_base_manager_get_active_object (self->priv->col_mngr);
+ collection = photos_item_manager_get_active_collection (PHOTOS_ITEM_MANAGER (self->priv->item_mngr));
if (collection != NULL)
flags = PHOTOS_QUERY_FLAGS_NONE;
else
@@ -91,7 +91,7 @@ photos_offset_favorites_controller_dispose (GObject *object)
{
PhotosOffsetFavoritesController *self = PHOTOS_OFFSET_FAVORITES_CONTROLLER (object);
- g_clear_object (&self->priv->col_mngr);
+ g_clear_object (&self->priv->item_mngr);
G_OBJECT_CLASS (photos_offset_favorites_controller_parent_class)->dispose (object);
}
@@ -110,7 +110,7 @@ photos_offset_favorites_controller_init (PhotosOffsetFavoritesController *self)
app = g_application_get_default ();
state = photos_search_context_get_state (PHOTOS_SEARCH_CONTEXT (app));
- priv->col_mngr = g_object_ref (state->col_mngr);
+ priv->item_mngr = g_object_ref (state->item_mngr);
}
diff --git a/src/photos-organize-collection-model.c b/src/photos-organize-collection-model.c
index dcb9533..1cfeb04 100644
--- a/src/photos-organize-collection-model.c
+++ b/src/photos-organize-collection-model.c
@@ -212,7 +212,7 @@ photos_organize_collection_model_init (PhotosOrganizeCollectionModel *self)
gtk_list_store_set_column_types (GTK_LIST_STORE (self), sizeof (columns) / sizeof (columns[0]), columns);
- priv->manager = g_object_ref (state->col_mngr);
+ priv->manager = g_object_ref (state->item_mngr);
g_signal_connect_object (priv->manager,
"object-added",
diff --git a/src/photos-overview-searchbar.c b/src/photos-overview-searchbar.c
index 61b3dc1..a9c915e 100644
--- a/src/photos-overview-searchbar.c
+++ b/src/photos-overview-searchbar.c
@@ -47,7 +47,7 @@ struct _PhotosOverviewSearchbarPrivate
GtkWidget *dropdown;
GtkWidget *dropdown_button;
GtkWidget *search_container;
- PhotosBaseManager *col_mngr;
+ PhotosBaseManager *item_mngr;
PhotosBaseManager *src_mngr;
PhotosBaseManager *srch_mtch_mngr;
PhotosBaseManager *srch_typ_mngr;
@@ -315,7 +315,7 @@ photos_overview_searchbar_dispose (GObject *object)
PhotosOverviewSearchbar *self = PHOTOS_OVERVIEW_SEARCHBAR (object);
PhotosOverviewSearchbarPrivate *priv = self->priv;
- g_clear_object (&priv->col_mngr);
+ g_clear_object (&priv->item_mngr);
g_clear_object (&priv->src_mngr);
g_clear_object (&priv->srch_mtch_mngr);
g_clear_object (&priv->srch_typ_mngr);
@@ -379,9 +379,9 @@ photos_overview_searchbar_init (PhotosOverviewSearchbar *self)
self,
G_CONNECT_SWAPPED);
- priv->col_mngr = g_object_ref (state->col_mngr);
- g_signal_connect_object (priv->col_mngr,
- "active-changed",
+ priv->item_mngr = g_object_ref (state->item_mngr);
+ g_signal_connect_object (priv->item_mngr,
+ "active-collection-changed",
G_CALLBACK (photos_overview_searchbar_collection_active_changed),
self,
G_CONNECT_SWAPPED);
diff --git a/src/photos-preview-model.c b/src/photos-preview-model.c
index bd5ffa0..aedfe60 100644
--- a/src/photos-preview-model.c
+++ b/src/photos-preview-model.c
@@ -1,6 +1,6 @@
/*
* Photos - access, organize and share your photos on GNOME
- * Copyright © 2013 Red Hat, Inc.
+ * Copyright © 2013, 2014 Red Hat, Inc.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -24,9 +24,10 @@
#include <glib.h>
#include "photos-base-item.h"
-#include "photos-item-manager.h"
+#include "photos-base-manager.h"
#include "photos-preview-model.h"
#include "photos-query.h"
+#include "photos-search-context.h"
#include "photos-view-model.h"
@@ -80,11 +81,16 @@ static void
photos_preview_model_init (PhotosPreviewModel *self)
{
PhotosPreviewModelPrivate *priv;
+ GApplication *app;
+ PhotosSearchContextState *state;
self->priv = photos_preview_model_get_instance_private (self);
priv = self->priv;
- priv->item_mngr = photos_item_manager_dup_singleton ();
+ app = g_application_get_default ();
+ state = photos_search_context_get_state (PHOTOS_SEARCH_CONTEXT (app));
+
+ priv->item_mngr = g_object_ref (state->item_mngr);
gtk_tree_model_filter_set_visible_func (GTK_TREE_MODEL_FILTER (self), photos_preview_model_visible, self,
NULL);
}
diff --git a/src/photos-preview-nav-buttons.c b/src/photos-preview-nav-buttons.c
index 1fc9307..e10b9d7 100644
--- a/src/photos-preview-nav-buttons.c
+++ b/src/photos-preview-nav-buttons.c
@@ -28,11 +28,12 @@
#include <glib.h>
#include <glib/gi18n.h>
+#include "photos-base-manager.h"
#include "photos-enums.h"
#include "photos-icons.h"
-#include "photos-item-manager.h"
#include "photos-preview-model.h"
#include "photos-preview-nav-buttons.h"
+#include "photos-search-context.h"
#include "photos-view-model.h"
@@ -435,11 +436,16 @@ static void
photos_preview_nav_buttons_init (PhotosPreviewNavButtons *self)
{
PhotosPreviewNavButtonsPrivate *priv;
+ GApplication *app;
+ PhotosSearchContextState *state;
self->priv = photos_preview_nav_buttons_get_instance_private (self);
priv = self->priv;
- priv->item_mngr = photos_item_manager_dup_singleton ();
+ app = g_application_get_default ();
+ state = photos_search_context_get_state (PHOTOS_SEARCH_CONTEXT (app));
+
+ priv->item_mngr = g_object_ref (state->item_mngr);
priv->action = PHOTOS_PREVIEW_ACTION_NONE;
diff --git a/src/photos-properties-dialog.c b/src/photos-properties-dialog.c
index dd298f0..3b3854c 100644
--- a/src/photos-properties-dialog.c
+++ b/src/photos-properties-dialog.c
@@ -29,10 +29,11 @@
#include <glib.h>
#include <glib/gi18n.h>
+#include "photos-base-manager.h"
#include "photos-camera-cache.h"
-#include "photos-item-manager.h"
#include "photos-local-item.h"
#include "photos-properties-dialog.h"
+#include "photos-search-context.h"
#include "photos-utils.h"
@@ -553,12 +554,17 @@ static void
photos_properties_dialog_init (PhotosPropertiesDialog *self)
{
PhotosPropertiesDialogPrivate *priv;
+ GApplication *app;
+ PhotosSearchContextState *state;
self->priv = photos_properties_dialog_get_instance_private (self);
priv = self->priv;
+ app = g_application_get_default ();
+ state = photos_search_context_get_state (PHOTOS_SEARCH_CONTEXT (app));
+
priv->cancellable = g_cancellable_new ();
- priv->item_mngr = photos_item_manager_dup_singleton ();
+ priv->item_mngr = g_object_ref (state->item_mngr);
priv->camera_cache = photos_camera_cache_dup_singleton ();
}
diff --git a/src/photos-query-builder.c b/src/photos-query-builder.c
index f1bd1b6..6bce288 100644
--- a/src/photos-query-builder.c
+++ b/src/photos-query-builder.c
@@ -27,7 +27,7 @@
#include <gio/gio.h>
-#include "photos-collection-manager.h"
+#include "photos-base-manager.h"
#include "photos-query-builder.h"
#include "photos-search-type.h"
#include "photos-source-manager.h"
@@ -92,7 +92,7 @@ photos_query_builder_optional (void)
static gchar *
photos_query_builder_inner_where (PhotosSearchContextState *state, gboolean global, gint flags)
{
- gchar *col_mngr_where = NULL;
+ gchar *item_mngr_where = NULL;
gchar *sparql;
gchar *srch_typ_mngr_where = NULL;
@@ -104,15 +104,15 @@ photos_query_builder_inner_where (PhotosSearchContextState *state, gboolean glob
{
/* TODO: SearchCategoryManager */
- col_mngr_where = photos_base_manager_get_where (state->col_mngr, flags);
+ item_mngr_where = photos_base_manager_get_where (state->item_mngr, flags);
}
}
sparql = g_strdup_printf ("WHERE { %s %s }",
srch_typ_mngr_where,
- (col_mngr_where != NULL) ? col_mngr_where : "");
+ (item_mngr_where != NULL) ? item_mngr_where : "");
- g_free (col_mngr_where);
+ g_free (item_mngr_where);
g_free (srch_typ_mngr_where);
return sparql;
diff --git a/src/photos-search-context.c b/src/photos-search-context.c
index b6b5214..864227d 100644
--- a/src/photos-search-context.c
+++ b/src/photos-search-context.c
@@ -1,6 +1,6 @@
/*
* Photos - access, organize and share your photos on GNOME
- * Copyright © 2013 Red Hat, Inc.
+ * Copyright © 2013, 2014 Red Hat, Inc.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -27,7 +27,7 @@
#include <glib.h>
-#include "photos-collection-manager.h"
+#include "photos-item-manager.h"
#include "photos-search-context.h"
#include "photos-search-controller.h"
#include "photos-search-match-manager.h"
@@ -50,7 +50,7 @@ photos_search_context_state_new (PhotosSearchContext *self)
PhotosSearchContextState *state;
state = g_slice_new0 (PhotosSearchContextState);
- state->col_mngr = photos_collection_manager_new ();
+ state->item_mngr = photos_item_manager_new ();
state->src_mngr = photos_source_manager_new ();
state->srch_cntrlr = photos_search_controller_new ();
state->srch_mtch_mngr = photos_search_match_manager_new (state->srch_cntrlr);
@@ -63,7 +63,7 @@ photos_search_context_state_new (PhotosSearchContext *self)
void
photos_search_context_state_free (PhotosSearchContextState *state)
{
- g_object_unref (state->col_mngr);
+ g_object_unref (state->item_mngr);
g_object_unref (state->src_mngr);
g_object_unref (state->srch_mtch_mngr);
g_object_unref (state->srch_typ_mngr);
diff --git a/src/photos-search-context.h b/src/photos-search-context.h
index 95303c1..7b6e4fa 100644
--- a/src/photos-search-context.h
+++ b/src/photos-search-context.h
@@ -1,6 +1,6 @@
/*
* Photos - access, organize and share your photos on GNOME
- * Copyright © 2013 Red Hat, Inc.
+ * Copyright © 2013, 2014 Red Hat, Inc.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -50,7 +50,7 @@ typedef struct _PhotosSearchContextInterface PhotosSearchContextInterface;
struct _PhotosSearchContextState
{
- gpointer col_mngr;
+ gpointer item_mngr;
gpointer src_mngr;
gpointer srch_mtch_mngr;
gpointer srch_typ_mngr;
diff --git a/src/photos-selection-controller.c b/src/photos-selection-controller.c
index 6fd9f82..5864aa3 100644
--- a/src/photos-selection-controller.c
+++ b/src/photos-selection-controller.c
@@ -25,10 +25,12 @@
#include "config.h"
+#include <gio/gio.h>
#include <glib.h>
+#include "photos-base-manager.h"
#include "photos-filterable.h"
-#include "photos-item-manager.h"
+#include "photos-search-context.h"
#include "photos-selection-controller.h"
@@ -125,11 +127,16 @@ static void
photos_selection_controller_init (PhotosSelectionController *self)
{
PhotosSelectionControllerPrivate *priv;
+ GApplication *app;
+ PhotosSearchContextState *state;
self->priv = photos_selection_controller_get_instance_private (self);
priv = self->priv;
- priv->item_mngr = photos_item_manager_dup_singleton ();
+ app = g_application_get_default ();
+ state = photos_search_context_get_state (PHOTOS_SEARCH_CONTEXT (app));
+
+ priv->item_mngr = g_object_ref (state->item_mngr);
g_signal_connect (priv->item_mngr,
"object-removed",
G_CALLBACK (photos_selection_controller_object_removed),
diff --git a/src/photos-selection-toolbar.c b/src/photos-selection-toolbar.c
index daea869..4bdb277 100644
--- a/src/photos-selection-toolbar.c
+++ b/src/photos-selection-toolbar.c
@@ -30,11 +30,12 @@
#include <glib/gi18n.h>
#include "photos-base-item.h"
+#include "photos-base-manager.h"
#include "photos-delete-notification.h"
#include "photos-icons.h"
-#include "photos-item-manager.h"
#include "photos-organize-collection-dialog.h"
#include "photos-properties-dialog.h"
+#include "photos-search-context.h"
#include "photos-selection-controller.h"
#include "photos-selection-toolbar.h"
#include "photos-utils.h"
@@ -428,12 +429,17 @@ static void
photos_selection_toolbar_init (PhotosSelectionToolbar *self)
{
PhotosSelectionToolbarPrivate *priv;
+ GApplication *app;
GtkWidget *image;
GtkWidget *toolbar;
+ PhotosSearchContextState *state;
self->priv = photos_selection_toolbar_get_instance_private (self);
priv = self->priv;
+ app = g_application_get_default ();
+ state = photos_search_context_get_state (PHOTOS_SEARCH_CONTEXT (app));
+
priv->item_listeners = g_hash_table_new_full (g_direct_hash, g_direct_equal, NULL, g_object_unref);
toolbar = gtk_action_bar_new ();
@@ -485,7 +491,7 @@ photos_selection_toolbar_init (PhotosSelectionToolbar *self)
gtk_widget_show_all (GTK_WIDGET (self));
- priv->item_mngr = photos_item_manager_dup_singleton ();
+ priv->item_mngr = g_object_ref (state->item_mngr);
priv->sel_cntrlr = photos_selection_controller_dup_singleton ();
g_signal_connect (priv->sel_cntrlr,
diff --git a/src/photos-tracker-collections-controller.c b/src/photos-tracker-collections-controller.c
index 2776501..310a092 100644
--- a/src/photos-tracker-collections-controller.c
+++ b/src/photos-tracker-collections-controller.c
@@ -23,7 +23,7 @@
#include <gio/gio.h>
-#include "photos-base-manager.h"
+#include "photos-item-manager.h"
#include "photos-mode-controller.h"
#include "photos-offset-collections-controller.h"
#include "photos-query-builder.h"
@@ -33,7 +33,7 @@
struct _PhotosTrackerCollectionsControllerPrivate
{
- PhotosBaseManager *col_mngr;
+ PhotosBaseManager *item_mngr;
PhotosModeController *mode_cntrlr;
PhotosOffsetController *offset_cntrlr;
};
@@ -71,11 +71,11 @@ photos_tracker_collections_controller_get_query (PhotosTrackerController *trk_cn
PhotosTrackerCollectionsController *self = PHOTOS_TRACKER_COLLECTIONS_CONTROLLER (trk_cntrlr);
PhotosTrackerCollectionsControllerPrivate *priv = self->priv;
GApplication *app;
- GObject *collection;
+ PhotosBaseItem *collection;
PhotosSearchContextState *state;
gint flags;
- collection = photos_base_manager_get_active_object (priv->col_mngr);
+ collection = photos_item_manager_get_active_collection (PHOTOS_ITEM_MANAGER (priv->item_mngr));
if (collection != NULL)
flags = PHOTOS_QUERY_FLAGS_NONE;
else
@@ -114,7 +114,7 @@ photos_tracker_collections_controller_dispose (GObject *object)
PhotosTrackerCollectionsController *self = PHOTOS_TRACKER_COLLECTIONS_CONTROLLER (object);
PhotosTrackerCollectionsControllerPrivate *priv = self->priv;
- g_clear_object (&priv->col_mngr);
+ g_clear_object (&priv->item_mngr);
g_clear_object (&priv->mode_cntrlr);
g_clear_object (&priv->offset_cntrlr);
@@ -135,9 +135,9 @@ photos_tracker_collections_controller_init (PhotosTrackerCollectionsController *
app = g_application_get_default ();
state = photos_search_context_get_state (PHOTOS_SEARCH_CONTEXT (app));
- priv->col_mngr = g_object_ref (state->col_mngr);
- g_signal_connect_swapped (priv->col_mngr,
- "active-changed",
+ priv->item_mngr = g_object_ref (state->item_mngr);
+ g_signal_connect_swapped (priv->item_mngr,
+ "active-collection-changed",
G_CALLBACK (photos_tracker_collections_controller_col_active_changed),
self);
diff --git a/src/photos-tracker-controller.c b/src/photos-tracker-controller.c
index ced4a70..4952c8d 100644
--- a/src/photos-tracker-controller.c
+++ b/src/photos-tracker-controller.c
@@ -384,7 +384,7 @@ photos_tracker_controller_init (PhotosTrackerController *self)
state = photos_search_context_get_state (PHOTOS_SEARCH_CONTEXT (app));
priv->cancellable = g_cancellable_new ();
- priv->item_mngr = photos_item_manager_dup_singleton ();
+ priv->item_mngr = g_object_ref (state->item_mngr);
priv->src_mngr = g_object_ref (state->src_mngr);
g_signal_connect_swapped (priv->src_mngr,
diff --git a/src/photos-tracker-favorites-controller.c b/src/photos-tracker-favorites-controller.c
index a3a86cc..3ec845f 100644
--- a/src/photos-tracker-favorites-controller.c
+++ b/src/photos-tracker-favorites-controller.c
@@ -23,7 +23,7 @@
#include <gio/gio.h>
-#include "photos-base-manager.h"
+#include "photos-item-manager.h"
#include "photos-mode-controller.h"
#include "photos-offset-favorites-controller.h"
#include "photos-query-builder.h"
@@ -33,7 +33,7 @@
struct _PhotosTrackerFavoritesControllerPrivate
{
- PhotosBaseManager *col_mngr;
+ PhotosBaseManager *item_mngr;
PhotosModeController *mode_cntrlr;
PhotosOffsetController *offset_cntrlr;
};
@@ -71,11 +71,11 @@ photos_tracker_favorites_controller_get_query (PhotosTrackerController *trk_cntr
PhotosTrackerFavoritesController *self = PHOTOS_TRACKER_FAVORITES_CONTROLLER (trk_cntrlr);
PhotosTrackerFavoritesControllerPrivate *priv = self->priv;
GApplication *app;
- GObject *collection;
+ PhotosBaseItem *collection;
PhotosSearchContextState *state;
gint flags;
- collection = photos_base_manager_get_active_object (priv->col_mngr);
+ collection = photos_item_manager_get_active_collection (PHOTOS_ITEM_MANAGER (priv->item_mngr));
if (collection != NULL)
flags = PHOTOS_QUERY_FLAGS_NONE;
else
@@ -114,7 +114,7 @@ photos_tracker_favorites_controller_dispose (GObject *object)
PhotosTrackerFavoritesController *self = PHOTOS_TRACKER_FAVORITES_CONTROLLER (object);
PhotosTrackerFavoritesControllerPrivate *priv = self->priv;
- g_clear_object (&priv->col_mngr);
+ g_clear_object (&priv->item_mngr);
g_clear_object (&priv->mode_cntrlr);
g_clear_object (&priv->offset_cntrlr);
@@ -135,9 +135,9 @@ photos_tracker_favorites_controller_init (PhotosTrackerFavoritesController *self
app = g_application_get_default ();
state = photos_search_context_get_state (PHOTOS_SEARCH_CONTEXT (app));
- priv->col_mngr = g_object_ref (state->col_mngr);
- g_signal_connect_swapped (priv->col_mngr,
- "active-changed",
+ priv->item_mngr = g_object_ref (state->item_mngr);
+ g_signal_connect_swapped (priv->item_mngr,
+ "active-collection-changed",
G_CALLBACK (photos_tracker_favorites_controller_col_active_changed),
self);
diff --git a/src/photos-tracker-search-controller.c b/src/photos-tracker-search-controller.c
index eaa4498..b248350 100644
--- a/src/photos-tracker-search-controller.c
+++ b/src/photos-tracker-search-controller.c
@@ -28,6 +28,7 @@
#include <gio/gio.h>
#include "photos-base-manager.h"
+#include "photos-item-manager.h"
#include "photos-mode-controller.h"
#include "photos-offset-search-controller.h"
#include "photos-query-builder.h"
@@ -38,7 +39,7 @@
struct _PhotosTrackerSearchControllerPrivate
{
- PhotosBaseManager *col_mngr;
+ PhotosBaseManager *item_mngr;
PhotosBaseManager *src_mngr;
PhotosBaseManager *srch_mtch_mngr;
PhotosBaseManager *srch_typ_mngr;
@@ -127,7 +128,7 @@ photos_tracker_search_controller_dispose (GObject *object)
PhotosTrackerSearchController *self = PHOTOS_TRACKER_SEARCH_CONTROLLER (object);
PhotosTrackerSearchControllerPrivate *priv = self->priv;
- g_clear_object (&priv->col_mngr);
+ g_clear_object (&priv->item_mngr);
g_clear_object (&priv->src_mngr);
g_clear_object (&priv->srch_mtch_mngr);
g_clear_object (&priv->srch_typ_mngr);
@@ -152,9 +153,9 @@ photos_tracker_search_controller_init (PhotosTrackerSearchController *self)
app = g_application_get_default ();
state = photos_search_context_get_state (PHOTOS_SEARCH_CONTEXT (app));
- priv->col_mngr = g_object_ref (state->col_mngr);
- g_signal_connect_swapped (priv->col_mngr,
- "active-changed",
+ priv->item_mngr = g_object_ref (state->item_mngr);
+ g_signal_connect_swapped (priv->item_mngr,
+ "active-collection-changed",
G_CALLBACK (photos_tracker_search_controller_col_active_changed),
self);
diff --git a/src/photos-view-container.c b/src/photos-view-container.c
index ee5232a..186debb 100644
--- a/src/photos-view-container.c
+++ b/src/photos-view-container.c
@@ -36,6 +36,7 @@
#include "photos-offset-overview-controller.h"
#include "photos-offset-search-controller.h"
#include "photos-remote-display-manager.h"
+#include "photos-search-context.h"
#include "photos-selection-controller.h"
#include "photos-tracker-collections-controller.h"
#include "photos-tracker-favorites-controller.h"
@@ -288,11 +289,15 @@ photos_view_container_constructed (GObject *object)
GApplication *app;
GtkWidget *generic_view;
GtkWidget *grid;
+ PhotosSearchContextState *state;
gboolean status;
gint size;
G_OBJECT_CLASS (photos_view_container_parent_class)->constructed (object);
+ app = g_application_get_default ();
+ state = photos_search_context_get_state (PHOTOS_SEARCH_CONTEXT (app));
+
accessible = gtk_widget_get_accessible (GTK_WIDGET (self));
if (accessible != NULL)
atk_object_set_name (accessible, priv->name);
@@ -332,7 +337,7 @@ photos_view_container_constructed (GObject *object)
G_CALLBACK (photos_view_container_view_selection_changed),
self);
- priv->item_mngr = photos_item_manager_dup_singleton ();
+ priv->item_mngr = g_object_ref (state->item_mngr);
priv->sel_cntrlr = photos_selection_controller_dup_singleton ();
g_signal_connect (priv->sel_cntrlr,
@@ -378,8 +383,6 @@ photos_view_container_constructed (GObject *object)
break;
}
- app = g_application_get_default ();
-
action = g_action_map_lookup_action (G_ACTION_MAP (app), "select-all");
g_signal_connect_swapped (action, "activate", G_CALLBACK (gd_main_view_select_all), priv->view);
diff --git a/src/photos-view-model.c b/src/photos-view-model.c
index e5ad665..a51f769 100644
--- a/src/photos-view-model.c
+++ b/src/photos-view-model.c
@@ -47,7 +47,6 @@
struct _PhotosViewModelPrivate
{
- PhotosBaseManager *col_mngr;
PhotosBaseManager *item_mngr;
PhotosModeController *mode_cntrlr;
PhotosOffsetController *offset_cntrlr;
@@ -237,12 +236,12 @@ photos_view_model_info_updated (PhotosBaseItem *item, gpointer user_data)
{
PhotosViewModel *self = PHOTOS_VIEW_MODEL (user_data);
PhotosViewModelPrivate *priv = self->priv;
- GObject *active_collection;
GtkTreeIter iter;
GtkTreePath *path;
GtkTreeRowReference *row_ref;
+ PhotosBaseItem *active_collection;
- active_collection = photos_base_manager_get_active_object (priv->col_mngr);
+ active_collection = photos_item_manager_get_active_collection (PHOTOS_ITEM_MANAGER (priv->item_mngr));
row_ref = (GtkTreeRowReference *) g_object_get_data (G_OBJECT (item), priv->row_ref_key);
if (priv->mode == PHOTOS_WINDOW_MODE_COLLECTIONS)
@@ -294,8 +293,8 @@ photos_view_model_object_added (PhotosViewModel *self, GObject *object)
{
PhotosBaseItem *item = PHOTOS_BASE_ITEM (object);
PhotosViewModelPrivate *priv = self->priv;
+ PhotosBaseItem *active_collection;
PhotosWindowMode mode;
- GObject *active_collection;
GtkTreeRowReference *row_ref;
gboolean is_collection;
gboolean is_favorite;
@@ -304,7 +303,7 @@ photos_view_model_object_added (PhotosViewModel *self, GObject *object)
if (row_ref != NULL)
return;
- active_collection = photos_base_manager_get_active_object (priv->col_mngr);
+ active_collection = photos_item_manager_get_active_collection (PHOTOS_ITEM_MANAGER (priv->item_mngr));
is_collection = photos_base_item_is_collection (item);
is_favorite = photos_base_item_is_favorite (item);
mode = photos_mode_controller_get_window_mode (priv->mode_cntrlr);
@@ -391,7 +390,6 @@ photos_view_model_dispose (GObject *object)
priv->reset_count_id = 0;
}
- g_clear_object (&priv->col_mngr);
g_clear_object (&priv->item_mngr);
g_clear_object (&priv->mode_cntrlr);
g_clear_object (&priv->offset_cntrlr);
@@ -456,8 +454,7 @@ photos_view_model_init (PhotosViewModel *self)
gtk_list_store_set_column_types (GTK_LIST_STORE (self), sizeof (columns) / sizeof (columns[0]), columns);
gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (self), PHOTOS_VIEW_MODEL_MTIME,
GTK_SORT_DESCENDING);
- priv->col_mngr = g_object_ref (state->col_mngr);
- priv->item_mngr = photos_item_manager_dup_singleton ();
+ priv->item_mngr = g_object_ref (state->item_mngr);
priv->mode_cntrlr = photos_mode_controller_dup_singleton ();
priv->oldest_mtime = G_MAXINT64;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]