← Back to team overview

gtg team mailing list archive

[Merge] lp:~bertrand-rousseau/gtg/bug-826693 into lp:gtg

 

Bertrand Rousseau has proposed merging lp:~bertrand-rousseau/gtg/bug-826693 into lp:gtg.

Requested reviews:
  Gtg developers (gtg)
Related bugs:
  Bug #826693 in Getting Things GNOME!: "regression: white space at the left of the tag sidebar"
  https://bugs.launchpad.net/gtg/+bug/826693

For more details, see:
https://code.launchpad.net/~bertrand-rousseau/gtg/bug-826693/+merge/74638

This is a fix for bug #826693: regression: white space at the left of the tag sidebar

This patch restore the automatic removal of the expander column in treeviews, which allows to avoid wasting horizontal space when a list of tag/task with no child is displayed.
-- 
https://code.launchpad.net/~bertrand-rousseau/gtg/bug-826693/+merge/74638
Your team Gtg developers is requested to review the proposed merge of lp:~bertrand-rousseau/gtg/bug-826693 into lp:gtg.
=== modified file 'GTG/gtk/browser/treeview_factory.py'
--- GTG/gtk/browser/treeview_factory.py	2011-08-24 22:13:48 +0000
+++ GTG/gtk/browser/treeview_factory.py	2011-09-08 16:40:28 +0000
@@ -29,6 +29,29 @@
 from GTG.gtk                          import colors
 from GTG.tools                        import dates
 
+
+class AutoExpandTreeView(TreeView):
+    """TreeView which hide the expander column when not needed"""
+
+    def __init__(self, tree, desc):
+        TreeView.__init__(self, tree, desc)
+        self.show_expander = False
+        self.treemodel.connect("row-has-child-toggled", self.__show_expander_col)
+        self.__show_expander_col(self.treemodel, None, None)
+
+    def __has_child(self, model, path, iter):
+        if model.iter_has_child(iter):
+            self.show_expander = True
+            return True
+
+    def __show_expander_col(self, treemodel, path, iter):
+        self.show_expander = False
+        treemodel.foreach(self.__has_child)
+        if self.show_expander:
+            self.set_show_expanders(True)
+        else:
+            self.set_show_expanders(False)
+
 class TreeviewFactory():
 
     def __init__(self,requester,config):
@@ -423,7 +446,7 @@
         return desc
         
     def build_task_treeview(self,tree,desc):
-        treeview = TreeView(tree,desc)
+        treeview = AutoExpandTreeView(tree,desc)
         #Now that the treeview is done, we can polish
         treeview.set_main_search_column('label')
         treeview.set_expander_column('label')
@@ -440,7 +463,7 @@
         return treeview
         
     def build_tag_treeview(self,tree,desc):
-        treeview = TreeView(tree,desc)
+        treeview = AutoExpandTreeView(tree,desc)
         # Global treeview properties
         treeview.set_property("enable-tree-lines", False)
         treeview.set_rules_hint(False)