[PATCH 2/8] Use named IDs for the filter type combo boxes.

David Shea dshea at redhat.com
Thu Jun 4 19:57:38 UTC 2015


This makes the combo box usage not dependent on the combo box order and
makes it all look a little less mysterious.

(cherry picked from commit 7b76435d3381560ee48e7e5b5a59f31ce17e65a8)

Related: rhbz#1168950
---
 pyanaconda/ui/gui/spokes/filter.glade | 30 +++++++--------
 pyanaconda/ui/gui/spokes/filter.py    | 69 +++++++++++++++++++++++------------
 2 files changed, 61 insertions(+), 38 deletions(-)

diff --git a/pyanaconda/ui/gui/spokes/filter.glade b/pyanaconda/ui/gui/spokes/filter.glade
index 7d0ba19..b6144fc 100644
--- a/pyanaconda/ui/gui/spokes/filter.glade
+++ b/pyanaconda/ui/gui/spokes/filter.glade
@@ -157,9 +157,9 @@
                                     <property name="visible">True</property>
                                     <property name="can_focus">False</property>
                                     <items>
-                                      <item translatable="yes">None</item>
-                                      <item translatable="yes">Port / Target / LUN #</item>
-                                      <item translatable="yes">Target WWID</item>
+                                      <item id="None" translatable="yes">None</item>
+                                      <item id="PTL" translatable="yes">Port / Target / LUN #</item>
+                                      <item id="WWID" translatable="yes">Target WWID</item>
                                     </items>
                                     <signal name="changed" handler="on_search_type_changed" swapped="no"/>
                                   </object>
@@ -568,10 +568,10 @@
                                     <property name="visible">True</property>
                                     <property name="can_focus">False</property>
                                     <items>
-                                      <item translatable="yes">None</item>
-                                      <item translatable="yes">Vendor</item>
-                                      <item translatable="yes">Interconnect</item>
-                                      <item translatable="yes">WWID</item>
+                                      <item id="None" translatable="yes">None</item>
+                                      <item id="Vendor" translatable="yes">Vendor</item>
+                                      <item id="Interconnect" translatable="yes">Interconnect</item>
+                                      <item id="WWID" translatable="yes">WWID</item>
                                     </items>
                                     <signal name="changed" handler="on_multipath_type_changed" swapped="no"/>
                                   </object>
@@ -903,10 +903,10 @@
                                     <property name="visible">True</property>
                                     <property name="can_focus">False</property>
                                     <items>
-                                      <item translatable="yes">None</item>
-                                      <item translatable="yes">Vendor</item>
-                                      <item translatable="yes">Interconnect</item>
-                                      <item translatable="yes">ID</item>
+                                      <item id="None" translatable="yes">None</item>
+                                      <item id="Vendor" translatable="yes">Vendor</item>
+                                      <item id="Interconnect" translatable="yes">Interconnect</item>
+                                      <item id="ID" translatable="yes">ID</item>
                                     </items>
                                     <signal name="changed" handler="on_other_type_combo_changed" swapped="no"/>
                                   </object>
@@ -1521,10 +1521,10 @@
                                     <property name="visible">True</property>
                                     <property name="can_focus">False</property>
                                     <items>
-                                      <item translatable="yes">None</item>
-                                      <item translatable="yes">CCW</item>
-                                      <item translatable="yes">WWPN</item>
-                                      <item translatable="yes">LUN</item>
+                                      <item id="None" translatable="yes">None</item>
+                                      <item id="CCW" translatable="yes">CCW</item>
+                                      <item id="WWPN" translatable="yes">WWPN</item>
+                                      <item id="LUN" translatable="yes">LUN</item>
                                     </items>
                                     <signal name="changed" handler="on_z_type_combo_changed" swapped="no"/>
                                   </object>
diff --git a/pyanaconda/ui/gui/spokes/filter.py b/pyanaconda/ui/gui/spokes/filter.py
index ffca3c0..a1604bb 100644
--- a/pyanaconda/ui/gui/spokes/filter.py
+++ b/pyanaconda/ui/gui/spokes/filter.py
@@ -149,6 +149,11 @@ class FilterPage(object):
         return disk.name
 
 class SearchPage(FilterPage):
+    # Match these to searchTypeCombo ids in glade
+    SEARCH_TYPE_NONE = 'None'
+    SEARCH_TYPE_PORT_TARGET_LUN = 'PTL'
+    SEARCH_TYPE_WWID = 'WWID'
+
     def __init__(self, storage, builder):
         FilterPage.__init__(self, storage, builder)
         self.model = self.builder.get_object("searchModel")
@@ -162,7 +167,7 @@ class SearchPage(FilterPage):
         self._targetEntry = self.builder.get_object("searchTargetEntry")
 
     def setup(self, store, selectedNames, disks):
-        self._combo.set_active(0)
+        self._combo.set_active_id(self.SEARCH_TYPE_NONE)
         self._combo.emit("changed")
 
         ports = []
@@ -208,13 +213,13 @@ class SearchPage(FilterPage):
         if not self.filterActive:
             return True
 
-        filterBy = self._combo.get_active()
+        filterBy = self._combo.get_active_id()
 
-        if filterBy == 0:
+        if filterBy == self.SEARCH_TYPE_NONE:
             return True
-        elif filterBy == 1:
+        elif filterBy == self.SEARCH_TYPE_PORT_TARGET_LUN:
             return self._port_equal(device) and self._target_equal(device) and self._lun_equal(device)
-        elif filterBy == 2:
+        elif filterBy == self.SEARCH_TYPE_WWID:
             return self._wwidEntry.get_text() in getattr(device, "wwid", self._long_identifier(device))
 
     def visible_func(self, model, itr, *args):
@@ -223,6 +228,12 @@ class SearchPage(FilterPage):
         return self._filter_func(device)
 
 class MultipathPage(FilterPage):
+    # Match these to multipathTypeCombo ids in glade
+    SEARCH_TYPE_NONE = 'None'
+    SEARCH_TYPE_VENDOR = 'Vendor'
+    SEARCH_TYPE_INTERCONNECT = 'Interconnect'
+    SEARCH_TYPE_WWID = 'WWID'
+
     def __init__(self, storage, builder):
         FilterPage.__init__(self, storage, builder)
         self.model = self.builder.get_object("multipathModel")
@@ -255,7 +266,7 @@ class MultipathPage(FilterPage):
             if not disk.bus in interconnects:
                 interconnects.append(disk.bus)
 
-        self._combo.set_active(0)
+        self._combo.set_active_id(self.SEARCH_TYPE_NONE)
         self._combo.emit("changed")
 
         self.setupCombo(self._vendorCombo, vendors)
@@ -270,15 +281,15 @@ class MultipathPage(FilterPage):
         if not self.filterActive:
             return True
 
-        filterBy = self._combo.get_active()
+        filterBy = self._combo.get_active_id()
 
-        if filterBy == 0:
+        if filterBy == self.SEARCH_TYPE_NONE:
             return True
-        elif filterBy == 1:
+        elif filterBy == self.SEARCH_TYPE_VENDOR:
             return device.vendor == self._vendorCombo.get_active_text()
-        elif filterBy == 2:
+        elif filterBy == self.SEARCH_TYPE_INTERCONNECT:
             return device.bus == self._icCombo.get_active_text()
-        elif filterBy == 3:
+        elif filterBy == self.SEARCH_TYPE_WWID:
             return self._wwidEntry.get_text() in device.wwid
 
     def visible_func(self, model, itr, *args):
@@ -290,6 +301,12 @@ class MultipathPage(FilterPage):
         return self.ismember(device) and self._filter_func(device)
 
 class OtherPage(FilterPage):
+    # Match these to otherTypeCombo ids in glade
+    SEARCH_TYPE_NONE = 'None'
+    SEARCH_TYPE_VENDOR = 'Vendor'
+    SEARCH_TYPE_INTERCONNECT = 'Interconnect'
+    SEARCH_TYPE_ID = 'ID'
+
     def __init__(self, storage, builder):
         FilterPage.__init__(self, storage, builder)
         self.model = self.builder.get_object("otherModel")
@@ -330,7 +347,7 @@ class OtherPage(FilterPage):
             if not disk.bus in interconnects:
                 interconnects.append(disk.bus)
 
-        self._combo.set_active(0)
+        self._combo.set_active_id(self.SEARCH_TYPE_NONE)
         self._combo.emit("changed")
 
         self.setupCombo(self._vendorCombo, vendors)
@@ -345,15 +362,15 @@ class OtherPage(FilterPage):
         if not self.filterActive:
             return True
 
-        filterBy = self._combo.get_active()
+        filterBy = self._combo.get_active_id()
 
-        if filterBy == 0:
+        if filterBy == self.SEARCH_TYPE_NONE:
             return True
-        elif filterBy == 1:
+        elif filterBy == self.SEARCH_TYPE_VENDOR:
             return device.vendor == self._vendorCombo.get_active_text()
-        elif filterBy == 2:
+        elif filterBy == self.SEARCH_TYPE_INTERCONNECT:
             return device.bus == self._icCombo.get_active_text()
-        elif filterBy == 3:
+        elif filterBy == self.SEARCH_TYPE_ID:
             for link in device.deviceLinks:
                 if "by-path" in link:
                     return self._idEntry.get_text().strip() in link
@@ -366,6 +383,12 @@ class OtherPage(FilterPage):
         return self.ismember(device) and self._filter_func(device)
 
 class ZPage(FilterPage):
+    # Match these to zTypeCombo ids in glade
+    SEARCH_TYPE_NONE = 'None'
+    SEARCH_TYPE_CCW = 'CCW'
+    SEARCH_TYPE_WWPN = 'WWPN'
+    SEARCH_TYPE_LUN = 'LUN'
+
     def __init__(self, storage, builder):
         FilterPage.__init__(self, storage, builder)
         self.model = self.builder.get_object("zModel")
@@ -395,7 +418,7 @@ class ZPage(FilterPage):
             wwpns = []
             luns = []
 
-            self._combo.set_active(0)
+            self._combo.set_active_id(self.SEARCH_TYPE_NONE)
             self._combo.emit("changed")
 
             for disk in disks:
@@ -422,15 +445,15 @@ class ZPage(FilterPage):
         if not self.filterActive:
             return True
 
-        filterBy = self._combo.get_active()
+        filterBy = self._combo.get_active_id()
 
-        if filterBy == 0:
+        if filterBy == self.SEARCH_TYPE_NONE:
             return True
-        elif filterBy == 1:
+        elif filterBy == self.SEARCH_TYPE_CCW:
             return self._ccwEntry.get_text() in device.hba_id
-        elif filterBy == 2:
+        elif filterBy == self.SEARCH_TYPE_WWPN:
             return self._wwpnEntry.get_text() in device.wwpn
-        elif filterBy == 3:
+        elif filterBy == self.SEARCH_TYPE_LUN:
             return self._lunEntry.get_text() in device.fcp_lun
 
         return False
-- 
2.1.0



More information about the anaconda-patches mailing list