# HG changeset patch # User Adrian Buehlmann <adr...@cadifra.com> # Date 1253441078 -7200 # Node ID 310722200794b345648b3bd5ce330e7317ece754 # Parent 6f745667e62cb3058814ef80480232639e1dc504 update: show summary of current and new revisions
diff --git a/tortoisehg/hgtk/update.py b/tortoisehg/hgtk/update.py --- a/tortoisehg/hgtk/update.py +++ b/tortoisehg/hgtk/update.py @@ -34,6 +34,7 @@ class UpdateDialog(gtk.Dialog): try: repo = hg.repository(ui.ui(), path=paths.find_root()) + self.repo = repo except hglib.RepoError: gobject.idle_add(self.destroy) return @@ -69,7 +70,7 @@ class UpdateDialog(gtk.Dialog): entry = combo.child entry.connect('activate', lambda b: self.update(repo)) entry.set_width_chars(38) - addrow(_('Update to:'), self.revcombo) + addrow(_('Update to:'), self.revcombo, expand=False) # fill list of combo if rev != None: @@ -85,10 +86,26 @@ class UpdateDialog(gtk.Dialog): for t in tags: combo.append_text(t) + # summary of current revision + label = gtk.Label('<current revision>') + hb = gtk.HBox() + hb.pack_start(label, False, False) + addrow('Current:', hb, expand=False) + self.current_rev_label = label + + # summary of new revision + label = gtk.Label('<new revision>') + hb = gtk.HBox() + hb.pack_start(label, False, False) + addrow('New:', hb, expand=False) + self.new_rev_label = label + + self.update_revisions() + # options self.opt_buttons = [] group = gtk.RadioButton(None, _('Allow merge with local changes (default)')) - addrow('', group, expand=False) + addrow(_('Options:'), group, expand=False) self.opt_buttons.append(group) btn = gtk.RadioButton(group, _('Abort if local changes found (-c/--check)')) @@ -101,6 +118,8 @@ class UpdateDialog(gtk.Dialog): self.opt_buttons.append(btn) self.opt_clean = btn + self.revcombo.connect('changed', lambda b: self.update_revisions()) + # prepare to show self.updatebtn.grab_focus() gobject.idle_add(self.after_init) @@ -157,6 +176,35 @@ class UpdateDialog(gtk.Dialog): self.cmd.set_property('visible', updating) self.cancelbtn.set_property('visible', updating) + def update_revisions(self): + def setlabel(label, ctx): + revision = str(ctx.rev()) + hash = str(ctx) + summary = gtklib.markup_escape_text(hglib.toutf( + ctx.description().split('\n')[0])) + face = 'monospace' + size = '9000' + + format = '<span face="%s" size="%s">%s (%s) </span>' + t = format % (face, size, revision, hash) + + branch = ctx.branch() + if branch != 'default': + format = '<span color="%s" background="%s"> %s </span> ' + t += format % ('black', '#aaffaa', branch) + + tags = self.repo.nodetags(ctx.node()) + format = '<span color="%s" background="%s"> %s </span> ' + for tag in tags: + t += format % ('black', '#ffffaa', tag) + + t += summary + label.set_markup(t) + + setlabel(self.current_rev_label, self.repo['.']) + newrev = self.revcombo.get_active_text() + setlabel(self.new_rev_label, self.repo[newrev]) + def update(self, repo): self.switch_to(MODE_UPDATING) ------------------------------------------------------------------------------ Come build with us! The BlackBerry® 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/devconf _______________________________________________ Tortoisehg-develop mailing list Tortoisehg-develop@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/tortoisehg-develop