Commit Graph
147 Commits
Author SHA1 Message Date
itsmattkc b21271534f added UI for editing video parameters in nodes 2021-02-20 13:27:56 +11:00
itsmattkc 4827782331 moved sequence params into node graph too
Reduces code by reusing more of the existing node infrastructure
to synchronize sequence parameters the render backend.
2021-02-18 13:20:23 +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 d53885fe3d improved nodeparamview Y setting
Still not perfect, mostly due to Qt's terrible QMainWindowLayout, but ah well
2021-01-30 10:27:52 +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 4e5db91c17 keyframeviewbase: cleaned up code and show tooltip values in input's desired format 2021-01-25 11:05:09 +11:00
itsmattkc 9f99182089 use catch up scrolling when dragging items 2021-01-25 10:22:14 +11:00
itsmattkc 2da0aed942 remove unnecessary sequence casts 2021-01-25 09:33:50 +11:00
itsmattkc f04ca0a707 implemented select and deselect all in curve and param panels 2021-01-24 15:29:38 +11:00
itsmattkc 4dd2b64c6d keyframecontrol: update state if keyframe time changes 2021-01-24 12:08:23 +11:00
itsmattkc 13b5d9237a ensure node order is signalled if a node is unpinned and removed from param view 2021-01-23 08:28:40 +11:00
itsmattkc a261dd55f1 use quintptrs for footage rather than QVariant::fromValue 2021-01-22 16:04:37 +11:00
itsmattkc 2af776b110 fixed various caching update issues 2021-01-22 14:33:30 +11:00
itsmattkc 8a5df32281 fixed arrays in nodeparamview 2021-01-22 12:20:25 +11:00
itsmattkc 396ccfa160 reworked param view for new structure 2021-01-19 09:10:23 +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 6cb6407bd8 don't use shared ptrs on streams 2020-12-16 13:46:19 +11:00
itsmattkc 992b6eb952 added plural forms to translatable strings
Fixes #1421
2020-11-27 13:04:49 +11:00
itsmattkc 8a869d0393 use QObject property system now that i know how to signal them 2020-11-27 10:10:24 +11:00
itsmattkc 210417a5f2 enable undo/redo on node param text editor 2020-11-25 17:17:13 +11:00
itsmattkc c7f5af9534 moved autoscroll code to TimeBasedWidget rather than TimelineViewBase
Better place for it. Fixes #1406
2020-11-25 10:00:57 +11:00
itsmattkc 2c4f781e13 paramview: discard scroll events on widgets 2020-11-23 12:01:21 +11:00
itsmattkc 5e319a0cdd nodeparamviewwidgetbridge: implemented offsets for more user friendly numeric values 2020-11-22 10:24:35 +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 1b9bf6d92c switched many QLists for QVectors
Minor optimization
2020-11-16 16:17:43 +11:00
itsmattkc a0fb1981b4 multi-line edit for text in paramview 2020-11-16 12:27:59 +11:00
itsmattkc b9359ce50d nodeparamview/viewer: improved gizmo selection system 2020-09-30 00:32:40 +10:00
itsmattkc fec9774935 curveview: finished rework 2020-09-29 16:41:12 +10:00
itsmattkc 610f4c54fe various: began heavy rework of curve view to link closely with param view 2020-09-29 00:42:16 +10:00
itsmattkc dc56dc1d60 nodeparamview: implemented pinning 2020-09-28 21:50:55 +10:00
itsmattkc 4c30773fd4 nodeparamview: reworked based on QMainWindow for docking functionality 2020-09-28 19:55:18 +10:00
itsmattkc d69e478a62 paramview: ensure item time target is set upon creation
Fixes #1213
2020-09-23 01:44:11 +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 6309b8fbb7 math: fixed power function
Corrected shader code and fixed bug in widget bridge that reported an
incorrect index.
2020-07-17 12:33:28 +10:00
itsmattkc c710fd162e richtextdialog: show html tags rather than wysiwyg
While good in theory, a WYSIWYG rich text editor for large video frames
was unwieldy (and in many cases unhelpful). Instead the titler will
show plain text/HTML tags so the user can still write rich text but
without the unwieldy UI.

For a true WYSIWYG experience, we would probably need to write a true
graphical editor (a la Premiere's titler), but that's a later goal.
This titler will be sufficient in a good majority of cases and there
are plenty of dedicated graphics packages if more complex titling is
required for the timebeing.
2020-07-10 18:42:13 +10:00
itsmattkc 343c39d66d nodeparamview: preserve cursor position when text is edited 2020-07-10 02:41:35 +10:00
itsmattkc 8e1be4a3ff nodeparamviewwidgetbridge: implemented editing font parameters 2020-07-10 02:40:09 +10:00
itsmattkc 8bf653925f curve/timeline: improved user interface behavior
* Implements "auto-fit" setting for curve view and sets it on open.
* Improves scroll zooming on all TimelineViewBase derivatives.
* Improves code sharing for better maintenance.
2020-06-23 05:25:34 +10:00
itsmattkc e681b87988 curve/param/panels: leave curve panel open and have option for timebasedwidget to auto-set timebase 2020-06-23 05:22:58 +10:00
itsmattkc 1725f01459 paramview: changed to static viewer-bound and fixed various scrolling issues 2020-06-22 00:38:00 +10:00
itsmattkc e97b5a9a14 nodeparamview: set time on node set
Fixes bug where keyframes would land on 0 unless the time is set a
second time.
2020-06-21 13:12:07 +10:00
itsmattkc 115e62f140 slider: further behavior improvements
Ladders appears offset on sliders with multipliers. Ladder also appears
on initial press (but still shows line edit if mouse wasn't moved)
2020-06-18 18:58:49 +10:00
itsmattkc 67ee78ac9a nodeparamview: allow disconnecting nodes by right clicking the "connected to" label 2020-06-16 17:48:10 +10:00
itsmattkc 4c548bc6a5 slider: implemented value ladder
Allows finer control over value changes.
2020-06-14 03:56:18 +10:00
itsmattkc 37b7330274 text: added crude basic rich text dialog
To be expanded upon...
2020-06-13 20:04:17 +10:00
itsmattkc 5c5f09a20c renderer: added generate job
For nodes that produce an image on the CPU before sending it to the GPU.
2020-06-13 03:01:23 +10:00