changeset 893:1b19038f42e2

tricky fix for curvecalc not displaying subterms at launch Ignore-this: 1c68e9968c3ee0a5ad0fa3fbd6ccca73
author Drew Perttula <drewp@bigasterisk.com>
date Sat, 08 Jun 2013 23:57:33 +0000
parents 95e311bffbd9
children 836ea837cae9
files bin/curvecalc light9/curvecalc/curvecalc.glade
diffstat 2 files changed, 17 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/bin/curvecalc	Sat Jun 08 22:55:03 2013 +0000
+++ b/bin/curvecalc	Sat Jun 08 23:57:33 2013 +0000
@@ -83,7 +83,8 @@
         ec.show()
         
         wtree.get_object("subterms").connect("add", self.onSubtermChildAdded)
-        graph.addHandler(self.set_subterms_from_graph)
+        
+
         self.refreshCurveView()       
         
         self.makeStatusLines(wtree.get_object("status"))
@@ -146,7 +147,14 @@
         if dialog.run() == 1:
             self.curveset.new_curve(entry.get_text())
         dialog.hide()
-
+        
+    def onSubtermsMap(self, *args):
+        # if this was called too soon, like in __init__, the gtktable
+        # would get its children but it wouldn't lay anything out that
+        # I can see, and I'm not sure why. Waiting for map event is
+        # just a wild guess.
+        self.graph.addHandler(self.set_subterms_from_graph)
+        
     def onNewSubterm(self, *args):
         dialog = self.wtree.get_object("newSubterm")
         # the plan is to autocomplete this on existing subterm names
@@ -189,17 +197,19 @@
         
         for st in set(self.graph.objects(song, L9['subterm'])):
             log.info("song %s has subterm %s", song, st)
-            #term = Subterm(self.graph, st, self.songSubtermsContext())
-            #add_one_subterm(term, self.curveset, master)
+            term = Subterm(self.graph, st, self.songSubtermsContext())
+            add_one_subterm(term, self.curveset, master)
 
         master.show_all()
-
+        log.info("%s table children showing" % len(master.get_children()))
+        
     def refreshTheme(self):
         gtk.rc_reparse_all()
         reactor.callLater(1, self.refreshTheme)
 
     def onSubtermChildAdded(self, subtermsTable, *args):
         # this would probably work, but isn't getting called
+        log.info("onSubtermChildAdded")
         v = subtermsTable.get_parent().props.vadjustment
         v.props.value = v.props.upper
 
--- a/light9/curvecalc/curvecalc.glade	Sat Jun 08 22:55:03 2013 +0000
+++ b/light9/curvecalc/curvecalc.glade	Sat Jun 08 23:57:33 2013 +0000
@@ -511,8 +511,9 @@
                                 <property name="visible">True</property>
                                 <property name="can_focus">False</property>
                                 <property name="n_columns">2</property>
+                                <signal name="child-added" handler="onSubtermChildAdded" swapped="no"/>
+                                <signal name="map" handler="onSubtermsMap" swapped="no"/>
                                 <signal name="add" handler="onSubtermChildAdded" swapped="no"/>
-                                <signal name="child-added" handler="onSubtermChildAdded" swapped="no"/>
                                 <child>
                                   <placeholder/>
                                 </child>