]> git.0d.be Git - empathy.git/blobdiff - src/empathy-new-chatroom-dialog.c
Updated Oriya translation
[empathy.git] / src / empathy-new-chatroom-dialog.c
index f0b6ec64132cd5537437d8a200fc3ce0f97d7d4b..7f46cb4f1d303b861ee0ac95ef799fcd0201eec7 100644 (file)
@@ -25,6 +25,8 @@
 #include "empathy-new-chatroom-dialog.h"
 
 #include <glib/gi18n.h>
+#include <tp-account-widgets/tpaw-builder.h>
+#include <tp-account-widgets/tpaw-utils.h>
 
 #include "empathy-account-chooser.h"
 #include "empathy-gsettings.h"
@@ -113,7 +115,7 @@ new_chatroom_dialog_join (EmpathyNewChatroomDialog *self)
   account_chooser = EMPATHY_ACCOUNT_CHOOSER (self->priv->account_chooser);
   account = empathy_account_chooser_get_account (account_chooser);
 
-  if (!EMP_STR_EMPTY (server))
+  if (!TPAW_STR_EMPTY (server))
     room_name = g_strconcat (room, "@", server, NULL);
   else
     room_name = g_strdup (room);
@@ -254,8 +256,8 @@ new_chatroom_dialog_model_setup (EmpathyNewChatroomDialog *self)
 
   /* Store/Model */
   store = gtk_list_store_new (COL_COUNT,
-      G_TYPE_STRING,       /* Invite */
-      G_TYPE_STRING,       /* Password */
+      G_TYPE_STRING,       /* Need password */
+      G_TYPE_STRING,       /* Invite only */
       G_TYPE_STRING,       /* Name */
       G_TYPE_STRING,       /* Room */
       G_TYPE_STRING,       /* Member count */
@@ -288,7 +290,7 @@ update_join_button_sensitivity (EmpathyNewChatroomDialog *self)
 
   room = gtk_entry_get_text (GTK_ENTRY (self->priv->entry_room));
   protocol = tp_account_get_protocol_name (self->priv->account);
-  if (EMP_STR_EMPTY (room))
+  if (TPAW_STR_EMPTY (room))
     goto out;
 
   if (!tp_strdiff (protocol, "irc") &&
@@ -414,6 +416,12 @@ new_chatroom_dialog_got_room_cb (TpRoomList *room_list,
   const gchar *invite_only;
   gchar *tmp;
 
+  if (tp_str_empty (tp_room_info_get_handle_name (room)))
+    {
+      DEBUG ("Room handle name is empty - Broken CM");
+      return;
+    }
+
   DEBUG ("New room listed: %s (%s)", tp_room_info_get_name (room),
       tp_room_info_get_handle_name (room));
 
@@ -494,22 +502,32 @@ new_room_list_cb (GObject *source,
     gpointer user_data)
 {
   EmpathyNewChatroomDialog *self = user_data;
+  TpRoomList *room_list;
   GError *error = NULL;
 
-  self->priv->room_list = tp_room_list_new_finish (result, &error);
-  if (self->priv->room_list == NULL)
+  room_list = tp_room_list_new_finish (result, &error);
+  if (room_list == NULL)
     {
       DEBUG ("Failed to create TpRoomList: %s\n", error->message);
       g_error_free (error);
       return;
     }
 
-  g_signal_connect (self->priv->room_list, "got-room",
-      G_CALLBACK (new_chatroom_dialog_got_room_cb), self);
-  g_signal_connect (self->priv->room_list, "failed",
-      G_CALLBACK (listing_failed_cb), self);
-  g_signal_connect (self->priv->room_list, "notify::listing",
-      G_CALLBACK (new_chatroom_dialog_listing_cb), self);
+  if (tp_room_list_get_account (room_list) != self->priv->account)
+    {
+      /* Account changed while we were creating this TpRoomList */
+      g_object_unref (room_list);
+      return;
+    }
+
+  self->priv->room_list = room_list;
+
+  tp_g_signal_connect_object (self->priv->room_list, "got-room",
+      G_CALLBACK (new_chatroom_dialog_got_room_cb), self, 0);
+  tp_g_signal_connect_object (self->priv->room_list, "failed",
+      G_CALLBACK (listing_failed_cb), self, 0);
+  tp_g_signal_connect_object (self->priv->room_list, "notify::listing",
+      G_CALLBACK (new_chatroom_dialog_listing_cb), self, 0);
 
   if (gtk_expander_get_expanded (GTK_EXPANDER (self->priv->expander_browse)))
     {
@@ -527,7 +545,6 @@ new_room_list_cb (GObject *source,
   gtk_widget_set_sensitive (self->priv->expander_browse, TRUE);
 
   new_chatroom_dialog_update_widgets (self);
-
 }
 
 static void
@@ -732,7 +749,7 @@ empathy_new_chatroom_dialog_init (EmpathyNewChatroomDialog *self)
       EMPATHY_TYPE_NEW_CHATROOM_DIALOG, EmpathyNewChatroomDialogPriv);
 
   filename = empathy_file_lookup ("empathy-new-chatroom-dialog.ui", "src");
-  gui = empathy_builder_get_file (filename,
+  gui = tpaw_builder_get_file (filename,
       "vbox_new_chatroom", &vbox,
       "table_grid", &self->priv->table_grid,
       "label_account", &self->priv->label_account,
@@ -748,7 +765,7 @@ empathy_new_chatroom_dialog_init (EmpathyNewChatroomDialog *self)
       NULL);
   g_free (filename);
 
-  empathy_builder_connect (gui, self,
+  tpaw_builder_connect (gui, self,
       "entry_server", "changed", new_chatroom_dialog_entry_changed_cb,
       "entry_server", "activate", new_chatroom_dialog_entry_server_activate_cb,
       "entry_server", "focus-out-event",