Skip to content

Commit 0c20af4

Browse files
committed
Continued implementing macros. Still much to do.
1 parent 7df5210 commit 0c20af4

2 files changed

Lines changed: 37 additions & 12 deletions

File tree

floppy/node.py

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -499,13 +499,13 @@ def save(self):
499499
conns = [outputConn['inputNode'].getInputID(outputConn['inputName']) for outputConn in conns]
500500
outputConns[key] = conns
501501
return {'class': self.__class__.__name__,
502-
'position': self.__pos__,
503-
'inputs': [(inputName, inp.varType.__name__, inp(True), inp.default)
504-
for inputName, inp in self.inputs.items()],
505-
'inputConnections': inputConns,
506-
'outputs': [(outputName, out.varType.__name__, out.value, out.default)
507-
for outputName, out in self.outputs.items()],
508-
'outputConnections': outputConns,
502+
'position': self.__pos__,
503+
'inputs': [(inputName, inp.varType.__name__, inp(True), inp.default)
504+
for inputName, inp in self.inputs.items()],
505+
'inputConnections': inputConns,
506+
'outputs': [(outputName, out.varType.__name__, out.value, out.default)
507+
for outputName, out in self.outputs.items()],
508+
'outputConnections': outputConns,
509509
'subgraph': self.subgraph}
510510

511511
@classmethod
@@ -543,6 +543,18 @@ def __init__(self, pinID, info, node):
543543
self.node = node
544544

545545

546+
@abstractNode
547+
class ProxyNode(Node):
548+
"""
549+
A dummy node without any functionality used as a place holder for subgraphs.
550+
"""
551+
552+
def addProxyInput(self, name, output, input, varType):
553+
pass
554+
555+
def addProxyOutput(self, name, output, input, varType):
556+
pass
557+
546558
@abstractNode
547559
class ControlNode(Node):
548560
"""

floppy/painter.py

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ def __init__(self, parent=None):
6969
self.relayTo = None
7070
self.selectFrame = None
7171
self.selectFrame_End = None
72-
self.selectedSubgraph = 'main'
72+
self.selectedSubgraph = ('main', None)
7373
self.groupSelection = []
7474
self.reset()
7575

@@ -96,19 +96,32 @@ def reset(self):
9696
self.relayTo = None
9797
self.selectFrame = None
9898
self.selectFrame_End = None
99-
self.selectedSubgraph = 'main'
99+
self.selectedSubgraph = ('main', None)
100100
self.groupSelection = []
101101

102102
def createSubgraph(self, name):
103103
for node in self.groupSelection:
104104
node.subgraph = name
105+
print([i.name for i in self.getAllInputsOfSubgraph(name) if i.connected])
105106

106-
def setSelectedSubgraph(self, graph):
107-
self.selectedSubgraph = graph
107+
def setSelectedSubgraph(self, graph, parent=None):
108+
if not parent:
109+
parent = self.selectedSubgraph[0]
110+
self.selectedSubgraph = (graph, parent)
108111

109112
def getAllSubgraphs(self):
110113
return {node.subgraph for node in self.nodes}
111114

115+
def getAllInputsOfSubgraph(self, subgraph=None):
116+
if not subgraph:
117+
subgraph = self.selectedSubgraph[0]
118+
inputs = {node.inputs.values() for node in self.nodes if node.subgraph == subgraph}
119+
return [j for i in inputs for j in i]
120+
121+
def getAllOutputsOfSubgraph(self, subgraph=None):
122+
if not subgraph:
123+
subgraph = self.selectedSubgraph[0]
124+
nodes = {node for node in self.nodes if node.subgraph == subgraph}
112125

113126
def checkGraph(self):
114127
if self.graph.needsUpdate():
@@ -371,7 +384,7 @@ def paintEvent(self, event):
371384
halfPinSize = PINSIZE//2
372385

373386
for j, node in enumerate(self.nodes):
374-
if not self.selectedSubgraph == node.subgraph:
387+
if not self.selectedSubgraph[0] == node.subgraph:
375388
continue
376389
j *= 3
377390
j += 1

0 commit comments

Comments
 (0)