diff bin/curvecalc @ 706:16042667ab51

ui for making a new subterm Ignore-this: 88632c01c5e8ffb6bca4159160b7b40
author Drew Perttula <drewp@bigasterisk.com>
date Sun, 10 Jun 2012 08:47:19 +0000
parents ed50631cf333
children c4a38a247b26
line wrap: on
line diff
--- a/bin/curvecalc	Sun Jun 10 08:06:54 2012 +0000
+++ b/bin/curvecalc	Sun Jun 10 08:47:19 2012 +0000
@@ -18,9 +18,7 @@
 import time, textwrap, os, optparse, urllib2, gtk, gobject, linecache, signal
 import louie as dispatcher 
 from twisted.python.util import sibpath
-from rdflib import URIRef
-from rdflib import Graph
-import rdflib
+from rdflib import URIRef, Graph, Literal, RDF, RDFS
 import logging
 log = logging.getLogger()
 
@@ -68,9 +66,7 @@
         # but it's a minimum size, which i don't really want
         mainwin.set_size_request(1000, 1000)
         
-        self.add_subterms_for_song(song, curveset, subterms,
-                                   wtree.get_object("subterms")
-                                   )
+        self.add_subterms_for_song(song, curveset, subterms)
         self.refreshCurveView()       
         
         self.makeStatusLines(wtree.get_object("status"))
@@ -85,6 +81,28 @@
             self.curveset.new_curve(entry.get_text())
         nc.hide()
 
+    def onNewSubterm(self, *args):
+        ns = self.wtree.get_object("newSubterm")
+        # the plan is to autocomplete this on existing subterm names
+        # (but let you make one up, too)
+        entry = self.wtree.get_object("newSubtermName").get_children()[0]
+        entry.set_text("")
+        if ns.run() == 1:
+            newname = entry.get_text()
+            makeCurve = self.wtree.get_object("newSubtermMakeCurve").get_active()
+
+            uri = L9['sub/%s' % newname]
+            self.graph.add((uri, RDF.type, L9.Subterm))
+            self.graph.add((uri, RDFS.label, Literal(newname)))
+            add_one_subterm(self.graph, uri,
+                            self.curveset, self.subterms,
+                            self.wtree.get_object("subterms"),
+                            None, show=True)
+            if makeCurve:
+                self.curveset.new_curve(newname)
+            
+        ns.hide()
+
     def refreshTheme(self):
         gtk.rc_reparse_all()
         reactor.callLater(1, self.refreshTheme)
@@ -114,7 +132,8 @@
     def onSave(self, *args):
         savekey(self.song, self.subterms, self.curveset)
 
-    def add_subterms_for_song(self, song, curveset, subterms, master):
+    def add_subterms_for_song(self, song, curveset, subterms):
+        master = self.wtree.get_object("subterms")
         for st in self.graph.objects(song, L9['subterm']):
             log.info("song %s has subterm %s", song, st)
             add_one_subterm(self.graph,
@@ -186,16 +205,6 @@
     def onReloadSubs(self, *args): # wants to be ctrl-r  too
         dispatcher.send('reload all subs')
 
-    def onAddSubterm(self):
-        uri = L9['sub/%s' % newname.get()]
-        graph.add((uri, RDF.type, L9.Subterm))
-        graph.add((uri, RDFS.label, Literal(newname.get())))
-        add_one_subterm(graph, uri,
-                        curveset, subterms, ssv, None)
-        if evt.state & 4: # control key modifier
-            curveset.new_curve(newname.get())
-        newname.set('')
-
 
 def main():
     startTime = time.time()