# HG changeset patch
# User Steve Borho <[email protected]>
# Date 1232601644 21600
# Node ID 6f77b2cdfdd5c771de18269330792d617cf1a6c5
# Parent  095d7aedcc4884eb8258bb1eb6dbad191ff8a2b7
changeset: use fixed label header for changeset info

change ID, user, date, branch, and tags are drawn in labels
at the top of the changeset text buffer where they are not
scrolled, so they always remain visible.

diff --git a/hggtk/changeset.py b/hggtk/changeset.py
--- a/hggtk/changeset.py
+++ b/hggtk/changeset.py
@@ -76,6 +76,11 @@
         '''Load selected changeset details into buffer and filelist'''
         self.currev = rev
         self._buffer.set_text('')
+        self._changelabel.set_label('')
+        self._userlabel.set_label('')
+        self._datelabel.set_label('')
+        self._branchlabel.set_label('')
+        self._taglabel.set_label('')
         self._filelist.clear()
 
         parents = [x for x in self.repo.changelog.parentrevs(rev) \
@@ -126,10 +131,14 @@
         tags = ' '.join(ctx.tags())
         parents = self.parents
 
-        title_line('changeset:', change, 'changeset')
-        if ctx.branch() != 'default':
-            title_line('branch:', ctx.branch(), 'greybg')
-        title_line('user/date:', ctx.user() + '\t' + date, 'changeset')
+        self._changelabel.set_label('changeset: ' + change)
+        self._userlabel.set_label('user: ' + ctx.user())
+        self._datelabel.set_label(date)
+        self._branchlabel.set_label('branch: ' + ctx.branch())
+        if tags:
+            self._taglabel.set_label('tags: ' + tags)
+        else:
+            self._taglabel.set_label('')
         for p in parents:
             pctx = self.repo.changectx(p)
             try:
@@ -161,7 +170,6 @@
             buf.insert(eob, "\n")
         for n in self.repo.changelog.children(ctx.node()):
             childrev = self.repo.changelog.rev(n)
-        if tags: title_line('tags:', tags, 'tag')
 
         log = toutf(ctx.description())
         buf.insert(eob, '\n' + log + '\n\n')
@@ -489,9 +497,31 @@
 
         details_frame = gtk.Frame()
         details_frame.set_shadow_type(gtk.SHADOW_ETCHED_IN)
+
+        vbox = gtk.VBox()
+
+        hbox = gtk.HBox()
+        self._changelabel = gtk.Label('')
+        self._changelabel.set_selectable(True)
+        self._userlabel = gtk.Label('')
+        self._datelabel = gtk.Label('')
+        self._datelabel.set_selectable(True)
+        hbox.pack_start(self._changelabel, False, False, 10)
+        hbox.pack_start(self._userlabel, False, False, 10)
+        hbox.pack_start(self._datelabel, False, False, 10)
+        vbox.pack_start(hbox, False, False, 2)
+
+        hbox = gtk.HBox()
+        self._branchlabel = gtk.Label('')
+        self._taglabel = gtk.Label('')
+        hbox.pack_start(self._branchlabel, False, False, 10)
+        hbox.pack_start(self._taglabel, False, False, 10)
+        vbox.pack_start(hbox, False, False, 2)
+
         scroller = gtk.ScrolledWindow()
         scroller.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
-        details_frame.add(scroller)
+        vbox.pack_start(scroller, True, True, 2)
+        details_frame.add(vbox)
         
         details_text = gtk.TextView()
         details_text.set_wrap_mode(gtk.WRAP_NONE)

------------------------------------------------------------------------------
This SF.net email is sponsored by:
SourcForge Community
SourceForge wants to tell your story.
http://p.sf.net/sfu/sf-spreadtheword
_______________________________________________
Tortoisehg-develop mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tortoisehg-develop

Reply via email to