- SVG node items with snap-to-grid dragging; ports appear on focus/hover and highlight compatible targets during a connection drag - Orthogonally routed edge items with line styles, head/tail decorations (arrow, circle, diamond, bar), selection halo and title labels; later edges jump crossings with arcs when enabled - Grid background view with cursor-anchored zoom, middle-button pan, rubber-band selection and palette drag-and-drop - Undoable commands: add/move/delete/connect/property/paste with clipboard fragments; light/dark/high-contrast themes - Flow overlay: animated dashes, direction and density follow flow rate Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
37 lines
964 B
CMake
37 lines
964 B
CMake
# Core: document model, routing, solver — no Widgets dependency, headless-testable.
|
|
add_library(diagcore STATIC
|
|
core/Types.h
|
|
core/Types.cpp
|
|
core/TypeRegistry.h
|
|
core/TypeRegistry.cpp
|
|
core/NetworkModel.h
|
|
core/NetworkModel.cpp
|
|
core/Router.h
|
|
core/Router.cpp
|
|
core/FlowSolver.h
|
|
core/FlowSolver.cpp
|
|
core/JsonIo.h
|
|
core/JsonIo.cpp
|
|
)
|
|
target_include_directories(diagcore PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
|
|
target_link_libraries(diagcore PUBLIC Qt6::Core Qt6::Gui)
|
|
|
|
# Scene: QGraphicsScene items and interaction.
|
|
add_library(diagscene STATIC
|
|
scene/Theme.h
|
|
scene/Theme.cpp
|
|
scene/Commands.h
|
|
scene/Commands.cpp
|
|
scene/DiagramScene.h
|
|
scene/DiagramScene.cpp
|
|
scene/NodeItem.h
|
|
scene/NodeItem.cpp
|
|
scene/PortItem.h
|
|
scene/PortItem.cpp
|
|
scene/EdgeItem.h
|
|
scene/EdgeItem.cpp
|
|
scene/GridView.h
|
|
scene/GridView.cpp
|
|
)
|
|
target_link_libraries(diagscene PUBLIC diagcore Qt6::Widgets Qt6::Svg)
|