Skip to content

Commit 6eb098d

Browse files
committed
Refactor everything to use central Graph Model
1 parent 2deb044 commit 6eb098d

File tree

115 files changed

+5406
-4439
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

115 files changed

+5406
-4439
lines changed

CMakeLists.txt

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ project(NodeEditor CXX)
55
set(CMAKE_DISABLE_IN_SOURCE_BUILD ON)
66
set(CMAKE_DISABLE_SOURCE_CHANGES ON)
77
set(OpenGL_GL_PREFERENCE LEGACY)
8+
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
89

910
get_directory_property(_has_parent PARENT_DIRECTORY)
1011
if(_has_parent)
@@ -72,37 +73,36 @@ endif()
7273
set(CMAKE_AUTOMOC ON)
7374

7475
set(CPP_SOURCE_FILES
75-
src/Connection.cpp
76+
src/BasicGraphicsScene.cpp
7677
src/ConnectionBlurEffect.cpp
77-
src/ConnectionGeometry.cpp
7878
src/ConnectionGraphicsObject.cpp
7979
src/ConnectionPainter.cpp
8080
src/ConnectionState.cpp
8181
src/ConnectionStyle.cpp
82+
src/DataFlowGraphModel.cpp
83+
src/DataFlowGraphicsScene.cpp
8284
src/DataModelRegistry.cpp
83-
src/FlowScene.cpp
84-
src/FlowView.cpp
85-
src/FlowViewStyle.cpp
86-
src/Node.cpp
85+
src/GraphModel.cpp
86+
src/GraphicsView.cpp
87+
src/GraphicsViewStyle.cpp
8788
src/NodeConnectionInteraction.cpp
8889
src/NodeDataModel.cpp
8990
src/NodeGeometry.cpp
9091
src/NodeGraphicsObject.cpp
9192
src/NodePainter.cpp
9293
src/NodeState.cpp
9394
src/NodeStyle.cpp
94-
src/Properties.cpp
9595
src/StyleCollection.cpp
96+
src/locateNode.cpp
9697
)
9798

9899
# If we want to give the option to build a static library,
99100
# set BUILD_SHARED_LIBS option to OFF
100-
add_library(nodes
101-
${CPP_SOURCE_FILES}
102-
${RESOURCES}
103-
)
101+
add_library(nodes ${CPP_SOURCE_FILES} ${RESOURCES})
102+
104103
add_library(NodeEditor::nodes ALIAS nodes)
105104

105+
106106
target_include_directories(nodes
107107
PUBLIC
108108
$<INSTALL_INTERFACE:include>
@@ -189,7 +189,7 @@ endif()
189189
##
190190

191191
if(BUILD_TESTING)
192-
add_subdirectory(test)
192+
#add_subdirectory(test)
193193
endif()
194194

195195
###############

examples/CMakeLists.txt

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
1-
add_subdirectory(connection_colors)
2-
3-
add_subdirectory(example2)
1+
add_subdirectory(graph)
42

53
add_subdirectory(calculator)
64

5+
add_subdirectory(text)
6+
77
add_subdirectory(images)
88

99
add_subdirectory(styles)
10+
11+
add_subdirectory(connection_colors)
12+

examples/calculator/AdditionModel.hpp

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,7 @@ class AdditionModel : public MathOperationDataModel
1515
{
1616
public:
1717

18-
virtual
19-
~AdditionModel() {}
18+
~AdditionModel() = default;
2019

2120
public:
2221

@@ -40,18 +39,16 @@ class AdditionModel : public MathOperationDataModel
4039

4140
if (n1 && n2)
4241
{
43-
modelValidationState = NodeValidationState::Valid;
44-
modelValidationError = QString();
4542
_result = std::make_shared<DecimalData>(n1->number() +
4643
n2->number());
4744
}
4845
else
4946
{
50-
modelValidationState = NodeValidationState::Warning;
51-
modelValidationError = QStringLiteral("Missing or incorrect inputs");
5247
_result.reset();
5348
}
5449

5550
Q_EMIT dataUpdated(outPortIndex);
5651
}
52+
53+
5754
};

examples/calculator/Converters.cpp

Lines changed: 0 additions & 46 deletions
This file was deleted.

examples/calculator/Converters.hpp

Lines changed: 0 additions & 41 deletions
This file was deleted.

examples/calculator/DivisionModel.hpp

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -68,24 +68,25 @@ class DivisionModel : public MathOperationDataModel
6868

6969
if (n2 && (n2->number() == 0.0))
7070
{
71-
modelValidationState = NodeValidationState::Error;
72-
modelValidationError = QStringLiteral("Division by zero error");
71+
//modelValidationState = NodeValidationState::Error;
72+
//modelValidationError = QStringLiteral("Division by zero error");
7373
_result.reset();
7474
}
7575
else if (n1 && n2)
7676
{
77-
modelValidationState = NodeValidationState::Valid;
78-
modelValidationError = QString();
77+
//modelValidationState = NodeValidationState::Valid;
78+
//modelValidationError = QString();
7979
_result = std::make_shared<DecimalData>(n1->number() /
8080
n2->number());
8181
}
8282
else
8383
{
84-
modelValidationState = NodeValidationState::Warning;
85-
modelValidationError = QStringLiteral("Missing or incorrect inputs");
84+
//modelValidationState = NodeValidationState::Warning;
85+
//modelValidationError = QStringLiteral("Missing or incorrect inputs");
8686
_result.reset();
8787
}
8888

8989
Q_EMIT dataUpdated(outPortIndex);
9090
}
91+
9192
};

examples/calculator/IntegerData.hpp

Lines changed: 0 additions & 37 deletions
This file was deleted.

examples/calculator/MathOperationDataModel.cpp

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,11 @@ setInData(std::shared_ptr<NodeData> data, PortIndex portIndex)
4040
auto numberData =
4141
std::dynamic_pointer_cast<DecimalData>(data);
4242

43+
if (!data)
44+
{
45+
Q_EMIT dataInvalidated(0);
46+
}
47+
4348
if (portIndex == 0)
4449
{
4550
_number1 = numberData;
@@ -52,18 +57,3 @@ setInData(std::shared_ptr<NodeData> data, PortIndex portIndex)
5257
compute();
5358
}
5459

55-
56-
NodeValidationState
57-
MathOperationDataModel::
58-
validationState() const
59-
{
60-
return modelValidationState;
61-
}
62-
63-
64-
QString
65-
MathOperationDataModel::
66-
validationMessage() const
67-
{
68-
return modelValidationError;
69-
}

examples/calculator/MathOperationDataModel.hpp

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,11 @@
1010

1111
class DecimalData;
1212

13-
using QtNodes::PortType;
14-
using QtNodes::PortIndex;
1513
using QtNodes::NodeData;
16-
using QtNodes::NodeDataType;
1714
using QtNodes::NodeDataModel;
18-
using QtNodes::NodeValidationState;
15+
using QtNodes::NodeDataType;
16+
using QtNodes::PortIndex;
17+
using QtNodes::PortType;
1918

2019
/// The model dictates the number of inputs and outputs for the Node.
2120
/// In this example it has no logic.
@@ -25,8 +24,7 @@ class MathOperationDataModel : public NodeDataModel
2524

2625
public:
2726

28-
virtual
29-
~MathOperationDataModel() {}
27+
~MathOperationDataModel() = default;
3028

3129
public:
3230

@@ -46,12 +44,6 @@ class MathOperationDataModel : public NodeDataModel
4644
QWidget *
4745
embeddedWidget() override { return nullptr; }
4846

49-
NodeValidationState
50-
validationState() const override;
51-
52-
QString
53-
validationMessage() const override;
54-
5547
protected:
5648

5749
virtual void
@@ -63,7 +55,4 @@ class MathOperationDataModel : public NodeDataModel
6355
std::weak_ptr<DecimalData> _number2;
6456

6557
std::shared_ptr<DecimalData> _result;
66-
67-
NodeValidationState modelValidationState = NodeValidationState::Warning;
68-
QString modelValidationError = QString("Missing or incorrect inputs");
6958
};

0 commit comments

Comments
 (0)