diff options
author | Milan Crha <mcrha@redhat.com> | 2013-08-07 15:33:51 +0800 |
---|---|---|
committer | Milan Crha <mcrha@redhat.com> | 2013-08-07 15:38:28 +0800 |
commit | c8f9a064a64090b854792adbbcae816cebdea55e (patch) | |
tree | db1acabed52ede9600e931e06db6a3e408fd857d | |
parent | db04888644ec3ace5baeed406fb687f01a29a3b8 (diff) | |
download | gsoc2013-evolution-c8f9a064a64090b854792adbbcae816cebdea55e.tar gsoc2013-evolution-c8f9a064a64090b854792adbbcae816cebdea55e.tar.gz gsoc2013-evolution-c8f9a064a64090b854792adbbcae816cebdea55e.tar.bz2 gsoc2013-evolution-c8f9a064a64090b854792adbbcae816cebdea55e.tar.lz gsoc2013-evolution-c8f9a064a64090b854792adbbcae816cebdea55e.tar.xz gsoc2013-evolution-c8f9a064a64090b854792adbbcae816cebdea55e.tar.zst gsoc2013-evolution-c8f9a064a64090b854792adbbcae816cebdea55e.zip |
[Addressbook] Show editor errors above editor window
An address book editor error was shown about active EShell's window,
which means switching to other application and back made the editor
in the background, but, more importantly, the editor could be
selected and the error was in the background, thus it seemed like
being stuck, it didn't respond to any button click, until the error
was dismissed.
-rw-r--r-- | addressbook/gui/contact-editor/e-contact-editor.c | 6 | ||||
-rw-r--r-- | addressbook/gui/contact-list-editor/e-contact-list-editor.c | 6 | ||||
-rw-r--r-- | addressbook/gui/widgets/e-addressbook-model.c | 2 | ||||
-rw-r--r-- | addressbook/gui/widgets/e-addressbook-table-adapter.c | 2 | ||||
-rw-r--r-- | addressbook/gui/widgets/e-addressbook-view.c | 2 | ||||
-rw-r--r-- | addressbook/gui/widgets/eab-gui-util.c | 11 | ||||
-rw-r--r-- | addressbook/gui/widgets/eab-gui-util.h | 1 |
7 files changed, 18 insertions, 12 deletions
diff --git a/addressbook/gui/contact-editor/e-contact-editor.c b/addressbook/gui/contact-editor/e-contact-editor.c index 8f7bc9e929..0d3f41e2d5 100644 --- a/addressbook/gui/contact-editor/e-contact-editor.c +++ b/addressbook/gui/contact-editor/e-contact-editor.c @@ -224,7 +224,7 @@ e_contact_editor_contact_added (EABEditor *editor, g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) return; - eab_error_dialog (NULL, _("Error adding contact"), error); + eab_error_dialog (NULL, eab_editor_get_window (editor), _("Error adding contact"), error); } static void @@ -239,7 +239,7 @@ e_contact_editor_contact_modified (EABEditor *editor, g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) return; - eab_error_dialog (NULL, _("Error modifying contact"), error); + eab_error_dialog (NULL, eab_editor_get_window (editor), _("Error modifying contact"), error); } static void @@ -254,7 +254,7 @@ e_contact_editor_contact_deleted (EABEditor *editor, g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) return; - eab_error_dialog (NULL, _("Error removing contact"), error); + eab_error_dialog (NULL, eab_editor_get_window (editor), _("Error removing contact"), error); } static void diff --git a/addressbook/gui/contact-list-editor/e-contact-list-editor.c b/addressbook/gui/contact-list-editor/e-contact-list-editor.c index f58f433a38..2eac787950 100644 --- a/addressbook/gui/contact-list-editor/e-contact-list-editor.c +++ b/addressbook/gui/contact-list-editor/e-contact-list-editor.c @@ -1591,7 +1591,7 @@ contact_list_editor_contact_added (EABEditor *editor, g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) return; - eab_error_dialog (NULL, _("Error adding list"), error); + eab_error_dialog (NULL, eab_editor_get_window (editor), _("Error adding list"), error); } static void @@ -1606,7 +1606,7 @@ contact_list_editor_contact_modified (EABEditor *editor, g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) return; - eab_error_dialog (NULL, _("Error modifying list"), error); + eab_error_dialog (NULL, eab_editor_get_window (editor), _("Error modifying list"), error); } static void @@ -1621,7 +1621,7 @@ contact_list_editor_contact_deleted (EABEditor *editor, g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) return; - eab_error_dialog (NULL, _("Error removing list"), error); + eab_error_dialog (NULL, eab_editor_get_window (editor), _("Error removing list"), error); } static void diff --git a/addressbook/gui/widgets/e-addressbook-model.c b/addressbook/gui/widgets/e-addressbook-model.c index 00c2357b48..683eed3499 100644 --- a/addressbook/gui/widgets/e-addressbook-model.c +++ b/addressbook/gui/widgets/e-addressbook-model.c @@ -364,7 +364,7 @@ client_view_ready_cb (GObject *source_object, client_view = NULL; if (error) { - eab_error_dialog (NULL, _("Error getting book view"), error); + eab_error_dialog (NULL, NULL, _("Error getting book view"), error); g_error_free (error); return; } diff --git a/addressbook/gui/widgets/e-addressbook-table-adapter.c b/addressbook/gui/widgets/e-addressbook-table-adapter.c index ee1ba7c75b..a7f1f6bb5b 100644 --- a/addressbook/gui/widgets/e-addressbook-table-adapter.c +++ b/addressbook/gui/widgets/e-addressbook-table-adapter.c @@ -200,7 +200,7 @@ contact_modified_cb (EBookClient *book_client, gpointer user_data) { if (error) - eab_error_dialog (NULL, _("Error modifying card"), error); + eab_error_dialog (NULL, NULL, _("Error modifying card"), error); } static void diff --git a/addressbook/gui/widgets/e-addressbook-view.c b/addressbook/gui/widgets/e-addressbook-view.c index b2dd4c94a3..38d7196217 100644 --- a/addressbook/gui/widgets/e-addressbook-view.c +++ b/addressbook/gui/widgets/e-addressbook-view.c @@ -1249,7 +1249,7 @@ report_and_free_error_if_any (GError *error) e_shell_get_active_window (NULL), "addressbook:contact-delete-error-perm", NULL); } else { - eab_error_dialog (NULL, _("Failed to delete contact"), error); + eab_error_dialog (NULL, NULL, _("Failed to delete contact"), error); } g_error_free (error); diff --git a/addressbook/gui/widgets/eab-gui-util.c b/addressbook/gui/widgets/eab-gui-util.c index 2967ca9e16..5f155ad1b1 100644 --- a/addressbook/gui/widgets/eab-gui-util.c +++ b/addressbook/gui/widgets/eab-gui-util.c @@ -77,6 +77,7 @@ typedef enum { void eab_error_dialog (EAlertSink *alert_sink, + GtkWindow *parent, const gchar *msg, const GError *error) { @@ -86,11 +87,15 @@ eab_error_dialog (EAlertSink *alert_sink, alert_sink, "addressbook:generic-error", msg, error->message, NULL); - else + else { + if (!parent) + parent = e_shell_get_active_window (NULL); + e_alert_run_dialog_for_args ( - e_shell_get_active_window (NULL), + parent, "addressbook:generic-error", msg, error->message, NULL); + } } } @@ -490,7 +495,7 @@ contact_added_cb (EBookClient *book_client, if (error && !g_error_matches (error, E_CLIENT_ERROR, E_CLIENT_ERROR_CANCELLED) && !g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) { process->book_status = FALSE; - eab_error_dialog (process->alert_sink, _("Error adding contact"), error); + eab_error_dialog (process->alert_sink, NULL, _("Error adding contact"), error); } else if (g_error_matches (error, E_CLIENT_ERROR, E_CLIENT_ERROR_CANCELLED) || g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) { process->book_status = FALSE; diff --git a/addressbook/gui/widgets/eab-gui-util.h b/addressbook/gui/widgets/eab-gui-util.h index d6c6cb24da..f169f8b8d3 100644 --- a/addressbook/gui/widgets/eab-gui-util.h +++ b/addressbook/gui/widgets/eab-gui-util.h @@ -32,6 +32,7 @@ G_BEGIN_DECLS void eab_error_dialog (EAlertSink *alert_sink, + GtkWindow *parent, const gchar *msg, const GError *error); void eab_load_error_dialog (GtkWidget *parent, |