aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorChandni Verma <chandniverma2112@gmail.com>2011-01-03 23:55:43 +0800
committerChandni Verma <chandniverma2112@gmail.com>2011-01-03 23:55:43 +0800
commit98b73f3620f3b2f94e7d2ce3cfd2cd07cc637d13 (patch)
tree8f99ad647fc286c54b3afd7707a490376c5b5ac8 /src
parentceff90e7c349418ed74c3bc2346fdb9270d534c0 (diff)
downloadgsoc2013-empathy-98b73f3620f3b2f94e7d2ce3cfd2cd07cc637d13.tar
gsoc2013-empathy-98b73f3620f3b2f94e7d2ce3cfd2cd07cc637d13.tar.gz
gsoc2013-empathy-98b73f3620f3b2f94e7d2ce3cfd2cd07cc637d13.tar.bz2
gsoc2013-empathy-98b73f3620f3b2f94e7d2ce3cfd2cd07cc637d13.tar.lz
gsoc2013-empathy-98b73f3620f3b2f94e7d2ce3cfd2cd07cc637d13.tar.xz
gsoc2013-empathy-98b73f3620f3b2f94e7d2ce3cfd2cd07cc637d13.tar.zst
gsoc2013-empathy-98b73f3620f3b2f94e7d2ce3cfd2cd07cc637d13.zip
Skip accounts which don't support rooms in "Manage Favorites" dialog
Fixes: https://bugzilla.gnome.org/show_bug.cgi?id=603027
Diffstat (limited to 'src')
-rw-r--r--src/empathy-chatrooms-window.c2
-rw-r--r--src/empathy-new-chatroom-dialog.c71
2 files changed, 2 insertions, 71 deletions
diff --git a/src/empathy-chatrooms-window.c b/src/empathy-chatrooms-window.c
index 35e3e8b9d..1b00548f5 100644
--- a/src/empathy-chatrooms-window.c
+++ b/src/empathy-chatrooms-window.c
@@ -139,7 +139,7 @@ empathy_chatrooms_window_show (GtkWindow *parent)
/* Account chooser for chat rooms */
window->account_chooser = empathy_account_chooser_new ();
empathy_account_chooser_set_filter (EMPATHY_ACCOUNT_CHOOSER (window->account_chooser),
- empathy_account_chooser_filter_is_connected,
+ empathy_account_chooser_filter_supports_chatrooms,
NULL);
g_object_set (window->account_chooser,
"has-all-option", TRUE,
diff --git a/src/empathy-new-chatroom-dialog.c b/src/empathy-new-chatroom-dialog.c
index 58690d139..f0e58c749 100644
--- a/src/empathy-new-chatroom-dialog.c
+++ b/src/empathy-new-chatroom-dialog.c
@@ -73,11 +73,6 @@ typedef struct {
GtkWidget *viewport_error;
} EmpathyNewChatroomDialog;
-typedef struct {
- EmpathyAccountChooserFilterResultCallback callback;
- gpointer user_data;
-} FilterCallbackData;
-
enum {
COL_NEED_PASSWORD,
COL_INVITE_ONLY,
@@ -138,70 +133,6 @@ static void new_chatroom_dialog_button_close_error_clicked_cb (GtkButton
static EmpathyNewChatroomDialog *dialog_p = NULL;
-static void
-conn_prepared_cb (GObject *conn,
- GAsyncResult *result,
- gpointer user_data)
-{
- FilterCallbackData *data = user_data;
- GError *myerr = NULL;
- TpCapabilities *caps;
-
- if (!tp_proxy_prepare_finish (conn, result, &myerr)) {
- data->callback (FALSE, data->user_data);
- g_slice_free (FilterCallbackData, data);
- }
-
- caps = tp_connection_get_capabilities (TP_CONNECTION (conn));
- data->callback (tp_capabilities_supports_text_chatrooms (caps),
- data->user_data);
-
- g_slice_free (FilterCallbackData, data);
-}
-
-/**
- * empathy_account_chooser_filter_supports_multichat:
- * @account: a #TpAccount
- * @callback: an #EmpathyAccountChooserFilterResultCallback accepting the result
- * @callback_data: data passed to the @callback
- * @user_data: user data or %NULL
- *
- * An #EmpathyAccountChooserFilterFunc that returns accounts that both
- * support multiuser text chat and are connected.
- *
- * Returns (via the callback) TRUE if @account both supports muc and is connected
- */
-static void
-empathy_account_chooser_filter_supports_multichat (
- TpAccount *account,
- EmpathyAccountChooserFilterResultCallback callback,
- gpointer callback_data,
- gpointer user_data)
-{
- TpConnection *connection;
- FilterCallbackData *cb_data;
- GQuark features[] = { TP_CONNECTION_FEATURE_CAPABILITIES, 0 };
-
- if (tp_account_get_connection_status (account, NULL) !=
- TP_CONNECTION_STATUS_CONNECTED) {
- callback (FALSE, callback_data);
- return;
- }
-
- /* check if CM supports multiuser text chat */
- connection = tp_account_get_connection (account);
- if (connection == NULL) {
- callback (FALSE, callback_data);
- return;
- }
-
- cb_data = g_slice_new0 (FilterCallbackData);
- cb_data->callback = callback;
- cb_data->user_data = callback_data;
- tp_proxy_prepare_async (connection, features, conn_prepared_cb,
- cb_data);
-}
-
void
empathy_new_chatroom_dialog_show (GtkWindow *parent)
{
@@ -270,7 +201,7 @@ empathy_new_chatroom_dialog_show (GtkWindow *parent)
/* Account chooser for custom */
dialog->account_chooser = empathy_account_chooser_new ();
empathy_account_chooser_set_filter (EMPATHY_ACCOUNT_CHOOSER (dialog->account_chooser),
- empathy_account_chooser_filter_supports_multichat,
+ empathy_account_chooser_filter_supports_chatrooms,
NULL);
gtk_table_attach_defaults (GTK_TABLE (dialog->table_info),
dialog->account_chooser,