# HG changeset patch
# User Yuki KODAMA <endflow....@gmail.com>
# Date 1251048852 -32400
# Node ID 30ec8b343aff783bb5fd905cc0cb974152f1ae06
# Parent  e618b10bbbedc4973fed809acf8bda475603ec26
history: add optional 'Age' column

diff --git a/hggtk/history.py b/hggtk/history.py
--- a/hggtk/history.py
+++ b/hggtk/history.py
@@ -211,6 +211,12 @@
         button.set_active(self.showcol.get('utc', False))
         button.set_draw_as_radio(True)
         menu.append(button)
+        button = gtk.CheckMenuItem(_('Show Age'))
+        button.connect('toggled', self.toggle_view_column,
+                'age-column-visible')
+        button.set_active(self.showcol.get('age', False))
+        button.set_draw_as_radio(True)
+        menu.append(button)
         button = gtk.CheckMenuItem(_('Show Branch'))
         button.connect('toggled', self.toggle_view_column,
                 'branch-column-visible')
@@ -285,7 +291,7 @@
         settings['glog-hpane'] = self.hpaned.get_position()
         settings['branch-color'] = self.graphview.get_property('branch-color')
         settings['show-filterbar'] = self.show_filterbar
-        for col in ('rev', 'date', 'id', 'branch', 'utc'):
+        for col in ('rev', 'date', 'id', 'branch', 'utc', 'age'):
             vis = self.graphview.get_property(col+'-column-visible')
             settings['glog-vis-'+col] = vis
         return settings
@@ -303,7 +309,7 @@
             self.setting_hpos = settings['glog-hpane']
             self.branch_color = settings.get('branch-color', False)
             self.show_filterbar = settings.get('show-filterbar', True)
-            for col in ('rev', 'date', 'id', 'branch', 'utc'):
+            for col in ('rev', 'date', 'id', 'branch', 'utc', 'age'):
                 vis = settings['glog-vis-'+col]
                 self.showcol[col] = vis
         except KeyError:
diff --git a/hggtk/logview/treemodel.py b/hggtk/logview/treemodel.py
--- a/hggtk/logview/treemodel.py
+++ b/hggtk/logview/treemodel.py
@@ -38,7 +38,8 @@
 FGCOLOR = 12
 HEXID = 13
 UTC = 14
-BRANCHES = 15
+AGE = 15
+BRANCHES = 16

 class TreeModel(gtk.GenericTreeModel):

@@ -96,6 +97,7 @@
         if index == HEXID: return gobject.TYPE_STRING
         if index == BRANCHES: return gobject.TYPE_STRING
         if index == UTC: return gobject.TYPE_STRING
+        if index == AGE: return gobject.TYPE_STRING

     def on_get_iter(self, path):
         return path[0]
@@ -151,6 +153,7 @@
             author = hglib.toutf(author)
             date = hglib.displaytime(ctx.date())
             utc = hglib.utctime(ctx.date())
+            age = templatefilters.age(ctx.date())

             wc_parent = revid in self.parents
             head = revid in self.heads
@@ -162,7 +165,7 @@

             revision = (None, node, revid, None, sumstr,
                     author, date, None, parents, wc_parent, head, taglist,
-                    color, str(ctx), utc)
+                    color, str(ctx), utc, age)
             self.revisions[revid] = revision
             self.branch_names[revid] = branch
         else:
diff --git a/hggtk/logview/treeview.py b/hggtk/logview/treeview.py
--- a/hggtk/logview/treeview.py
+++ b/hggtk/logview/treeview.py
@@ -68,6 +68,11 @@
                                  'Show UTC/GMT date column',
                                  False,
                                  gobject.PARAM_READWRITE),
+        'age-column-visible': (gobject.TYPE_BOOLEAN,
+                                 'Age',
+                                 'Show age column',
+                                 False,
+                                 gobject.PARAM_READWRITE),
         'rev-column-visible': (gobject.TYPE_BOOLEAN,
                                  'Rev',
                                  'Show revision number column',
@@ -254,6 +259,8 @@
             return self.branch_color
         elif property.name == 'utc-column-visible':
             return self.utc_column.get_visible()
+        elif property.name == 'age-column-visible':
+            return self.age_column.get_visible()
         elif property.name == 'repo':
             return self.repo
         elif property.name == 'limit':
@@ -278,6 +285,8 @@
             self.branch_color = value
         elif property.name == 'utc-column-visible':
             self.utc_column.set_visible(value)
+        elif property.name == 'age-column-visible':
+            self.age_column.set_visible(value)
         elif property.name == 'repo':
             self.repo = value
         elif property.name == 'limit':
@@ -493,6 +502,19 @@
         self.utc_column.add_attribute(cell, "foreground", treemodel.FGCOLOR)
         self.treeview.append_column(self.utc_column)

+        cell = gtk.CellRendererText()
+        cell.set_property("width-chars", 10)
+        cell.set_property("ellipsize", pango.ELLIPSIZE_END)
+        self.age_column = gtk.TreeViewColumn(_('Age'))
+        self.age_column.set_visible(False)
+        self.age_column.set_resizable(True)
+        self.age_column.set_sizing(gtk.TREE_VIEW_COLUMN_FIXED)
+        self.age_column.set_fixed_width(cell.get_size(self.treeview)[2])
+        self.age_column.pack_start(cell, expand=True)
+        self.age_column.add_attribute(cell, "text", treemodel.AGE)
+        self.age_column.add_attribute(cell, "foreground", treemodel.FGCOLOR)
+        self.treeview.append_column(self.age_column)
+
     def text_color_orig(self, parents, rev, author):
         if self.origtip is not None and int(rev) >= self.origtip:
             return 'darkgreen'

Attachment: thg-kuy_rev3680.patch
Description: Binary data

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Tortoisehg-develop mailing list
Tortoisehg-develop@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/tortoisehg-develop

Reply via email to