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
23
from bzrlib.config import BranchConfig, GlobalConfig
21
24
from bzrlib.revision import Revision, NULL_REVISION
22
from bzrlib.config import BranchConfig
23
from bzrlib.config import GlobalConfig
25
from bzrlib.trace import mutter
25
27
class BranchWindow(Window):
202
204
go_menu.add(gtk.SeparatorMenuItem())
203
205
go_menu.add(self.go_menu_tags)
205
revision_menu = gtk.Menu()
207
self.revision_menu = RevisionMenu(self.branch.repository, [], self.branch, parent=self)
206
208
revision_menuitem = gtk.MenuItem("_Revision")
207
revision_menuitem.set_submenu(revision_menu)
209
revision_menu_diff = gtk.MenuItem("View Changes")
210
revision_menu_diff.connect('activate',
213
revision_menu_compare = gtk.MenuItem("Compare with...")
214
revision_menu_compare.connect('activate',
215
self._compare_with_cb)
217
revision_menu_tag = gtk.MenuItem("Tag Revision")
218
revision_menu_tag.connect('activate', self._tag_revision_cb)
220
revision_menu.add(revision_menu_tag)
221
revision_menu.add(revision_menu_diff)
222
revision_menu.add(revision_menu_compare)
209
revision_menuitem.set_submenu(self.revision_menu)
224
211
branch_menu = gtk.Menu()
225
212
branch_menuitem = gtk.MenuItem("_Branch")
228
215
branch_menu.add(gtk.MenuItem("Pu_ll Revisions"))
229
216
branch_menu.add(gtk.MenuItem("Pu_sh Revisions"))
219
from bzrlib.plugins import search
221
mutter("Didn't find search plugin")
223
branch_menu.add(gtk.SeparatorMenuItem())
225
branch_index_menuitem = gtk.MenuItem("_Index")
226
branch_index_menuitem.connect('activate', self._branch_index_cb)
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)
231
233
help_menu = gtk.Menu()
232
234
help_menuitem = gtk.MenuItem("_Help")
233
235
help_menuitem.set_submenu(help_menu)
378
382
self.show_diff(revision.revision_id, parent_id)
379
383
self.treeview.grab_focus()
381
def _menu_diff_cb(self,w):
382
(path, focus) = self.treeview.treeview.get_cursor()
383
revid = self.treeview.model[path][treemodel.REVID]
385
parentids = self.branch.repository.revision_parents(revid)
387
if len(parentids) == 0:
388
parentid = NULL_REVISION
390
parentid = parentids[0]
392
self.show_diff(revid,parentid)
394
385
def _back_clicked_cb(self, *args):
395
386
"""Callback for when the back button is clicked."""
396
387
self.treeview.back()
409
400
self.show_diff(revid, parentid)
410
401
self.treeview.grab_focus()
412
def _compare_with_cb(self,w):
413
"""Callback for revision 'compare with' menu. Will show a small
414
dialog with branch revisions to compare with selected revision in TreeView"""
416
from bzrlib.plugins.gtk.revbrowser import RevisionBrowser
418
rb = RevisionBrowser(self.branch,self)
421
if ret == gtk.RESPONSE_OK:
422
(path, focus) = self.treeview.treeview.get_cursor()
423
revid = self.treeview.model[path][treemodel.REVID]
424
self.show_diff(revid, rb.selected_revid)
428
403
def _set_revision_cb(self, w, revision_id):
429
404
self.treeview.set_revision_id(revision_id)
440
415
self.treeview.set_property('compact', self.compact_view)
441
416
self.treeview.refresh()
443
def _tag_revision_cb(self, w):
418
def _branch_index_cb(self, w):
419
from bzrlib.plugins.search import index as _mod_index
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
445
self.treeview.set_sensitive(False)
446
dialog = AddTagDialog(self.branch.repository, self.treeview.get_revision().revision_id, self.branch)
447
response = dialog.run()
448
if response != gtk.RESPONSE_NONE:
451
if response == gtk.RESPONSE_OK:
452
self.treeview.add_tag(dialog.tagname, dialog._revid)
457
self.treeview.set_sensitive(True)
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())
459
446
def _about_dialog_cb(self, w):
460
447
from bzrlib.plugins.gtk.about import AboutDialog