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()