[Pkg-bazaar-commits] ./bzr-gtk/unstable r525: Show results in search window.

Jelmer Vernooij jelmer at samba.org
Fri Apr 10 07:44:39 UTC 2009


------------------------------------------------------------
revno: 525
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: trunk
timestamp: Tue 2008-07-01 16:42:56 +0200
message:
  Show results in search window.
modified:
  search.py
  viz/branchwin.py
-------------- next part --------------
=== modified file 'search.py'
--- a/search.py	2008-07-01 14:06:55 +0000
+++ b/search.py	2008-07-01 14:42:56 +0000
@@ -20,9 +20,15 @@
 except:
     pass
 
-import gtk
+import gobject, gtk
 from bzrlib.plugins.search import index as _mod_index
 
+
+class SearchCompletion(gtk.EntryCompletion):
+    def __init__(self, index):
+        super(SearchCompletion, self).__init__()
+
+
 class SearchDialog(gtk.Dialog):
     """Search dialog."""
     def __init__(self, branch, parent=None):
@@ -33,6 +39,41 @@
     
         # Get arguments
         self.branch = branch
-        
+
+        self.index = _mod_index.open_index_url(branch.base)
+
+        self.searchbar = gtk.HBox()
+        self.searchentry = gtk.Entry()
+        self.searchentry.connect('activate', self._searchentry_activate)
+        self.searchentry.set_completion(SearchCompletion(self.index))
+        self.searchbar.add(self.searchentry)
+        self.vbox.pack_start(self.searchbar, expand=False, fill=False)
+
+        self.results_model = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_STRING)
+        self.results_treeview = gtk.TreeView(self.results_model)
+
+        documentname_column = gtk.TreeViewColumn("Document", gtk.CellRendererText(), text=0)
+        self.results_treeview.append_column(documentname_column)
+
+        summary_column = gtk.TreeViewColumn("Summary", gtk.CellRendererText(), text=1)
+        self.results_treeview.append_column(summary_column)
+
+        results_scrolledwindow = gtk.ScrolledWindow()
+        results_scrolledwindow.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC)
+        results_scrolledwindow.add(self.results_treeview)
+
+        self.vbox.pack_start(results_scrolledwindow, expand=True, fill=True)
+
+        self.set_default_size(600, 400)
         # Show the dialog
         self.show_all()
+
+    def _searchentry_activate(self, entry):
+        self.results_model.clear()
+        self.index._branch.lock_read()
+        try:
+            query = [(query_item,) for query_item in self.searchentry.get_text().split(" ")]
+            for result in self.index.search(query):
+                self.results_model.append([result.document_name(), result.summary()])
+        finally:
+            self.index._branch.unlock()

=== modified file 'viz/branchwin.py'
--- a/viz/branchwin.py	2008-07-01 14:06:55 +0000
+++ b/viz/branchwin.py	2008-07-01 14:42:56 +0000
@@ -476,7 +476,7 @@
 
     def _branch_search_cb(self, w):
         from bzrlib.plugins.gtk.search import SearchDialog
-        SearchDialog(self).run()
+        SearchDialog(self.branch).run()
 
     def _about_dialog_cb(self, w):
         from bzrlib.plugins.gtk.about import AboutDialog



More information about the Pkg-bazaar-commits mailing list