/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: David Planella
  • Date: 2010-08-21 09:32:13 UTC
  • mto: This revision was merged to the branch mainline in revision 719.
  • Revision ID: david.planella@ubuntu.com-20100821093213-njpqd5sploa8n71m
Adapted desktop entries for translation

Show diffs side-by-side

added added

removed removed

Lines of Context:
48
48
        self.maxnum      = maxnum
49
49
        self.config      = GlobalConfig()
50
50
 
51
 
        self._sizes      = {} # window and widget sizes
52
 
 
53
51
        if self.config.get_user_option('viz-compact-view') == 'yes':
54
52
            self.compact_view = True
55
53
        else:
56
54
            self.compact_view = False
57
55
 
58
 
        self.set_title(branch.nick + " - revision history")
 
56
        self.set_title(branch._get_nick(local=True) + " - revision history")
59
57
 
60
58
        # user-configured window size
61
59
        size = self._load_size('viz-window-size')
69
67
            height = int(monitor.height * 0.75)
70
68
        self.set_default_size(width, height)
71
69
        self.set_size_request(width/3, height/3)
72
 
        self.connect("size-allocate", self._on_size_allocate, 'viz-window-size')
 
70
        self._save_size_on_destroy(self, 'viz-window-size')
73
71
 
74
72
        # FIXME AndyFitz!
75
73
        icon = self.render_icon(gtk.STOCK_INDEX, gtk.ICON_SIZE_BUTTON)
104
102
 
105
103
        self.construct()
106
104
 
 
105
    def _save_size_on_destroy(self, widget, config_name):
 
106
        """Creates a hook that saves the size of widget to config option 
 
107
           config_name when the window is destroyed/closed."""
 
108
        def save_size(src):
 
109
            width, height = widget.allocation.width, widget.allocation.height
 
110
            value = '%sx%s' % (width, height)
 
111
            self.config.set_user_option(config_name, value)
 
112
        self.connect("destroy", save_size)
 
113
 
107
114
    def set_revision(self, revid):
108
115
        self.treeview.set_revision_id(revid)
109
116
 
125
132
        vbox.pack_start(self.paned, expand=True, fill=True)
126
133
        vbox.set_focus_child(self.paned)
127
134
 
 
135
        self.treeview.connect('revision-selected',
 
136
                self._treeselection_changed_cb)
 
137
        self.treeview.connect('revision-activated',
 
138
                self._tree_revision_activated)
 
139
 
 
140
        self.treeview.connect('tag-added', lambda w, t, r: self._update_tags())
128
141
        vbox.show()
129
142
    
130
143
    def construct_menubar(self):
230
243
        tag_image.set_from_file(icon_path("tag-16.png"))
231
244
        self.go_menu_tags = gtk.ImageMenuItem("_Tags")
232
245
        self.go_menu_tags.set_image(tag_image)
233
 
        self._update_tags()
 
246
        self.treeview.connect('refreshed', lambda w: self._update_tags())
234
247
 
235
248
        go_menu.add(go_menu_next)
236
249
        go_menu.add(go_menu_prev)
289
302
 
290
303
        self.treeview = TreeView(self.branch, self.start_revs, self.maxnum, self.compact_view)
291
304
 
292
 
        self.treeview.connect('revision-selected',
293
 
                self._treeselection_changed_cb)
294
 
        self.treeview.connect('revision-activated',
295
 
                self._tree_revision_activated)
296
 
 
297
 
        self.treeview.connect('tag-added', lambda w, t, r: self._update_tags())
298
 
 
299
305
        for col in ["revno", "date"]:
300
306
            option = self.config.get_user_option(col + '-column-visible')
301
307
            if option is not None:
316
322
        else:
317
323
            (width, height) = self.get_size()
318
324
            align.set_size_request(width, int(height / 2.5))
319
 
        align.connect('size-allocate', self._on_size_allocate, 'viz-graph-size')
 
325
        self._save_size_on_destroy(align, 'viz-graph-size')
320
326
        align.show()
321
327
 
322
328
        return align
359
365
        if size:
360
366
            width, height = size
361
367
            self.revisionview.set_size_request(width, height)
362
 
        self.revisionview.connect('size-allocate', self._on_size_allocate, 'viz-revisionview-size')
 
368
        self._save_size_on_destroy(self.revisionview, 'viz-revisionview-size')
363
369
        self.revisionview.show()
364
370
        self.revisionview.set_show_callback(self._show_clicked_cb)
365
371
        self.revisionview.connect('notify::revision', self._go_clicked_cb)
440
446
        parents  = self.treeview.get_parents()
441
447
 
442
448
        if len(parents) == 0:
443
 
            parent_id = None
 
449
            parent_id = NULL_REVISION
444
450
        else:
445
451
            parent_id = parents[0]
446
452
 
572
578
 
573
579
        if self.branch.supports_tags():
574
580
            tags = self.branch.tags.get_tag_dict().items()
575
 
            tags.sort()
576
 
            tags.reverse()
 
581
            tags.sort(reverse=True)
577
582
            for tag, revid in tags:
578
583
                tag_image = gtk.Image()
579
584
                tag_image.set_from_file(icon_path('tag-16.png'))
580
585
                tag_item = gtk.ImageMenuItem(tag.replace('_', '__'))
581
586
                tag_item.set_image(tag_image)
582
587
                tag_item.connect('activate', self._tag_selected_cb, revid)
 
588
                tag_item.set_sensitive(self.treeview.has_revision_id(revid))
583
589
                menu.add(tag_item)
584
590
            self.go_menu_tags.set_submenu(menu)
585
591
 
598
604
        if size:
599
605
            width, height = [int(num) for num in size.split('x')]
600
606
            # avoid writing config every time we start
601
 
            self._sizes[name] = (width, height)
602
607
            return width, height
603
608
        return None
604
609
 
605
 
    def _on_size_allocate(self, widget, allocation, name):
606
 
        """When window has been resized, save the new size."""
607
 
        width, height = 0, 0
608
 
        if name in self._sizes:
609
 
            width, height = self._sizes[name]
610
 
 
611
 
        size_changed = (width != allocation.width) or \
612
 
                (height != allocation.height)
613
 
 
614
 
        if size_changed:
615
 
            width, height = allocation.width, allocation.height
616
 
            self._sizes[name] = (width, height)
617
 
            value = '%sx%s' % (width, height)
618
 
            self.config.set_user_option(name, value)
619
 
 
620
 
    def show_diff(self, revid=None, parentid=None):
 
610
    def show_diff(self, revid=None, parentid=NULL_REVISION):
621
611
        """Open a new window to show a diff between the given revisions."""
622
612
        from bzrlib.plugins.gtk.diff import DiffWindow
623
613
        window = DiffWindow(parent=self)
624
614
 
625
 
        if parentid is None:
626
 
            parentid = NULL_REVISION
627
 
 
628
615
        rev_tree    = self.branch.repository.revision_tree(revid)
629
616
        parent_tree = self.branch.repository.revision_tree(parentid)
630
617
 
631
 
        description = revid + " - " + self.branch.nick
 
618
        description = revid + " - " + self.branch._get_nick(local=True)
632
619
        window.set_diff(description, rev_tree, parent_tree)
633
620
        window.show()
634
621
 
639
626
 
640
627
        if not revision: # default to selected row
641
628
            revision = self.treeview.get_revision()
642
 
        if (not revision) or (revision == NULL_REVISION):
 
629
        if revision == NULL_REVISION:
643
630
            return
644
631
 
645
632
        if not parents: # default to selected row's parents
646
633
            parents  = self.treeview.get_parents()
647
634
        if len(parents) == 0:
648
 
            parent_id = None
 
635
            parent_id = NULL_REVISION
649
636
        else:
650
637
            parent_id = parents[0]
651
638