Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
3ed0391
Use a fixed margin for bounding rectangle rather than a ratio of node…
Malcohol Jun 9, 2025
f479a97
Update CMake minimum version to 3.11
paceholder Jun 9, 2025
4be7ed0
Update default Ubuntu CI image to 22.04
paceholder Jun 9, 2025
ea337dc
Account for extra port spacing when positioning expanded widgets
Malcohol May 17, 2025
b16cee8
Provide a const BasicGraphicsScene::nodeGeometry method
Malcohol May 5, 2025
f5aad28
DataFlowGraphModel::loadNode not registering signals fix
vlad-mod Dec 2, 2024
b56a7d0
Optimizing performance | Add shadow enabler
Grozamir Jun 13, 2024
571499b
Enable shadow by default
paceholder Jun 11, 2025
d5e0049
fix: name of paste selection GraphicsView action (fixes #372)
craftablescience Oct 10, 2023
aff0a05
Update deprecated QCheckBox signals
paceholder Jun 12, 2025
a53aee3
ConnectionGraphicsObject should export symbols
bansan85 Jul 11, 2025
0879d3a
fix: includes are not compatible with Qt5
lsouder-ozone3d Jul 10, 2025
ddb5498
Use AUTOMOC instead of manually wrapping the headers
paceholder Jul 22, 2025
380e5ca
Write unit-tests (#480)
paceholder Jul 23, 2025
ab959eb
Fix docs build config
paceholder Jul 23, 2025
a47f813
Fix readthedocs
paceholder Jul 23, 2025
1c59e84
Order included headers from local to global
paceholder Jul 31, 2025
2122e37
Implement simpler port bound check
paceholder Jul 31, 2025
1b9e2f5
chore: set up some templates/forms for future contributors
lsouder-ozone3d Jul 30, 2025
a77593e
Update README.rst
paceholder Aug 1, 2025
d786a24
Update bug-report.yml
paceholder Aug 1, 2025
b7fb9f5
Update feature_request.yml
paceholder Aug 1, 2025
8b054bc
fix: control loops before connecting depending on AbstractGraphModel:…
paceholder Aug 1, 2025
ff23d00
Adds validation state feedback to nodes (#475)
tatatupi Sep 2, 2025
3f46f74
fixes #487: crash in QGraphicsObject::mousePressEvent if node is lock…
lonnie-souder-ii Sep 2, 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
1e7a560
Update QtNodes with upstream changes
Dec 2, 2025
7bc2e68
Update NodeValidationState
Dec 2, 2025
09ff924
Update header
Dec 2, 2025
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
63 changes: 63 additions & 0 deletions .github/ISSUE_TEMPLATE/bug-report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
name: Bug report
description: Report crashes or incorrect behaviour of existing functionality in QtNodes.
body:
- type: textarea
id: steps
attributes:
label: Description with steps to reproduce
description: Please also describe the actual (current) and expected behaviour and include a code snippet where relevant
placeholder: |
1. go to ...
2. then click on ...
3. then ...
Actual behaviour:
Expected behaviour:
validations:
required: true
- type: textarea
id: evidence
attributes:
label: Supporting files, videos and screenshots
description: |
* A short screen recording (ideally 20sec or less) or screenshot
placeholder: |
Click into this text box and paste your files, videos and screenshots here.
validations:
required: true
- type: input
id: qt_version
attributes:
label: Qt Version
description: What version of Qt does this bug occur on?
placeholder: Qt 5/6?
validations:
required: true
- type: input
id: os
attributes:
label: Operating system
description: What OS does this bug occur on?
placeholder: Windows 11, macOS 13, Ubuntu 22.04, etc.
validations:
required: true
- type: textarea
id: context
attributes:
label: Additional context
description: Further information which may be relevant to this bug

- type: checkboxes
id: checklist
attributes:
label: Checklist
description: "Before submitting your bug report, please make sure the following requirements are met:"
options:
- label: "I have verified that this issue has not been logged before, by searching the [issue tracker](https://github.com/paceholder/nodeeditor/issues) for similar issues"
required: true
- label: "I have attached all requested files and information to this report"
required: true
- label: "I have attempted to identify the root problem as concisely as possible, and have used minimal reproducible examples where possible"
required: true
- type: markdown
attributes:
value: If an issue does not meet these requirements, it may be closed without investigation.
43 changes: 43 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: Feature request
description: Request new functionality or enhancements.
body:
- type: textarea
id: idea
attributes:
label: Your idea
description: Describe your idea in a few sentences.
validations:
required: true
- type: textarea
id: whatfor
attributes:
label: Problem to be solved
description: What problem would your idea solve?
validations:
required: true
- type: textarea
id: other
attributes:
label: Prior art
description: Have you run into this problem with other apps? How did they solve it? You can paste screenshots.
validations:
required: false
- type: textarea
id: context
attributes:
label: Additional context
description: Anything else of note
validations:
required: false

- type: checkboxes
id: checklist
attributes:
label: Checklist
description: "Before submitting your bug report, please make sure the following requirements are met:"
options:
- label: "I have verified that this feature request has not been logged before, by searching the [issue tracker](https://github.com/paceholder/nodeeditor/issues) for similar requests"
required: true
- type: markdown
attributes:
value: If a feature request does not meet these requirements, it may be closed without investigation.
25 changes: 25 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
## Type of change
- [ ] Bug fix
- [ ] New feature
- [ ] Breaking change
- [ ] Documentation/refactoring

## Description
<!--
Brief description of the change;
If this is a breaking change, please describe what breaks and how to migrate
-->

## Testing
- Qt version tested:
- [ ] Existing tests still pass
- [ ] Added tests for new functionality (if applicable)

## Breaking changes?
<!-- If yes, describe what breaks and how to migrate -->

## Related issue
<!-- Link with "Fixes #123" or "Closes #123" if applicable -->

---
*Please fill out the sections above to help reviewers understand your changes.*
24 changes: 22 additions & 2 deletions .github/workflows/cmake_build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:

include:
- toolchain: linux-gcc
os: ubuntu-20.04
os: ubuntu-22.04
compiler: gcc
qt_version: "5.15.2"
modules: ""
Expand Down Expand Up @@ -69,7 +69,9 @@ jobs:

- name: Setup (Linux)
if: startsWith (matrix.os, 'ubuntu')
run: sudo apt-get install libxkbcommon-dev
run: |
sudo apt-get update
sudo apt-get install libxkbcommon-dev xvfb

- name: Setup VS tools (Windows)
if: startsWith (matrix.os, 'windows')
Expand All @@ -82,3 +84,21 @@ jobs:

- name: Build with ${{ matrix.compiler }}
run: cmake --build build --config ${{ matrix.configuration }}

- name: Run Tests (Linux)
if: startsWith (matrix.os, 'ubuntu')
run: |
cd build
xvfb-run -a ctest --output-on-failure --progress

- name: Run Tests (macOS)
if: startsWith (matrix.os, 'macos')
run: |
cd build
ctest --output-on-failure --progress

- name: Run Tests (Windows)
if: startsWith (matrix.os, 'windows')
run: |
cd build
ctest -C ${{ matrix.configuration }} --output-on-failure --progress
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,6 @@ CMakeLists.txt.user
build*/
.vscode/

qt-build

tags
6 changes: 5 additions & 1 deletion .readthedocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,11 @@
# Required
version: 2

build:
os: ubuntu-22.04
tools:
python: "3.12"

# Build documentation in the docs/ directory with Sphinx
sphinx:
builder: html
Expand All @@ -13,7 +18,6 @@ sphinx:

# Optionally set the version of Python and requirements required to build your docs
python:
version: 3.7
install:
- requirements: docs/requirements.txt

Expand Down
59 changes: 0 additions & 59 deletions .travis.yml

This file was deleted.

46 changes: 9 additions & 37 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.8)
cmake_minimum_required(VERSION 3.11)

cmake_policy(SET CMP0072 NEW) # new in 3.11. The NEW behavior for this policy is to set OpenGL_GL_PREFERENCE to GLVND.
cmake_policy(SET CMP0068 NEW) # new in 3.9. The NEW behavior of this policy is to ignore the RPATH settings for install_name on macOS.
Expand All @@ -13,6 +13,10 @@ set(CMAKE_DISABLE_SOURCE_CHANGES ON)
set(OpenGL_GL_PREFERENCE LEGACY)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)

# Enable AUTOMOC globally for all targets (needed for examples with Q_OBJECT)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)

get_directory_property(_has_parent PARENT_DIRECTORY)
if(_has_parent)
set(is_root_project OFF)
Expand All @@ -30,8 +34,6 @@ option(BUILD_DEBUG_POSTFIX_D "Append d suffix to debug libraries" OFF)
option(QT_NODES_FORCE_TEST_COLOR "Force colorized unit test output" OFF)
option(USE_QT6 "Build with Qt6 (Enabled by default)" ON)

enable_testing()

if(QT_NODES_DEVELOPER_DEFAULTS)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/bin")
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/lib")
Expand Down Expand Up @@ -60,16 +62,6 @@ if (${QT_VERSION} VERSION_LESS 5.11.0)
message(FATAL_ERROR "Requires qt version >= 5.11.0, Your current version is ${QT_VERSION}")
endif()

if (${QT_VERSION_MAJOR} EQUAL 6)
qt_add_resources(RESOURCES ./resources/resources.qrc)
else()
qt5_add_resources(RESOURCES ./resources/resources.qrc)
endif()

# Unfortunately, as we have a split include/src, AUTOMOC doesn't work.
# We'll have to manually specify some files
set(CMAKE_AUTOMOC ON)

set(CPP_SOURCE_FILES
src/AbstractGraphModel.cpp
src/AbstractNodeGeometry.cpp
Expand Down Expand Up @@ -97,6 +89,7 @@ set(CPP_SOURCE_FILES
src/StyleCollection.cpp
src/UndoCommands.cpp
src/locateNode.cpp
resources/resources.qrc
)

set(HPP_HEADER_FILES
Expand Down Expand Up @@ -145,7 +138,6 @@ set(HPP_HEADER_FILES
add_library(QtNodes
${CPP_SOURCE_FILES}
${HPP_HEADER_FILES}
${RESOURCES}
)

add_library(QtNodes::QtNodes ALIAS QtNodes)
Expand Down Expand Up @@ -205,28 +197,6 @@ set_target_properties(QtNodes
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
)

######
# Moc
##

file(GLOB_RECURSE HEADERS_TO_MOC include/QtNodes/internal/*.hpp)

if (${QT_VERSION_MAJOR} EQUAL 6)
qt_wrap_cpp(nodes_moc
${HEADERS_TO_MOC}
TARGET QtNodes
OPTIONS --no-notes # Don't display a note for the headers which don't produce a moc_*.cpp
)
else()
qt5_wrap_cpp(nodes_moc
${HEADERS_TO_MOC}
TARGET QtNodes
OPTIONS --no-notes # Don't display a note for the headers which don't produce a moc_*.cpp
)
endif()

target_sources(QtNodes PRIVATE ${nodes_moc})

###########
# Examples
##
Expand All @@ -242,9 +212,11 @@ endif()
##################
# Automated Tests
##
enable_testing()


if(BUILD_TESTING)
#add_subdirectory(test)
add_subdirectory(test)
endif()

###############
Expand Down
Loading
Loading