aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMilan Crha <mcrha@redhat.com>2013-08-07 15:33:51 +0800
committerMilan Crha <mcrha@redhat.com>2013-08-07 15:38:28 +0800
commitc8f9a064a64090b854792adbbcae816cebdea55e (patch)
treedb1acabed52ede9600e931e06db6a3e408fd857d
parentdb04888644ec3ace5baeed406fb687f01a29a3b8 (diff)
downloadgsoc2013-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.c6
-rw-r--r--addressbook/gui/contact-list-editor/e-contact-list-editor.c6
-rw-r--r--addressbook/gui/widgets/e-addressbook-model.c2
-rw-r--r--addressbook/gui/widgets/e-addressbook-table-adapter.c2
-rw-r--r--addressbook/gui/widgets/e-addressbook-view.c2
-rw-r--r--addressbook/gui/widgets/eab-gui-util.c11
-rw-r--r--addressbook/gui/widgets/eab-gui-util.h1
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,