Rev 525: Show results in search window. in file:///data/jelmer/bzr-gtk/trunk/
Jelmer Vernooij
jelmer at samba.org
Tue Jul 1 15:42:57 BST 2008
At file:///data/jelmer/bzr-gtk/trunk/
------------------------------------------------------------
revno: 525
revision-id: jelmer at samba.org-20080701144256-x17f3oumt80tgl9j
parent: jelmer at samba.org-20080701140655-x5vui3c95jpwzjtc
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 search.py-20080701140205-dvpvrtf7n1qp2t8a-1
viz/branchwin.py branchwin.py-20051016222514-15fd120652fcf25c
=== 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 bazaar-commits
mailing list