8531 Allow a user to cancel a search in Package Manager GUI
authorPadraig O'Briain <padraig.obriain@sun.com>
Mon, 14 Dec 2009 08:00:28 +0000
changeset 1571 d66522ea16be
parent 1570 838ff2534e0b
child 1572 b1bcb39eb27c
8531 Allow a user to cancel a search in Package Manager GUI
src/packagemanager.py
--- a/src/packagemanager.py	Sat Dec 12 15:42:44 2009 -0800
+++ b/src/packagemanager.py	Mon Dec 14 08:00:28 2009 +0000
@@ -2200,7 +2200,7 @@
                         if pkgs != None:
                                 if stem in pkgs:
                                         marked = True
-                        # When switching after Manage Repository dialog
+                        # When switching after Manage Publisher dialog
                         # this assignment can cause bogus refilter
                         if pkg[enumerations.MARK_COLUMN] != marked:
                                 pkg[enumerations.MARK_COLUMN] = marked
@@ -2294,6 +2294,12 @@
                         self.__save_active_category(path)
                         selection.unselect_all()
 
+        def __process_after_cancel(self):
+                if self.is_all_publishers:
+                        self.__setup_before_all_publishers_mode()
+                else:
+                        self.__unset_search(True)
+
         def __process_after_search_failure(self):
                 self.__reset_search_start()
                 self.search_time_sec = 0
@@ -2399,10 +2405,9 @@
                                                 pub_prefix, text)
                                 return
                 except api_errors.CanceledException:
-                        # TBD. Currently search is not cancelable
-                        # so this should not happen, but the logic is in place
-                        # to support cancelable search.
+                        self.__reset_search_start()
                         gobject.idle_add(self.unset_busy_cursor)
+                        gobject.idle_add(self.__process_after_cancel)
                         return
                 except Exception, ex:
                         # We are not interested in this error