diff options
author | Martin Kletzander <mkletzan@redhat.com> | 2012-12-03 17:12:59 +0100 |
---|---|---|
committer | Cole Robinson <crobinso@redhat.com> | 2012-12-04 18:36:16 -0500 |
commit | b2a7c396de511f47bedfdff172a2835b32b63a0e (patch) | |
tree | 8dc7309a62abfffac4b1fed8a79d71514b50e68e | |
parent | f84f9b2355fb8adbbc2e5bf2fbba79afe4a2e90b (diff) | |
download | virt-manager-b2a7c396de511f47bedfdff172a2835b32b63a0e.tar.gz |
Make deleting storage files default with added prompt
This patch changes the default checkbox-state of "Delete all
associated storage" to be checked, but adds a prompt with a warning
for users to be sure they notice this change and they know what they
are doing (hopefully).
(crobinso: confirm even if no gconf schema available, cosmetic spacing
fixup, add Martin to AUTHORS)
-rw-r--r-- | AUTHORS | 1 | ||||
-rw-r--r-- | src/virt-manager.schemas.in | 13 | ||||
-rw-r--r-- | src/virtManager/config.py | 13 | ||||
-rw-r--r-- | src/virtManager/delete.py | 15 | ||||
-rw-r--r-- | src/virtManager/preferences.py | 11 | ||||
-rw-r--r-- | src/vmm-preferences.ui | 30 |
6 files changed, 79 insertions, 4 deletions
@@ -84,6 +84,7 @@ Further patches have been submitted by: Joey Boggs <jboggs-at-redhat-dot-com> Marcus Karlsson <mk-at-acc.umu.se> Michal Privoznik <mprivozn-at-redhat-dot-com> + Martin Kletzander <mkletzan-at-redhat-dot-com> <...send a patch & get your name here...> diff --git a/src/virt-manager.schemas.in b/src/virt-manager.schemas.in index 81545345..dc11187d 100644 --- a/src/virt-manager.schemas.in +++ b/src/virt-manager.schemas.in @@ -378,6 +378,19 @@ </schema> <schema> + <key>/schemas/apps/::PACKAGE::/confirm/delete_storage</key> + <applyto>/apps/::PACKAGE::/confirm/delete_storage</applyto> + <owner>::PACKAGE::</owner> + <type>bool</type> + <default>1</default> + + <locale name="C"> + <short>Confirm deleting storage</short> + <long>Whether we require a confirmation on deleting storage</long> + </locale> + </schema> + + <schema> <key>/schemas/apps/::PACKAGE::/manager_window_height</key> <applyto>/apps/::PACKAGE::/manager_window_height</applyto> <owner>::PACKAGE::</owner> diff --git a/src/virtManager/config.py b/src/virtManager/config.py index 508fea09..fdc0cf18 100644 --- a/src/virtManager/config.py +++ b/src/virtManager/config.py @@ -1,5 +1,5 @@ # -# Copyright (C) 2006 Red Hat, Inc. +# Copyright (C) 2006, 2012 Red Hat, Inc. # Copyright (C) 2006 Daniel P. Berrange <berrange@redhat.com> # # This program is free software; you can redistribute it and/or modify @@ -375,6 +375,13 @@ class vmmConfig(object): return self.conf.get_bool(self.conf_dir + "/confirm/interface_power") def get_confirm_unapplied(self): return self.conf.get_bool(self.conf_dir + "/confirm/unapplied_dev") + def get_confirm_delstorage(self): + # If no schema is installed, we _really_ want this to default to True + path = self.conf_dir + "/confirm/delete_storage" + ret = self.conf.get(path) + if ret == None: + return True + return self.conf.get_bool(path) def set_confirm_forcepoweroff(self, val): @@ -389,6 +396,8 @@ class vmmConfig(object): self.conf.set_bool(self.conf_dir + "/confirm/interface_power", val) def set_confirm_unapplied(self, val): self.conf.set_bool(self.conf_dir + "/confirm/unapplied_dev", val) + def set_confirm_delstorage(self, val): + self.conf.set_bool(self.conf_dir + "/confirm/delete_storage", val) def on_confirm_forcepoweroff_changed(self, cb): return self.conf.notify_add(self.conf_dir + "/confirm/forcepoweroff", cb) @@ -402,6 +411,8 @@ class vmmConfig(object): return self.conf.notify_add(self.conf_dir + "/confirm/interface_power", cb) def on_confirm_unapplied_changed(self, cb): return self.conf.notify_add(self.conf_dir + "/confirm/unapplied_dev", cb) + def on_confirm_delstorage_changed(self, cb): + return self.conf.notify_add(self.conf_dir + "/confirm/delete_storage", cb) # System tray visibility diff --git a/src/virtManager/delete.py b/src/virtManager/delete.py index 9b7d08a5..4b9ff104 100644 --- a/src/virtManager/delete.py +++ b/src/virtManager/delete.py @@ -1,5 +1,5 @@ # -# Copyright (C) 2009 Red Hat, Inc. +# Copyright (C) 2009, 2012 Red Hat, Inc. # Copyright (C) 2009 Cole Robinson <crobinso@redhat.com> # # This program is free software; you can redistribute it and/or modify @@ -96,7 +96,7 @@ class vmmDeleteDialog(vmmGObjectUI): self.widget("delete-cancel").grab_focus() # Disable storage removal by default - self.widget("delete-remove-storage").set_active(False) + self.widget("delete-remove-storage").set_active(True) self.widget("delete-remove-storage").toggled() populate_storage_list(self.widget("delete-storage-list"), @@ -125,6 +125,17 @@ class vmmDeleteDialog(vmmGObjectUI): def finish(self, src_ignore): devs = self.get_paths_to_delete() + if devs: + ret = util.chkbox_helper(self, + self.config.get_confirm_delstorage, + self.config.set_confirm_delstorage, + text1=_("Are you sure you want to delete " + "all the storage?"), + text2=_("This will delete all selected " + "storage data.")) + if not ret: + return + self.topwin.set_sensitive(False) self.topwin.window.set_cursor(gtk.gdk.Cursor(gtk.gdk.WATCH)) diff --git a/src/virtManager/preferences.py b/src/virtManager/preferences.py index 0eaf20bd..c449f509 100644 --- a/src/virtManager/preferences.py +++ b/src/virtManager/preferences.py @@ -1,5 +1,5 @@ # -# Copyright (C) 2006 Red Hat, Inc. +# Copyright (C) 2006, 2012 Red Hat, Inc. # Copyright (C) 2006 Daniel P. Berrange <berrange@redhat.com> # # This program is free software; you can redistribute it and/or modify @@ -49,6 +49,7 @@ class vmmPreferences(vmmGObjectUI): self.add_gconf_handle(self.config.on_confirm_removedev_changed(self.refresh_confirm_removedev)) self.add_gconf_handle(self.config.on_confirm_interface_changed(self.refresh_confirm_interface)) self.add_gconf_handle(self.config.on_confirm_unapplied_changed(self.refresh_confirm_unapplied)) + self.add_gconf_handle(self.config.on_confirm_delstorage_changed(self.refresh_confirm_delstorage)) self.refresh_view_system_tray() self.refresh_update_interval() @@ -68,6 +69,7 @@ class vmmPreferences(vmmGObjectUI): self.refresh_confirm_removedev() self.refresh_confirm_interface() self.refresh_confirm_unapplied() + self.refresh_confirm_delstorage() self.window.connect_signals({ "on_prefs_system_tray_toggled" : self.change_view_system_tray, @@ -88,6 +90,7 @@ class vmmPreferences(vmmGObjectUI): "on_prefs_confirm_removedev_toggled": self.change_confirm_removedev, "on_prefs_confirm_interface_toggled": self.change_confirm_interface, "on_prefs_confirm_unapplied_toggled": self.change_confirm_unapplied, + "on_prefs_confirm_delstorage_toggled": self.change_confirm_delstorage, "on_prefs_btn_keys_define_clicked": self.change_grab_keys, "on_prefs_graphics_type_changed": self.change_graphics_type, "on_prefs_storage_format_changed": self.change_storage_format, @@ -233,6 +236,10 @@ class vmmPreferences(vmmGObjectUI): ignore3=None, ignore4=None): self.widget("prefs-confirm-unapplied").set_active( self.config.get_confirm_unapplied()) + def refresh_confirm_delstorage(self, ignore1=None, ignore2=None, + ignore3=None, ignore4=None): + self.widget("prefs-confirm-delstorage").set_active( + self.config.get_confirm_delstorage()) def grabkeys_get_string(self, events): keystr = "" @@ -324,6 +331,8 @@ class vmmPreferences(vmmGObjectUI): self.config.set_confirm_interface(src.get_active()) def change_confirm_unapplied(self, src): self.config.set_confirm_unapplied(src.get_active()) + def change_confirm_delstorage(self, src): + self.config.set_confirm_delstorage(src.get_active()) def change_graphics_type(self, src): gtype = 'vnc' diff --git a/src/vmm-preferences.ui b/src/vmm-preferences.ui index 6cc39162..dd9b3abf 100644 --- a/src/vmm-preferences.ui +++ b/src/vmm-preferences.ui @@ -935,6 +935,36 @@ <property name="bottom_attach">6</property> </packing> </child> + + <child> + <object class="GtkLabel" id="label66"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="xalign">0</property> + <property name="label" translatable="yes">Deleting storage:</property> + </object> + <packing> + <property name="top_attach">7</property> + <property name="bottom_attach">8</property> + <property name="x_options">GTK_FILL</property> + </packing> + </child> + <child> + <object class="GtkCheckButton" id="prefs-confirm-delstorage"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="use_action_appearance">False</property> + <property name="draw_indicator">True</property> + <signal name="toggled" handler="on_prefs_confirm_delstorage_toggled" swapped="no"/> + </object> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">7</property> + <property name="bottom_attach">8</property> + </packing> + </child> </object> </child> </object> |