You've already bought into doing something destructive, so why not have the chance to really tear things up? Also, make the cancel button the default action. --- pyanaconda/ui/gui/spokes/custom.glade | 50 +++++++++++++++++++++++------------ pyanaconda/ui/gui/spokes/custom.py | 17 +++++++++--- 2 files changed, 47 insertions(+), 20 deletions(-)
diff --git a/pyanaconda/ui/gui/spokes/custom.glade b/pyanaconda/ui/gui/spokes/custom.glade index c377e6a..b4ae700 100644 --- a/pyanaconda/ui/gui/spokes/custom.glade +++ b/pyanaconda/ui/gui/spokes/custom.glade @@ -242,6 +242,36 @@ use. Try something else?</property> <property name="can_focus">False</property> <property name="orientation">vertical</property> <property name="spacing">2</property> + <child> + <object class="GtkLabel" id="confirmLabel"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="xalign">0</property> + <property name="yalign">0</property> + <property name="label" translatable="yes">Are you sure you want to delete all of the data on %s?</property> + <property name="wrap">True</property> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkCheckButton" id="removeAllCheckbox"> + <property name="label" translatable="yes">Delete all other filesystems in the %s root as well.</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="xalign">0</property> + <property name="draw_indicator">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> <child internal-child="action_area"> <object class="GtkButtonBox" id="dialog-action_area2"> <property name="can_focus">False</property> @@ -249,11 +279,11 @@ use. Try something else?</property> <child> <object class="GtkButton" id="deleteCancelButton"> <property name="label" translatable="yes">_Cancel</property> - <property name="use_action_appearance">False</property> <property name="visible">True</property> <property name="can_focus">True</property> + <property name="can_default">True</property> + <property name="has_default">True</property> <property name="receives_default">True</property> - <property name="use_action_appearance">False</property> <property name="use_underline">True</property> <signal name="clicked" handler="on_delete_cancel_clicked" swapped="no"/> </object> @@ -285,21 +315,7 @@ use. Try something else?</property> <property name="expand">False</property> <property name="fill">True</property> <property name="pack_type">end</property> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkLabel" id="confirmLabel"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="label" translatable="yes">Are you sure you want to delete -all of the data on %s?</property> - <property name="wrap">True</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">1</property> + <property name="position">2</property> </packing> </child> </object> diff --git a/pyanaconda/ui/gui/spokes/custom.py b/pyanaconda/ui/gui/spokes/custom.py index 3150f6d..8b780a3 100644 --- a/pyanaconda/ui/gui/spokes/custom.py +++ b/pyanaconda/ui/gui/spokes/custom.py @@ -248,16 +248,23 @@ class ConfirmDeleteDialog(GUIObject): mainWidgetName = "confirmDeleteDialog" uiFile = "spokes/custom.glade"
+ @property + def deleteAll(self): + return self._removeAll.get_active() + def on_delete_cancel_clicked(self, button, *args): self.window.destroy()
def on_delete_confirm_clicked(self, button, *args): self.window.destroy()
- def refresh(self, mountpoint, device): + def refresh(self, mountpoint, device, rootName): GUIObject.refresh(self) label = self.builder.get_object("confirmLabel")
+ self._removeAll = self.builder.get_object("removeAllCheckbox") + self._removeAll.set_label(self._removeAll.get_label() % rootName) + if mountpoint: txt = "%s (%s)" % (mountpoint, device) else: @@ -1709,13 +1716,17 @@ class CustomPartitioningSpoke(NormalSpoke, StorageChecker): dialog = ConfirmDeleteDialog(self.data) with enlightbox(self.window, dialog.window): dialog.refresh(getattr(device.format, "mountpoint", ""), - device.name) + device.name, selector._root.name) rc = dialog.run()
if rc == 0: return
- self._destroy_device(device) + if dialog.deleteAll: + for dev in selector._root.swaps + selector._root.mounts.values(): + self._destroy_device(dev) + else: + self._destroy_device(device)
log.info("ui: removed device %s" % device.name)
anaconda-patches@lists.fedorahosted.org