aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMilan Crha <mcrha@redhat.com>2013-08-07 15:38:51 +0800
committerMilan Crha <mcrha@redhat.com>2013-08-07 15:38:51 +0800
commitc40b539296a04f877861de4610f5c09a7262a31a (patch)
tree7fb119a873db0c6c5049bb5b842df047d7d069dc
parent9499cbd238a69a0800ecbee7bf3229d330c1ac9c (diff)
downloadgsoc2013-evolution-c40b539296a04f877861de4610f5c09a7262a31a.tar
gsoc2013-evolution-c40b539296a04f877861de4610f5c09a7262a31a.tar.gz
gsoc2013-evolution-c40b539296a04f877861de4610f5c09a7262a31a.tar.bz2
gsoc2013-evolution-c40b539296a04f877861de4610f5c09a7262a31a.tar.lz
gsoc2013-evolution-c40b539296a04f877861de4610f5c09a7262a31a.tar.xz
gsoc2013-evolution-c40b539296a04f877861de4610f5c09a7262a31a.tar.zst
gsoc2013-evolution-c40b539296a04f877861de4610f5c09a7262a31a.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 a72d783095..b9fc5e447b 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 5bd188ccec..887173281e 100644
--- a/addressbook/gui/widgets/e-addressbook-table-adapter.c
+++ b/addressbook/gui/widgets/e-addressbook-table-adapter.c
@@ -158,7 +158,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 5edbf0fe60..674796f1eb 100644
--- a/addressbook/gui/widgets/e-addressbook-view.c
+++ b/addressbook/gui/widgets/e-addressbook-view.c
@@ -1234,7 +1234,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,