/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 viz/branchwin.py

  • Committer: Daniel Schierbeck
  • Date: 2007-09-23 18:32:58 UTC
  • mto: This revision was merged to the branch mainline in revision 281.
  • Revision ID: daniel.schierbeck@gmail.com-20070923183258-5tuaytxe3u2bqh62
Switched to handle the 'changed' signal from the treeview's treeselection instead of the 'cursor-changed' signal from the treeview itself, allowing more flexibility (particularly the ability to handle programmatic selections)

Show diffs side-by-side

added added

removed removed

Lines of Context:
77
77
        self.treeview = gtk.TreeView()
78
78
        self.treeview.set_rules_hint(True)
79
79
        self.treeview.set_search_column(4)
80
 
        self.treeview.connect("cursor-changed", self._treeview_cursor_cb)
 
80
        self.treeview.get_selection().connect("changed", self._treeselection_changed_cb)
81
81
        self.treeview.connect("row-activated", self._treeview_row_activated_cb)
82
82
        self.treeview.connect("button-release-event", 
83
83
                self._treeview_row_mouseclick)
204
204
                break
205
205
        self.treeview.set_model(self.model)
206
206
        self.treeview.get_selection().select_path(0)
207
 
        self.logview.set_revision(self.model[0][0], []) # TODO: Send tags as well
208
207
        return False
209
208
    
210
209
    def _on_key_pressed(self, widget, event):
223
222
    def _on_key_press_q(self, event):
224
223
        if event.state & gtk.gdk.CONTROL_MASK:
225
224
            gtk.main_quit()
226
 
    
227
 
    def _treeview_cursor_cb(self, *args):
228
 
        """Callback for when the treeview cursor changes."""
229
 
        (path, col) = self.treeview.get_cursor()
230
 
        revision = self.model[path][0]
231
 
 
232
 
        self.back_button.set_sensitive(len(self.parent_ids[revision]) > 0)
233
 
        self.fwd_button.set_sensitive(len(self.children[revision]) > 0)
234
 
        tags = []
235
 
        if self.branch.supports_tags():
236
 
            tagdict = self.branch.tags.get_reverse_tag_dict()
237
 
            if tagdict.has_key(revision.revision_id):
238
 
                tags = tagdict[revision.revision_id]
239
 
        self.logview.set_revision(revision, tags)
 
225
 
 
226
    def _treeselection_changed_cb(self, selection, *args):
 
227
        """Callback for when the treeview changes."""
 
228
        (model, selected_rows) = selection.get_selected_rows()
 
229
        if len(selected_rows) > 0:
 
230
            revision = self.model[selected_rows[0]][0]
 
231
 
 
232
            self.back_button.set_sensitive(len(self.parent_ids[revision]) > 0)
 
233
            self.fwd_button.set_sensitive(len(self.children[revision]) > 0)
 
234
            tags = []
 
235
            if self.branch.supports_tags():
 
236
                tagdict = self.branch.tags.get_reverse_tag_dict()
 
237
                if tagdict.has_key(revision.revision_id):
 
238
                    tags = tagdict[revision.revision_id]
 
239
            self.logview.set_revision(revision, tags)
240
240
 
241
241
    def _back_clicked_cb(self, *args):
242
242
        """Callback for when the back button is clicked."""