[gnome-photos/wip/favorites: 4/12] base-manager: Do not replace existing objects for a particular ID



commit 42edd3bdf25d95bb402a36cf8a571be9889f129e
Author: Debarshi Ray <debarshir gnome org>
Date:   Tue Dec 11 23:27:54 2012 +0530

    base-manager: Do not replace existing objects for a particular ID
    
    This will let us re-use the PhotosItemManager for the Favorites mode,
    where we will look for items marked as favorite. Otherwise we would
    end up emitting an extra "object-added" for an object that belongs to
    both modes.

 src/photos-base-manager.c |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)
---
diff --git a/src/photos-base-manager.c b/src/photos-base-manager.c
index 6ff7049..768c05b 100644
--- a/src/photos-base-manager.c
+++ b/src/photos-base-manager.c
@@ -203,9 +203,16 @@ photos_base_manager_class_init (PhotosBaseManagerClass *class)
 void
 photos_base_manager_add_object (PhotosBaseManager *self, GObject *object)
 {
+  GObject *old_object;
   gchar *id;
 
   g_object_get (object, "id", &id, NULL);
+  old_object = photos_base_manager_get_object_by_id (self, id);
+  if (old_object != NULL)
+    {
+      g_free (id);
+      return;
+    }
 
   g_hash_table_insert (self->priv->objects, (gpointer) id, g_object_ref (object));
   g_signal_emit (self, signals[OBJECT_ADDED], 0, object);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]