[rhel7/master/f21 v2] custom: Clearing errors should also clear Done clicked state (#1158609)

Brian C. Lane bcl at redhat.com
Fri Oct 31 16:15:00 UTC 2014


When there is an error we tell the user to click done again to exit. If
they do anything else the state needs to be cleared. We already call
clear_errors from all these places in order to reset the error bar, so
add clearing of the done clicked state.

Since do_check also clears errors, set the state to True *after* an
error has been found.

Resolves: rhbz#1158609

NOTE: Previous version broke double done click because save_right_side calls clear_errors
---
 pyanaconda/ui/gui/spokes/custom.py | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/pyanaconda/ui/gui/spokes/custom.py b/pyanaconda/ui/gui/spokes/custom.py
index 9daf9d1..1985c91 100644
--- a/pyanaconda/ui/gui/spokes/custom.py
+++ b/pyanaconda/ui/gui/spokes/custom.py
@@ -2176,6 +2176,8 @@ class CustomPartitioningSpoke(NormalSpoke, StorageChecker):
         return bool(self._error == "")
 
     def on_back_clicked(self, button):
+        # Preserve back_clicked across save_right_side since it calls clear_errors
+        back_already_clicked = self._back_already_clicked
         # First, save anything from the currently displayed mountpoint.
         self._save_right_side(self._current_selector)
 
@@ -2187,8 +2189,7 @@ class CustomPartitioningSpoke(NormalSpoke, StorageChecker):
 
         # If back has been clicked on once already and no other changes made on the screen,
         # run the storage check now.  This handles displaying any errors in the info bar.
-        if not self._back_already_clicked:
-            self._back_already_clicked = True
+        if not back_already_clicked:
 
             new_luks = [d for d in self.__storage.devices
                        if d.format.type == "luks" and not d.format.exists]
@@ -2208,6 +2209,7 @@ class CustomPartitioningSpoke(NormalSpoke, StorageChecker):
                     luks.format.passphrase = self.passphrase
 
             if not self._do_check():
+                self._back_already_clicked = True
                 return
 
         if len(self.__storage.devicetree.findActions()) > 0:
@@ -3109,6 +3111,7 @@ class CustomPartitioningSpoke(NormalSpoke, StorageChecker):
     def clear_errors(self):
         self._error = None
         self.clear_info()
+        self._back_already_clicked = False
 
     # This callback is for the button that just resets the UI to anaconda's
     # current understanding of the disk layout.
-- 
1.9.3



More information about the anaconda-patches mailing list