[evolution] [Addressbook] Show editor errors above editor window
- From: Milan Crha <mcrha src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution] [Addressbook] Show editor errors above editor window
- Date: Wed, 7 Aug 2013 07:38:42 +0000 (UTC)
commit c8f9a064a64090b854792adbbcae816cebdea55e
Author: Milan Crha <mcrha redhat com>
Date: Wed Aug 7 09:33:51 2013 +0200
[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.
addressbook/gui/contact-editor/e-contact-editor.c | 6 +++---
.../contact-list-editor/e-contact-list-editor.c | 6 +++---
addressbook/gui/widgets/e-addressbook-model.c | 2 +-
.../gui/widgets/e-addressbook-table-adapter.c | 2 +-
addressbook/gui/widgets/e-addressbook-view.c | 2 +-
addressbook/gui/widgets/eab-gui-util.c | 11 ++++++++---
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 8f7bc9e..0d3f41e 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 f58f433..2eac787 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 00c2357..683eed3 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 ee1ba7c..a7f1f6b 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 b2dd4c9..38d7196 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 2967ca9..5f155ad 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 d6c6cb2..f169f8b 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,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]