]> git.0d.be Git - empathy.git/commitdiff
Select the bugged account upon a failed connection. Fixes bug #536984 (Jonny Lamb).
authorJonny Lamb <jonny.lamb@collabora.co.uk>
Fri, 4 Jul 2008 09:41:34 +0000 (09:41 +0000)
committerXavier Claessens <xclaesse@src.gnome.org>
Fri, 4 Jul 2008 09:41:34 +0000 (09:41 +0000)
When a connection fails, a box in the main window appears with an "Edit
Account" button. Clicking this button takes you to the account editor,
but does nothing else. This patch moves the selection to the bugged
account, for convenience.

Signed-off-by: Jonny Lamb <jonny.lamb@collabora.co.uk>
svn path=/trunk/; revision=1192

libempathy-gtk/empathy-accounts-dialog.c
libempathy-gtk/empathy-accounts-dialog.h
python/pyempathygtk/pyempathygtk.defs
src/empathy-accounts.c
src/empathy-main-window.c
src/empathy-status-icon.c

index 177fc6fe8624abc787414e3b870d70e3e626fc5e..a148ed24ff3d2729d2c3a90bb744c57833f71057 100644 (file)
@@ -1003,7 +1003,8 @@ accounts_dialog_destroy_cb (GtkWidget            *widget,
 }
 
 GtkWidget *
-empathy_accounts_dialog_show (GtkWindow *parent)
+empathy_accounts_dialog_show (GtkWindow *parent,
+                             McAccount *selected_account)
 {
        static EmpathyAccountsDialog *dialog = NULL;
        GladeXML                     *glade;
@@ -1086,7 +1087,12 @@ empathy_accounts_dialog_show (GtkWindow *parent)
 
        accounts_dialog_model_setup (dialog);
        accounts_dialog_setup (dialog);
-       accounts_dialog_model_select_first (dialog);
+
+       if (selected_account) {
+               accounts_dialog_model_set_selected (dialog, selected_account);
+       } else {
+               accounts_dialog_model_select_first (dialog);
+       }
 
        if (parent) {
                gtk_window_set_transient_for (GTK_WINDOW (dialog->window),
index d76a4dd12dcec524f7fbfcb90839f82483135f13..369b2f75b025c883106df72dcfcbd4eab03b8ffb 100644 (file)
 
 #include <gtk/gtkwidget.h>
 
+#include <libmissioncontrol/mc-account.h>
+
 G_BEGIN_DECLS
 
-GtkWidget *empathy_accounts_dialog_show (GtkWindow *parent);
+GtkWidget *empathy_accounts_dialog_show (GtkWindow *parent,
+                                        McAccount *selected_account);
 
 G_END_DECLS
 
index 379f35cbf62c6b2992856a64e0a0e5d498a53a2c..ed3c2af71799309140c6df3730d66a3a75cfb211 100644 (file)
   (return-type "GtkWidget*")
   (parameters
     '("GtkWindow*" "parent")
+    '("McAccount*" "selected_account")
   )
 )
 
index 65ede78ac7d8228490769c6c827a7d046443417a..98af6fc53654dd2a4377e4229b709a1430a85dfe 100644 (file)
@@ -53,7 +53,7 @@ main (int argc, char *argv[])
 
        gtk_icon_theme_append_search_path (gtk_icon_theme_get_default (),
                                           PKGDATADIR G_DIR_SEPARATOR_S "icons");
-       dialog = empathy_accounts_dialog_show (NULL);
+       dialog = empathy_accounts_dialog_show (NULL, NULL);
 
        g_signal_connect (dialog, "destroy",
                          G_CALLBACK (destroy_cb),
index 8a8117f6e892cd4e13564f05da4aba00dee8db5d..ea67634b2fe51a4612acdc30c3ff3a753f5ab191 100644 (file)
@@ -645,7 +645,7 @@ static void
 main_window_edit_accounts_cb (GtkWidget         *widget,
                              EmpathyMainWindow *window)
 {
-       empathy_accounts_dialog_show (GTK_WINDOW (window->window));
+       empathy_accounts_dialog_show (GTK_WINDOW (window->window), NULL);
 }
 
 static void
@@ -710,7 +710,7 @@ main_window_throbber_button_press_event_cb (GtkWidget         *throbber_ebox,
                return FALSE;
        }
 
-       empathy_accounts_dialog_show (GTK_WINDOW (window->window));
+       empathy_accounts_dialog_show (GTK_WINDOW (window->window), NULL);
 
        return FALSE;
 }
@@ -722,9 +722,9 @@ main_window_error_edit_clicked_cb (GtkButton         *button,
        McAccount *account;
        GtkWidget *error_widget;
 
-       empathy_accounts_dialog_show (GTK_WINDOW (window->window));
-
        account = g_object_get_data (G_OBJECT (button), "account");
+       empathy_accounts_dialog_show (GTK_WINDOW (window->window), account);
+
        error_widget = g_hash_table_lookup (window->errors, account);
        gtk_widget_destroy (error_widget);
        g_hash_table_remove (window->errors, account);
index 3c2e7a679202627c0327c180ba13760a0899ce91..b0f31c9da9a1d8fba707aa7b7e1d7887f8d365db 100644 (file)
@@ -283,7 +283,7 @@ status_icon_set_visibility (EmpathyStatusIcon *icon,
                        mc_accounts_list_free (accounts);
                } else {
                        DEBUG ("No enabled account, Showing account dialog");
-                       empathy_accounts_dialog_show (GTK_WINDOW (priv->window));
+                       empathy_accounts_dialog_show (GTK_WINDOW (priv->window), NULL);
                }
        }
 }