Commit Graph
37 Commits
Author SHA1 Message Date
itsmattkc a239fa0e2f timeline: fixed some ripple tool behavior bugs 2020-07-07 18:06:49 +10:00
itsmattkc be784591fc timeline: optimized pointer tool ctrl+drop 2020-06-06 17:50:23 +10:00
itsmattkc aaee2ab9ed timeline: vastly improved snapping 2020-06-06 13:59:49 +10:00
itsmattkc 001b7179c5 timeline: cleaned up pointer tool derivatives and fixed bug introduced by earlier behavior improvement 2020-06-01 17:38:24 +10:00
itsmattkc c2e47a296c timeline: heavily optimized and improved nearly all timeline optimizations
Features a lot of timeline-related cache optimizations as well as general
optimizations and improvements in timeline behavior. Should improve
usability significantly.
2020-06-01 04:42:59 +10:00
itsmattkc be5e5042bd timeline: prevent rubberband from showing if the user right clicked 2020-05-01 04:08:35 +10:00
itsmattkc 6046b1e892 timeline: fixed bug that prevented clips from being dragged to lower tracks 2020-04-14 23:36: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 76f260cb3a timeline: added ability to move clips by sample in addition to by frame 2020-04-01 13:55:19 +11:00
itsmattkc abb4c440fb core: added signalling for timecode display changes
Allows targeted application-wide UI updates for when the user changes the
timecode display so that the response is immediate.
2020-03-18 14:09:31 +11:00
itsmattkc 52fc4f064b timeline: rewrote ripple deleting into an undoable command that takes place
after the gaps are made and cleaned

Results in more reliable ripple delete behavior.

Also fixes bug that would cause gaps that were cleaned and then restored in an
undo to crash when selected.
2020-03-07 20:42:07 +11:00
itsmattkc 38a30b584a timeline: implemented some base ripple delete functionality 2020-03-07 18:07:55 +11:00
itsmattkc a9577d72ee pointertool: reused insert code from importtool 2020-03-03 16:34:09 +11:00
itsmattkc 2ba928fa1f code cleanup: renamed qtversionabstraction.h to qtutils.h 2020-02-08 00:13:38 +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 c8baf4aa3e implemented rubberband zoom in timeline 2020-01-07 20:24:07 +11:00
itsmattkc e09ff4abf6 handle transition track movement
Only allow transitions to move tracks if their attached blocks are moving
with them.
2020-01-07 03:06:51 +11:00
itsmattkc 2941dbff48 handle transitions that have been set to zero length
Transition is removed wholesale if its length is set to zero.
2020-01-07 02:28:31 +11:00
itsmattkc ee392e11c6 implemented transition moving
For dual transitions, this will shift around the mid point.
2020-01-07 02:08:35 +11:00
itsmattkc 5d8be03970 implemented support for trimming transitions 2020-01-07 01:47:58 +11:00
itsmattkc 7bf2422c44 moved timeline tracktypes into timelinecommon.h 2020-01-06 15:34:12 +11:00
itsmattkc ef91f81e0f implemented cursors in the timeline
Note: this does not use the cursor SVGs in app/ui/cursors since I was never
really satisfied with them. They're kept for posterity for the time being.
2020-01-03 17:58:07 +11:00
itsmattkc 3492b72e05 pointer tool: only clean up tracks once per operation 2020-01-02 05:02:09 +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 26cafa7936 implemented bulk of curve editor's functionality
While certainly not entirely complete yet, this implements most of the UI
functionality of the graph editor.
2019-12-28 18:26:37 +11:00
itsmattkc 61c60e00d6 various small code cleanups and improvements
Largely refactoring work to make the code somewhat nicer to work with.
2019-12-26 19:00:08 +11:00
itsmattkc 520b8b46fa place timecode conversion functions into a Timecode class rather than an olive namespace
Code cleanup and improvement.
2019-12-26 17:20:58 +11:00
itsmattkc d4ee33405b implemented speed/duration dialog and most of its functionality
An earlier commit implementing media in and out parameters was primarily for
this addition. A simple control dialog for the clip's speed presentation
reimplemented from the old codebase.
2019-12-17 03:58:12 +11:00
itsmattkc 2f04a53054 implemented deleting clips in the timeline
Also fixed bugs in the Node::GetExclusiveDependencies function and in the
NodeInputArray::RemoveAt function to make this functionality work.
2019-12-14 17:10:06 +11:00
itsmattkc bc5e7349ef don't automatically create gaps if one already exists that can be resized
Rather than constantly create gaps, we can more intelligently determine whether
a gap can be extended to take the place of a block being removed, etc.
2019-12-14 00:44:41 +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 79c2953662 implemented track locking in the timeline widget 2019-12-11 16:34:38 +11:00
itsmattkc f6064b40df hold worker busy state in renderbackend rather than in renderworker
Workers run in different threads and the backends can poll whether the worker
is currently busy or not. However the previous iteration has the worker (and an
atomic int) provide the busy state which could easily desync with the main
thread (since all workers run in different threads). By holding the busy states
in the main thread, the main thread will always be able to poll the busy state
accurately.
2019-12-06 19:38:57 +11:00
itsmattkc 79ee3bc3df implemented new block system
Fixes recurring design issue that the Blocks were a frequent exception to the
DAG concept. The Blocks connecting to each others inputs/outputs while not
necessarily being "dependent" on each other to produce an image continually
causes issues while trying to create a rendering code path. This redesign
should provide a more "directed" approach to the directed acyclic graph.
2019-12-02 00:37:03 +11:00
itsmattkc f92c236f54 timeline selection behavior for links implemented 2019-10-16 22:35:07 +11:00
itsmattkc b09fc2b697 reimplemented rubberband and hand drag routines 2019-10-14 07:28:27 +11:00
itsmattkc 6f4e5a04e4 reimplemented pointer default functionality 2019-10-12 06:37:53 +11:00