~kiddo/bzr-gtk/fixes

« back to all changes in this revision

Viewing changes to branchview/treeview.py

  • Committer: Jean-François Fortin Tam
  • Date: 2008-02-11 04:05:50 UTC
  • mfrom: (324.1.110 trunk)
  • Revision ID: jeff@kaname-20080211040550-11stndd0qhnva2qu
merge from trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
74
74
                             ()),
75
75
        'revision-selected': (gobject.SIGNAL_RUN_FIRST,
76
76
                              gobject.TYPE_NONE,
77
 
                              ())
 
77
                              ()),
 
78
        'tag-added': (gobject.SIGNAL_RUN_FIRST,
 
79
                              gobject.TYPE_NONE,
 
80
                              (gobject.TYPE_STRING, gobject.TYPE_STRING))
78
81
    }
79
82
 
80
83
    def __init__(self, branch, start, maxnum, compact=True):
94
97
 
95
98
        self.construct_treeview()
96
99
 
97
 
        self.iter   = None
 
100
        self.iter = None
98
101
        self.branch = branch
 
102
        self.revision = None
99
103
 
100
104
        self.start = start
101
105
        self.maxnum = maxnum
167
171
        :return: list of revision ids.
168
172
        """
169
173
        return self.get_property('parents')
 
174
 
 
175
    def add_tag(self, tag, revid=None):
 
176
        if revid is None: revid = self.revision.revision_id
 
177
 
 
178
        try:
 
179
            self.branch.unlock()
 
180
 
 
181
            try:
 
182
                self.branch.lock_write()
 
183
                self.model.add_tag(tag, revid)
 
184
            finally:
 
185
                self.branch.unlock()
 
186
 
 
187
        finally:
 
188
            self.branch.lock_read()
 
189
 
 
190
        self.emit('tag-added', tag, revid)
170
191
        
171
192
    def refresh(self):
172
193
        gobject.idle_add(self.populate, self.get_revision())
233
254
                                                        self.maxnum, 
234
255
                                                        broken_line_length)
235
256
 
236
 
        self.model = TreeModel(self.branch.repository, linegraphdata)
 
257
        self.model = TreeModel(self.branch, linegraphdata)
237
258
        self.graph_cell.columns_len = columns_len
238
259
        width = self.graph_cell.get_size(self.treeview)[2]
239
260
        if width > 500:
317
338
        self.graph_column.set_sizing(gtk.TREE_VIEW_COLUMN_FIXED)
318
339
        self.graph_column.pack_start(self.graph_cell, expand=False)
319
340
        self.graph_column.add_attribute(self.graph_cell, "node", treemodel.NODE)
 
341
        self.graph_column.add_attribute(self.graph_cell, "tags", treemodel.TAGS)
320
342
        self.graph_column.add_attribute(self.graph_cell, "in-lines", treemodel.LAST_LINES)
321
343
        self.graph_column.add_attribute(self.graph_cell, "out-lines", treemodel.LINES)
322
344
        self.treeview.append_column(self.graph_column)
324
346
        cell = gtk.CellRendererText()
325
347
        cell.set_property("width-chars", 65)
326
348
        cell.set_property("ellipsize", pango.ELLIPSIZE_END)
327
 
        self.msg_column = gtk.TreeViewColumn("Message")
328
 
        self.msg_column.set_resizable(True)
329
 
        self.msg_column.set_sizing(gtk.TREE_VIEW_COLUMN_FIXED)
330
 
        self.msg_column.set_fixed_width(cell.get_size(self.treeview)[2])
331
 
        self.msg_column.pack_start(cell, expand=True)
332
 
        self.msg_column.add_attribute(cell, "markup", treemodel.MESSAGE)
333
 
        self.treeview.append_column(self.msg_column)
 
349
        self.summary_column = gtk.TreeViewColumn("Summary")
 
350
        self.summary_column.set_resizable(True)
 
351
        self.summary_column.set_sizing(gtk.TREE_VIEW_COLUMN_FIXED)
 
352
        self.summary_column.set_fixed_width(cell.get_size(self.treeview)[2])
 
353
        self.summary_column.pack_start(cell, expand=True)
 
354
        self.summary_column.add_attribute(cell, "markup", treemodel.SUMMARY)
 
355
        self.treeview.append_column(self.summary_column)
334
356
 
335
357
        cell = gtk.CellRendererText()
336
358
        cell.set_property("width-chars", 15)
340
362
        self.committer_column.set_sizing(gtk.TREE_VIEW_COLUMN_FIXED)
341
363
        self.committer_column.set_fixed_width(cell.get_size(self.treeview)[2])
342
364
        self.committer_column.pack_start(cell, expand=True)
343
 
        self.committer_column.add_attribute(cell, "text", treemodel.COMMITER)
 
365
        self.committer_column.add_attribute(cell, "text", treemodel.COMMITTER)
344
366
        self.treeview.append_column(self.committer_column)
345
367
 
346
368
        cell = gtk.CellRendererText()
368
390
            menu = RevisionPopupMenu(self.branch.repository, 
369
391
                [self.get_revision().revision_id],
370
392
                self.branch)
 
393
            menu.connect('tag-added', lambda w, t, r: self.add_tag(t, r))
371
394
            menu.popup(None, None, None, event.button, event.get_time())
372
395
 
373
396
    def _on_revision_activated(self, widget, path, col):