[gnome-disk-utility] fstab, crypttab dialogs: Don't dismiss dialogs if polkit dialog was dismissed
- From: David Zeuthen <davidz src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-disk-utility] fstab, crypttab dialogs: Don't dismiss dialogs if polkit dialog was dismissed
- Date: Tue, 28 Feb 2012 16:14:56 +0000 (UTC)
commit 30a032243f18dd4b1715adc5da4f5e3374188e96
Author: David Zeuthen <davidz redhat com>
Date: Tue Feb 28 11:11:15 2012 -0500
fstab, crypttab dialogs: Don't dismiss dialogs if polkit dialog was dismissed
Signed-off-by: David Zeuthen <davidz redhat com>
src/palimpsest/gducrypttabdialog.c | 21 +++++++++++++++++++--
src/palimpsest/gdufstabdialog.c | 21 +++++++++++++++++++--
2 files changed, 38 insertions(+), 4 deletions(-)
---
diff --git a/src/palimpsest/gducrypttabdialog.c b/src/palimpsest/gducrypttabdialog.c
index 89957ae..df83a93 100644
--- a/src/palimpsest/gducrypttabdialog.c
+++ b/src/palimpsest/gducrypttabdialog.c
@@ -246,6 +246,7 @@ crypttab_dialog_present (CrypttabDialogData *data)
update (data, NULL);
+ again:
response = gtk_dialog_run (GTK_DIALOG (data->dialog));
if (response == GTK_RESPONSE_OK)
@@ -267,6 +268,12 @@ crypttab_dialog_present (CrypttabDialogData *data)
NULL, /* GCancellable */
&error))
{
+ if (g_error_matches (error, UDISKS_ERROR, UDISKS_ERROR_NOT_AUTHORIZED_DISMISSED))
+ {
+ g_error_free (error);
+ goto again;
+ }
+ gtk_widget_hide (data->dialog);
gdu_window_show_error (data->window,
_("Error removing /etc/crypttab entry"),
error);
@@ -290,8 +297,6 @@ crypttab_dialog_present (CrypttabDialogData *data)
ui_options = gtk_entry_get_text (GTK_ENTRY (data->options_entry));
ui_passphrase_contents = gtk_entry_get_text (GTK_ENTRY (data->passphrase_entry));
- gtk_widget_hide (data->dialog);
-
old_passphrase_path = NULL;
if (data->orig_crypttab_entry != NULL)
{
@@ -348,6 +353,12 @@ crypttab_dialog_present (CrypttabDialogData *data)
NULL, /* GCancellable */
&error))
{
+ if (g_error_matches (error, UDISKS_ERROR, UDISKS_ERROR_NOT_AUTHORIZED_DISMISSED))
+ {
+ g_error_free (error);
+ goto again;
+ }
+ gtk_widget_hide (data->dialog);
gdu_window_show_error (data->window,
_("Error adding /etc/crypttab entry"),
error);
@@ -365,6 +376,12 @@ crypttab_dialog_present (CrypttabDialogData *data)
NULL, /* GCancellable */
&error))
{
+ if (g_error_matches (error, UDISKS_ERROR, UDISKS_ERROR_NOT_AUTHORIZED_DISMISSED))
+ {
+ g_error_free (error);
+ goto again;
+ }
+ gtk_widget_hide (data->dialog);
gdu_window_show_error (data->window,
_("Error updating /etc/crypttab entry"),
error);
diff --git a/src/palimpsest/gdufstabdialog.c b/src/palimpsest/gdufstabdialog.c
index dfde2b5..a24201d 100644
--- a/src/palimpsest/gdufstabdialog.c
+++ b/src/palimpsest/gdufstabdialog.c
@@ -504,6 +504,7 @@ gdu_fstab_dialog_show (GduWindow *window,
g_signal_connect (data.icon_entry,
"notify::text", G_CALLBACK (on_property_changed), &data);
+ again:
response = gtk_dialog_run (GTK_DIALOG (dialog));
if (response == GTK_RESPONSE_OK)
{
@@ -521,6 +522,12 @@ gdu_fstab_dialog_show (GduWindow *window,
NULL, /* GCancellable */
&error))
{
+ if (g_error_matches (error, UDISKS_ERROR, UDISKS_ERROR_NOT_AUTHORIZED_DISMISSED))
+ {
+ g_error_free (error);
+ goto again;
+ }
+ gtk_widget_hide (dialog);
gdu_window_show_error (window,
_("Error removing old /etc/fstab entry"),
error);
@@ -550,8 +557,6 @@ gdu_fstab_dialog_show (GduWindow *window,
g_variant_lookup (data.orig_fstab_entry, "passno", "i", &passno);
}
- gtk_widget_hide (dialog);
-
if (data.orig_fstab_entry != NULL)
old_item = g_variant_new ("(s a{sv})", "fstab", data.orig_fstab_entry);
@@ -573,6 +578,12 @@ gdu_fstab_dialog_show (GduWindow *window,
NULL, /* GCancellable */
&error))
{
+ if (g_error_matches (error, UDISKS_ERROR, UDISKS_ERROR_NOT_AUTHORIZED_DISMISSED))
+ {
+ g_error_free (error);
+ goto again;
+ }
+ gtk_widget_hide (dialog);
gdu_window_show_error (window,
_("Error adding new /etc/fstab entry"),
error);
@@ -591,6 +602,12 @@ gdu_fstab_dialog_show (GduWindow *window,
NULL, /* GCancellable */
&error))
{
+ if (g_error_matches (error, UDISKS_ERROR, UDISKS_ERROR_NOT_AUTHORIZED_DISMISSED))
+ {
+ g_error_free (error);
+ goto again;
+ }
+ gtk_widget_hide (dialog);
gdu_window_show_error (window,
_("Error updating /etc/fstab entry"),
error);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]