/b-gtk/fix-viz

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/b-gtk/fix-viz

« back to all changes in this revision

Viewing changes to search.py

  • Committer: Jelmer Vernooij
  • Date: 2008-07-01 14:52:31 UTC
  • Revision ID: jelmer@samba.org-20080701145231-dxgzwwypmhjo53lr
Switch to found revision when clicking ok in search window.

Show diffs side-by-side

added added

removed removed

Lines of Context:
35
35
        gtk.Dialog.__init__(self, title="Search Revisions",
36
36
                                  parent=parent,
37
37
                                  flags=gtk.DIALOG_MODAL,
38
 
                                  buttons=(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL))
 
38
                                  buttons=(gtk.STOCK_OK, gtk.RESPONSE_OK,
 
39
                                           gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL))
39
40
    
40
41
        # Get arguments
41
42
        self.branch = branch
49
50
        self.searchbar.add(self.searchentry)
50
51
        self.vbox.pack_start(self.searchbar, expand=False, fill=False)
51
52
 
52
 
        self.results_model = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_STRING)
 
53
        self.results_model = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_PYOBJECT)
53
54
        self.results_treeview = gtk.TreeView(self.results_model)
54
55
 
55
56
        documentname_column = gtk.TreeViewColumn("Document", gtk.CellRendererText(), text=0)
68
69
        # Show the dialog
69
70
        self.show_all()
70
71
 
 
72
    def get_revision(self):
 
73
        (path, focus) = self.results_treeview.get_cursor()
 
74
        if path is None:
 
75
            return None
 
76
        iter = self.results_model.get_iter(path)
 
77
        return self.results_model.get_value(iter, 2)
 
78
 
71
79
    def _searchentry_activate(self, entry):
72
80
        self.results_model.clear()
73
81
        self.index._branch.lock_read()
74
82
        try:
75
83
            query = [(query_item,) for query_item in self.searchentry.get_text().split(" ")]
76
84
            for result in self.index.search(query):
77
 
                self.results_model.append([result.document_name(), result.summary()])
 
85
                if isinstance(result, _mod_index.FileTextHit):
 
86
                    revid = result.text_key[-1]
 
87
                elif isinstance(result, _mod_index.RevisionHit):
 
88
                    revid = result.revision_key[0]
 
89
                else:
 
90
                    raise AssertionError()
 
91
                self.results_model.append([result.document_name(), result.summary(), revid])
78
92
        finally:
79
93
            self.index._branch.unlock()