aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJonny Lamb <jonny.lamb@collabora.co.uk>2008-07-04 17:41:34 +0800
committerXavier Claessens <xclaesse@src.gnome.org>2008-07-04 17:41:34 +0800
commit1b35f6aa52f764c40c1fb603d8ca9e6622d12f02 (patch)
treeb7e57c51180287df01d104021316758cd177b61f
parent322ab0cf74a384fceef1908d38ad452260c854aa (diff)
downloadgsoc2013-empathy-1b35f6aa52f764c40c1fb603d8ca9e6622d12f02.tar
gsoc2013-empathy-1b35f6aa52f764c40c1fb603d8ca9e6622d12f02.tar.gz
gsoc2013-empathy-1b35f6aa52f764c40c1fb603d8ca9e6622d12f02.tar.bz2
gsoc2013-empathy-1b35f6aa52f764c40c1fb603d8ca9e6622d12f02.tar.lz
gsoc2013-empathy-1b35f6aa52f764c40c1fb603d8ca9e6622d12f02.tar.xz
gsoc2013-empathy-1b35f6aa52f764c40c1fb603d8ca9e6622d12f02.tar.zst
gsoc2013-empathy-1b35f6aa52f764c40c1fb603d8ca9e6622d12f02.zip
Select the bugged account upon a failed connection. Fixes bug #536984 (Jonny Lamb).
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
-rw-r--r--libempathy-gtk/empathy-accounts-dialog.c10
-rw-r--r--libempathy-gtk/empathy-accounts-dialog.h5
-rw-r--r--python/pyempathygtk/pyempathygtk.defs1
-rw-r--r--src/empathy-accounts.c2
-rw-r--r--src/empathy-main-window.c8
-rw-r--r--src/empathy-status-icon.c2
6 files changed, 19 insertions, 9 deletions
diff --git a/libempathy-gtk/empathy-accounts-dialog.c b/libempathy-gtk/empathy-accounts-dialog.c
index 177fc6fe8..a148ed24f 100644
--- a/libempathy-gtk/empathy-accounts-dialog.c
+++ b/libempathy-gtk/empathy-accounts-dialog.c
@@ -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),
diff --git a/libempathy-gtk/empathy-accounts-dialog.h b/libempathy-gtk/empathy-accounts-dialog.h
index d76a4dd12..369b2f75b 100644
--- a/libempathy-gtk/empathy-accounts-dialog.h
+++ b/libempathy-gtk/empathy-accounts-dialog.h
@@ -27,9 +27,12 @@
#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
diff --git a/python/pyempathygtk/pyempathygtk.defs b/python/pyempathygtk/pyempathygtk.defs
index 379f35cbf..ed3c2af71 100644
--- a/python/pyempathygtk/pyempathygtk.defs
+++ b/python/pyempathygtk/pyempathygtk.defs
@@ -418,6 +418,7 @@
(return-type "GtkWidget*")
(parameters
'("GtkWindow*" "parent")
+ '("McAccount*" "selected_account")
)
)
diff --git a/src/empathy-accounts.c b/src/empathy-accounts.c
index 65ede78ac..98af6fc53 100644
--- a/src/empathy-accounts.c
+++ b/src/empathy-accounts.c
@@ -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),
diff --git a/src/empathy-main-window.c b/src/empathy-main-window.c
index 8a8117f6e..ea67634b2 100644
--- a/src/empathy-main-window.c
+++ b/src/empathy-main-window.c
@@ -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);
diff --git a/src/empathy-status-icon.c b/src/empathy-status-icon.c
index 3c2e7a679..b0f31c9da 100644
--- a/src/empathy-status-icon.c
+++ b/src/empathy-status-icon.c
@@ -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);
}
}
}