Commit Graph
159 Commits
Author SHA1 Message Date
itsmattkc ff9e9eb90b fixed qt assert when importing files 2021-04-08 12:42:09 +10:00
itsmattkc cb75e37e77 moved several files around
Mostly moved classes that became node derivatives into the node/ folder.
2021-04-08 12:15:59 +10:00
Simran ce2e51fc2a QPainter::matrix is obsolete, use transform() instead 2021-04-01 18:00:12 +02:00
itsmattkc 2ea152479e nodeview: override icon pixmap retrieval 2021-04-01 23:45:28 +11:00
itsmattkc dccea63d97 nodeview: initialize edge item's from/to references
Fixes #1526
2021-03-23 22:28:21 +11:00
itsmattkc 0a17e0fbe2 nodeview: do something when clips are selected 2021-03-20 10:10:09 +11:00
itsmattkc 843db76e75 nodeview: show label and type if label is set
Might not keep this, but we should have something to make the
node types clear when labelled.
2021-03-18 19:36:03 +11:00
itsmattkc 334b152765 code: fixed minor semantics 2021-03-18 19:35:53 +11:00
itsmattkc 2a3a256f3e implement keyboard zooming into node view 2021-03-16 12:12:51 +11:00
itsmattkc a57bf35e93 don't copy items when splitting or duplicating blocks 2021-03-01 13:27:13 +11:00
itsmattkc 72dd80c90c ensure nodeview is unset when project closes 2021-02-24 22:15:12 +11:00
itsmattkc d7c5ac4b44 implement entire project in nodes
Project items are now represented directly in nodes opening up more versatility and possibilities. This is the first iteration of this and will be buggy. Need to test thoroughly.
2021-02-15 21:31:57 +11:00
itsmattkc 81c1922911 use strings to connect nodes
This makes the node system somewhat more high-level with the intent of making
working with them far more flexible and stable. By making the architecture more
abstracted, it becomes far less rigid which should allow us to do even more
with it and make it much less crash prone.
2021-02-09 15:48:37 +11:00
itsmattkc ad4b83a098 new undo system
Also enables undoing when working with node input arrays
2021-01-29 16:10:34 +11:00
itsmattkc 2da0aed942 remove unnecessary sequence casts 2021-01-25 09:33:50 +11:00
itsmattkc 7795d42347 moved block links to node links
Seems like it might be useful to have this as part of the node architecture as a whole
2021-01-25 09:17:25 +11:00
itsmattkc 03dc971a4b nodeview: use existing zoom check function 2021-01-23 08:18:45 +11:00
itsmattkc 03d31b2225 fixed cursor zooming algorithm
What the hell is this? How did I write this old algorithm? Did it even work?
2021-01-22 19:52:05 +11:00
itsmattkc d9019f9cb1 fixed node removals 2021-01-22 19:23:20 +11:00
itsmattkc b114bf98c9 only select nodes on right click if the current clicked node isn't already selected 2021-01-22 17:12:04 +11:00
itsmattkc 8a5df32281 fixed arrays in nodeparamview 2021-01-22 12:20:25 +11:00
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 fbdda3d6d4 various code cleanups 2021-01-13 12:05:05 +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 7b266c51a4 move clamp to bezier itself to prevent deadlocks 2020-11-23 08:43:02 +11:00
itsmattkc 9928027040 nodeview: clamp bezier value 2020-11-22 20:28:48 +11:00
itsmattkc 3edac8a07f nodeview: added arrows 2020-11-18 01:34:40 +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 e2010dde83 made formal QtUtils class 2020-11-17 09:42:36 +11:00
itsmattkc 81450044e0 added preference for duplicating dependencies
Fixes #1320
2020-11-16 16:32:15 +11:00
itsmattkc 1b9bf6d92c switched many QLists for QVectors
Minor optimization
2020-11-16 16:17:43 +11:00
itsmattkc 0d102defab tracks: use node label instead of separate name string 2020-10-10 20:17:25 +11:00
itsmattkc 0cafbb2594 nodeview: minor optimizations and behavior improvements 2020-10-10 19:47:25 +11:00
itsmattkc df54b98fd6 nodeview: added light gradient to node item 2020-10-10 17:22:12 +11:00
itsmattkc 2ccbfa7715 nodeview: null checks on select code
Prevents segfaults if the node view clears before the timeline.
2020-10-06 00:10:53 +11:00
itsmattkc 787ea1d548 Merge branch 'master' into ui-optimizations 2020-10-05 15:19:57 +11:00
itsmattkc 4204910796 nodes: link edges to IDs rather than objects
Allows code to know whether the connected parameters has been removed or
not.
2020-10-02 16:04:50 +10:00
itsmattkc 2fb7066155 nodes: allow stalling graph signals until an operation is over 2020-10-02 13:25:49 +10:00
Thomas Wilshaw 9d27d557cd Replace custom unlink with BlockUnlinkAllCommand
Re-use existing unlink command and move all the unlinking code to
NodeRemoveCommand to cover all bases (deletion of a block in the
timeline or in the node editor).
2020-09-30 18:14:11 +01:00
Thomas Wilshaw e09afd7f68 Fix Issue#1241
When a Block node was deleted its linked blocks were not unlinked
which caused a crash when the user tried to select a linked block.
This fixes the issue by ensuring all links are removed when a Block
node is delete.

Undo/redo is also supported.
2020-09-29 18:27:30 +01:00
itsmattkc 9aabde303e nodeview: added arrows to indicate a node can be expanded
Minor UI detail. Also slightly increases the size of node items and adds
"short names" to the video input and audio input nodes.
2020-08-21 15:15:39 +10:00
itsmattkc c6dd0e0204 nodeview: select on right click 2020-08-07 20:17:01 +10: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 39d71eb7cd nodeview: drop nodes on release rather than press
Minor UI improvement that also addresses issue where the cache would
ignore the invalidation.
2020-07-10 19:28:42 +10:00
itsmattkc f107c9bba1 nodeview: associated pasted nodes
Prevents nodes being erroneously filtered out.
2020-06-16 17:17:47 +10:00
itsmattkc e979ce4d7a nodeview: made an "infinite scroller"
Set scene rect to huge and hid the scrollbars. The node view should be
scrolled with middle click or the hand tool.
2020-06-16 16:31:16 +10:00