[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