]> git.0d.be Git - empathy.git/commitdiff
Use the new FolksFavourite interface for favourites support
authorPhilip Withnall <philip.withnall@collabora.co.uk>
Wed, 23 Jun 2010 15:46:38 +0000 (16:46 +0100)
committerTravis Reitter <treitter@gmail.com>
Tue, 20 Jul 2010 23:12:35 +0000 (16:12 -0700)
libempathy-gtk/empathy-individual-menu.c
libempathy-gtk/empathy-individual-store.c
libempathy-gtk/empathy-individual-view.c
libempathy/empathy-individual-manager.c
libempathy/empathy-individual-manager.h

index 98afbc5414df8630a6ec96b4ddaaf5e86af0d78e..c618d2c37341f23bc68a4acc2c4ba97b6fee4b0b 100644 (file)
@@ -516,10 +516,8 @@ favourite_menu_item_toggled_cb (GtkCheckMenuItem *item,
   manager = empathy_individual_manager_dup_singleton ();
   list = EMPATHY_INDIVIDUAL_MANAGER (manager);
 
-  if (gtk_check_menu_item_get_active (item))
-    empathy_individual_manager_add_to_favourites (list, individual);
-  else
-    empathy_individual_manager_remove_from_favourites (list, individual);
+  folks_favourite_set_is_favourite (FOLKS_FAVOURITE (individual),
+      gtk_check_menu_item_get_active (item));
 
   g_object_unref (manager);
 }
@@ -534,8 +532,7 @@ empathy_individual_favourite_menu_item_new (FolksIndividual *individual)
 
   manager = empathy_individual_manager_dup_singleton ();
   gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (item),
-      empathy_individual_manager_is_favourite (
-          EMPATHY_INDIVIDUAL_MANAGER (manager), individual));
+      folks_favourite_get_is_favourite (FOLKS_FAVOURITE (individual)));
 
   g_signal_connect (item, "toggled",
       G_CALLBACK (favourite_menu_item_toggled_cb), individual);
index 1931106a4c4dac7f46bc71a68a03f13e1c00c519..976053c078370fc71cead1844895f1f012cde697 100644 (file)
@@ -412,9 +412,8 @@ individual_store_add_individual (EmpathyIndividualStore *self,
   if (group_set != NULL)
     g_hash_table_unref (group_set);
 
-#ifdef HAVE_FAVOURITE_CONTACTS
   if (priv->show_groups &&
-      empathy_individual_manager_is_favourite (priv->manager, individual))
+      folks_favourite_get_is_favourite (FOLKS_FAVOURITE (individual)))
     {
       /* Add contact to the fake 'Favorites' group */
       GtkTreeIter iter_group;
@@ -425,7 +424,6 @@ individual_store_add_individual (EmpathyIndividualStore *self,
       add_individual_to_store (GTK_TREE_STORE (self), &iter, &iter_group,
           individual, flags);
     }
-#endif
 
   individual_store_contact_update (self, individual);
 }
index 5a0a56651ebdc9bf0bb67a9124e020090c60ebf9..067fb60a05c3bf212d84088e41326c11204de4a7 100644 (file)
@@ -345,6 +345,7 @@ individual_view_handle_drag (EmpathyIndividualView *self,
   if (!tp_strdiff (new_group, EMPATHY_INDIVIDUAL_STORE_FAVORITE))
     {
       /* Mark contact as favourite */
+      folks_favourite_set_is_favourite (FOLKS_FAVOURITE (individual), TRUE);
 
       /* TODO: implement this */
       DEBUG ("adding individual to favourites not fully implemented");
@@ -355,6 +356,7 @@ individual_view_handle_drag (EmpathyIndividualView *self,
   if (!tp_strdiff (old_group, EMPATHY_INDIVIDUAL_STORE_FAVORITE))
     {
       /* Remove contact as favourite */
+      folks_favourite_set_is_favourite (FOLKS_FAVOURITE (individual), FALSE);
 
       /* TODO: implement this */
       DEBUG ("removing individual from favourites not fully " "implemented");
index 0af191ad1b43c001d06f87286905f08d7a4c4817..95955d64272e2f82fd354ff253f46806e2689b5c 100644 (file)
@@ -48,10 +48,6 @@ typedef struct
   FolksIndividualAggregator *aggregator;
   EmpathyContactManager *contact_manager;
   TpProxy *logger;
-  /* account object path (gchar *) => GHashTable containing favorite contacts
-   * (contact ID (gchar *) => TRUE) */
-  GHashTable *favourites;
-  TpProxySignalConnection *favourite_contacts_changed_signal;
 } EmpathyIndividualManagerPriv;
 
 G_DEFINE_TYPE (EmpathyIndividualManager, empathy_individual_manager,
@@ -112,9 +108,6 @@ individual_manager_finalize (GObject *object)
 {
   EmpathyIndividualManagerPriv *priv = GET_PRIV (object);
 
-  tp_proxy_signal_connection_disconnect (
-      priv->favourite_contacts_changed_signal);
-
   if (priv->logger != NULL)
     g_object_unref (priv->logger);
 
@@ -123,8 +116,6 @@ individual_manager_finalize (GObject *object)
 
   if (priv->aggregator != NULL)
     g_object_unref (priv->aggregator);
-
-  g_hash_table_destroy (priv->favourites);
 }
 
 static GObject *
@@ -208,22 +199,11 @@ empathy_individual_manager_init (EmpathyIndividualManager *self)
   self->priv = priv;
   priv->contact_manager = empathy_contact_manager_dup_singleton ();
 
-  priv->favourites = g_hash_table_new_full (g_str_hash, g_str_equal,
-      (GDestroyNotify) g_free, (GDestroyNotify) g_hash_table_unref);
-
   priv->aggregator = folks_individual_aggregator_new ();
-  if (error == NULL)
-    {
-      g_signal_connect (priv->aggregator, "individuals-added",
-          G_CALLBACK (aggregator_individuals_added_cb), self);
-      g_signal_connect (priv->aggregator, "individuals-removed",
-          G_CALLBACK (aggregator_individuals_removed_cb), self);
-    }
-  else
-    {
-      DEBUG ("Failed to get individual aggregator: %s", error->message);
-      g_clear_error (&error);
-    }
+  g_signal_connect (priv->aggregator, "individuals-added",
+      G_CALLBACK (aggregator_individuals_added_cb), self);
+  g_signal_connect (priv->aggregator, "individuals-removed",
+      G_CALLBACK (aggregator_individuals_removed_cb), self);
 
   bus = tp_dbus_daemon_dup (&error);
 
index be95ab3573e00f6319d0c6f002c024c7b3c610f1..030ea815f7fdc520e0198085b921a42d08076f5b 100644 (file)
@@ -75,10 +75,6 @@ void empathy_individual_manager_remove (EmpathyIndividualManager *manager,
     FolksIndividual *individual,
     const gchar *message);
 
-gboolean empathy_individual_manager_is_favourite (
-    EmpathyIndividualManager *manager,
-    FolksIndividual *individual);
-
 EmpathyIndividualManagerFlags
 empathy_individual_manager_get_flags_for_connection (
     EmpathyIndividualManager *manager,