/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 revbrowser.py

  • Committer: Vincent Ladeuil
  • Date: 2008-05-05 18:16:46 UTC
  • mto: (487.1.1 gtk)
  • mto: This revision was merged to the branch mainline in revision 490.
  • Revision ID: v.ladeuil+lp@free.fr-20080505181646-n95l8ltw2u6jtr26
Fix bug #187283 fix replacing _() by _i18n().

* genpot.sh 
Remove duplication. Add the ability to specify the genrated pot
file on command-line for debugging purposes.

* po/olive-gtk.pot:
Regenerated.

* __init__.py, branch.py, branchview/treeview.py, checkout.py,
commit.py, conflicts.py, diff.py, errors.py, initialize.py,
merge.py, nautilus-bzr.py, olive/__init__.py, olive/add.py,
olive/bookmark.py, olive/guifiles.py, olive/info.py,
olive/menu.py, olive/mkdir.py, olive/move.py, olive/remove.py,
olive/rename.py, push.py, revbrowser.py, status.py, tags.py:
Replace all calls to _() by calls to _i18n(), the latter being
defined in __init__.py and imported in the other modules from
there. This fix the problem encountered countless times when
running bzr selftest and getting silly error messages about
boolean not being callables.

Show diffs side-by-side

added added

removed removed

Lines of Context:
26
26
import gtk
27
27
 
28
28
from bzrlib.osutils import format_date
 
29
from bzrlib.plugins.gtk import _i18n
 
30
from bzrlib.plugins.gtk.branchview.treeview import TreeView
29
31
 
30
32
 
31
33
class RevisionBrowser(gtk.Dialog):
40
42
        self.branch = branch
41
43
        
42
44
        # Create the widgets
43
 
        self._hbox = gtk.HBox()
44
 
        self._image_loading = gtk.image_new_from_stock(gtk.STOCK_REFRESH, gtk.ICON_SIZE_BUTTON)
45
 
        self._label_loading = gtk.Label(_("Please wait, revisions are being loaded..."))
46
 
        self._scrolledwindow = gtk.ScrolledWindow()
47
 
        self._treeview = gtk.TreeView()
48
 
        self._button_select = gtk.Button(_("_Select"), use_underline=True)
 
45
        self._button_select = gtk.Button(_i18n("_Select"), use_underline=True)
 
46
        start_revs = [branch.last_revision(),]
 
47
        self.treeview = TreeView(branch, start_revs, None)
49
48
        
50
49
        # Set callbacks
51
50
        self._button_select.connect('clicked', self._on_select_clicked)
52
 
        self._treeview.connect('row-activated', self._on_treeview_row_activated)
 
51
        self.treeview.connect('revision-activated',
 
52
                               self._on_treeview_revision_activated)
53
53
        
54
54
        # Set properties
55
 
        self._scrolledwindow.set_policy(gtk.POLICY_AUTOMATIC,
56
 
                                        gtk.POLICY_AUTOMATIC)
 
55
        self.set_default_size(600, 400)
57
56
        self.vbox.set_spacing(3)
58
 
        self.set_default_size(600, 400)
59
 
        self._label_loading.set_alignment(0.0, 0.5)
60
 
        self._hbox.set_spacing(5)
61
 
        self._hbox.set_border_width(5)
62
 
        
63
 
        # Construct the TreeView columns
64
 
        self._treeview.append_column(gtk.TreeViewColumn(_('Revno'),
65
 
                                     gtk.CellRendererText(), text=0))
66
 
        self._treeview.append_column(gtk.TreeViewColumn(_('Summary'),
67
 
                                     gtk.CellRendererText(), text=1))
68
 
        self._treeview.append_column(gtk.TreeViewColumn(_('Committer'),
69
 
                                     gtk.CellRendererText(), text=2))
70
 
        self._treeview.append_column(gtk.TreeViewColumn(_('Time'),
71
 
                                     gtk.CellRendererText(), text=3))
72
 
        self._treeview.get_column(1).get_cell_renderers()[0].set_property("width-chars", 40)
73
 
        self._treeview.get_column(2).get_cell_renderers()[0].set_property("width-chars", 40)
74
 
        self._treeview.get_column(3).get_cell_renderers()[0].set_property("width-chars", 40)
 
57
        self.treeview.set_property('graph-column-visible', False)
 
58
        self.treeview.set_property('date-column-visible', True)
 
59
        self.treeview.set_property('mainline-only', True)
75
60
        
76
61
        # Construct the dialog
77
62
        self.action_area.pack_end(self._button_select)
78
63
        
79
 
        self._scrolledwindow.add(self._treeview)
80
 
        
81
 
        self._hbox.pack_start(self._image_loading, False, False)
82
 
        self._hbox.pack_start(self._label_loading, True, True)
83
 
        
84
 
        self.vbox.pack_start(self._hbox, False, False)
85
 
        self.vbox.pack_start(self._scrolledwindow, True, True)
 
64
        self.vbox.pack_start(self.treeview, True, True)
86
65
 
87
66
        # Show the dialog
88
67
        self.show_all()
89
 
        
90
 
        # Fill up with revisions
91
 
        self._fill_revisions()
92
 
 
93
 
    def _fill_revisions(self):
94
 
        """ Fill up the treeview with the revisions. """
95
 
        # [ revno, message, committer, timestamp, revid ]
96
 
        self.model = gtk.ListStore(gobject.TYPE_STRING,
97
 
                                   gobject.TYPE_STRING,
98
 
                                   gobject.TYPE_STRING,
99
 
                                   gobject.TYPE_STRING,
100
 
                                   gobject.TYPE_STRING)
101
 
        self._treeview.set_model(self.model)
102
 
 
103
 
        repo = self.branch.repository
104
 
        revs = self.branch.revision_history()
105
 
        r = repo.get_revisions(revs)
106
 
        r.reverse()
107
 
 
108
 
        for rev in r:
109
 
            if rev.committer is not None:
110
 
                timestamp = format_date(rev.timestamp, rev.timezone)
111
 
            else:
112
 
                timestamp = None
113
 
            self.model.append([ self.branch.revision_id_to_revno(rev.revision_id),
114
 
                                rev.get_summary(),
115
 
                                rev.committer,
116
 
                                timestamp,
117
 
                                rev.revision_id ])
118
 
            while gtk.events_pending():
119
 
                gtk.main_iteration()
120
 
        tend = time.time()
121
 
        
122
 
        # Finished loading
123
 
        self._hbox.hide()
124
 
    
125
 
    def _get_selected_revno(self):
126
 
        """ Return the selected revision's revno. """
127
 
        treeselection = self._treeview.get_selection()
128
 
        (model, iter) = treeselection.get_selected()
129
 
        
130
 
        if iter is None:
131
 
            return None
132
 
        else:
133
 
            return model.get_value(iter, 0)
134
 
    
135
 
    def _get_selected_revid(self):
136
 
        """ Return the selected revision's revid. """
137
 
        treeselection = self._treeview.get_selection()
138
 
        (model, iter) = treeselection.get_selected()
139
 
        
140
 
        if iter is None:
141
 
            return None
142
 
        else:
143
 
            return model.get_value(iter, 4)
144
 
    
145
 
    def _on_treeview_row_activated(self, treeview, path, column):
 
68
 
 
69
    
 
70
    def _on_treeview_revision_activated(self, treeview, path, column):
146
71
        """ Double-click on a row should also select a revision. """
147
72
        self._on_select_clicked(treeview)
148
73
    
149
74
    def _on_select_clicked(self, widget):
150
75
        """ Select button clicked handler. """
151
 
        self.selected_revno = self._get_selected_revno()
152
 
        self.selected_revid = self._get_selected_revid()
 
76
        
 
77
        self.selected_revno = self.treeview.get_property('revision-number')
 
78
        self.selected_revid = \
 
79
                    self.treeview.get_property('revision').revision_id
153
80
        self.response(gtk.RESPONSE_OK)