Changeset - 7e991dba05f4
[Not reviewed]
default
0 1 0
drewp@bigasterisk.com - 12 years ago 2013-06-13 07:22:54
drewp@bigasterisk.com
KC supports dragging into (existing) named groups. still can't make a new group though
Ignore-this: 5a841c6e8b5dbf6b99da9afbec88b9fd
1 file changed with 29 insertions and 3 deletions:
0 comments (0 inline, 0 general)
bin/keyboardcomposer
Show inline comments
 
@@ -19,7 +19,7 @@ from light9.subclient import SubClient
 
from light9 import dmxclient, showconfig, networking, prof
 
from light9.uihelpers import toplevelat, bindkeys
 
from light9.namespaces import L9
 
from light9.tkdnd import initTkdnd, dragSourceRegister
 
from light9.tkdnd import initTkdnd, dragSourceRegister, dropTargetRegister
 
from light9.rdfdb import clientsession
 
from light9.rdfdb.syncedgraph import SyncedGraph
 
from light9.rdfdb.patch import Patch
 
@@ -235,7 +235,7 @@ class KeyboardComposer(Frame, SubClient)
 
            group = self.graph.value(sub.uri, L9['group'])
 

	
 
            if col == 0 or group != last_group:
 
                row = self.make_row()
 
                row = self.make_row(group)
 
                rowcount += 1
 
                col = 0
 

	
 
@@ -394,13 +394,39 @@ class KeyboardComposer(Frame, SubClient)
 
            return
 
        self.sliders.valueOut(chan, v)
 

	
 
    def make_row(self):
 
    def make_row(self, group):
 
        """group is a URI or None"""
 
        row = Frame(self, bd=2, bg='black')
 
        row.subGroup = group
 
        def onDrop(ev):
 
            self.change_group(sub=URIRef(ev.data), row=row)
 
            return "link"
 
        
 
        dropTargetRegister(row, onDrop=onDrop, typeList=['*'],
 
                           hoverStyle=dict(background="#555500"))
 
        
 
        row.pack(expand=1, fill=BOTH)
 
        self.setup_key_nudgers(row)
 
        self.rows.append(row)
 
        return row
 

	
 
    def change_group(self, sub, row):
 
        """update this sub's group, and maybe other sub groups as needed, so
 
        this sub displays in this row"""
 
        group = row.subGroup
 
        self.graph.patchObject(
 
            context=self.session,
 
            subject=sub, predicate=L9['group'], newObject=group)
 

	
 
    def subs_in_row(self, row):
 
        """uris of the submasters displayed in this row. untested"""
 
        rowNum = self.rows.index(row) + 1
 
        ret = set()
 
        for coords, subbox in self.slider_table.items():
 
            if coords[0] == rowNum:
 
                ret.add(subbox.sub.uri)
 
        return ret
 
            
 
    def highlight_row(self, row):
 
        row = self.rows[row]
 
        row['bg'] = 'red'
0 comments (0 inline, 0 general)