Commit Graph
30 Commits
Author SHA1 Message Date
itsmattkc 52c5617159 undo: wrapped redo/undo functions to ensure prepare is called 2021-07-17 00:14:24 -07:00
itsmattkc 61010ad6a6 nodeview: updated commands for new streamlined system 2021-07-16 02:06:02 -07:00
itsmattkc c41047ab02 timeline: reorganized undo commands
Split commands between several files rather than having them all in two monolithic ones.
2021-07-16 01:38:20 -07:00
itsmattkc dcac7f94f9 nodeview: when removing a node, remove it from all contexts 2021-07-08 11:42:53 -07:00
itsmattkc 77d4b18a60 updated copyright year for 2021 [skip ci] 2021-04-17 18:56:50 +10:00
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
itsmattkc a57bf35e93 don't copy items when splitting or duplicating blocks 2021-03-01 13:27:13 +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 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 d9019f9cb1 fixed node removals 2021-01-22 19:23:20 +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 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
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 f73c41d3fa various: implemented multiple project support
This required various changes to various parts of the infrastructure (mostly
using paths to finding the "root project" of any given object throughout).
Now theoretically infinite projects can be opened and accounted for at any
given time.
2020-04-18 01:50:47 +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 baf3fbde05 global: made every user action set a project "modified" state that will prevent
the main window from closing instantly
2020-03-03 14:33:45 +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 f8f932112c fixed bug where the node remove with exclusive deps command would never run 2020-01-17 13:56:45 +11:00
itsmattkc 62e94ca2cb improved a number of pointer tool functions and fixed a number of bugs 2020-01-02 01:30:43 +11:00
itsmattkc 05e10962f9 added convenience undo command for removing a node and its exclusive deps 2019-12-19 01:44:18 +11:00
itsmattkc 323718bc11 moved timeline undoable commands to using the new NodeAddCommand
Previous iteration used some "magic code" that added clips automatically to the
timeline. This was functional but ultimately outside of the undo commands'
control meaning nodes could be infinitely added and abandoned. This makes the
add process part of the undo command which means it's all undoable as the user
would expect.
2019-12-14 00:04:57 +11:00
itsmattkc 18bf126574 implemented deleting nodes in the nodeview (undoable) 2019-12-13 04:12:00 +11:00
itsmattkc 9f6d0f9dc7 documented new node classes 2019-07-17 03:05:25 -04:00
itsmattkc 39256fd6f9 made node edge changes undoable 2019-07-17 00:14:49 -04:00