Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
70 commits
Select commit Hold shift + click to select a range
e1d7023
improves NodeValidationState struct
tatatupi Jun 23, 2025
2e91091
qt6 for linux-gcc
tatatupi Jun 23, 2025
545c018
Updates fork from upstream
Gabrielnmds Aug 5, 2025
550be10
updates from upstream
Gabrielnmds Aug 5, 2025
9a48404
refactor(node delegate model): remove unnecessary lines of code
Gabrielnmds Aug 5, 2025
97b0638
first try to replicate nodegroup schema
g-abilio Aug 26, 2025
4f862bd
fix errors in building, as well as include TODO methods
g-abilio Aug 28, 2025
57d595d
improves in grouping structure, as well as future TODO methods
g-abilio Aug 29, 2025
0dbe816
adapts setHovered method from v1 to v3
Gabrielnmds Sep 1, 2025
24f0780
replicate v1 grouping calls schema in v3 basicgraphicsscene
g-abilio Sep 2, 2025
da27d38
solve TODO methods in NodeGroup
g-abilio Sep 3, 2025
7f1e7c0
Fixes methods in Node Graphics Object from v1 to v3
Gabrielnmds Sep 5, 2025
e52b7ed
solve correct usage of nodeId in save method
g-abilio Sep 8, 2025
fbe43d7
solve TODO methods and generate a connection to create a node group
g-abilio Sep 9, 2025
cc9c95d
add group menu and fix std menu signature
g-abilio Sep 25, 2025
d4812ed
add correct menu creation dynamics
g-abilio Sep 25, 2025
4cbd243
reimplement loadNodeToMap and loadConnectionToMap in v3
Gabrielnmds Sep 26, 2025
d7b6a92
add the functionality of the add to group submenu
g-abilio Sep 26, 2025
1b16810
add correct cut action
g-abilio Sep 26, 2025
88a34ed
solve undefined behavior at the menu creation
g-abilio Sep 26, 2025
ffb73f5
solve copy and cut commands for node groups
g-abilio Sep 26, 2025
3814dce
add padlock feature
g-abilio Sep 29, 2025
a262354
solve copy/past command not saving connections inside a group
g-abilio Sep 29, 2025
177a224
fix save and load for node groups
Gabrielnmds Oct 3, 2025
5cd3c65
change delete shortcut and add standard cut shortcut
g-abilio Oct 6, 2025
a330f40
sync with previous group changes
g-abilio Oct 6, 2025
42d2c63
pull upstream changes
g-abilio Oct 7, 2025
6eb2198
remove unnecessary comments
g-abilio Oct 7, 2025
25007c0
add save/load of group files
g-abilio Oct 7, 2025
19d7169
add correct group saving
g-abilio Oct 8, 2025
7cd2d4c
fix ctrl+z bug in node groups
g-abilio Oct 8, 2025
4bc2264
add flag to make group usage optional
g-abilio Oct 9, 2025
7aebc0b
set group node flag false
Gabrielnmds Oct 9, 2025
2083a64
solve info-tooltip svg file problem
g-abilio Oct 10, 2025
2189e77
Merge branch 'node_group' of github.com:fabns-nano/nodeeditor2 into n…
g-abilio Oct 10, 2025
1d93313
solve mistakes in modules usage
g-abilio Oct 10, 2025
4c33dd8
minor error fixes
g-abilio Oct 10, 2025
354743e
fix on errors in macos building
g-abilio Oct 10, 2025
616e9af
add node group test suite
g-abilio Oct 13, 2025
88234d0
add test suite to cmake
g-abilio Oct 13, 2025
837954f
Add description to created methods
Gabrielnmds Oct 13, 2025
b33275a
add docstring to BasicGraphicsScene methods
g-abilio Oct 13, 2025
4e7e167
Merge branch 'node_group' of github.com:fabns-nano/nodeeditor2 into n…
g-abilio Oct 13, 2025
2ddee6f
change group identifier to unsigned int
g-abilio Nov 11, 2025
e5cf070
fix: calculator headers not shown in QtCreator; fixes #491 (#496)
lonnie-souder-ii Nov 12, 2025
829b184
feat: Increase extensibility of BasicGraphicsScene and GraphicsView (…
nolankramer Nov 12, 2025
280406a
BUGFIX: GraphicsView::setScene(nullptr) (#495)
cxxamz Nov 14, 2025
c52d977
Add Node Processing Status feature (#494)
g-abilio Dec 5, 2025
ba099ee
Add entire setBackgroundColor dynamics (#504)
g-abilio Dec 11, 2025
a8861a1
Fix crash when node flags updated after delete node (#501)
zekexiao Dec 11, 2025
0813551
useful if we want to inherit BasicGraphicsScene with similarities to …
clythersHackers Dec 11, 2025
997ba09
fix: broken badge syntax (#508)
melroy89 Jan 5, 2026
3799f43
fix: warnings in msvc build process (#510)
g-abilio Jan 6, 2026
e2d4520
fix: use nodeId style instead the default StyleCollection style (#403)
Dalmais Jan 12, 2026
741a57e
solve conflicts
g-abilio Jan 14, 2026
f953fca
feat: adds zoom fit selected and zoom fit all functionalities. (#509)
Gabrielnmds Jan 22, 2026
9f31b18
solve conflicts
g-abilio Jan 27, 2026
b2e1db5
revert unnecessary commit
g-abilio Jan 27, 2026
0ee5052
remove unnecessary changes
g-abilio Jan 27, 2026
94a363b
minor fixes
g-abilio Jan 27, 2026
be91633
fix undesired changes
g-abilio Jan 28, 2026
3253acf
fix undesired changes
g-abilio Jan 28, 2026
afcbf28
fix: processing status icons and related bugs
paceholder Feb 10, 2026
fdaf948
feat: add examples and tests for advanced features
paceholder Feb 10, 2026
0842ceb
docs: restructure and expand documentation
paceholder Feb 10, 2026
7c6341a
docs: improve API reference and fix local builds
paceholder Feb 10, 2026
f84b5d8
fix: resolve test failures in CI environment (#515)
paceholder Feb 10, 2026
84a7068
Merge branch 'master' of github.com:paceholder/nodeeditor into node_g…
g-abilio Mar 10, 2026
a6141fa
fix test code
g-abilio Mar 10, 2026
070c569
remove unnecessary changes
g-abilio Mar 10, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,8 @@ set(CPP_SOURCE_FILES
src/StyleCollection.cpp
src/UndoCommands.cpp
src/locateNode.cpp
src/GroupGraphicsObject.cpp
src/NodeGroup.cpp
resources/resources.qrc
)

Expand Down Expand Up @@ -127,6 +129,8 @@ set(HPP_HEADER_FILES
include/QtNodes/internal/DefaultVerticalNodeGeometry.hpp
include/QtNodes/internal/NodeConnectionInteraction.hpp
include/QtNodes/internal/UndoCommands.hpp
include/QtNodes/internal/NodeGroup.hpp
include/QtNodes/internal/GroupGraphicsObject.hpp
)

# If we want to give the option to build a static library,
Expand Down Expand Up @@ -165,6 +169,9 @@ target_compile_definitions(QtNodes
QT_NO_KEYWORDS
)

if(MSVC)
string(REGEX REPLACE "/W[0-4]" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
endif()

target_compile_options(QtNodes
PRIVATE
Expand Down
21 changes: 11 additions & 10 deletions README.rst
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
QtNodes
#######

https://github.com/paceholder/nodeeditor/actions/workflows/cmake_build.yml/badge.svg
.. image:: https://github.com/paceholder/nodeeditor/actions/workflows/cmake_build.yml/badge.svg
:target: https://github.com/paceholder/nodeeditor/actions/workflows/cmake_build.yml

Introduction
============
Expand Down Expand Up @@ -33,7 +34,7 @@ Warning
Branches
--------

There are branchses ``v2`` and ``v3`` for versions ``2.x.x`` and ``3.x``
There are branches ``v2`` and ``v3`` for versions ``2.x.x`` and ``3.x``
respectively. The branch ``master`` contains the latest dev state.


Expand Down Expand Up @@ -73,7 +74,7 @@ Dependencies
------------

* Qt >5.15
* CMake 3.8
* CMake 3.11
* Catch2


Expand Down Expand Up @@ -117,7 +118,7 @@ For building a static lib use:

::

cmake .. -BUILD_SHARED_LIBS=off
cmake .. -DBUILD_SHARED_LIBS=off

Linux
-----
Expand Down Expand Up @@ -192,9 +193,9 @@ For detailed testing documentation, see the `Testing Guide <https://qtnodes.read
Help Needed
===========

#. Python wrappring using PySide.
#. Python wrapping using PySide.
#. QML frontend.
#. Wirting a ClangFormat config.
#. Writing a ClangFormat config.

Any suggestions are welcome!

Expand All @@ -219,7 +220,7 @@ Contribution
#. Describe your issue in details
#. Provide some use cases.

#. I maintain this probject in my free time, when I am not busy with my work or
#. I maintain this project in my free time, when I am not busy with my work or
my family. **If I do not react or do not answer for too long, please ping
me**.

Expand Down Expand Up @@ -287,7 +288,7 @@ every automotive developer. Thanks to modularity it is easy to implement new,
custom features.


.. image:: docs/_static/showcase_CANdevStudio.png
.. image:: assets/showcase-candevstudio.png


Chigraph
Expand All @@ -296,7 +297,7 @@ Chigraph
`Chigraph <https://github.com/chigraph/chigraph>`_ is a visual programming
language for beginners that is unique in that it is an intuitive flow graph:

.. image:: docs/_static/chigraph.png
.. image:: assets/chigraph.png


It features easy bindings to C/C++, package management, and a cool interface.
Expand All @@ -309,4 +310,4 @@ Spkgen particle editor
particles engine that uses a node-based interface to create particles effects for
games

.. image:: docs/_static/spkgen.png
.. image:: assets/spkgen.png
File renamed without changes
File renamed without changes
File renamed without changes
2 changes: 1 addition & 1 deletion docs/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
# from the environment for the first two.
SPHINXOPTS ?=
SPHINXBUILD ?= sphinx-build
SOURCEDIR = source
SOURCEDIR = .
BUILDDIR = build

# Put it first so that "make" without argument is like "make help".
Expand Down
Binary file added docs/_static/diagrams/architecture-diagram.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
53 changes: 53 additions & 0 deletions docs/_static/diagrams/architecture-diagram.puml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
@startuml architecture-diagram
!theme plain
skinparam backgroundColor #2B2B2B
skinparam defaultFontColor #E0E0E0
skinparam classBorderColor #606060
skinparam classBackgroundColor #3C3F41
skinparam arrowColor #A0A0A0
skinparam noteBorderColor #606060
skinparam noteBackgroundColor #4A4D4F

skinparam rectangle {
BackgroundColor #3C3F41
BorderColor #606060
FontColor #E0E0E0
}

rectangle "Your Application" as app #4A5568 {
rectangle "Your Data\n(nodes, connections,\npositions, values)" as data #718096
}

rectangle "QtNodes Library" as lib #2D3748 {
rectangle "AbstractGraphModel\n(or DataFlowGraphModel)" as model #4A5568
rectangle "BasicGraphicsScene\n(or DataFlowGraphicsScene)" as scene #4A5568
rectangle "GraphicsView" as view #4A5568
}

rectangle "User Interface" as ui #1A202C {
rectangle "Window with\ninteractive nodes" as window #2D3748
}

data -right-> model : "implements"
model -right-> scene : "visualizes"
scene -right-> view : "displays in"
view -right-> window : "renders to"

note bottom of model
You subclass this
to store your graph data
end note

note bottom of scene
Automatically creates
graphics objects from
model data
end note

note bottom of view
Handles zoom, pan,
selection, and
user interactions
end note

@enduml
Binary file added docs/_static/diagrams/dataflow-diagram.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
48 changes: 48 additions & 0 deletions docs/_static/diagrams/dataflow-diagram.puml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
@startuml dataflow-diagram
!theme plain
skinparam backgroundColor #2B2B2B
skinparam defaultFontColor #E0E0E0
skinparam componentBorderColor #606060
skinparam componentBackgroundColor #3C3F41
skinparam arrowColor #4299E1
skinparam noteBorderColor #606060
skinparam noteBackgroundColor #4A4D4F

skinparam rectangle {
BackgroundColor #3C3F41
BorderColor #606060
FontColor #E0E0E0
RoundCorner 15
}

rectangle "Source Node\n(NumberSourceDataModel)" as source #48BB78 {
}

rectangle "Operator Node\n(AdditionModel)" as operator #4299E1 {
}

rectangle "Display Node\n(NumberDisplayDataModel)" as display #ED8936 {
}

source -right-> operator : "outData()"
operator -right-> display : "outData()"

note bottom of source
**Emits data**
Creates values
(e.g., number input)
end note

note bottom of operator
**Processes data**
Receives via setInData()
Outputs via outData()
end note

note bottom of display
**Consumes data**
Receives and shows
the final result
end note

@enduml
Binary file added docs/_static/diagrams/dataflow-signals.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
51 changes: 51 additions & 0 deletions docs/_static/diagrams/dataflow-signals.puml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
@startuml dataflow-signals
!theme plain
skinparam backgroundColor #2B2B2B
skinparam defaultFontColor #E0E0E0
skinparam sequenceArrowColor #4299E1
skinparam sequenceLifeLineBorderColor #606060
skinparam sequenceParticipantBorderColor #606060
skinparam sequenceParticipantBackgroundColor #3C3F41
skinparam sequenceBoxBorderColor #606060
skinparam sequenceBoxBackgroundColor #2D3748

participant "Source\nDelegate" as src #48BB78
participant "DataFlow\nGraphModel" as model #4A5568
participant "Operator\nDelegate" as op #4299E1
participant "Display\nDelegate" as disp #ED8936

src -> src : User changes\nvalue in widget
activate src
src -> src : emit dataUpdated(portIndex)
src -> model : [signal] dataUpdated
deactivate src
activate model

model -> model : Lookup connections\nfrom this port
model -> op : setInData(data, portIndex)
deactivate model
activate op

op -> op : Process input
op -> op : Calculate result
op -> op : emit dataUpdated(0)
op -> model : [signal] dataUpdated
deactivate op
activate model

model -> model : Lookup connections\nfrom operator output
model -> disp : setInData(data, portIndex)
deactivate model
activate disp

disp -> disp : Update display\nwidget
deactivate disp

note over model
DataFlowGraphModel
routes data between
connected delegates
automatically
end note

@enduml
Binary file added docs/_static/screenshots/calc-start.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
File renamed without changes
Binary file added docs/_static/screenshots/connection-colors.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/_static/screenshots/custom-painter.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/_static/screenshots/dynamic-ports.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/_static/screenshots/embedded-widget.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
File renamed without changes
Binary file added docs/_static/screenshots/locked-node.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/_static/screenshots/node-anatomy.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/_static/screenshots/processing-status.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/_static/screenshots/quickstart-connect.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/_static/screenshots/quickstart-create.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/_static/screenshots/quickstart-result.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/_static/screenshots/quickstart-select.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/_static/screenshots/resizable.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/_static/screenshots/text.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/_static/screenshots/validation.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/_static/screenshots/vertical-layout.png
Loading
Loading