I'd also like to port at least the first 6 to rhel7-branch
From: David Shea dshea@redhat.com
This alphabetizes the properties, removes some properties that are equal to the default value, adds some empty placeholders, and adds the internal selection child for a tree view. --- pyanaconda/ui/gui/spokes/filter.glade | 41 ++++++++++++++++++++--------------- 1 file changed, 23 insertions(+), 18 deletions(-)
diff --git a/pyanaconda/ui/gui/spokes/filter.glade b/pyanaconda/ui/gui/spokes/filter.glade index 3e94e46..73a7ff4 100644 --- a/pyanaconda/ui/gui/spokes/filter.glade +++ b/pyanaconda/ui/gui/spokes/filter.glade @@ -129,8 +129,8 @@ <object class="GtkLabel" id="label6"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="xalign">0</property> <property name="label" translatable="yes">Search Results:</property> + <property name="xalign">0</property> </object> <packing> <property name="left_attach">0</property> @@ -142,10 +142,10 @@ <object class="GtkLabel" id="label1"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="xalign">0</property> <property name="label" translatable="yes" context="GUI|Installation Destination|Filter|Search">Search _By:</property> <property name="use_underline">True</property> <property name="mnemonic_widget">searchTypeCombo</property> + <property name="xalign">0</property> </object> <packing> <property name="left_attach">0</property> @@ -304,9 +304,9 @@ <object class="GtkEntry" id="searchWWIDEntry"> <property name="visible">True</property> <property name="can_focus">True</property> + <property name="width_chars">30</property> <property name="secondary_icon_name">edit-clear-symbolic</property> <signal name="icon-release" handler="on_clear_icon_clicked" swapped="no"/> - <property name="width_chars">30</property> </object> <packing> <property name="expand">False</property> @@ -508,6 +508,9 @@ <property name="top_attach">0</property> </packing> </child> + <child> + <placeholder/> + </child> </object> </child> </object> @@ -548,10 +551,10 @@ <object class="GtkLabel" id="label2"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="xalign">0</property> <property name="label" translatable="yes" context="GUI|Installation Destination|Filter|Multipath">Filter _By:</property> <property name="use_underline">True</property> <property name="mnemonic_widget">multipathTypeCombo</property> + <property name="xalign">0</property> </object> <packing> <property name="left_attach">0</property> @@ -692,9 +695,9 @@ <object class="GtkEntry" id="multipathWWIDEntry"> <property name="visible">True</property> <property name="can_focus">True</property> + <property name="width_chars">30</property> <property name="secondary_icon_name">edit-clear-symbolic</property> <signal name="icon-release" handler="on_clear_icon_clicked" swapped="no"/> - <property name="width_chars">30</property> </object> <packing> <property name="expand">False</property> @@ -835,6 +838,9 @@ <property name="top_attach">0</property> </packing> </child> + <child> + <placeholder/> + </child> </object> </child> </object> @@ -879,10 +885,10 @@ <object class="GtkLabel" id="label3"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="xalign">0</property> <property name="label" translatable="yes" context="GUI|Installation Destination|Filter|Other">Filter _By:</property> <property name="use_underline">True</property> <property name="mnemonic_widget">multipathTypeCombo</property> + <property name="xalign">0</property> </object> <packing> <property name="left_attach">0</property> @@ -997,7 +1003,6 @@ <property name="left_attach">0</property> <property name="top_attach">1</property> <property name="width">5</property> - <property name="height">1</property> </packing> </child> <child> @@ -1013,7 +1018,6 @@ <property name="left_attach">3</property> <property name="top_attach">0</property> <property name="width">2</property> - <property name="height">1</property> </packing> </child> <child> @@ -1133,9 +1137,9 @@ <object class="GtkEntry" id="otherIDEntry"> <property name="visible">True</property> <property name="can_focus">True</property> + <property name="width_chars">30</property> <property name="secondary_icon_name">edit-clear-symbolic</property> <signal name="icon-release" handler="on_clear_icon_clicked" swapped="no"/> - <property name="width_chars">30</property> </object> <packing> <property name="expand">False</property> @@ -1201,9 +1205,9 @@ <object class="GtkLabel" id="label10"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="xalign">0</property> <property name="label" translatable="yes" context="GUI|Installation Destination|Filter|zSeries">Filter B_y:</property> <property name="use_underline">True</property> + <property name="xalign">0</property> </object> <packing> <property name="left_attach">0</property> @@ -1234,6 +1238,9 @@ <property name="rules_hint">True</property> <property name="enable_search">False</property> <property name="enable_tree_lines">True</property> + <child internal-child="selection"> + <object class="GtkTreeSelection" id="treeview-selection4"/> + </child> <child> <object class="GtkTreeViewColumn" id="zSelectedCol"> <child> @@ -1393,9 +1400,9 @@ <object class="GtkEntry" id="zCCWEntry"> <property name="visible">True</property> <property name="can_focus">True</property> + <property name="width_chars">30</property> <property name="secondary_icon_name">edit-clear-symbolic</property> <signal name="icon-release" handler="on_clear_icon_clicked" swapped="no"/> - <property name="width_chars">30</property> </object> <packing> <property name="expand">False</property> @@ -1440,9 +1447,9 @@ <object class="GtkEntry" id="zWWPNEntry"> <property name="visible">True</property> <property name="can_focus">True</property> + <property name="width_chars">30</property> <property name="secondary_icon_name">edit-clear-symbolic</property> <signal name="icon-release" handler="on_clear_icon_clicked" swapped="no"/> - <property name="width_chars">30</property> </object> <packing> <property name="expand">False</property> @@ -1482,9 +1489,9 @@ <object class="GtkEntry" id="zLUNEntry"> <property name="visible">True</property> <property name="can_focus">True</property> + <property name="width_chars">30</property> <property name="secondary_icon_name">edit-clear-symbolic</property> <signal name="icon-release" handler="on_clear_icon_clicked" swapped="no"/> - <property name="width_chars">30</property> </object> <packing> <property name="expand">False</property> @@ -1501,15 +1508,12 @@ <packing> <property name="left_attach">2</property> <property name="top_attach">0</property> - <property name="width">1</property> </packing> </child> <child> <object class="GtkComboBoxText" id="zTypeCombo"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="entry_text_column">0</property> - <property name="id_column">1</property> <items> <item translatable="yes">None</item> <item translatable="yes">CCW</item> @@ -1521,10 +1525,11 @@ <packing> <property name="left_attach">1</property> <property name="top_attach">0</property> - <property name="width">1</property> - <property name="height">1</property> </packing> </child> + <child> + <placeholder/> + </child> </object> </child> </object>
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
From: David Shea dshea@redhat.com
--- pyanaconda/ui/gui/spokes/filter.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pyanaconda/ui/gui/spokes/filter.py b/pyanaconda/ui/gui/spokes/filter.py index 26cbbae..83d3499 100644 --- a/pyanaconda/ui/gui/spokes/filter.py +++ b/pyanaconda/ui/gui/spokes/filter.py @@ -129,7 +129,7 @@ def setupCombo(self, combo, items): repeatedly. The first item in the list will be selected by default. """ combo.remove_all() - for i in sorted(items): + for i in sorted(set(items)): combo.append_text(i)
if items:
From: David Shea dshea@redhat.com
Search by Port / Target / LUN was usually returning an empty list since the port test was failing to compare a string to an int. Beyond that, do not return entries with no port when a port is selected, and do not return iscsi entries when a non-integer LUN is entered.
Add an empty entry to all of the filter combo boxes so that the combo box criterion can be cleared.
Replace a builder.get_object call with the already gotten object reference. --- pyanaconda/ui/gui/spokes/filter.py | 32 ++++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-)
diff --git a/pyanaconda/ui/gui/spokes/filter.py b/pyanaconda/ui/gui/spokes/filter.py index 83d3499..d3069a8 100644 --- a/pyanaconda/ui/gui/spokes/filter.py +++ b/pyanaconda/ui/gui/spokes/filter.py @@ -126,14 +126,18 @@ def visible_func(self, model, itr, *args): def setupCombo(self, combo, items): """Populate a given GtkComboBoxText instance with a list of items. The combo will first be cleared, so this method is suitable for calling - repeatedly. The first item in the list will be selected by default. + repeatedly. The first item in the list will be empty to allow the + combo box criterion to be cleared. The first non-empty item in the + list will be selected by default. """ combo.remove_all() + combo.append_text('') + for i in sorted(set(items)): combo.append_text(i)
if items: - combo.set_active(0) + combo.set_active(1)
def _long_identifier(self, disk): # For iSCSI devices, we want the long ip-address:port-iscsi-tgtname-lun-XX @@ -174,7 +178,7 @@ def setup(self, store, selectedNames, disks): if hasattr(disk, "node"): ports.append(str(disk.node.port))
- self.setupCombo(self.builder.get_object("searchPortCombo"), ports) + self.setupCombo(self._portCombo, ports)
def clear(self): self._lunEntry.set_text("") @@ -184,8 +188,11 @@ def clear(self):
def _port_equal(self, device): active = self._portCombo.get_active_text() - if active and hasattr(device, "node"): - return device.node.port == active + if active: + if hasattr(device, "node"): + return device.node.port == int(active) + else: + return False else: return True
@@ -198,13 +205,14 @@ def _target_equal(self, device):
def _lun_equal(self, device): active = self._lunEntry.get_text().strip() - if active and hasattr(device, "node"): - try: - return int(active) == device.node.tpgt - except ValueError: - return True - elif active and hasattr(device, "fcp_lun"): - return active in device.fcp_lun + if active: + if hasattr(device, "node"): + try: + return int(active) == device.node.tpgt + except ValueError: + return False + elif hasattr(device, "fcp_lun"): + return active in device.fcp_lun else: return True
In reply to line 193 of pyanaconda/ui/gui/spokes/filter.py:
This is going to traceback when someone types non-numbers into the field.
In reply to line 211 of pyanaconda/ui/gui/spokes/filter.py:
same problem here.
In reply to line 193 of pyanaconda/ui/gui/spokes/filter.py:
Good thing we don't let people type in that field, then
In reply to line 211 of pyanaconda/ui/gui/spokes/filter.py:
This one's in a try/except though
In reply to line 193 of pyanaconda/ui/gui/spokes/filter.py:
ah! good then.
From: David Shea dshea@redhat.com
Set no_show_all=True, can_focus=False, and show_border=False for each of the search type notebooks. Set headers_clickable=False on the otherTreeView.
Replace the stock gtk-find button on the other tab with a regularly labelled button. Add a translation context to the refresh button.
Set a spacing of 5 in one of the boxes to 6.
Fix the mnemonic_widget for the multipath filter label. Add a mnemonic_widget to the zFCP filter label.
Remove an extra er from otherIDRenderer. --- pyanaconda/ui/gui/spokes/filter.glade | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-)
diff --git a/pyanaconda/ui/gui/spokes/filter.glade b/pyanaconda/ui/gui/spokes/filter.glade index 0d72766..a205408 100644 --- a/pyanaconda/ui/gui/spokes/filter.glade +++ b/pyanaconda/ui/gui/spokes/filter.glade @@ -171,7 +171,8 @@ <child> <object class="GtkNotebook" id="searchTypeNotebook"> <property name="visible">True</property> - <property name="can_focus">True</property> + <property name="can_focus">False</property> + <property name="no_show_all">True</property> <property name="hexpand">True</property> <property name="show_tabs">False</property> <property name="show_border">False</property> @@ -285,7 +286,7 @@ <property name="visible">True</property> <property name="can_focus">False</property> <property name="hexpand">True</property> - <property name="spacing">5</property> + <property name="spacing">6</property> <child> <object class="GtkLabel" id="label18"> <property name="visible">True</property> @@ -581,7 +582,7 @@ <child> <object class="GtkNotebook" id="multipathTypeNotebook"> <property name="visible">True</property> - <property name="can_focus">True</property> + <property name="can_focus">False</property> <property name="no_show_all">True</property> <property name="hexpand">True</property> <property name="show_tabs">False</property> @@ -887,7 +888,7 @@ <property name="can_focus">False</property> <property name="label" translatable="yes" context="GUI|Installation Destination|Filter|Other">Filter _By:</property> <property name="use_underline">True</property> - <property name="mnemonic_widget">multipathTypeCombo</property> + <property name="mnemonic_widget">otherTypeCombo</property> <property name="xalign">0</property> </object> <packing> @@ -919,10 +920,8 @@ <property name="hexpand">True</property> <property name="vexpand">True</property> <property name="model">otherModel</property> - <property name="headers_clickable">False</property> <property name="rules_hint">True</property> <property name="enable_search">False</property> - <property name="search_column">0</property> <property name="enable_tree_lines">True</property> <child internal-child="selection"> <object class="GtkTreeSelection" id="treeview-selection3"/> @@ -946,7 +945,7 @@ <property name="title" translatable="yes">Identifier</property> <property name="clickable">True</property> <child> - <object class="GtkCellRendererText" id="otherIDRendererer"/> + <object class="GtkCellRendererText" id="otherIDRenderer"/> <attributes> <attribute name="sensitive">2</attribute> <attribute name="visible">0</attribute> @@ -1007,11 +1006,11 @@ </child> <child> <object class="GtkButton" id="otherFindButton"> - <property name="label">gtk-find</property> + <property name="label" context="GUI|Installation Destination|Filter|Other">_Find</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">True</property> - <property name="use_stock">True</property> + <property name="use_underline">True</property> <signal name="clicked" handler="on_find_clicked" swapped="no"/> </object> <packing> @@ -1207,6 +1206,7 @@ <property name="can_focus">False</property> <property name="label" translatable="yes" context="GUI|Installation Destination|Filter|zSeries">Filter B_y:</property> <property name="use_underline">True</property> + <property name="mnemonic_widget">zTypeCombo</property> <property name="xalign">0</property> </object> <packing> @@ -1367,6 +1367,7 @@ <property name="no_show_all">True</property> <property name="hexpand">True</property> <property name="show_tabs">False</property> + <property name="show_border">False</property> <child> <object class="GtkLabel" id="label19"> <property name="visible">True</property> @@ -1626,7 +1627,7 @@ </child> <child> <object class="GtkButton" id="refresh"> - <property name="label" translatable="yes">Refresh _List</property> + <property name="label" translatable="yes" context="GUI|Installation Destination|Filter">Refresh _List</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">True</property>
From: David Shea dshea@redhat.com
Two of the vendor columns had the diskMutable column set to yalign, which was probably doing something pretty weird. --- pyanaconda/ui/gui/spokes/filter.glade | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/pyanaconda/ui/gui/spokes/filter.glade b/pyanaconda/ui/gui/spokes/filter.glade index a205408..616b3c2 100644 --- a/pyanaconda/ui/gui/spokes/filter.glade +++ b/pyanaconda/ui/gui/spokes/filter.glade @@ -782,8 +782,7 @@ <child> <object class="GtkCellRendererText" id="multipathVendorRenderer"/> <attributes> - <attribute name="yalign">2</attribute> - <attribute name="sensitive">1</attribute> + <attribute name="sensitive">2</attribute> <attribute name="visible">0</attribute> <attribute name="text">7</attribute> </attributes> @@ -975,8 +974,7 @@ <child> <object class="GtkCellRendererText" id="otherVendorRenderer"/> <attributes> - <attribute name="yalign">2</attribute> - <attribute name="sensitive">1</attribute> + <attribute name="sensitive">2</attribute> <attribute name="visible">0</attribute> <attribute name="text">7</attribute> </attributes>
From: David Shea dshea@redhat.com
Move the scrolled window on each filter page to be a parent of the TreeView instead of the parent of the whole page. This way the placement of the search widgets does not depend on the width of the tree view, and the TreeView can handle scrolling better without the intermediate viewport. Replace the grid on each page with nested boxes so that the various expansion rules make more sense. --- pyanaconda/ui/gui/spokes/filter.glade | 2212 +++++++++++++++++---------------- pyanaconda/ui/gui/spokes/filter.py | 21 - 2 files changed, 1125 insertions(+), 1108 deletions(-)
diff --git a/pyanaconda/ui/gui/spokes/filter.glade b/pyanaconda/ui/gui/spokes/filter.glade index 616b3c2..af365ab 100644 --- a/pyanaconda/ui/gui/spokes/filter.glade +++ b/pyanaconda/ui/gui/spokes/filter.glade @@ -72,6 +72,8 @@ <property name="can_focus">False</property> <property name="margin_left">6</property> <property name="margin_right">6</property> + <property name="margin_start">18</property> + <property name="margin_end">18</property> <property name="margin_top">6</property> </object> </child> @@ -107,414 +109,416 @@ <property name="vexpand">True</property> <signal name="switch-page" handler="on_page_switched" swapped="no"/> <child> - <object class="GtkScrolledWindow" id="searchScrolledWindow"> + <object class="GtkBox" id="searchBox"> <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="shadow_type">in</property> + <property name="can_focus">False</property> + <property name="margin_left">6</property> + <property name="margin_right">6</property> + <property name="margin_top">12</property> + <property name="orientation">vertical</property> + <property name="spacing">6</property> <child> - <object class="GtkViewport" id="searchScrolledViewport"> + <object class="GtkBox" id="searchParameterBox"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="shadow_type">none</property> + <property name="spacing">6</property> <child> - <object class="GtkGrid" id="searchGrid"> + <object class="GtkLabel" id="searchByLabel"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="margin_left">6</property> - <property name="margin_right">6</property> - <property name="margin_top">12</property> - <property name="row_spacing">6</property> - <property name="column_spacing">6</property> - <child> - <object class="GtkLabel" id="label6"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="label" translatable="yes">Search Results:</property> - <property name="xalign">0</property> - </object> - <packing> - <property name="left_attach">0</property> - <property name="top_attach">1</property> - <property name="width">5</property> - </packing> - </child> + <property name="label" translatable="yes" context="GUI|Installation Destination|Filter|Search">Search _By:</property> + <property name="use_underline">True</property> + <property name="mnemonic_widget">searchTypeCombo</property> + <property name="xalign">0</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkComboBoxText" id="searchTypeCombo"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <items> + <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> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkNotebook" id="searchTypeNotebook"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="no_show_all">True</property> + <property name="hexpand">True</property> + <property name="show_tabs">False</property> + <property name="show_border">False</property> <child> - <object class="GtkLabel" id="label1"> + <object class="GtkLabel" id="searchNoneLabel"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="label" translatable="yes" context="GUI|Installation Destination|Filter|Search">Search _By:</property> - <property name="use_underline">True</property> - <property name="mnemonic_widget">searchTypeCombo</property> - <property name="xalign">0</property> + <property name="hexpand">True</property> </object> - <packing> - <property name="left_attach">0</property> - <property name="top_attach">0</property> - </packing> </child> - <child> - <object class="GtkComboBoxText" id="searchTypeCombo"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <items> - <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> - <packing> - <property name="left_attach">1</property> - <property name="top_attach">0</property> - </packing> + <child type="tab"> + <placeholder/> </child> <child> - <object class="GtkNotebook" id="searchTypeNotebook"> + <object class="GtkBox" id="searchPTLBox"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="no_show_all">True</property> <property name="hexpand">True</property> - <property name="show_tabs">False</property> - <property name="show_border">False</property> + <property name="spacing">6</property> <child> - <object class="GtkLabel" id="label11"> + <object class="GtkLabel" id="searchPortLabel"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="hexpand">True</property> + <property name="label" translatable="yes" context="GUI|Installation Destination|Filter|Search|Port Target LUN">_Port:</property> + <property name="use_underline">True</property> + <property name="mnemonic_widget">searchPortCombo</property> </object> - </child> - <child type="tab"> - <placeholder/> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> </child> <child> - <object class="GtkBox" id="searchPTLBox"> + <object class="GtkComboBoxText" id="searchPortCombo"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="no_show_all">True</property> - <property name="hexpand">True</property> - <property name="spacing">6</property> - <child> - <object class="GtkLabel" id="label13"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="label" translatable="yes" context="GUI|Installation Destination|Filter|Search|Port Target LUN">_Port:</property> - <property name="use_underline">True</property> - <property name="mnemonic_widget">searchPortCombo</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkComboBoxText" id="searchPortCombo"> - <property name="visible">True</property> - <property name="can_focus">False</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">1</property> - </packing> - </child> - <child> - <object class="GtkLabel" id="label14"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="label" translatable="yes" context="GUI|Installation Destination|Filter|Search|Port Target LUN">_Target:</property> - <property name="use_underline">True</property> - <property name="mnemonic_widget">searchTargetEntry</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">2</property> - </packing> - </child> - <child> - <object class="GtkEntry" id="searchTargetEntry"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="secondary_icon_name">edit-clear-symbolic</property> - <signal name="icon-release" handler="on_clear_icon_clicked" swapped="no"/> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">3</property> - </packing> - </child> - <child> - <object class="GtkLabel" id="label15"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <!-- check_accelerators: refresh --> - <property name="label" translatable="yes" context="GUI|Installation Destination|Filter|Search|Port Target LUN">_LUN:</property> - <property name="use_underline">True</property> - <property name="mnemonic_widget">searchLUNEntry</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">4</property> - </packing> - </child> - <child> - <object class="GtkEntry" id="searchLUNEntry"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="secondary_icon_name">edit-clear-symbolic</property> - <signal name="icon-release" handler="on_clear_icon_clicked" swapped="no"/> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">5</property> - </packing> - </child> </object> <packing> + <property name="expand">False</property> + <property name="fill">True</property> <property name="position">1</property> </packing> </child> - <child type="tab"> - <placeholder/> - </child> <child> - <object class="GtkBox" id="searchWWIDBox"> + <object class="GtkLabel" id="searchTargetLabel"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="hexpand">True</property> - <property name="spacing">6</property> - <child> - <object class="GtkLabel" id="label18"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="label" translatable="yes" context="GUI|Installation Destination|Filter|Search|WWID">_WWID:</property> - <property name="use_underline">True</property> - <property name="mnemonic_widget">searchWWIDEntry</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkEntry" id="searchWWIDEntry"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="width_chars">30</property> - <property name="secondary_icon_name">edit-clear-symbolic</property> - <signal name="icon-release" handler="on_clear_icon_clicked" swapped="no"/> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">1</property> - </packing> - </child> + <property name="label" translatable="yes" context="GUI|Installation Destination|Filter|Search|Port Target LUN">_Target:</property> + <property name="use_underline">True</property> + <property name="mnemonic_widget">searchTargetEntry</property> </object> <packing> + <property name="expand">False</property> + <property name="fill">True</property> <property name="position">2</property> </packing> </child> - <child type="tab"> - <placeholder/> + <child> + <object class="GtkEntry" id="searchTargetEntry"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="secondary_icon_name">edit-clear-symbolic</property> + <signal name="icon-release" handler="on_clear_icon_clicked" swapped="no"/> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">3</property> + </packing> </child> <child> - <placeholder/> + <object class="GtkLabel" id="searchLUNLabel"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <!-- check_accelerators: refresh --> + <property name="label" translatable="yes" context="GUI|Installation Destination|Filter|Search|Port Target LUN">_LUN:</property> + <property name="use_underline">True</property> + <property name="mnemonic_widget">searchLUNEntry</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">4</property> + </packing> </child> - <child type="tab"> - <placeholder/> + <child> + <object class="GtkEntry" id="searchLUNEntry"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="secondary_icon_name">edit-clear-symbolic</property> + <signal name="icon-release" handler="on_clear_icon_clicked" swapped="no"/> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">5</property> + </packing> </child> </object> <packing> - <property name="left_attach">2</property> - <property name="top_attach">0</property> + <property name="position">1</property> </packing> </child> + <child type="tab"> + <placeholder/> + </child> <child> - <object class="GtkTreeView" id="searchTreeView"> + <object class="GtkBox" id="searchWWIDBox"> <property name="visible">True</property> - <property name="can_focus">True</property> + <property name="can_focus">False</property> <property name="hexpand">True</property> - <property name="vexpand">True</property> - <property name="model">searchModel</property> - <property name="rules_hint">True</property> - <property name="enable_search">False</property> - <property name="enable_tree_lines">True</property> - <child internal-child="selection"> - <object class="GtkTreeSelection" id="treeview-selection1"/> - </child> + <property name="spacing">6</property> <child> - <object class="GtkTreeViewColumn" id="searchSelectedCol"> - <child> - <object class="GtkCellRendererToggle" id="searchSelectedRenderer"> - <signal name="toggled" handler="on_row_toggled" swapped="no"/> - </object> - <attributes> - <attribute name="sensitive">2</attribute> - <attribute name="visible">0</attribute> - <attribute name="active">1</attribute> - </attributes> - </child> + <object class="GtkLabel" id="searchWWIDLabel"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes" context="GUI|Installation Destination|Filter|Search|WWID">_WWID:</property> + <property name="use_underline">True</property> + <property name="mnemonic_widget">searchWWIDEntry</property> </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> </child> <child> - <object class="GtkTreeViewColumn" id="searchNameCol"> - <property name="title" translatable="yes">Name</property> - <property name="clickable">True</property> - <child> - <object class="GtkCellRendererText" id="searchNameRenderer"/> - <attributes> - <attribute name="sensitive">2</attribute> - <attribute name="visible">0</attribute> - <attribute name="text">3</attribute> - </attributes> - </child> + <object class="GtkEntry" id="searchWWIDEntry"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="secondary_icon_name">edit-clear-symbolic</property> + <signal name="icon-release" handler="on_clear_icon_clicked" swapped="no"/> </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> </child> + </object> + <packing> + <property name="position">2</property> + </packing> + </child> + <child type="tab"> + <placeholder/> + </child> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">2</property> + </packing> + </child> + <child> + <object class="GtkButton" id="searchFindButton"> + <property name="label" translatable="yes" context="GUI|Installation Destination|Filter|Search">_Find</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="use_underline">True</property> + <signal name="clicked" handler="on_find_clicked" swapped="no"/> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">3</property> + </packing> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkLabel" id="searchResultsLabel"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes" context="GUI|Installation Destination|Filter|Search">Search Res_ults:</property> + <property name="use_underline">True</property> + <property name="xalign">0</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkScrolledWindow" id="searchScrolledWindow"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="hexpand">True</property> + <property name="vexpand">True</property> + <property name="shadow_type">in</property> + <child> + <object class="GtkTreeView" id="searchTreeView"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="hexpand">True</property> + <property name="vexpand">True</property> + <property name="model">searchModel</property> + <property name="rules_hint">True</property> + <property name="enable_search">False</property> + <property name="enable_tree_lines">True</property> + <child internal-child="selection"> + <object class="GtkTreeSelection" id="search-selection"/> + </child> + <child> + <object class="GtkTreeViewColumn" id="searchSelectedCol"> <child> - <object class="GtkTreeViewColumn" id="searchWWIDCol"> - <property name="title" translatable="yes">WWID</property> - <property name="clickable">True</property> - <child> - <object class="GtkCellRendererText" id="searchWWIDRenderer"/> - <attributes> - <attribute name="sensitive">2</attribute> - <attribute name="visible">0</attribute> - <attribute name="text">10</attribute> - </attributes> - </child> + <object class="GtkCellRendererToggle" id="searchSelectedRenderer"> + <signal name="toggled" handler="on_row_toggled" swapped="no"/> </object> + <attributes> + <attribute name="sensitive">2</attribute> + <attribute name="visible">0</attribute> + <attribute name="active">1</attribute> + </attributes> </child> + </object> + </child> + <child> + <object class="GtkTreeViewColumn" id="searchNameCol"> + <property name="title" translatable="yes">Name</property> + <property name="clickable">True</property> <child> - <object class="GtkTreeViewColumn" id="searchCapacityCol"> - <property name="title" translatable="yes">Capacity</property> - <property name="clickable">True</property> - <child> - <object class="GtkCellRendererText" id="searchCapacityRenderer"/> - <attributes> - <attribute name="sensitive">2</attribute> - <attribute name="visible">0</attribute> - <attribute name="text">6</attribute> - </attributes> - </child> - </object> + <object class="GtkCellRendererText" id="searchNameRenderer"/> + <attributes> + <attribute name="sensitive">2</attribute> + <attribute name="visible">0</attribute> + <attribute name="text">3</attribute> + </attributes> </child> + </object> + </child> + <child> + <object class="GtkTreeViewColumn" id="searchWWIDCol"> + <property name="title" translatable="yes">WWID</property> + <property name="clickable">True</property> <child> - <object class="GtkTreeViewColumn" id="searchInterconnectCol"> - <property name="title" translatable="yes">Interconnect</property> - <property name="clickable">True</property> - <child> - <object class="GtkCellRendererText" id="searchInterconnectRenderer"/> - <attributes> - <attribute name="sensitive">2</attribute> - <attribute name="visible">0</attribute> - <attribute name="text">8</attribute> - </attributes> - </child> - </object> + <object class="GtkCellRendererText" id="searchWWIDRenderer"/> + <attributes> + <attribute name="sensitive">2</attribute> + <attribute name="visible">0</attribute> + <attribute name="text">10</attribute> + </attributes> </child> + </object> + </child> + <child> + <object class="GtkTreeViewColumn" id="searchCapacityCol"> + <property name="title" translatable="yes">Capacity</property> + <property name="clickable">True</property> <child> - <object class="GtkTreeViewColumn" id="searchModelCol"> - <property name="title" translatable="yes">Model</property> - <property name="clickable">True</property> - <child> - <object class="GtkCellRendererText" id="searchModelRenderer"/> - <attributes> - <attribute name="sensitive">2</attribute> - <attribute name="visible">0</attribute> - <attribute name="text">5</attribute> - </attributes> - </child> - </object> + <object class="GtkCellRendererText" id="searchCapacityRenderer"/> + <attributes> + <attribute name="sensitive">2</attribute> + <attribute name="visible">0</attribute> + <attribute name="text">6</attribute> + </attributes> </child> + </object> + </child> + <child> + <object class="GtkTreeViewColumn" id="searchInterconnectCol"> + <property name="title" translatable="yes">Interconnect</property> + <property name="clickable">True</property> <child> - <object class="GtkTreeViewColumn" id="searchLUNCol"> - <property name="title" translatable="yes">LUN</property> - <property name="clickable">True</property> - <child> - <object class="GtkCellRendererText" id="searchLUNRenderer"/> - <attributes> - <attribute name="sensitive">2</attribute> - <attribute name="visible">0</attribute> - <attribute name="text">14</attribute> - </attributes> - </child> - </object> + <object class="GtkCellRendererText" id="searchInterconnectRenderer"/> + <attributes> + <attribute name="sensitive">2</attribute> + <attribute name="visible">0</attribute> + <attribute name="text">8</attribute> + </attributes> </child> + </object> + </child> + <child> + <object class="GtkTreeViewColumn" id="searchModelCol"> + <property name="title" translatable="yes">Model</property> + <property name="clickable">True</property> <child> - <object class="GtkTreeViewColumn" id="searchPortCol"> - <property name="title" translatable="yes">Port</property> - <property name="clickable">True</property> - <child> - <object class="GtkCellRendererText" id="searchPortRenderer"/> - <attributes> - <attribute name="sensitive">2</attribute> - <attribute name="visible">0</attribute> - <attribute name="text">12</attribute> - </attributes> - </child> - </object> + <object class="GtkCellRendererText" id="searchModelRenderer"/> + <attributes> + <attribute name="sensitive">2</attribute> + <attribute name="visible">0</attribute> + <attribute name="text">5</attribute> + </attributes> </child> + </object> + </child> + <child> + <object class="GtkTreeViewColumn" id="searchLUNCol"> + <property name="title" translatable="yes">LUN</property> + <property name="clickable">True</property> <child> - <object class="GtkTreeViewColumn" id="searchTargetCol"> - <property name="title" translatable="yes">Target</property> - <property name="clickable">True</property> - <child> - <object class="GtkCellRendererText" id="searchTargetRenderer"/> - <attributes> - <attribute name="sensitive">2</attribute> - <attribute name="visible">0</attribute> - <attribute name="text">13</attribute> - </attributes> - </child> - </object> + <object class="GtkCellRendererText" id="searchLUNRenderer"/> + <attributes> + <attribute name="sensitive">2</attribute> + <attribute name="visible">0</attribute> + <attribute name="text">14</attribute> + </attributes> </child> + </object> + </child> + <child> + <object class="GtkTreeViewColumn" id="searchPortCol"> + <property name="title" translatable="yes">Port</property> + <property name="clickable">True</property> <child> - <object class="GtkTreeViewColumn" id="searchVendorCol"> - <property name="title" translatable="yes">Vendor</property> - <property name="clickable">True</property> - <child> - <object class="GtkCellRendererText" id="searchVendorRenderer"/> - <attributes> - <attribute name="sensitive">2</attribute> - <attribute name="visible">0</attribute> - <attribute name="text">7</attribute> - </attributes> - </child> - </object> + <object class="GtkCellRendererText" id="searchPortRenderer"/> + <attributes> + <attribute name="sensitive">2</attribute> + <attribute name="visible">0</attribute> + <attribute name="text">12</attribute> + </attributes> </child> </object> - <packing> - <property name="left_attach">0</property> - <property name="top_attach">2</property> - <property name="width">5</property> - </packing> </child> <child> - <object class="GtkButton" id="searchFindButton"> - <property name="label" translatable="yes" context="GUI|Installation Destination|Filter|Search">_Find</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">True</property> - <property name="use_underline">True</property> - <signal name="clicked" handler="on_find_clicked" swapped="no"/> + <object class="GtkTreeViewColumn" id="searchTargetCol"> + <property name="title" translatable="yes">Target</property> + <property name="clickable">True</property> + <child> + <object class="GtkCellRendererText" id="searchTargetRenderer"/> + <attributes> + <attribute name="sensitive">2</attribute> + <attribute name="visible">0</attribute> + <attribute name="text">13</attribute> + </attributes> + </child> </object> - <packing> - <property name="left_attach">3</property> - <property name="top_attach">0</property> - </packing> </child> <child> - <placeholder/> + <object class="GtkTreeViewColumn" id="searchVendorCol"> + <property name="title" translatable="yes">Vendor</property> + <property name="clickable">True</property> + <child> + <object class="GtkCellRendererText" id="searchVendorRenderer"/> + <attributes> + <attribute name="sensitive">2</attribute> + <attribute name="visible">0</attribute> + <attribute name="text">7</attribute> + </attributes> + </child> + </object> </child> </object> </child> </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">2</property> + </packing> </child> </object> </child> @@ -530,320 +534,333 @@ </packing> </child> <child> - <object class="GtkScrolledWindow" id="multipathScrolledWindow"> + <object class="GtkBox" id="multipathBox"> <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="shadow_type">in</property> + <property name="can_focus">False</property> + <property name="margin_left">6</property> + <property name="margin_right">6</property> + <property name="margin_top">12</property> + <property name="orientation">vertical</property> + <property name="spacing">6</property> <child> - <object class="GtkViewport" id="multipathViewport"> + <object class="GtkBox" id="multipathParametersBox"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="shadow_type">none</property> + <property name="spacing">6</property> + <child> + <object class="GtkLabel" id="multipathFilterLabel"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes" context="GUI|Installation Destination|Filter|Multipath">Filter _By:</property> + <property name="use_underline">True</property> + <property name="mnemonic_widget">multipathTypeCombo</property> + <property name="xalign">0</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> <child> - <object class="GtkGrid" id="multipathGrid"> + <object class="GtkComboBoxText" id="multipathTypeCombo"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="margin_left">6</property> - <property name="margin_right">6</property> - <property name="margin_top">12</property> - <property name="row_spacing">6</property> - <property name="column_spacing">6</property> + <items> + <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> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkNotebook" id="multipathTypeNotebook"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="no_show_all">True</property> + <property name="hexpand">True</property> + <property name="show_tabs">False</property> + <property name="show_border">False</property> <child> - <object class="GtkLabel" id="label2"> + <object class="GtkLabel" id="multipathNoneLabel"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="label" translatable="yes" context="GUI|Installation Destination|Filter|Multipath">Filter _By:</property> - <property name="use_underline">True</property> - <property name="mnemonic_widget">multipathTypeCombo</property> - <property name="xalign">0</property> + <property name="hexpand">True</property> </object> - <packing> - <property name="left_attach">0</property> - <property name="top_attach">0</property> - </packing> </child> - <child> - <object class="GtkComboBoxText" id="multipathTypeCombo"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <items> - <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> - <packing> - <property name="left_attach">1</property> - <property name="top_attach">0</property> - </packing> + <child type="tab"> + <placeholder/> </child> <child> - <object class="GtkNotebook" id="multipathTypeNotebook"> + <object class="GtkBox" id="multipathVendorBox"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="no_show_all">True</property> <property name="hexpand">True</property> - <property name="show_tabs">False</property> - <property name="show_border">False</property> + <property name="spacing">6</property> <child> - <object class="GtkLabel" id="label5"> + <object class="GtkLabel" id="multipathVendorLabel"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="hexpand">True</property> + <property name="label" translatable="yes" context="GUI|Installation Destination|Filter|Multipath|Vendor">Show Only _Devices From:</property> + <property name="use_underline">True</property> + <property name="mnemonic_widget">multipathVendorCombo</property> </object> - </child> - <child type="tab"> - <placeholder/> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> </child> <child> - <object class="GtkBox" id="multipathVendorBox"> + <object class="GtkComboBoxText" id="multipathVendorCombo"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="spacing">6</property> - <child> - <object class="GtkLabel" id="label7"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="label" translatable="yes" context="GUI|Installation Destination|Filter|Multipath|Vendor">Show Only _Devices From:</property> - <property name="use_underline">True</property> - <property name="mnemonic_widget">multipathVendorCombo</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkComboBoxText" id="multipathVendorCombo"> - <property name="visible">True</property> - <property name="can_focus">False</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">1</property> - </packing> - </child> + <property name="hexpand">True</property> </object> <packing> + <property name="expand">True</property> + <property name="fill">True</property> <property name="position">1</property> </packing> </child> - <child type="tab"> - <placeholder/> - </child> + </object> + <packing> + <property name="position">1</property> + </packing> + </child> + <child type="tab"> + <placeholder/> + </child> + <child> + <object class="GtkBox" id="multipathInterconnectBox"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="hexpand">True</property> + <property name="spacing">6</property> <child> - <object class="GtkBox" id="multipathInterconnectBox"> + <object class="GtkLabel" id="multipathInterconnectLabel"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="spacing">6</property> - <child> - <object class="GtkLabel" id="label16"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="label" translatable="yes" context="GUI|Installation Destination|Filter|Multipath|Interconnect">Show Only _Devices With:</property> - <property name="use_underline">True</property> - <property name="mnemonic_widget">multipathInterconnectCombo</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkComboBoxText" id="multipathInterconnectCombo"> - <property name="visible">True</property> - <property name="can_focus">False</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">1</property> - </packing> - </child> + <property name="label" translatable="yes" context="GUI|Installation Destination|Filter|Multipath|Interconnect">Show Only _Devices With:</property> + <property name="use_underline">True</property> + <property name="mnemonic_widget">multipathInterconnectCombo</property> </object> <packing> - <property name="position">2</property> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> </packing> </child> - <child type="tab"> - <placeholder/> - </child> <child> - <object class="GtkBox" id="multipathWWIDBox"> + <object class="GtkComboBoxText" id="multipathInterconnectCombo"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="spacing">6</property> - <child> - <object class="GtkLabel" id="label17"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="label" translatable="yes" context="GUI|Installation Destination|Filter|Multipath|WWID">Show Only _Devices Containing:</property> - <property name="use_underline">True</property> - <property name="mnemonic_widget">multipathWWIDEntry</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkEntry" id="multipathWWIDEntry"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="width_chars">30</property> - <property name="secondary_icon_name">edit-clear-symbolic</property> - <signal name="icon-release" handler="on_clear_icon_clicked" swapped="no"/> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">1</property> - </packing> - </child> + <property name="hexpand">True</property> </object> <packing> - <property name="position">3</property> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">1</property> </packing> </child> - <child type="tab"> - <placeholder/> - </child> </object> <packing> - <property name="left_attach">2</property> - <property name="top_attach">0</property> + <property name="position">2</property> </packing> </child> + <child type="tab"> + <placeholder/> + </child> <child> - <object class="GtkTreeView" id="multipathTreeView"> + <object class="GtkBox" id="multipathWWIDBox"> <property name="visible">True</property> - <property name="can_focus">True</property> + <property name="can_focus">False</property> <property name="hexpand">True</property> - <property name="vexpand">True</property> - <property name="model">multipathModel</property> - <property name="rules_hint">True</property> - <property name="enable_search">False</property> - <property name="enable_tree_lines">True</property> - <child internal-child="selection"> - <object class="GtkTreeSelection" id="treeview-selection2"/> - </child> + <property name="spacing">6</property> <child> - <object class="GtkTreeViewColumn" id="multipathSelectedCol"> - <child> - <object class="GtkCellRendererToggle" id="multipathSelectedRenderer"> - <signal name="toggled" handler="on_row_toggled" swapped="no"/> - </object> - <attributes> - <attribute name="sensitive">2</attribute> - <attribute name="visible">0</attribute> - <attribute name="active">1</attribute> - </attributes> - </child> + <object class="GtkLabel" id="multipathWWIDLabel"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes" context="GUI|Installation Destination|Filter|Multipath|WWID">Show Only _Devices Containing:</property> + <property name="use_underline">True</property> + <property name="mnemonic_widget">multipathWWIDEntry</property> </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> </child> <child> - <object class="GtkTreeViewColumn" id="multipathWWIDCol"> - <property name="title" translatable="yes">WWID</property> - <property name="clickable">True</property> - <child> - <object class="GtkCellRendererText" id="multipathWWIDRenderer"/> - <attributes> - <attribute name="sensitive">2</attribute> - <attribute name="visible">0</attribute> - <attribute name="text">10</attribute> - </attributes> - </child> + <object class="GtkEntry" id="multipathWWIDEntry"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="hexpand">True</property> + <property name="secondary_icon_name">edit-clear-symbolic</property> + <signal name="icon-release" handler="on_clear_icon_clicked" swapped="no"/> </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> </child> + </object> + <packing> + <property name="position">3</property> + </packing> + </child> + <child type="tab"> + <placeholder/> + </child> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">2</property> + </packing> + </child> + <child> + <object class="GtkButton" id="multipathFindButton"> + <property name="label" translatable="yes" context="GUI|Installation Destination|Filter|Multipath">_Find</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="use_underline">True</property> + <signal name="clicked" handler="on_find_clicked" swapped="no"/> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">3</property> + </packing> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkScrolledWindow" id="multipathScrolledWindow"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="hexpand">True</property> + <property name="vexpand">True</property> + <property name="shadow_type">in</property> + <child> + <object class="GtkTreeView" id="multipathTreeView"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="hexpand">True</property> + <property name="vexpand">True</property> + <property name="model">multipathModel</property> + <property name="rules_hint">True</property> + <property name="enable_search">False</property> + <property name="enable_tree_lines">True</property> + <child internal-child="selection"> + <object class="GtkTreeSelection" id="multipath-selection"/> + </child> + <child> + <object class="GtkTreeViewColumn" id="multipathSelectedCol"> <child> - <object class="GtkTreeViewColumn" id="multipathCapacityCol"> - <property name="title" translatable="yes">Capacity</property> - <property name="clickable">True</property> - <child> - <object class="GtkCellRendererText" id="multipathCapacityRenderer"/> - <attributes> - <attribute name="sensitive">2</attribute> - <attribute name="visible">0</attribute> - <attribute name="text">6</attribute> - </attributes> - </child> + <object class="GtkCellRendererToggle" id="multipathSelectedRenderer"> + <signal name="toggled" handler="on_row_toggled" swapped="no"/> </object> + <attributes> + <attribute name="sensitive">2</attribute> + <attribute name="visible">0</attribute> + <attribute name="active">1</attribute> + </attributes> </child> + </object> + </child> + <child> + <object class="GtkTreeViewColumn" id="multipathWWIDCol"> + <property name="title" translatable="yes">WWID</property> + <property name="clickable">True</property> <child> - <object class="GtkTreeViewColumn" id="multipathVendorCol"> - <property name="title" translatable="yes">Vendor</property> - <property name="clickable">True</property> - <child> - <object class="GtkCellRendererText" id="multipathVendorRenderer"/> - <attributes> - <attribute name="sensitive">2</attribute> - <attribute name="visible">0</attribute> - <attribute name="text">7</attribute> - </attributes> - </child> - </object> + <object class="GtkCellRendererText" id="multipathWWIDRenderer"/> + <attributes> + <attribute name="sensitive">2</attribute> + <attribute name="visible">0</attribute> + <attribute name="text">10</attribute> + </attributes> </child> + </object> + </child> + <child> + <object class="GtkTreeViewColumn" id="multipathCapacityCol"> + <property name="title" translatable="yes">Capacity</property> + <property name="clickable">True</property> <child> - <object class="GtkTreeViewColumn" id="multipathInterconnectCol"> - <property name="title" translatable="yes">Interconnect</property> - <property name="clickable">True</property> - <child> - <object class="GtkCellRendererText" id="multipathInterconnectRenderer"/> - <attributes> - <attribute name="sensitive">2</attribute> - <attribute name="visible">0</attribute> - <attribute name="text">8</attribute> - </attributes> - </child> - </object> + <object class="GtkCellRendererText" id="multipathCapacityRenderer"/> + <attributes> + <attribute name="sensitive">2</attribute> + <attribute name="visible">0</attribute> + <attribute name="text">6</attribute> + </attributes> </child> + </object> + </child> + <child> + <object class="GtkTreeViewColumn" id="multipathVendorCol"> + <property name="title" translatable="yes">Vendor</property> + <property name="clickable">True</property> <child> - <object class="GtkTreeViewColumn" id="multipathPathsCol"> - <property name="title" translatable="yes">Paths</property> - <property name="clickable">True</property> - <child> - <object class="GtkCellRendererText" id="multipathPathsRenderer"/> - <attributes> - <attribute name="sensitive">2</attribute> - <attribute name="visible">0</attribute> - <attribute name="text">11</attribute> - </attributes> - </child> - </object> + <object class="GtkCellRendererText" id="multipathVendorRenderer"/> + <attributes> + <attribute name="sensitive">2</attribute> + <attribute name="visible">0</attribute> + <attribute name="text">7</attribute> + </attributes> </child> </object> - <packing> - <property name="left_attach">0</property> - <property name="top_attach">1</property> - <property name="width">5</property> - </packing> </child> <child> - <object class="GtkButton" id="multipathFindButton"> - <property name="label" translatable="yes" context="GUI|Installation Destination|Filter|Multipath">_Find</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">True</property> - <property name="use_underline">True</property> - <signal name="clicked" handler="on_find_clicked" swapped="no"/> + <object class="GtkTreeViewColumn" id="multipathInterconnectCol"> + <property name="title" translatable="yes">Interconnect</property> + <property name="clickable">True</property> + <child> + <object class="GtkCellRendererText" id="multipathInterconnectRenderer"/> + <attributes> + <attribute name="sensitive">2</attribute> + <attribute name="visible">0</attribute> + <attribute name="text">8</attribute> + </attributes> + </child> </object> - <packing> - <property name="left_attach">3</property> - <property name="top_attach">0</property> - </packing> </child> <child> - <placeholder/> + <object class="GtkTreeViewColumn" id="multipathPathsCol"> + <property name="title" translatable="yes">Paths</property> + <property name="clickable">True</property> + <child> + <object class="GtkCellRendererText" id="multipathPathsRenderer"/> + <attributes> + <attribute name="sensitive">2</attribute> + <attribute name="visible">0</attribute> + <attribute name="text">11</attribute> + </attributes> + </child> + </object> </child> </object> </child> </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> </child> </object> <packing> @@ -863,304 +880,319 @@ </packing> </child> <child> - <object class="GtkScrolledWindow" id="otherScrolledWindow"> + <object class="GtkBox" id="otherBox"> <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="shadow_type">in</property> + <property name="can_focus">False</property> + <property name="margin_left">6</property> + <property name="margin_right">6</property> + <property name="margin_top">12</property> + <property name="orientation">vertical</property> + <property name="spacing">6</property> <child> - <object class="GtkViewport" id="otherViewport"> + <object class="GtkBox" id="otherParametersBox"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="shadow_type">none</property> + <property name="spacing">6</property> <child> - <object class="GtkGrid" id="otherGrid"> + <object class="GtkLabel" id="otherFilterLabel"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="margin_left">6</property> - <property name="margin_right">6</property> - <property name="margin_top">12</property> - <property name="row_spacing">6</property> - <property name="column_spacing">6</property> + <property name="label" translatable="yes" context="GUI|Installation Destination|Filter|Other">Filter _By:</property> + <property name="use_underline">True</property> + <property name="mnemonic_widget">otherTypeCombo</property> + <property name="xalign">0</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkComboBoxText" id="otherTypeCombo"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <items> + <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> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkNotebook" id="otherTypeNotebook"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="no_show_all">True</property> + <property name="hexpand">True</property> + <property name="show_tabs">False</property> + <property name="show_border">False</property> <child> - <object class="GtkLabel" id="label3"> + <object class="GtkLabel" id="otherNoneLabel"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="label" translatable="yes" context="GUI|Installation Destination|Filter|Other">Filter _By:</property> - <property name="use_underline">True</property> - <property name="mnemonic_widget">otherTypeCombo</property> - <property name="xalign">0</property> + <property name="hexpand">True</property> </object> - <packing> - <property name="left_attach">0</property> - <property name="top_attach">0</property> - </packing> </child> - <child> - <object class="GtkComboBoxText" id="otherTypeCombo"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <items> - <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> - <packing> - <property name="left_attach">1</property> - <property name="top_attach">0</property> - </packing> + <child type="tab"> + <placeholder/> </child> <child> - <object class="GtkTreeView" id="otherTreeView"> + <object class="GtkBox" id="otherVendorBox"> <property name="visible">True</property> - <property name="can_focus">True</property> + <property name="can_focus">False</property> <property name="hexpand">True</property> - <property name="vexpand">True</property> - <property name="model">otherModel</property> - <property name="rules_hint">True</property> - <property name="enable_search">False</property> - <property name="enable_tree_lines">True</property> - <child internal-child="selection"> - <object class="GtkTreeSelection" id="treeview-selection3"/> - </child> - <child> - <object class="GtkTreeViewColumn" id="otherSelectedCol"> - <child> - <object class="GtkCellRendererToggle" id="otherSelectedRenderer"> - <signal name="toggled" handler="on_row_toggled" swapped="no"/> - </object> - <attributes> - <attribute name="sensitive">2</attribute> - <attribute name="visible">0</attribute> - <attribute name="active">1</attribute> - </attributes> - </child> - </object> - </child> + <property name="spacing">6</property> <child> - <object class="GtkTreeViewColumn" id="otherIDCol"> - <property name="title" translatable="yes">Identifier</property> - <property name="clickable">True</property> - <child> - <object class="GtkCellRendererText" id="otherIDRenderer"/> - <attributes> - <attribute name="sensitive">2</attribute> - <attribute name="visible">0</attribute> - <attribute name="text">10</attribute> - </attributes> - </child> - </object> - </child> - <child> - <object class="GtkTreeViewColumn" id="otherCapacityCol"> - <property name="title" translatable="yes">Capacity</property> - <property name="clickable">True</property> - <child> - <object class="GtkCellRendererText" id="otherCapacityRenderer"/> - <attributes> - <attribute name="sensitive">2</attribute> - <attribute name="visible">0</attribute> - <attribute name="text">6</attribute> - </attributes> - </child> - </object> - </child> - <child> - <object class="GtkTreeViewColumn" id="otherVendorCol"> - <property name="title" translatable="yes">Vendor</property> - <property name="clickable">True</property> - <child> - <object class="GtkCellRendererText" id="otherVendorRenderer"/> - <attributes> - <attribute name="sensitive">2</attribute> - <attribute name="visible">0</attribute> - <attribute name="text">7</attribute> - </attributes> - </child> + <object class="GtkLabel" id="otherVendorLabel"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes" context="GUI|Installation Destination|Filter|Other|Vendor">Show Only _Devices From:</property> + <property name="use_underline">True</property> + <property name="mnemonic_widget">otherVendorCombo</property> </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> </child> <child> - <object class="GtkTreeViewColumn" id="otherInterconnectCol"> - <property name="title" translatable="yes">Interconnect</property> - <property name="clickable">True</property> - <child> - <object class="GtkCellRendererText" id="otherInterconnectRenderer"/> - <attributes> - <attribute name="sensitive">2</attribute> - <attribute name="visible">0</attribute> - <attribute name="text">8</attribute> - </attributes> - </child> + <object class="GtkComboBoxText" id="otherVendorCombo"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="hexpand">True</property> </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> </child> </object> <packing> - <property name="left_attach">0</property> - <property name="top_attach">1</property> - <property name="width">5</property> + <property name="position">1</property> </packing> </child> - <child> - <object class="GtkButton" id="otherFindButton"> - <property name="label" context="GUI|Installation Destination|Filter|Other">_Find</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">True</property> - <property name="use_underline">True</property> - <signal name="clicked" handler="on_find_clicked" swapped="no"/> - </object> - <packing> - <property name="left_attach">3</property> - <property name="top_attach">0</property> - <property name="width">2</property> - </packing> + <child type="tab"> + <placeholder/> </child> <child> - <object class="GtkNotebook" id="otherTypeNotebook"> + <object class="GtkBox" id="otherInterconnectBox"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="no_show_all">True</property> <property name="hexpand">True</property> - <property name="show_tabs">False</property> - <property name="show_border">False</property> + <property name="spacing">6</property> <child> - <object class="GtkLabel" id="label8"> + <object class="GtkLabel" id="otherInterconnectLabel"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="hexpand">True</property> + <property name="label" translatable="yes" context="GUI|Installation Destination|Filter|Other|Interconnect">Show Only _Devices With:</property> + <property name="use_underline">True</property> + <property name="mnemonic_widget">otherInterconnectCombo</property> </object> - </child> - <child type="tab"> - <placeholder/> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> </child> <child> - <object class="GtkBox" id="otherVendorBox"> + <object class="GtkComboBoxText" id="otherInterconnectCombo"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="spacing">6</property> - <child> - <object class="GtkLabel" id="label12"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="label" translatable="yes" context="GUI|Installation Destination|Filter|Other|Vendor">Show Only _Devices From:</property> - <property name="use_underline">True</property> - <property name="mnemonic_widget">otherVendorCombo</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkComboBoxText" id="otherVendorCombo"> - <property name="visible">True</property> - <property name="can_focus">False</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">1</property> - </packing> - </child> + <property name="hexpand">True</property> </object> <packing> + <property name="expand">True</property> + <property name="fill">True</property> <property name="position">1</property> </packing> </child> - <child type="tab"> - <placeholder/> - </child> + </object> + <packing> + <property name="position">2</property> + </packing> + </child> + <child type="tab"> + <placeholder/> + </child> + <child> + <object class="GtkBox" id="otherIDBox"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="hexpand">True</property> + <property name="spacing">6</property> <child> - <object class="GtkBox" id="otherInterconnectBox"> + <object class="GtkLabel" id="otherIDLabel"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="spacing">6</property> - <child> - <object class="GtkLabel" id="label20"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="label" translatable="yes" context="GUI|Installation Destination|Filter|Other|Interconnect">Show Only _Devices With:</property> - <property name="use_underline">True</property> - <property name="mnemonic_widget">otherInterconnectCombo</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkComboBoxText" id="otherInterconnectCombo"> - <property name="visible">True</property> - <property name="can_focus">False</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">1</property> - </packing> - </child> + <property name="label" translatable="yes" context="GUI|Installation Destination|Filter|Other|ID">Show Only _Devices Containing:</property> + <property name="use_underline">True</property> + <property name="mnemonic_widget">otherIDEntry</property> </object> <packing> - <property name="position">2</property> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> </packing> </child> - <child type="tab"> - <placeholder/> - </child> <child> - <object class="GtkBox" id="otherIDBox"> + <object class="GtkEntry" id="otherIDEntry"> <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="spacing">6</property> - <child> - <object class="GtkLabel" id="label21"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="label" translatable="yes" context="GUI|Installation Destination|Filter|Other|ID">Show Only _Devices Containing:</property> - <property name="use_underline">True</property> - <property name="mnemonic_widget">otherIDEntry</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkEntry" id="otherIDEntry"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="width_chars">30</property> - <property name="secondary_icon_name">edit-clear-symbolic</property> - <signal name="icon-release" handler="on_clear_icon_clicked" swapped="no"/> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">1</property> - </packing> - </child> + <property name="can_focus">True</property> + <property name="hexpand">True</property> + <property name="secondary_icon_name">edit-clear-symbolic</property> + <signal name="icon-release" handler="on_clear_icon_clicked" swapped="no"/> </object> <packing> - <property name="position">3</property> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">1</property> </packing> </child> - <child type="tab"> - <placeholder/> - </child> </object> <packing> - <property name="left_attach">2</property> - <property name="top_attach">0</property> + <property name="position">3</property> </packing> </child> + <child type="tab"> + <placeholder/> + </child> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">2</property> + </packing> + </child> + <child> + <object class="GtkButton" id="otherFindButton"> + <property name="label" translatable="yes" context="GUI|Installation Destination|Filter|Other">_Find</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="use_underline">True</property> + <signal name="clicked" handler="on_find_clicked" swapped="no"/> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">3</property> + </packing> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkScrolledWindow" id="otherScrolledWindow"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="hexpand">True</property> + <property name="vexpand">True</property> + <property name="shadow_type">in</property> + <child> + <object class="GtkTreeView" id="otherTreeView"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="hexpand">True</property> + <property name="vexpand">True</property> + <property name="model">otherModel</property> + <property name="rules_hint">True</property> + <property name="enable_search">False</property> + <property name="enable_tree_lines">True</property> + <child internal-child="selection"> + <object class="GtkTreeSelection" id="other-selection"/> + </child> + <child> + <object class="GtkTreeViewColumn" id="otherSelectedCol"> + <child> + <object class="GtkCellRendererToggle" id="otherSelectedRenderer"> + <signal name="toggled" handler="on_row_toggled" swapped="no"/> + </object> + <attributes> + <attribute name="sensitive">2</attribute> + <attribute name="visible">0</attribute> + <attribute name="active">1</attribute> + </attributes> + </child> + </object> + </child> + <child> + <object class="GtkTreeViewColumn" id="otherIDCol"> + <property name="title" translatable="yes">Identifier</property> + <property name="clickable">True</property> + <child> + <object class="GtkCellRendererText" id="otherIDRenderer"/> + <attributes> + <attribute name="sensitive">2</attribute> + <attribute name="visible">0</attribute> + <attribute name="text">10</attribute> + </attributes> + </child> + </object> + </child> + <child> + <object class="GtkTreeViewColumn" id="otherCapacityCol"> + <property name="title" translatable="yes">Capacity</property> + <property name="clickable">True</property> + <child> + <object class="GtkCellRendererText" id="otherCapacityRenderer"/> + <attributes> + <attribute name="sensitive">2</attribute> + <attribute name="visible">0</attribute> + <attribute name="text">6</attribute> + </attributes> + </child> + </object> + </child> + <child> + <object class="GtkTreeViewColumn" id="otherVendorCol"> + <property name="title" translatable="yes">Vendor</property> + <property name="clickable">True</property> + <child> + <object class="GtkCellRendererText" id="otherVendorRenderer"/> + <attributes> + <attribute name="sensitive">2</attribute> + <attribute name="visible">0</attribute> + <attribute name="text">7</attribute> + </attributes> + </child> + </object> + </child> + <child> + <object class="GtkTreeViewColumn" id="otherInterconnectCol"> + <property name="title" translatable="yes">Interconnect</property> + <property name="clickable">True</property> + <child> + <object class="GtkCellRendererText" id="otherInterconnectRenderer"/> + <attributes> + <attribute name="sensitive">2</attribute> + <attribute name="visible">0</attribute> + <attribute name="text">8</attribute> + </attributes> + </child> + </object> + </child> </object> </child> </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> </child> </object> <packing> @@ -1180,362 +1212,369 @@ </packing> </child> <child> - <object class="GtkScrolledWindow" id="zScrolledWindow"> + <object class="GtkBox" id="zBox"> <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="shadow_type">in</property> + <property name="can_focus">False</property> + <property name="margin_left">6</property> + <property name="margin_right">6</property> + <property name="margin_top">12</property> + <property name="orientation">vertical</property> + <property name="spacing">6</property> <child> - <object class="GtkViewport" id="zViewport"> + <object class="GtkBox" id="zParametersBox"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="shadow_type">none</property> + <property name="spacing">6</property> + <child> + <object class="GtkLabel" id="zFilterLabel"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes" context="GUI|Installation Destination|Filter|zSeries">Filter B_y:</property> + <property name="use_underline">True</property> + <property name="mnemonic_widget">zTypeCombo</property> + <property name="xalign">0</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkComboBoxText" id="zTypeCombo"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <items> + <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> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> <child> - <object class="GtkGrid" id="zGrid"> + <object class="GtkNotebook" id="zTypeNotebook"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="margin_left">6</property> - <property name="margin_right">6</property> - <property name="margin_top">12</property> - <property name="row_spacing">6</property> - <property name="column_spacing">6</property> + <property name="no_show_all">True</property> + <property name="hexpand">True</property> + <property name="show_tabs">False</property> + <property name="show_border">False</property> <child> - <object class="GtkLabel" id="label10"> + <object class="GtkLabel" id="zNoneLabel"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="label" translatable="yes" context="GUI|Installation Destination|Filter|zSeries">Filter B_y:</property> - <property name="use_underline">True</property> - <property name="mnemonic_widget">zTypeCombo</property> - <property name="xalign">0</property> + <property name="hexpand">True</property> </object> - <packing> - <property name="left_attach">0</property> - <property name="top_attach">0</property> - </packing> </child> - <child> - <object class="GtkButton" id="zFindButton"> - <property name="label" translatable="yes" context="GUI|Installation Destination|Filter|zSeries">_Find</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">True</property> - <property name="use_underline">True</property> - <signal name="clicked" handler="on_find_clicked" swapped="no"/> - </object> - <packing> - <property name="left_attach">3</property> - <property name="top_attach">0</property> - </packing> + <child type="tab"> + <placeholder/> </child> <child> - <object class="GtkTreeView" id="zTreeView"> + <object class="GtkBox" id="zCCWBox"> <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="hexpand">True</property> - <property name="vexpand">True</property> - <property name="model">zModel</property> - <property name="rules_hint">True</property> - <property name="enable_search">False</property> - <property name="enable_tree_lines">True</property> - <child internal-child="selection"> - <object class="GtkTreeSelection" id="treeview-selection4"/> - </child> - <child> - <object class="GtkTreeViewColumn" id="zSelectedCol"> - <child> - <object class="GtkCellRendererToggle" id="zSelectedRenderer"> - <signal name="toggled" handler="on_row_toggled" swapped="no"/> - </object> - <attributes> - <attribute name="sensitive">2</attribute> - <attribute name="visible">0</attribute> - <attribute name="active">1</attribute> - </attributes> - </child> - </object> - </child> - <child> - <object class="GtkTreeViewColumn" id="zCCWCol"> - <property name="title" translatable="yes">CCW</property> - <property name="clickable">True</property> - <child> - <object class="GtkCellRendererText" id="zCCWRenderer"/> - <attributes> - <attribute name="sensitive">2</attribute> - <attribute name="visible">0</attribute> - <attribute name="text">15</attribute> - </attributes> - </child> - </object> - </child> - <child> - <object class="GtkTreeViewColumn" id="zNameCol"> - <property name="title" translatable="yes">Name</property> - <property name="clickable">True</property> - <child> - <object class="GtkCellRendererText" id="zNameRenderer"/> - <attributes> - <attribute name="sensitive">2</attribute> - <attribute name="visible">0</attribute> - <attribute name="text">3</attribute> - </attributes> - </child> - </object> - </child> - <child> - <object class="GtkTreeViewColumn" id="zTypeCol"> - <property name="title" translatable="yes">Type</property> - <property name="clickable">True</property> - <child> - <object class="GtkCellRendererText" id="zTypeRenderer"/> - <attributes> - <attribute name="sensitive">2</attribute> - <attribute name="visible">0</attribute> - <attribute name="text">4</attribute> - </attributes> - </child> - </object> - </child> - <child> - <object class="GtkTreeViewColumn" id="zCapacityCol"> - <property name="title" translatable="yes">Capacity</property> - <property name="clickable">True</property> - <child> - <object class="GtkCellRendererText" id="zCapacityRenderer"/> - <attributes> - <attribute name="sensitive">2</attribute> - <attribute name="visible">0</attribute> - <attribute name="text">6</attribute> - </attributes> - </child> - </object> - </child> - <child> - <object class="GtkTreeViewColumn" id="zWWPNCol"> - <property name="title" translatable="yes">WWPN</property> - <property name="clickable">True</property> - <child> - <object class="GtkCellRendererText" id="zWWPNRenderer"/> - <attributes> - <attribute name="sensitive">2</attribute> - <attribute name="visible">0</attribute> - <attribute name="text">16</attribute> - </attributes> - </child> - </object> - </child> + <property name="can_focus">False</property> + <property name="spacing">6</property> <child> - <object class="GtkTreeViewColumn" id="zLUNCol"> - <property name="title" translatable="yes">LUN</property> - <property name="clickable">True</property> - <child> - <object class="GtkCellRendererText" id="zLUNRenderer"/> - <attributes> - <attribute name="sensitive">2</attribute> - <attribute name="visible">0</attribute> - <attribute name="text">14</attribute> - </attributes> - </child> + <object class="GtkLabel" id="zCCWLabel"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes" context="GUI|Installation Destination|Filter|zSeries|CCW">_CCW:</property> + <property name="use_underline">True</property> + <property name="mnemonic_widget">zCCWEntry</property> </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> </child> <child> - <object class="GtkTreeViewColumn" id="zPortCol"> - <property name="title" translatable="yes">Port</property> - <property name="clickable">True</property> - <child> - <object class="GtkCellRendererText" id="zPortRenderer"/> - <attributes> - <attribute name="sensitive">2</attribute> - <attribute name="visible">0</attribute> - <attribute name="text">12</attribute> - </attributes> - </child> + <object class="GtkEntry" id="zCCWEntry"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="hexpand">True</property> + <property name="secondary_icon_name">edit-clear-symbolic</property> + <signal name="icon-release" handler="on_clear_icon_clicked" swapped="no"/> </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> </child> </object> <packing> - <property name="left_attach">0</property> - <property name="top_attach">1</property> - <property name="width">5</property> + <property name="position">1</property> </packing> </child> + <child type="tab"> + <placeholder/> + </child> <child> - <object class="GtkNotebook" id="zTypeNotebook"> + <object class="GtkBox" id="zWWPNBox"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="no_show_all">True</property> <property name="hexpand">True</property> - <property name="show_tabs">False</property> - <property name="show_border">False</property> + <property name="spacing">6</property> <child> - <object class="GtkLabel" id="label19"> + <object class="GtkLabel" id="zWWPNLabel"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="hexpand">True</property> + <property name="label" translatable="yes" context="GUI|Installation Destination|Filter|zSeries|WWPN">_WWPN:</property> + <property name="use_underline">True</property> + <property name="mnemonic_widget">zWWPNEntry</property> </object> - </child> - <child type="tab"> - <placeholder/> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> </child> <child> - <object class="GtkBox" id="zCCWBox"> + <object class="GtkEntry" id="zWWPNEntry"> <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="spacing">6</property> - <child> - <object class="GtkLabel" id="label23"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="label" translatable="yes" context="GUI|Installation Destination|Filter|zSeries|CCW">_CCW:</property> - <property name="use_underline">True</property> - <property name="mnemonic_widget">zCCWEntry</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkEntry" id="zCCWEntry"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="width_chars">30</property> - <property name="secondary_icon_name">edit-clear-symbolic</property> - <signal name="icon-release" handler="on_clear_icon_clicked" swapped="no"/> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">1</property> - </packing> - </child> + <property name="can_focus">True</property> + <property name="hexpand">True</property> + <property name="secondary_icon_name">edit-clear-symbolic</property> + <signal name="icon-release" handler="on_clear_icon_clicked" swapped="no"/> </object> <packing> + <property name="expand">True</property> + <property name="fill">True</property> <property name="position">1</property> </packing> </child> - <child type="tab"> - <placeholder/> - </child> - <child> - <placeholder/> - </child> - <child type="tab"> - <placeholder/> - </child> + </object> + <packing> + <property name="position">2</property> + </packing> + </child> + <child type="tab"> + <placeholder/> + </child> + <child> + <object class="GtkBox" id="zLUNBox"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="hexpand">True</property> + <property name="spacing">6</property> <child> - <object class="GtkBox" id="zWWPNBox"> + <object class="GtkLabel" id="zLUNLabel"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="spacing">6</property> - <child> - <object class="GtkLabel" id="label24"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="label" translatable="yes" context="GUI|Installation Destination|Filter|zSeries|WWPN">_WWPN:</property> - <property name="use_underline">True</property> - <property name="mnemonic_widget">zWWPNEntry</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkEntry" id="zWWPNEntry"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="width_chars">30</property> - <property name="secondary_icon_name">edit-clear-symbolic</property> - <signal name="icon-release" handler="on_clear_icon_clicked" swapped="no"/> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">1</property> - </packing> - </child> + <!-- check_accelerators: refresh --> + <property name="label" translatable="yes" context="GUI|Installation Destination|Filter|zSeries|LUN">_LUN:</property> + <property name="use_underline">True</property> + <property name="mnemonic_widget">zLUNEntry</property> </object> <packing> - <property name="position">3</property> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> </packing> </child> - <child type="tab"> - <placeholder/> - </child> <child> - <object class="GtkBox" id="zLUNBox"> + <object class="GtkEntry" id="zLUNEntry"> <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="spacing">6</property> - <child> - <object class="GtkLabel" id="label22"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <!-- check_accelerators: refresh --> - <property name="label" translatable="yes" context="GUI|Installation Destination|Filter|zSeries|LUN">_LUN:</property> - <property name="use_underline">True</property> - <property name="mnemonic_widget">zLUNEntry</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkEntry" id="zLUNEntry"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="width_chars">30</property> - <property name="secondary_icon_name">edit-clear-symbolic</property> - <signal name="icon-release" handler="on_clear_icon_clicked" swapped="no"/> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">1</property> - </packing> - </child> + <property name="can_focus">True</property> + <property name="hexpand">True</property> + <property name="secondary_icon_name">edit-clear-symbolic</property> + <signal name="icon-release" handler="on_clear_icon_clicked" swapped="no"/> </object> <packing> - <property name="position">3</property> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">1</property> </packing> </child> </object> <packing> - <property name="left_attach">2</property> - <property name="top_attach">0</property> + <property name="position">3</property> </packing> </child> + <child type="tab"> + <placeholder/> + </child> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">2</property> + </packing> + </child> + <child> + <object class="GtkButton" id="zFindButton"> + <property name="label" translatable="yes" context="GUI|Installation Destination|Filter|zSeries">_Find</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="use_underline">True</property> + <signal name="clicked" handler="on_find_clicked" swapped="no"/> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">3</property> + </packing> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkScrolledWindow" id="zScrolledWindow"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="hexpand">True</property> + <property name="vexpand">True</property> + <property name="shadow_type">in</property> + <child> + <object class="GtkTreeView" id="zTreeView"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="hexpand">True</property> + <property name="vexpand">True</property> + <property name="model">zModel</property> + <property name="rules_hint">True</property> + <property name="enable_search">False</property> + <property name="enable_tree_lines">True</property> + <child internal-child="selection"> + <object class="GtkTreeSelection" id="z-selection"/> + </child> <child> - <object class="GtkComboBoxText" id="zTypeCombo"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <items> - <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 class="GtkTreeViewColumn" id="zSelectedCol"> + <child> + <object class="GtkCellRendererToggle" id="zSelectedRenderer"> + <signal name="toggled" handler="on_row_toggled" swapped="no"/> + </object> + <attributes> + <attribute name="sensitive">2</attribute> + <attribute name="visible">0</attribute> + <attribute name="active">1</attribute> + </attributes> + </child> </object> - <packing> - <property name="left_attach">1</property> - <property name="top_attach">0</property> - </packing> </child> <child> - <placeholder/> + <object class="GtkTreeViewColumn" id="zCCWCol"> + <property name="title" translatable="yes">CCW</property> + <property name="clickable">True</property> + <child> + <object class="GtkCellRendererText" id="zCCWRenderer"/> + <attributes> + <attribute name="sensitive">2</attribute> + <attribute name="visible">0</attribute> + <attribute name="text">15</attribute> + </attributes> + </child> + </object> + </child> + <child> + <object class="GtkTreeViewColumn" id="zNameCol"> + <property name="title" translatable="yes">Name</property> + <property name="clickable">True</property> + <child> + <object class="GtkCellRendererText" id="zNameRenderer"/> + <attributes> + <attribute name="sensitive">2</attribute> + <attribute name="visible">0</attribute> + <attribute name="text">3</attribute> + </attributes> + </child> + </object> + </child> + <child> + <object class="GtkTreeViewColumn" id="zTypeCol"> + <property name="title" translatable="yes">Type</property> + <property name="clickable">True</property> + <child> + <object class="GtkCellRendererText" id="zTypeRenderer"/> + <attributes> + <attribute name="sensitive">2</attribute> + <attribute name="visible">0</attribute> + <attribute name="text">4</attribute> + </attributes> + </child> + </object> + </child> + <child> + <object class="GtkTreeViewColumn" id="zCapacityCol"> + <property name="title" translatable="yes">Capacity</property> + <property name="clickable">True</property> + <child> + <object class="GtkCellRendererText" id="zCapacityRenderer"/> + <attributes> + <attribute name="sensitive">2</attribute> + <attribute name="visible">0</attribute> + <attribute name="text">6</attribute> + </attributes> + </child> + </object> + </child> + <child> + <object class="GtkTreeViewColumn" id="zWWPNCol"> + <property name="title" translatable="yes">WWPN</property> + <property name="clickable">True</property> + <child> + <object class="GtkCellRendererText" id="zWWPNRenderer"/> + <attributes> + <attribute name="sensitive">2</attribute> + <attribute name="visible">0</attribute> + <attribute name="text">16</attribute> + </attributes> + </child> + </object> + </child> + <child> + <object class="GtkTreeViewColumn" id="zLUNCol"> + <property name="title" translatable="yes">LUN</property> + <property name="clickable">True</property> + <child> + <object class="GtkCellRendererText" id="zLUNRenderer"/> + <attributes> + <attribute name="sensitive">2</attribute> + <attribute name="visible">0</attribute> + <attribute name="text">14</attribute> + </attributes> + </child> + </object> + </child> + <child> + <object class="GtkTreeViewColumn" id="zPortCol"> + <property name="title" translatable="yes">Port</property> + <property name="clickable">True</property> + <child> + <object class="GtkCellRendererText" id="zPortRenderer"/> + <attributes> + <attribute name="sensitive">2</attribute> + <attribute name="visible">0</attribute> + <attribute name="text">12</attribute> + </attributes> + </child> + </object> </child> </object> </child> </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> </child> </object> <packing> - <property name="position">4</property> + <property name="position">3</property> </packing> </child> <child type="tab"> @@ -1546,7 +1585,7 @@ <property name="use_underline">True</property> </object> <packing> - <property name="position">4</property> + <property name="position">3</property> <property name="tab_fill">False</property> </packing> </child> @@ -1558,7 +1597,7 @@ </packing> </child> <child> - <object class="GtkButtonBox" id="buttonbox1"> + <object class="GtkButtonBox" id="filterButtonBox"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="spacing">6</property> @@ -1652,7 +1691,6 @@ <property name="receives_default">True</property> <property name="halign">start</property> <property name="relief">none</property> - <property name="use_underline">True</property> <property name="focus_on_click">False</property> <property name="xalign">0</property> <signal name="clicked" handler="on_summary_clicked" swapped="no"/> diff --git a/pyanaconda/ui/gui/spokes/filter.py b/pyanaconda/ui/gui/spokes/filter.py index d3069a8..5ddedc0 100644 --- a/pyanaconda/ui/gui/spokes/filter.py +++ b/pyanaconda/ui/gui/spokes/filter.py @@ -528,27 +528,6 @@ def initialize(self): self._store = self.builder.get_object("diskStore") self._addDisksButton = self.builder.get_object("addDisksButton")
- # Connect focus events in scrolled viewport children to scrolling on the viewport - searchScrolledViewport = self.builder.get_object("searchScrolledViewport") - searchGrid = self.builder.get_object("searchGrid") - searchGrid.set_focus_hadjustment(searchScrolledViewport.get_hadjustment()) - searchGrid.set_focus_vadjustment(searchScrolledViewport.get_vadjustment()) - - multipathViewport = self.builder.get_object("multipathViewport") - multipathGrid = self.builder.get_object("multipathGrid") - multipathGrid.set_focus_hadjustment(multipathViewport.get_hadjustment()) - multipathGrid.set_focus_vadjustment(multipathViewport.get_vadjustment()) - - otherViewport = self.builder.get_object("otherViewport") - otherGrid = self.builder.get_object("otherGrid") - otherGrid.set_focus_hadjustment(otherViewport.get_hadjustment()) - otherGrid.set_focus_vadjustment(otherViewport.get_vadjustment()) - - zViewport = self.builder.get_object("zViewport") - zGrid = self.builder.get_object("zGrid") - zGrid.set_focus_hadjustment(zViewport.get_hadjustment()) - zGrid.set_focus_vadjustment(zViewport.get_vadjustment()) - def _real_ancestors(self, disk): # Return a list of all the ancestors of a disk, but remove the disk # itself from this list.
From: David Shea dshea@redhat.com
Just search as the search parameters change. Use timed_action with a largeish delay to allow someone to finish typing or set several parameters at a time before running the search. Don't set busy_cursor since it doesn't switch back until the animation has done a full revolution, and the search is usually finished well before then. --- pyanaconda/ui/gui/spokes/filter.glade | 73 +++++++---------------------------- pyanaconda/ui/gui/spokes/filter.py | 15 +++---- 2 files changed, 19 insertions(+), 69 deletions(-)
diff --git a/pyanaconda/ui/gui/spokes/filter.glade b/pyanaconda/ui/gui/spokes/filter.glade index af365ab..f7acb1c 100644 --- a/pyanaconda/ui/gui/spokes/filter.glade +++ b/pyanaconda/ui/gui/spokes/filter.glade @@ -197,6 +197,7 @@ <object class="GtkComboBoxText" id="searchPortCombo"> <property name="visible">True</property> <property name="can_focus">False</property> + <signal name="changed" handler="on_filter_changed" swapped="no"/> </object> <packing> <property name="expand">False</property> @@ -223,6 +224,7 @@ <property name="visible">True</property> <property name="can_focus">True</property> <property name="secondary_icon_name">edit-clear-symbolic</property> + <signal name="changed" handler="on_filter_changed" swapped="no"/> <signal name="icon-release" handler="on_clear_icon_clicked" swapped="no"/> </object> <packing> @@ -251,6 +253,7 @@ <property name="visible">True</property> <property name="can_focus">True</property> <property name="secondary_icon_name">edit-clear-symbolic</property> + <signal name="changed" handler="on_filter_changed" swapped="no"/> <signal name="icon-release" handler="on_clear_icon_clicked" swapped="no"/> </object> <packing> @@ -292,6 +295,7 @@ <property name="visible">True</property> <property name="can_focus">True</property> <property name="secondary_icon_name">edit-clear-symbolic</property> + <signal name="changed" handler="on_filter_changed" swapped="no"/> <signal name="icon-release" handler="on_clear_icon_clicked" swapped="no"/> </object> <packing> @@ -315,21 +319,6 @@ <property name="position">2</property> </packing> </child> - <child> - <object class="GtkButton" id="searchFindButton"> - <property name="label" translatable="yes" context="GUI|Installation Destination|Filter|Search">_Find</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">True</property> - <property name="use_underline">True</property> - <signal name="clicked" handler="on_find_clicked" swapped="no"/> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">3</property> - </packing> - </child> </object> <packing> <property name="expand">False</property> @@ -623,6 +612,7 @@ <property name="visible">True</property> <property name="can_focus">False</property> <property name="hexpand">True</property> + <signal name="changed" handler="on_filter_changed" swapped="no"/> </object> <packing> <property name="expand">True</property> @@ -663,6 +653,7 @@ <property name="visible">True</property> <property name="can_focus">False</property> <property name="hexpand">True</property> + <signal name="changed" handler="on_filter_changed" swapped="no"/> </object> <packing> <property name="expand">True</property> @@ -704,6 +695,7 @@ <property name="can_focus">True</property> <property name="hexpand">True</property> <property name="secondary_icon_name">edit-clear-symbolic</property> + <signal name="changed" handler="on_filter_changed" swapped="no"/> <signal name="icon-release" handler="on_clear_icon_clicked" swapped="no"/> </object> <packing> @@ -727,21 +719,6 @@ <property name="position">2</property> </packing> </child> - <child> - <object class="GtkButton" id="multipathFindButton"> - <property name="label" translatable="yes" context="GUI|Installation Destination|Filter|Multipath">_Find</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">True</property> - <property name="use_underline">True</property> - <signal name="clicked" handler="on_find_clicked" swapped="no"/> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">3</property> - </packing> - </child> </object> <packing> <property name="expand">False</property> @@ -969,6 +946,7 @@ <property name="visible">True</property> <property name="can_focus">False</property> <property name="hexpand">True</property> + <signal name="changed" handler="on_filter_changed" swapped="no"/> </object> <packing> <property name="expand">True</property> @@ -1009,6 +987,7 @@ <property name="visible">True</property> <property name="can_focus">False</property> <property name="hexpand">True</property> + <signal name="changed" handler="on_filter_changed" swapped="no"/> </object> <packing> <property name="expand">True</property> @@ -1050,6 +1029,7 @@ <property name="can_focus">True</property> <property name="hexpand">True</property> <property name="secondary_icon_name">edit-clear-symbolic</property> + <signal name="changed" handler="on_filter_changed" swapped="no"/> <signal name="icon-release" handler="on_clear_icon_clicked" swapped="no"/> </object> <packing> @@ -1073,21 +1053,6 @@ <property name="position">2</property> </packing> </child> - <child> - <object class="GtkButton" id="otherFindButton"> - <property name="label" translatable="yes" context="GUI|Installation Destination|Filter|Other">_Find</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">True</property> - <property name="use_underline">True</property> - <signal name="clicked" handler="on_find_clicked" swapped="no"/> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">3</property> - </packing> - </child> </object> <packing> <property name="expand">False</property> @@ -1301,6 +1266,7 @@ <property name="can_focus">True</property> <property name="hexpand">True</property> <property name="secondary_icon_name">edit-clear-symbolic</property> + <signal name="changed" handler="on_filter_changed" swapped="no"/> <signal name="icon-release" handler="on_clear_icon_clicked" swapped="no"/> </object> <packing> @@ -1343,6 +1309,7 @@ <property name="can_focus">True</property> <property name="hexpand">True</property> <property name="secondary_icon_name">edit-clear-symbolic</property> + <signal name="changed" handler="on_filter_changed" swapped="no"/> <signal name="icon-release" handler="on_clear_icon_clicked" swapped="no"/> </object> <packing> @@ -1386,6 +1353,7 @@ <property name="can_focus">True</property> <property name="hexpand">True</property> <property name="secondary_icon_name">edit-clear-symbolic</property> + <signal name="changed" handler="on_filter_changed" swapped="no"/> <signal name="icon-release" handler="on_clear_icon_clicked" swapped="no"/> </object> <packing> @@ -1409,21 +1377,6 @@ <property name="position">2</property> </packing> </child> - <child> - <object class="GtkButton" id="zFindButton"> - <property name="label" translatable="yes" context="GUI|Installation Destination|Filter|zSeries">_Find</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">True</property> - <property name="use_underline">True</property> - <signal name="clicked" handler="on_find_clicked" swapped="no"/> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">3</property> - </packing> - </child> </object> <packing> <property name="expand">False</property> diff --git a/pyanaconda/ui/gui/spokes/filter.py b/pyanaconda/ui/gui/spokes/filter.py index 5ddedc0..bb42031 100644 --- a/pyanaconda/ui/gui/spokes/filter.py +++ b/pyanaconda/ui/gui/spokes/filter.py @@ -606,7 +606,8 @@ def on_summary_clicked(self, button): dialog.refresh(disks, free_space, showRemove=False, setBoot=False) dialog.run()
- def on_find_clicked(self, button): + @timed_action(delay=1200, busy_cursor=False) + def on_filter_changed(self, *args): n = self._notebook.get_current_page() self.pages[n].filterActive = True self.pages[n].model.refilter() @@ -692,10 +693,9 @@ def on_search_type_changed(self, combo): ndx = combo.get_active()
notebook = self.builder.get_object("searchTypeNotebook") - findButton = self.builder.get_object("searchFindButton")
- findButton.set_sensitive(ndx != 0) notebook.set_current_page(ndx) + self.on_filter_changed()
## ## MULTIPATH TAB SIGNAL HANDLERS @@ -704,10 +704,9 @@ def on_multipath_type_changed(self, combo): ndx = combo.get_active()
notebook = self.builder.get_object("multipathTypeNotebook") - findButton = self.builder.get_object("multipathFindButton")
- findButton.set_sensitive(ndx != 0) notebook.set_current_page(ndx) + self.on_filter_changed()
## ## OTHER TAB SIGNAL HANDLERS @@ -716,10 +715,9 @@ def on_other_type_combo_changed(self, combo): ndx = combo.get_active()
notebook = self.builder.get_object("otherTypeNotebook") - findButton = self.builder.get_object("otherFindButton")
- findButton.set_sensitive(ndx != 0) notebook.set_current_page(ndx) + self.on_filter_changed()
## ## Z TAB SIGNAL HANDLERS @@ -728,7 +726,6 @@ def on_z_type_combo_changed(self, combo): ndx = combo.get_active()
notebook = self.builder.get_object("zTypeNotebook") - findButton = self.builder.get_object("zFindButton")
- findButton.set_sensitive(ndx != 0) notebook.set_current_page(ndx) + self.on_filter_changed()
Added label: rhel7-branch.
These all look good to me.
Added label: ACK.
Closed.
anaconda-patches@lists.fedorahosted.org