]> git.0d.be Git - empathy.git/blobdiff - src/empathy-main-window.c
EmpathySoundManager: passing a GtkWidget is optional
[empathy.git] / src / empathy-main-window.c
index fe39ca454ffcdf4d260455fe6a08781fe7111d68..91dd6bdecaef4debf06950e82eb45134c7ce522a 100644 (file)
@@ -39,7 +39,6 @@
 #include <libempathy/empathy-chatroom-manager.h>
 #include <libempathy/empathy-chatroom.h>
 #include <libempathy/empathy-contact-list.h>
-#include <libempathy/empathy-contact-manager.h>
 #include <libempathy/empathy-gsettings.h>
 #include <libempathy/empathy-individual-manager.h>
 #include <libempathy/empathy-gsettings.h>
@@ -47,8 +46,6 @@
 #include <libempathy/empathy-tp-contact-factory.h>
 
 #include <libempathy-gtk/empathy-contact-dialogs.h>
-#include <libempathy-gtk/empathy-contact-list-store.h>
-#include <libempathy-gtk/empathy-contact-list-view.h>
 #include <libempathy-gtk/empathy-live-search.h>
 #include <libempathy-gtk/empathy-contact-blocking-dialog.h>
 #include <libempathy-gtk/empathy-contact-search-dialog.h>
@@ -56,6 +53,7 @@
 #include <libempathy-gtk/empathy-gtk-enum-types.h>
 #include <libempathy-gtk/empathy-individual-dialogs.h>
 #include <libempathy-gtk/empathy-individual-store.h>
+#include <libempathy-gtk/empathy-individual-store-manager.h>
 #include <libempathy-gtk/empathy-individual-view.h>
 #include <libempathy-gtk/empathy-new-message-dialog.h>
 #include <libempathy-gtk/empathy-new-call-dialog.h>
@@ -107,7 +105,6 @@ G_DEFINE_TYPE (EmpathyMainWindow, empathy_main_window, GTK_TYPE_WINDOW);
 #define GET_PRIV(self) ((EmpathyMainWindowPriv *)((EmpathyMainWindow *) self)->priv)
 
 struct _EmpathyMainWindowPriv {
-       EmpathyContactList      *contact_manager;
        EmpathyIndividualStore  *individual_store;
        EmpathyIndividualView   *individual_view;
        TpAccountManager        *account_manager;
@@ -569,7 +566,7 @@ main_window_load_events_idle_cb (gpointer user_data)
 }
 
 static void
-main_window_row_activated_cb (EmpathyContactListView *view,
+main_window_row_activated_cb (EmpathyIndividualView *view,
                              GtkTreePath            *path,
                              GtkTreeViewColumn      *col,
                              EmpathyMainWindow      *window)
@@ -1167,7 +1164,7 @@ main_window_setup_balance_create_widget (EmpathyMainWindow *window,
        EmpathyMainWindowPriv *priv = GET_PRIV (window);
        GtkWidget *hbox, *image, *label, *button;
 
-       hbox = gtk_hbox_new (FALSE, 6);
+       hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6);
 
        /* protocol icon */
        image = gtk_image_new ();
@@ -1372,10 +1369,9 @@ empathy_main_window_finalize (GObject *window)
 
        g_object_unref (priv->account_manager);
        g_object_unref (priv->individual_store);
-       g_object_unref (priv->contact_manager);
        g_object_unref (priv->sound_mgr);
-       g_hash_table_destroy (priv->errors);
-       g_hash_table_destroy (priv->auths);
+       g_hash_table_unref (priv->errors);
+       g_hash_table_unref (priv->auths);
 
        /* disconnect all handlers of status-changed signal */
        g_hash_table_iter_init (&iter, priv->status_changed_handlers);
@@ -1383,7 +1379,7 @@ empathy_main_window_finalize (GObject *window)
                g_signal_handler_disconnect (TP_ACCOUNT (key),
                                             GPOINTER_TO_UINT (value));
 
-       g_hash_table_destroy (priv->status_changed_handlers);
+       g_hash_table_unref (priv->status_changed_handlers);
 
        g_signal_handlers_disconnect_by_func (priv->event_manager,
                                              main_window_event_added_cb,
@@ -1519,7 +1515,7 @@ main_window_view_sort_contacts_cb (GtkRadioAction    *action,
                                   EmpathyMainWindow *window)
 {
        EmpathyMainWindowPriv *priv = GET_PRIV (window);
-       EmpathyContactListStoreSort value;
+       EmpathyIndividualStoreSort value;
        GSList      *group;
        GType        type;
        GEnumClass  *enum_class;
@@ -2460,11 +2456,9 @@ empathy_main_window_init (EmpathyMainWindow *window)
         * so it's got a race condition between its signal handlers and its
         * finalization. The class is planned to be removed, so we won't fix
         * this before then. */
-       priv->contact_manager = EMPATHY_CONTACT_LIST (
-                       empathy_contact_manager_dup_singleton ());
        individual_manager = empathy_individual_manager_dup_singleton ();
-       priv->individual_store = empathy_individual_store_new (
-                       individual_manager);
+       priv->individual_store = EMPATHY_INDIVIDUAL_STORE (
+                       empathy_individual_store_manager_new (individual_manager));
        g_object_unref (individual_manager);
 
        /* For the moment, we disallow Persona drops onto the main contact list (e.g. from things such as
@@ -2472,8 +2466,25 @@ empathy_main_window_init (EmpathyMainWindow *window)
         * drop, so allowing them would achieve nothing except confusion. */
        priv->individual_view = empathy_individual_view_new (
                        priv->individual_store,
-                       EMPATHY_INDIVIDUAL_VIEW_FEATURE_ALL ^ EMPATHY_INDIVIDUAL_VIEW_FEATURE_PERSONA_DROP,
-                       EMPATHY_INDIVIDUAL_FEATURE_ALL);
+                       /* EmpathyIndividualViewFeatureFlags */
+                       EMPATHY_INDIVIDUAL_VIEW_FEATURE_GROUPS_SAVE |
+                       EMPATHY_INDIVIDUAL_VIEW_FEATURE_GROUPS_RENAME |
+                       EMPATHY_INDIVIDUAL_VIEW_FEATURE_GROUPS_REMOVE |
+                       EMPATHY_INDIVIDUAL_VIEW_FEATURE_GROUPS_CHANGE |
+                       EMPATHY_INDIVIDUAL_VIEW_FEATURE_INDIVIDUAL_REMOVE |
+                       EMPATHY_INDIVIDUAL_VIEW_FEATURE_INDIVIDUAL_DROP |
+                       EMPATHY_INDIVIDUAL_VIEW_FEATURE_INDIVIDUAL_DRAG |
+                       EMPATHY_INDIVIDUAL_VIEW_FEATURE_INDIVIDUAL_TOOLTIP |
+                       EMPATHY_INDIVIDUAL_VIEW_FEATURE_INDIVIDUAL_CALL |
+                       EMPATHY_INDIVIDUAL_VIEW_FEATURE_FILE_DROP,
+                       /* EmpathyIndividualFeatureFlags  */
+                       EMPATHY_INDIVIDUAL_FEATURE_CHAT |
+                       EMPATHY_INDIVIDUAL_FEATURE_CALL |
+                       EMPATHY_INDIVIDUAL_FEATURE_EDIT |
+                       EMPATHY_INDIVIDUAL_FEATURE_INFO |
+                       EMPATHY_INDIVIDUAL_FEATURE_LINK |
+                       EMPATHY_INDIVIDUAL_FEATURE_SMS |
+                       EMPATHY_INDIVIDUAL_FEATURE_CALL_PHONE);
 
        gtk_widget_show (GTK_WIDGET (priv->individual_view));
        gtk_container_add (GTK_CONTAINER (sw),