16
from bzrlib.plugins.gtk.window import Window
17
16
from bzrlib.plugins.gtk import icon_path
17
from bzrlib.plugins.gtk.branchview import TreeView, treemodel
18
18
from bzrlib.plugins.gtk.tags import AddTagDialog
19
19
from bzrlib.plugins.gtk.preferences import PreferencesWindow
20
from bzrlib.plugins.gtk.branchview import TreeView, treemodel
20
from bzrlib.plugins.gtk.revisionmenu import RevisionMenu
21
from bzrlib.plugins.gtk.window import Window
22
23
from bzrlib.config import BranchConfig, GlobalConfig
23
24
from bzrlib.revision import Revision, NULL_REVISION
203
204
go_menu.add(gtk.SeparatorMenuItem())
204
205
go_menu.add(self.go_menu_tags)
206
revision_menu = gtk.Menu()
207
self.revision_menu = RevisionMenu(self.branch.repository, [], self.branch, parent=self)
207
208
revision_menuitem = gtk.MenuItem("_Revision")
208
revision_menuitem.set_submenu(revision_menu)
210
revision_menu_diff = gtk.MenuItem("View Changes")
211
revision_menu_diff.connect('activate',
214
revision_menu_compare = gtk.MenuItem("Compare with...")
215
revision_menu_compare.connect('activate',
216
self._compare_with_cb)
218
revision_menu_tag = gtk.MenuItem("Tag Revision")
219
revision_menu_tag.connect('activate', self._tag_revision_cb)
221
revision_menu.add(revision_menu_tag)
222
revision_menu.add(revision_menu_diff)
223
revision_menu.add(revision_menu_compare)
209
revision_menuitem.set_submenu(self.revision_menu)
225
211
branch_menu = gtk.Menu()
226
212
branch_menuitem = gtk.MenuItem("_Branch")
234
220
except ImportError:
235
221
mutter("Didn't find search plugin")
223
branch_menu.add(gtk.SeparatorMenuItem())
237
225
branch_index_menuitem = gtk.MenuItem("_Index")
238
226
branch_index_menuitem.connect('activate', self._branch_index_cb)
239
227
branch_menu.add(branch_index_menuitem)
229
branch_search_menuitem = gtk.MenuItem("_Search")
230
branch_search_menuitem.connect('activate', self._branch_search_cb)
231
branch_menu.add(branch_search_menuitem)
241
233
help_menu = gtk.Menu()
242
234
help_menuitem = gtk.MenuItem("_Help")
243
235
help_menuitem.set_submenu(help_menu)
388
382
self.show_diff(revision.revision_id, parent_id)
389
383
self.treeview.grab_focus()
391
def _menu_diff_cb(self,w):
392
(path, focus) = self.treeview.treeview.get_cursor()
393
revid = self.treeview.model[path][treemodel.REVID]
395
parentids = self.branch.repository.revision_parents(revid)
397
if len(parentids) == 0:
398
parentid = NULL_REVISION
400
parentid = parentids[0]
402
self.show_diff(revid,parentid)
404
385
def _back_clicked_cb(self, *args):
405
386
"""Callback for when the back button is clicked."""
406
387
self.treeview.back()
419
400
self.show_diff(revid, parentid)
420
401
self.treeview.grab_focus()
422
def _compare_with_cb(self,w):
423
"""Callback for revision 'compare with' menu. Will show a small
424
dialog with branch revisions to compare with selected revision in TreeView"""
426
from bzrlib.plugins.gtk.revbrowser import RevisionBrowser
428
rb = RevisionBrowser(self.branch,self)
431
if ret == gtk.RESPONSE_OK:
432
(path, focus) = self.treeview.treeview.get_cursor()
433
revid = self.treeview.model[path][treemodel.REVID]
434
self.show_diff(revid, rb.selected_revid)
438
403
def _set_revision_cb(self, w, revision_id):
439
404
self.treeview.set_revision_id(revision_id)
450
415
self.treeview.set_property('compact', self.compact_view)
451
416
self.treeview.refresh()
453
def _tag_revision_cb(self, w):
455
self.treeview.set_sensitive(False)
456
dialog = AddTagDialog(self.branch.repository, self.treeview.get_revision().revision_id, self.branch)
457
response = dialog.run()
458
if response != gtk.RESPONSE_NONE:
461
if response == gtk.RESPONSE_OK:
462
self.treeview.add_tag(dialog.tagname, dialog._revid)
467
self.treeview.set_sensitive(True)
469
418
def _branch_index_cb(self, w):
470
419
from bzrlib.plugins.search import index as _mod_index
471
420
_mod_index.index_url(self.branch.base)
422
def _branch_search_cb(self, w):
423
from bzrlib.plugins.search import index as _mod_index
424
from bzrlib.plugins.gtk.search import SearchDialog
425
from bzrlib.plugins.search import errors as search_errors
428
index = _mod_index.open_index_url(self.branch.base)
429
except search_errors.NoSearchIndex:
430
dialog = gtk.MessageDialog(self, type=gtk.MESSAGE_QUESTION,
431
buttons=gtk.BUTTONS_OK_CANCEL,
432
message_format="This branch has not been indexed yet. "
434
if dialog.run() == gtk.RESPONSE_OK:
435
index = _mod_index.index_url(self.branch.base)
439
dialog = SearchDialog(index)
441
if dialog.run() == gtk.RESPONSE_OK:
442
self.set_revision(dialog.get_revision())
473
446
def _about_dialog_cb(self, w):
474
447
from bzrlib.plugins.gtk.about import AboutDialog