Commit Graph
30 Commits
Author SHA1 Message Date
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 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 0f38769208 fixed more keyframe dragging bugs 2021-01-24 18:17:55 +11:00
itsmattkc f04ca0a707 implemented select and deselect all in curve and param panels 2021-01-24 15:29:38 +11:00
itsmattkc 62bab2ec01 keyframeview: show time and value in tooltip while dragging 2021-01-24 09:35:41 +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 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 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 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 5f6e5916bc curvewidget: allow zooming only one axis and allow hiding keyframe tracks 2020-06-20 01:56:41 +10:00
itsmattkc c387ce1cd7 polygon node: early crude implementation 2020-05-05 00:22:49 +10:00
itsmattkc e67dabf1ff keyframes: implemented deleting keyframes with the delete shortcut 2020-05-01 17:01:16 +10:00
itsmattkc d8df104c35 keyframeviewbase: for one-dimensional views, if multiple keys are at the same time, select all of them 2020-04-14 23:26:59 +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 3399227b3a keyframeview: implemented transforming keyframe times to and from sequence time
Since the node graph can have transform cross nodes, input keyframes may occur
at a different times requiring transforming between sequence time and media
time. This commit implements such a mechanism in all UI classes that need it.
2020-03-26 19:17:46 +11:00
itsmattkc 592171cc31 keyframeviewbase: use existing function to access variable rather than changing the variable's visibility
Improved class encapsulation.
2020-03-26 00:38:25 +11:00
itsmattkc 17c1493aa7 all time-based panels are now derived from a common base class
Cuts down on a lot of duplicate code between
TimelineWidget/ViewerWidget/CurveWidget/NodeParamView
and TimelinePanel/ViewerPanel/CurvePanel/ParamPanel since they all use similar
time functions.
2020-02-01 19:39:43 +11:00
itsmattkc 8b2514c1de implemented automatically switching to the hand tool when middle clicking on
all TimelineViewBase derivatives
2020-01-02 05:44:40 +11:00
itsmattkc 2b24fae26f implemented vertical "zooming" in the TimelineWidget and CurveView
This comes in the form of changing the vertical scale in the CurveView and
adjusting all track heights in the Timeline.
2019-12-31 00:23:28 +11:00
itsmattkc 570fa4e5b0 implemented correct value changing in the CurveView widget 2019-12-30 22:22:30 +11:00
itsmattkc f7dd751b54 new KeyframePropertiesDialog is now accessible from any KeyframeViewBase derivative 2019-12-30 16:06:13 +11:00
itsmattkc 994d8be961 implemented bezier interpolation into parameters inputs 2019-12-28 23:21:07 +11:00
itsmattkc 1d3d52db9b implemented the ability to modify bezier points in the curve editor 2019-12-28 22:40:30 +11:00
itsmattkc 4cd5e103b8 merged KeyframeView and CurveView to use the same base class
These classes had a ton of similarities, so they've now been modified to use
a common base class.
2019-12-28 18:47:54 +11:00