# HG changeset patch
# User Adrian Buehlmann <adr...@cadifra.com>
# Date 1254068026 -7200
# Node ID d80a643108212913c434ca126c3d026375a62547
# Parent  dffb0a41561a594540ef4745cf45d4aaa34d42ef
history: add 'hide merges' check button to filterbar

'hide merges' is disabled if the graph is enabled.
I'm using a check button and not a radio button because 'hide merges'
can be combined with 'all', 'branch' or 'custom' filters.

diff --git a/tortoisehg/hgtk/history.py b/tortoisehg/hgtk/history.py
--- a/tortoisehg/hgtk/history.py
+++ b/tortoisehg/hgtk/history.py
@@ -35,6 +35,7 @@ class GLog(gdialog.GDialog):
     'GTK+ based dialog for displaying repository logs'
     def init(self):
         self.filter = 'all'
+        self.no_merges = False
         self.lastrevid = None
         self.currevid = None
         self.origtip = len(self.repo)
@@ -305,14 +306,31 @@ class GLog(gdialog.GDialog):
         self.reload_log(**opts)
 
     def filter_selected(self, widget, type):
+        if type == 'no_merges':
+            self.no_merges = widget.get_active()
+            self.reload_log()
+            return
+
         if not widget.get_active():
             return
+
         if type == 'branch':
             self.select_branch(self.branchcombo)
+            return
+
+        self.filter = type
+        self.filteropts = None
+        self.reload_log()
+
+    def update_hide_merges_button(self):
+        b = self.hide_merges_button
+        compatible = self.filter in ['all', 'new', 'branch', 'custom']
+        if not self.graphcol and compatible:
+            b.set_sensitive(True)
         else:
-            self.filter = type
-            self.filteropts = None
-            self.reload_log()
+            b.set_active(False)
+            b.set_sensitive(False)
+            self.no_merges = False
 
     def patch_selected(self, mqwidget, revid, patchname):
         if revid < 0:
@@ -425,6 +443,8 @@ class GLog(gdialog.GDialog):
 
     def reload_log(self, **kwopts):
         'Send refresh event to treeview object'
+        self.update_hide_merges_button()
+
         opts = {'date': None, 'no_merges':False, 'only_merges':False,
                 'keyword':[], 'branch':None, 'pats':[], 'filehist':None,
                 'revrange':[], 'revlist':[], 'noheads':False,
@@ -437,6 +457,8 @@ class GLog(gdialog.GDialog):
         self.origtip = min(len(self.repo), self.origtip)
         opts['orig-tip'] = self.origtip
 
+        opts['no_merges'] = self.no_merges
+
         self.loadnextbutton.set_sensitive(True)
         self.loadallbutton.set_sensitive(True)
         self.newbutton.set_sensitive(self.origtip != len(self.repo))
@@ -759,6 +781,11 @@ class GLog(gdialog.GDialog):
         merges.connect('toggled', self.filter_selected, 'only_merges')
         filterbox.pack_start(merges, False)
 
+        b = gtk.CheckButton(_('hide merges'))
+        b.connect('toggled', self.filter_selected, 'no_merges')
+        filterbox.pack_start(b, False)
+        self.hide_merges_button = b
+
         branches = gtk.RadioButton(all, _('branch'))
         branches.connect('toggled', self.filter_selected, 'branch')
         branches.set_sensitive(False)

------------------------------------------------------------------------------
Come build with us! The BlackBerry&reg; 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&#45;12, 2009. Register now&#33;
http://p.sf.net/sfu/devconf
_______________________________________________
Tortoisehg-develop mailing list
Tortoisehg-develop@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/tortoisehg-develop

Reply via email to