# HG changeset patch
# User Adrian Buehlmann <adr...@cadifra.com>
# Date 1252844661 -7200
# Node ID de6895d90b88d8bbe43ba2ea09cf57ea50a6ae68
# Parent  60bf6516d1e1acfccbb22e55944ffa5a47794eca
status: put file type checkboxes (MAR!?CI) into a new "Filter" tab in bottom 
left pane

using a gtk.Notebook in the bottom left pane with tabs "Files" and "Types"

diff --git a/hggtk/status.py b/hggtk/status.py
--- a/hggtk/status.py
+++ b/hggtk/status.py
@@ -285,10 +285,15 @@ class GStatus(gdialog.GDialog):
             button = gtk.Button(_('Remove filter, show root'))
             button.connect('pressed', self.remove_filter)
             tvbox.pack_start( button, False, False, 2)
+      
+        self.tree_notebook = gtk.Notebook()
+        self.tree_notebook.set_tab_pos(gtk.POS_BOTTOM)
+        self.tree_notebook.append_page(tvbox, gtk.Label(_('Files')))
+        self.tree_notebook.append_page(self.file_filter(), 
gtk.Label(_('Types')))
 
         tree_frame = gtk.Frame()
         tree_frame.set_shadow_type(gtk.SHADOW_ETCHED_IN)
-        tree_frame.add(tvbox)
+        tree_frame.add(self.tree_notebook)
 
         diff_frame = gtk.Frame()
         diff_frame.set_shadow_type(gtk.SHADOW_ETCHED_IN)
@@ -399,43 +404,46 @@ class GStatus(gdialog.GDialog):
     def page_switched(self, notebook, page, page_num, filesel, difftree):
         self.tree_sel_changed(filesel, difftree, page_num)
 
-    def get_extras(self):
-        table = gtk.Table(rows=2, columns=3)
-        table.set_col_spacings(8)
+    def file_filter(self):
+        self._show_checks = {}
 
-        self._show_checks = {}
-        row, col = 0, 0
         # Tuple: (ctype, translated label)
-        checks = (('modified', _('M: modified')),
+        checks = [('modified', _('M: modified')),
                   ('added',    _('A: added')),
-                  ('removed',  _('R: removed')))
+                  ('removed',  _('R: removed'))]
         if self.count_revs() <= 1:
-            checks += (('deleted', _('!: deleted')),
+            checks += [('deleted', _('!: deleted')),
                        ('unknown', _('?: unknown')),
                        ('clean',   _('C: clean')),
-                       ('ignored', _('I: ignored')))
+                       ('ignored', _('I: ignored'))]
+       
+        vbox = gtk.VBox()
 
         for ctuple in checks:
             check = gtk.CheckButton(ctuple[1])
             check.connect('toggled', self.show_toggle, ctuple[0])
-            table.attach(check, col, col+1, row, row+1)
+            vbox.pack_start(check, False, False)
             self._show_checks[ctuple[0]] = check
-            col += row
-            row = not row
 
+        vp = gtk.Viewport()
+        vp.add(vbox)
+
+        scroller = gtk.ScrolledWindow()
+        scroller.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
+        scroller.add(vp)
+
+        return scroller
+
+    def get_extras(self):
         self.counter = gtk.Label('')
         self.counter.set_alignment(1.0, 0.0) # right up
 
         self.stbar = gtklib.StatusBar()
 
-        rightbox = gtk.VBox()
-        rightbox.pack_start(self.counter)
-        rightbox.pack_start(self.stbar, False, False)
-
         hbox = gtk.HBox()
-        hbox.pack_start(table, False, False)
+        hbox.pack_start(self.stbar)
         hbox.pack_start(gtk.Label(''), True, True, 2)
-        hbox.pack_end(rightbox, False, False, 2)
+        hbox.pack_end(self.counter, False, False, 2)
 
         return hbox
 

------------------------------------------------------------------------------
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