Commit Graph
48 Commits
Author SHA1 Message Date
itsmattkc fa1fbd3a34 nodeview: updated with new node color UI system 2021-01-19 09:08:46 +11:00
itsmattkc 8e7035bd40 restored nodeview 2021-01-19 00:06:57 +11:00
itsmattkc 181235f6ce began new infrastructure
Yep, this is another one of my "famous" sweeping rewrites. Expect things to break.

Goals for this are:
- Greatly simplify node connections (particularly with arrays) so the code requires less maintenance/is more stable
- Redesign node structure to address issues where UI would stall for lengthy periods of time
- Less reliance on shared ptrs/greater reliance on QObject system for inheritance/memory management
- General code cleanup and improvements
2021-01-05 11:20:38 +11:00
itsmattkc 374fa3f75c moved some files around for better organization 2020-12-16 19:05:22 +11:00
itsmattkc 75d4cd899b use hardcoded namespace
The macro defined namespaces confused the hell out of lupdate and more or less broke translations permanently. Looks like the only way we can do it is to have a hardcoded namespace, which goes against my instinct, but honestly how likely is it that we'll change the namespace anyway (I guess forks might want to do it, but that's their problem ;) )
2020-11-17 20:24:42 +11:00
itsmattkc d241090a9f finally updated the copyright year 2020-11-17 20:13:22 +11:00
itsmattkc 1b9bf6d92c switched many QLists for QVectors
Minor optimization
2020-11-16 16:17:43 +11:00
itsmattkc 0cafbb2594 nodeview: minor optimizations and behavior improvements 2020-10-10 19:47:25 +11:00
itsmattkc 02c0fb7316 nodeview: automatically deselect blocks that have been removed
Fixes segfault attempting to access and select an item that's already been
removed.
2020-08-05 23:56:42 +10:00
itsmattkc 2afa5a42c7 ui: optimized widget signals for selecting clips/nodes
Decent performance optimization when working with the UI.
2020-08-01 02:12:20 +10:00
itsmattkc 41b04d976c nodes/clips: use node label as clip name and allow changing multiple labels at once
Merges the "clip name" and "node label" into the same entity.
2020-06-16 16:23:05 +10:00
itsmattkc 71fa821e52 nodeview: enforce minimum scale 2020-06-16 15:37:11 +10:00
itsmattkc 1ed0814e83 nodeview: associate disconnected nodes with selected blocks until re-connected 2020-05-13 16:06:13 +10:00
itsmattkc ce58671fd6 nodeview: started core node filtering work 2020-05-11 22:48:27 +10:00
itsmattkc 16d4cccdb5 nodeview: optimized selecting
Rather than responding to every single selection change, the selection operation
can function as-is and then respond to all of them at the end.
2020-05-09 03:33:36 +10:00
itsmattkc 3d0f11c6ef nodeview: first attempt at filter dialog 2020-05-08 23:12:00 +10:00
itsmattkc bf68a4d631 nodes: added ability to label nodes 2020-04-29 15:35:05 +10:00
itsmattkc 13dc79d0cd nodeview: implemented duplicate feature 2020-04-29 15:04:53 +10:00
itsmattkc d83073cf85 nodeview: attach pasted nodes to the cursor 2020-04-29 14:49:43 +10:00
itsmattkc ff1a470aa0 Merge branch 'master' into nodeviewredux 2020-04-29 05:01:11 +10:00
itsmattkc 8ab91a70cc nodeview: implemented moving with either the hand tool or middle mouse button
Includes splitting off this functionality from TimelineViewBase so it can be
re-used in any QGraphicsView.
2020-04-29 04:56:58 +10:00
itsmattkc b57d12868f nodeview: allow dropping a node on any edge
Before we checked data types to ensure compatibility, but some nodes (e.g. the
math node) may be compatible despite a not apparently compatible data type.
We allow users to make any connection quickly this way.
2020-04-28 03:20:08 +10:00
itsmattkc b947b2224a nodeview: support multiple flow directions 2020-04-27 16:08:48 +10:00
itsmattkc 1aa87cbda6 various: encapsulate all code in the olive namespace to avoid name collisions
Large-scale code cleanup. Also adds a license to the top of all files that were
missing it.
2020-04-06 15:29:53 +10:00
itsmattkc 2bda306866 timeline/various: implemented block copy/paste
Implemented the ability to copy/paste blocks/clips in the timeline. This did
require some large scale changes and reworking of the copy/paste system
introduced a few commits ago, but should be largely functional now.
2020-03-31 02:19:05 +11:00
itsmattkc 2bfe9f44df nodeview: added ctrl+scroll zooming 2020-03-30 01:27:10 +11:00
itsmattkc 34f60e639a nodeview: implemented copying/pasting nodes
Re-uses XML-based project saving/loading functions to store nodes, their
parameters, and their connections in a text-based format in the clipboard.
2020-03-15 20:01:58 +11:00
itsmattkc 3e34975dd9 nodeview: improved and optimized some selection code 2020-03-02 17:03:03 +11:00
itsmattkc f6d602d8e0 nodeview: improved code structures 2020-03-02 16:07:24 +11:00
itsmattkc bf7fc9a0c4 panels: selecting a clip in the timeline automatically selects the corresponding
nodes in the nodeview
2020-02-26 00:39:30 +11:00
itsmattkc 0a74714f5d nodeview/nodepanel: implemented select all/deselect all functionality 2020-02-23 11:38:30 +11:00
itsmattkc ce889f68d5 nodeview: allow users to place a node on an edge to automatically connect it
between the two nodes

UI convenience. Edge highlights when the cursor is in range to perform this
action.
2020-02-16 12:40:12 +11:00
itsmattkc a6f4922d66 nodeview: allow esc key to cancel adding a node 2020-02-16 11:44:35 +11:00
itsmattkc fa0f732d39 nodeview: attach new nodes to mouse for easier placement 2020-02-16 11:19:26 +11:00
itsmattkc b233bdf8c9 a fairly decent node auto-positioning algorithm, not perfect, but a good start 2020-01-09 04:03:47 +11:00
itsmattkc 7018973d09 basic auto-positioning implementation
Not perfect by any means, but nodes are now automatically placed in relation to
their surroundings and connections.
2020-01-09 01:41:23 +11:00
itsmattkc 18bf126574 implemented deleting nodes in the nodeview (undoable) 2019-12-13 04:12:00 +11:00
itsmattkc 186973ff20 implemented final connections to allow creating new nodes in the nodeview 2019-12-13 03:06:12 +11:00
itsmattkc 934eea5f40 completed node 'add' menu 2019-12-13 02:55:09 +11:00
itsmattkc 371d0e2b37 some render cache adjustments 2019-09-04 10:58:50 +10:00
itsmattkc 9b63cc7755 inserting blocks through the timeline implemented 2019-08-11 17:30:27 +10:00
itsmattkc 136bb52fef started parameter editor 2019-07-19 00:15:59 -07:00
itsmattkc 9633028f99 documented node view classes 2019-07-17 15:31:34 -04:00
itsmattkc a78cc3950a various node UI improvements 2019-07-16 13:25:38 -04:00
itsmattkc 1a39216be2 nodeview can connect and disconnect nodes 2019-07-16 04:43:57 -04:00
itsmattkc dc2101938e began node viewer for dag insight 2019-07-15 03:52:44 -04:00
itsmattkc df32b881c2 reworked css 2019-07-14 11:28:19 -04:00
itsmattkc f0bf51e4a6 began work on node view panel 2019-07-14 10:14:57 -04:00