[PATCH 7/7] Condense some duplicated and overly wordy code in custom.py.

Chris Lumens clumens at redhat.com
Wed Feb 27 21:18:31 UTC 2013


---
 pyanaconda/ui/gui/spokes/custom.py | 78 +++++++++++++++++++-------------------
 1 file changed, 39 insertions(+), 39 deletions(-)

diff --git a/pyanaconda/ui/gui/spokes/custom.py b/pyanaconda/ui/gui/spokes/custom.py
index def585c..3e19707 100644
--- a/pyanaconda/ui/gui/spokes/custom.py
+++ b/pyanaconda/ui/gui/spokes/custom.py
@@ -834,6 +834,11 @@ class CustomPartitioningSpoke(NormalSpoke, StorageChecker):
             selectorFromDevice(self.__storage.devicetree.getDeviceByID(max_id),
                                selector=selector)
 
+    def _update_device_in_selectors(self, old_device):
+        for s in self._accordion.allSelectors:
+            if s._device == old_device:
+                s._device = device
+
     def _save_right_side(self, selector):
         """ Save settings from RHS and apply changes to the device.
 
@@ -1184,9 +1189,7 @@ class CustomPartitioningSpoke(NormalSpoke, StorageChecker):
                         old_device = device
                         device = device.slave
                         selector._device = device
-                        for s in self._accordion.allSelectors:
-                            if s._device == old_device:
-                                s._device = device
+                        self._update_device_in_selectors(old_device)
                 elif encrypted and not prev_encrypted:
                     log.info("applying encryption to %s" % device.name)
                     with ui_storage_logger():
@@ -1199,9 +1202,7 @@ class CustomPartitioningSpoke(NormalSpoke, StorageChecker):
                         self._devices.append(luks_dev)
                         device = luks_dev
                         selector._device = device
-                        for s in self._accordion.allSelectors:
-                            if s._device == old_device:
-                                s._device = device
+                        self._update_device_in_selectors(old_device)
 
             ##
             ## FORMATTING
@@ -1233,17 +1234,16 @@ class CustomPartitioningSpoke(NormalSpoke, StorageChecker):
                     else:
                         # first, remove this selector from any old install page(s)
                         new_selector = None
-                        for page in self._accordion.allPages:
-                            for _selector in page.members:
-                                if _selector._device in (device, old_device):
-                                    if page.pageTitle == self.translated_new_install_name:
-                                        new_selector = _selector
-                                        continue
-
-                                    page.removeSelector(_selector)
-                                    if not page.members:
-                                        log.debug("removing empty page %s" % page.pageTitle)
-                                        self._accordion.removePage(page.pageTitle)
+                        for (page, _selector) in self._accordion.allMembers:
+                            if _selector._device in (device, old_device):
+                                if page.pageTitle == self.translated_new_install_name:
+                                    new_selector = _selector
+                                    continue
+
+                                page.removeSelector(_selector)
+                                if not page.members:
+                                    log.debug("removing empty page %s" % page.pageTitle)
+                                    self._accordion.removePage(page.pageTitle)
 
                         # either update the existing selector or add a new one
                         if new_selector:
@@ -1816,16 +1816,18 @@ class CustomPartitioningSpoke(NormalSpoke, StorageChecker):
             page = self._current_page
 
         log.debug("show first mountpoint: %s" % page.pageTitle)
-        if page.members:
-            if mountpoint:
-                for member in page.members:
-                    if member.get_property("mountpoint") == mountpoint:
-                        self.on_selector_clicked(member)
-                        break
-            else:
-                self.on_selector_clicked(page.members[0])
-        else:
+        if not page.members:
             self._current_selector = None
+            return
+
+        if not mountpoint:
+            self.on_selector_clicked(page.members[0])
+            return
+
+        for member in page.members:
+            if member.get_property("mountpoint") == mountpoint:
+                self.on_selector_clicked(member)
+                break
 
     def on_remove_clicked(self, button):
         # Nothing displayed on the RHS?  Nothing to remove.
@@ -2024,20 +2026,23 @@ class CustomPartitioningSpoke(NormalSpoke, StorageChecker):
         vg_exists = getattr(vg, "exists", False)    # might not be in the tree
         self.builder.get_object("modifyVGButton").set_sensitive(not vg_exists)
 
+    def _save_current_selector(self):
+        log.debug("current selector: %s" % self._current_selector._device)
+        nb_page = self._partitionsNotebook.get_current_page()
+        log.debug("notebook page = %s" % nb_page)
+        if nb_page == NOTEBOOK_DETAILS_PAGE:
+            self._save_right_side(self._current_selector)
+
+        self._current_selector.set_chosen(False)
+
     def on_selector_clicked(self, selector):
         if not self._initialized:
             return
 
         # Take care of the previously chosen selector.
         if self._current_selector and self._initialized:
-            log.debug("current selector: %s" % self._current_selector._device)
+            self._save_current_selector()
             log.debug("new selector: %s" % selector._device)
-            nb_page = self._partitionsNotebook.get_current_page()
-            log.debug("notebook page = %s" % nb_page)
-            if nb_page == NOTEBOOK_DETAILS_PAGE:
-                self._save_right_side(self._current_selector)
-
-            self._current_selector.set_chosen(False)
 
         no_edit = False
         if selector._device.format.type == "luks" and \
@@ -2102,12 +2107,7 @@ class CustomPartitioningSpoke(NormalSpoke, StorageChecker):
 
         log.debug("page clicked: %s" % page.pageTitle)
         if self._current_selector:
-            nb_page = self._partitionsNotebook.get_current_page()
-            log.debug("notebook page = %s" % nb_page)
-            if nb_page == NOTEBOOK_DETAILS_PAGE:
-                self._save_right_side(self._current_selector)
-
-            self._current_selector.set_chosen(False)
+            self._save_current_selector()
             self._current_selector = None
 
         self._show_mountpoint(page=page, mountpoint=mountpointToShow)
-- 
1.8.1.2



More information about the anaconda-patches mailing list