# HG changeset patch # User Adrian Buehlmann <adr...@cadifra.com> # Date 1255558750 -7200 # Node ID 7fbd6594aa3f14aae28edf5f1c5f6ff092ad8453 # Parent 3c6800bfc863a9ec3f8dde48438044586b780927 changeset: add "Diff to second Parent" checkbutton
The checkbutton is placed at the bottom of the files pane and only visible if a merge changeset has been selected. Removing the previous "Other Parent" button and menu entry in log viewer. diff --git a/tortoisehg/hgtk/changeset.py b/tortoisehg/hgtk/changeset.py --- a/tortoisehg/hgtk/changeset.py +++ b/tortoisehg/hgtk/changeset.py @@ -27,6 +27,7 @@ class ChangeSet(gdialog.GDialog): self.stbar = stbar self.glog_parent = None self.bfile = None + self.nothing_loaded = True def get_title(self): title = _('%s changeset ') % self.get_reponame() @@ -41,24 +42,15 @@ class ChangeSet(gdialog.GDialog): return 'menushowchanged.ico' def get_tbbuttons(self): - self.parent_toggle = gtk.ToggleToolButton(gtk.STOCK_UNDO) - self.parent_toggle.set_use_underline(True) - self.parent_toggle.set_label(_('_Other Parent')) - self.parent_toggle.set_tooltip(self.tooltips, _('diff other parent')) - self.parent_toggle.set_sensitive(False) - self.parent_toggle.set_active(False) - self.parent_toggle.connect('toggled', self.parent_toggled) - return [self.parent_toggle] + return [] def parent_toggled(self, button): - self.glog_parent.cmd_set_active( - 'other-parent', self.parent_toggle.get_active()) self.load_details(self.currev) def prepare_display(self): self.currow = None self.graphview = None - self.glog_parent = None + self.glog_parent = NoneY node0, node1 = cmdutil.revpair(self.repo, self.opts.get('rev')) self.load_details(self.repo.changelog.rev(node0)) @@ -81,28 +73,33 @@ class ChangeSet(gdialog.GDialog): if not ctx: return + if self.nothing_loaded: + self.other_parent_box.pack_start( + self.other_parent_checkbutton, False, False) + self.nothing_loaded = False + parents = ctx.parents() title = self.get_title() if len(parents) == 2: - self.parent_toggle.set_sensitive(True) - if self.parent_toggle.get_active(): + self.other_parent_box.show_all() + if self.other_parent_checkbutton.get_active(): title += ':' + str(parents[1].rev()) else: title += ':' + str(parents[0].rev()) else: - self.parent_toggle.set_sensitive(False) - if self.parent_toggle.get_active(): + self.other_parent_box.hide_all() + if self.other_parent_checkbutton.get_active(): # Parent button must be pushed out, but this # will cause load_details to be called again # so we exit out to prevent recursion. - self.parent_toggle.set_active(False) + self.other_parent_checkbutton.set_active(False) return if self.clipboard: self.clipboard.set_text(str(ctx)) self.set_title(title) - if self.parent_toggle.get_active(): + if self.other_parent_checkbutton.get_active(): parent = parents[1].node() elif parents: parent = parents[0].node() @@ -271,7 +268,7 @@ class ChangeSet(gdialog.GDialog): ismerge = (len(ctx.parents()) == 2) - if ismerge and self.parent_toggle.get_active(): + if ismerge and self.other_parent_checkbutton.get_active(): parentindex = 1 else: parentindex = 0 @@ -579,7 +576,17 @@ class ChangeSet(gdialog.GDialog): scroller = gtk.ScrolledWindow() scroller.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) scroller.add(filelist_tree) - list_frame.add(scroller) + flbox = gtk.VBox() + flbox.pack_start(scroller) + list_frame.add(flbox) + + self.other_parent_box = gtk.HBox() + flbox.pack_start(self.other_parent_box, False, False) + + btn = gtk.CheckButton(_('Diff to second Parent')) + btn.connect('toggled', self.parent_toggled) + # don't pack btn yet to keep it initially invisible + self.other_parent_checkbutton = btn self._hpaned = gtk.HPaned() self._hpaned.pack1(list_frame, True, True) diff --git a/tortoisehg/hgtk/history.py b/tortoisehg/hgtk/history.py --- a/tortoisehg/hgtk/history.py +++ b/tortoisehg/hgtk/history.py @@ -158,10 +158,6 @@ class GLog(gdialog.GDialog): func=self.toggle_show_filterbar, check=self.show_filterbar), ] + mq_item + [ dict(text='----'), - dict(text=_('Other Parent'), name='other-parent', - ascheck=True, check=False, sensitive=False, - func=self.parent_toggled), - dict(text='----'), dict(text=_('Refresh'), func=refresh, args=[False], icon=gtk.STOCK_REFRESH), dict(text=_('Reset Marks'), func=refresh, args=[True], @@ -213,10 +209,6 @@ class GLog(gdialog.GDialog): ]) ] - def parent_toggled(self, item): - self.changeview.parent_toggle.set_active(item.get_active()) - self.changeview.parent_toggled(None) - def synch_clicked(self, toolbutton, data): def sync_closed(dialog): self.cmd_set_sensitive('synchronize', True) @@ -287,10 +279,6 @@ class GLog(gdialog.GDialog): self.lastrevid = self.currevid self.changeview.opts['rev'] = [str(self.currevid)] self.changeview.load_details(self.currevid) - btn = self.changeview.parent_toggle - cmd = 'other-parent' - self.cmd_set_sensitive(cmd, btn.get_property('sensitive')) - self.cmd_set_active(cmd, btn.get_active()) return False def revisions_loaded(self, graphview): @@ -1625,7 +1613,7 @@ class GLog(gdialog.GDialog): rev = self.currevid statopts = self.merge_opts(commands.table['^status|st'][1], ('include', 'exclude', 'git')) - if self.changeview.parent_toggle.get_active(): + if self.changeview.other_parent_checkbutton.get_active(): parent = self.repo[rev].parents()[1].rev() else: parent = self.repo[rev].parents()[0].rev() ------------------------------------------------------------------------------ Come build with us! The BlackBerry(R) Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9 - 12, 2009. Register now! http://p.sf.net/sfu/devconference _______________________________________________ Tortoisehg-develop mailing list Tortoisehg-develop@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/tortoisehg-develop