/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: Jelmer Vernooij
  • Date: 2008-06-29 19:34:29 UTC
  • mto: This revision was merged to the branch mainline in revision 520.
  • Revision ID: jelmer@samba.org-20080629193429-ir2ilmbko6qkubg5
Add Branch/Index option if bzr-search is available.

Show diffs side-by-side

added added

removed removed

Lines of Context:
18
18
from bzrlib.plugins.gtk.tags import AddTagDialog
19
19
from bzrlib.plugins.gtk.preferences import PreferencesWindow
20
20
from bzrlib.plugins.gtk.branchview import TreeView, treemodel
 
21
 
 
22
from bzrlib.config import BranchConfig, GlobalConfig
21
23
from bzrlib.revision import Revision, NULL_REVISION
22
 
from bzrlib.config import BranchConfig
23
 
from bzrlib.config import GlobalConfig
 
24
from bzrlib.trace import mutter
24
25
 
25
26
class BranchWindow(Window):
26
27
    """Branch window.
66
67
 
67
68
        gtk.accel_map_add_entry("<viz>/Go/Next Revision", gtk.keysyms.Up, gtk.gdk.MOD1_MASK)
68
69
        gtk.accel_map_add_entry("<viz>/Go/Previous Revision", gtk.keysyms.Down, gtk.gdk.MOD1_MASK)
 
70
        gtk.accel_map_add_entry("<viz>/View/Refresh", gtk.keysyms.F5, 0)
69
71
 
70
72
        self.accel_group = gtk.AccelGroup()
71
73
        self.add_accel_group(self.accel_group)
84
86
        self.next_rev_action.connect("activate", self._fwd_clicked_cb)
85
87
        self.next_rev_action.connect_accelerator()
86
88
 
 
89
        self.refresh_action = gtk.Action("refresh", "_Refresh", "Refresh view", gtk.STOCK_REFRESH)
 
90
        self.refresh_action.set_accel_path("<viz>/View/Refresh")
 
91
        self.refresh_action.set_accel_group(self.accel_group)
 
92
        self.refresh_action.connect("activate", self._refresh_clicked)
 
93
        self.refresh_action.connect_accelerator()
 
94
 
87
95
        self.construct()
88
96
 
89
97
    def set_revision(self, revid):
144
152
        view_menuitem = gtk.MenuItem("_View")
145
153
        view_menuitem.set_submenu(view_menu)
146
154
 
 
155
        view_menu_refresh = self.refresh_action.create_menu_item()
 
156
        view_menu_refresh.connect('activate', self._refresh_clicked)
 
157
 
 
158
        view_menu.add(view_menu_refresh)
 
159
        view_menu.add(gtk.SeparatorMenuItem())
 
160
 
147
161
        view_menu_toolbar = gtk.CheckMenuItem("Show Toolbar")
148
162
        view_menu_toolbar.set_active(True)
149
163
        view_menu_toolbar.connect('toggled', self._toolbar_visibility_changed)
195
209
 
196
210
        revision_menu_diff = gtk.MenuItem("View Changes")
197
211
        revision_menu_diff.connect('activate', 
198
 
                lambda w: self.treeview.show_diff())
 
212
                self._menu_diff_cb)
199
213
        
200
214
        revision_menu_compare = gtk.MenuItem("Compare with...")
201
215
        revision_menu_compare.connect('activate',
202
216
                self._compare_with_cb)
203
 
        
 
217
 
204
218
        revision_menu_tag = gtk.MenuItem("Tag Revision")
205
219
        revision_menu_tag.connect('activate', self._tag_revision_cb)
206
220
 
215
229
        branch_menu.add(gtk.MenuItem("Pu_ll Revisions"))
216
230
        branch_menu.add(gtk.MenuItem("Pu_sh Revisions"))
217
231
 
 
232
        try:
 
233
            from bzrlib.plugins import search
 
234
        except ImportError:
 
235
            mutter("Didn't find search plugin")
 
236
        else:
 
237
            branch_index_menuitem = gtk.MenuItem("_Index")
 
238
            branch_index_menuitem.connect('activate', self._branch_index_cb)
 
239
            branch_menu.add(branch_index_menuitem)
 
240
 
218
241
        help_menu = gtk.Menu()
219
242
        help_menuitem = gtk.MenuItem("_Help")
220
243
        help_menuitem.set_submenu(help_menu)
306
329
        parents  = self.treeview.get_parents()
307
330
        children = self.treeview.get_children()
308
331
 
309
 
        if revision is not None:
 
332
        if revision and revision != NULL_REVISION:
310
333
            prev_menu = gtk.Menu()
311
334
            if len(parents) > 0:
312
335
                self.prev_rev_action.set_sensitive(True)
313
336
                for parent_id in parents:
314
 
                    parent = self.branch.repository.get_revision(parent_id)
315
 
                    try:
316
 
                        str = ' (' + parent.properties['branch-nick'] + ')'
317
 
                    except KeyError:
318
 
                        str = ""
 
337
                    if parent_id and parent_id != NULL_REVISION:
 
338
                        parent = self.branch.repository.get_revision(parent_id)
 
339
                        try:
 
340
                            str = ' (' + parent.properties['branch-nick'] + ')'
 
341
                        except KeyError:
 
342
                            str = ""
319
343
 
320
 
                    item = gtk.MenuItem(parent.message.split("\n")[0] + str)
321
 
                    item.connect('activate', self._set_revision_cb, parent_id)
322
 
                    prev_menu.add(item)
 
344
                        item = gtk.MenuItem(parent.message.split("\n")[0] + str)
 
345
                        item.connect('activate', self._set_revision_cb, parent_id)
 
346
                        prev_menu.add(item)
323
347
                prev_menu.show_all()
324
348
            else:
325
349
                self.prev_rev_action.set_sensitive(False)
363
387
 
364
388
        self.show_diff(revision.revision_id, parent_id)
365
389
        self.treeview.grab_focus()
366
 
    
 
390
        
 
391
    def _menu_diff_cb(self,w):
 
392
        (path, focus) = self.treeview.treeview.get_cursor()
 
393
        revid = self.treeview.model[path][treemodel.REVID]
 
394
        
 
395
        parentids = self.branch.repository.revision_parents(revid)
 
396
 
 
397
        if len(parentids) == 0:
 
398
            parentid = NULL_REVISION
 
399
        else:
 
400
            parentid = parentids[0]
 
401
        
 
402
        self.show_diff(revid,parentid)    
367
403
 
368
404
    def _back_clicked_cb(self, *args):
369
405
        """Callback for when the back button is clicked."""
430
466
        finally:
431
467
            self.treeview.set_sensitive(True)
432
468
 
 
469
    def _branch_index_cb(self, w):
 
470
        from bzrlib.plugins.search import index as _mod_index
 
471
        _mod_index.index_url(self.branch.base)
 
472
 
433
473
    def _about_dialog_cb(self, w):
434
474
        from bzrlib.plugins.gtk.about import AboutDialog
435
475