From: David Shea dshea@redhat.com
This makes the combo box usage not dependent on the combo box order and makes it all look a little less mysterious. --- 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 73a7ff4..0d72766 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> @@ -566,10 +566,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> @@ -900,10 +900,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> @@ -1515,10 +1515,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 c31ce3e..26cbbae 100644 --- a/pyanaconda/ui/gui/spokes/filter.py +++ b/pyanaconda/ui/gui/spokes/filter.py @@ -148,6 +148,11 @@ def _long_identifier(self, disk): 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") @@ -161,7 +166,7 @@ def __init__(self, storage, builder): 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 = [] @@ -207,13 +212,13 @@ def _filter_func(self, device): 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): @@ -222,6 +227,12 @@ def visible_func(self, model, itr, *args): 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") @@ -254,7 +265,7 @@ def setup(self, store, selectedNames, disks): 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) @@ -269,15 +280,15 @@ def _filter_func(self, device): 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): @@ -289,6 +300,12 @@ def visible_func(self, model, itr, *args): 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") @@ -329,7 +346,7 @@ def setup(self, store, selectedNames, disks): 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) @@ -344,15 +361,15 @@ def _filter_func(self, device): 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 @@ -365,6 +382,12 @@ def visible_func(self, model, itr, *args): 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") @@ -394,7 +417,7 @@ def setup(self, store, selectedNames, disks): wwpns = [] luns = []
- self._combo.set_active(0) + self._combo.set_active_id(self.SEARCH_TYPE_NONE) self._combo.emit("changed")
for disk in disks: @@ -421,15 +444,15 @@ def _filter_func(self, device): 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