Skip to content

Commit fc5dee4

Browse files
Merge remote-tracking branch 'Sheriff/VVS_Base_Project' into VVS_Base_Project
# Conflicts: # nodeeditor/node_editor_widget.py # vvs_app/editor_user_nodes_list.py # vvs_app/master_window.py # vvs_app/nodes/default_functions.py # vvs_app/nodes/event_nodes.py # vvs_app/nodes/variables_nodes.py
2 parents 56a9906 + 08dc9bf commit fc5dee4

10 files changed

+141
-82
lines changed

nodeeditor/node_editor_widget.py

+4-8
Original file line numberDiff line numberDiff line change
@@ -4,24 +4,20 @@
44
"""
55
import os
66
import subprocess
7-
import tempfile
87

98
from qtpy.QtCore import *
109
from qtpy.QtGui import *
1110
from qtpy.QtWidgets import *
1211

13-
from nodeeditor.node_edge import Edge, EDGE_TYPE_BEZIER
1412
from nodeeditor.graph_graphics import GraphGraphics
13+
from nodeeditor.node_edge import Edge, EDGE_TYPE_BEZIER
1514
from nodeeditor.node_node import Node
1615
from nodeeditor.node_scene import NodeScene, InvalidFile
1716
from nodeeditor.utils import dumpException
18-
from vvs_app.nodes.event_nodes import *
19-
from vvs_app.nodes.variables_nodes import FloatVar, IntegerVar, BooleanVar, StringVar, ListVar
17+
from vvs_app.nodes.variables_nodes import StringVar, ListVar
2018

2119

2220
class NodeEditorWidget(QWidget):
23-
Scene_class = NodeScene
24-
GraphGraphics_class = GraphGraphics
2521
"""The ``NodeEditorWidget`` class"""
2622

2723
def __init__(self, masterRef, parent: QWidget = None):
@@ -39,7 +35,7 @@ def __init__(self, masterRef, parent: QWidget = None):
3935
self.file_path = ''
4036

4137
# crate graphics scene
42-
self.scene = self.__class__.Scene_class(masterRef)
38+
self.scene = NodeScene(masterRef)
4339

4440
self.createWidgetWindow()
4541

@@ -52,7 +48,7 @@ def createWidgetWindow(self):
5248
self.scene.masterRef.files_widget.make_generated_scripts_dir()
5349

5450
# create graphics view
55-
self.graph_graphics_view = self.__class__.GraphGraphics_class(self.scene.grScene, self)
51+
self.graph_graphics_view = GraphGraphics(self.scene.grScene, self)
5652

5753
widget_layout = QHBoxLayout()
5854
widget_layout.setContentsMargins(0, 0, 0, 0)

nodeeditor/node_editor_window.py

+6-1
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,7 @@ def save_message(self, new_dir=False):
181181
res = QMessageBox.warning(self, "About to loose your work?", msg,
182182
QMessageBox.Save | QMessageBox.Discard | QMessageBox.Cancel)
183183

184+
184185
if res == QMessageBox.Save:
185186
if new_dir:
186187
return self.files_widget.set_project_folder()
@@ -226,7 +227,8 @@ def onFileSave(self):
226227
# Check If a file Already Exists with the same name
227228
current_node_editor = self.currentNodeEditor()
228229
if current_node_editor is not None:
229-
if not current_node_editor.isFilenameSet(): return self.on_file_save_as()
230+
if not current_node_editor.isFilenameSet():
231+
return self.on_file_save_as()
230232
current_node_editor.fileSave()
231233
self.statusBar().showMessage("Successfully saved %s" % current_node_editor.filename, 5000)
232234

@@ -355,3 +357,6 @@ def writeSettings(self):
355357
settings = QSettings(self.name_company, self.name_product)
356358
settings.setValue('pos', self.pos())
357359
settings.setValue('size', self.size())
360+
361+
def before_window_close(self):
362+
pass

nodeeditor/node_node.py

+40
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ class Node(Serializable):
2222
Class representing `Node` in the `Scene`.
2323
"""
2424
node_type = None
25+
node_return = 'mutable'
2526

2627
def __init__(self, scene: 'Scene', name: str = "Undefined Node", inputs: list = [], outputs: list = [],
2728
isSetter=None, node_icon=''):
@@ -73,6 +74,43 @@ def __init__(self, scene: 'Scene', name: str = "Undefined Node", inputs: list =
7374

7475
self.initSockets(inputs, outputs)
7576

77+
def get_return(self):
78+
if self.syntax == "Python":
79+
if self.node_return == 'mutable':
80+
return ''
81+
elif self.node_return == 'float':
82+
return '-> float'
83+
elif self.node_return == 'integer':
84+
return '-> integer'
85+
elif self.node_return == 'boolean':
86+
return '-> boolean'
87+
elif self.node_return == 'string':
88+
return '-> string'
89+
elif self.node_return == 'list':
90+
return '-> list'
91+
elif self.node_return == 'dictionary':
92+
return '-> dictionary'
93+
elif self.node_return == 'tuple':
94+
return '-> tuple'
95+
96+
elif self.syntax == "C++":
97+
if self.node_return == 'mutable':
98+
return 'void'
99+
elif self.node_return == 'float':
100+
return 'float'
101+
elif self.node_return == 'integer':
102+
return 'integer'
103+
elif self.node_return == 'boolean':
104+
return 'boolean'
105+
elif self.node_return == 'string':
106+
return 'string'
107+
elif self.node_return == 'list':
108+
return 'list'
109+
elif self.node_return == 'dictionary':
110+
return 'dictionary'
111+
elif self.node_return == 'tuple':
112+
return 'tuple'
113+
76114
def getNodeOrder(self):
77115
currentOrder = self.scene.nodes.index(self)
78116
# print(currentOrder)
@@ -556,6 +594,7 @@ def serialize(self) -> OrderedDict:
556594
return OrderedDict([
557595
('id', self.id),
558596
('name', self.name),
597+
('node_return', self.node_return),
559598
('pos_x', self.grNode.scenePos().x()),
560599
('pos_y', self.grNode.scenePos().y()),
561600
('inputs', inputs),
@@ -572,6 +611,7 @@ def deserialize(self, data: dict, hashmap: dict = {}, restore_id: bool = True, *
572611
self.is_var = data['is_var']
573612
self.is_event = data['is_event']
574613
self.is_setter = data['is_setter']
614+
self.node_return = data['node_return']
575615

576616
self.setPos(data['pos_x'], data['pos_y'])
577617
self.name = data['name']

nodeeditor/node_scene.py

+6-1
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,9 @@ def getSelectedItems(self) -> list:
184184
:return: list of ``QGraphicsItems``
185185
:rtype: list[QGraphicsItem]
186186
"""
187+
if not self.grScene.selectedItems():
188+
self.user_nodes_wdg.proprietiesWdg.clear()
189+
187190
return self.grScene.selectedItems()
188191

189192
def doDeselectItems(self, silent: bool=False) -> None:
@@ -391,6 +394,7 @@ def serialize_user_nodes(self):
391394
('name', item[0]),
392395
('id', item[1]),
393396
('type', item[2]),
397+
('node_return', item[3]),
394398
])
395399

396400
user_nodes.append(user_node)
@@ -432,7 +436,8 @@ def deserialize(self, data: dict, hashmap: dict = {}, restore_id: bool = True, *
432436
node_name = user_node['name']
433437
if not current_user_nodes.__contains__(node_name):
434438
self.user_nodes_wdg.create_user_node(type=user_node['type'], name=user_node['name'],
435-
node_id=user_node['id'])
439+
node_id=user_node['id'], node_return=user_node['node_return'])
440+
print(user_node['node_return'])
436441

437442
# Create a list of all Stored User Nodes at the History Stamp
438443
stored_user_nodes = []

0 commit comments

Comments
 (0)