itsmattkc
2f7819d0ae
timeline: use similar reverse strategy for inserting/overwriting from
...
the most recently focused project panel
2020-03-03 20:13:58 +11:00
itsmattkc
9b73892c41
ui: implemented keyboard controls for inserting/overwriting footage into the
...
timeline
Allows users to use the keyboard to place footage into the timeline rather than
forcing them to drag.
2020-03-03 20:03:50 +11:00
itsmattkc
a9577d72ee
pointertool: reused insert code from importtool
2020-03-03 16:34:09 +11:00
itsmattkc
e3759bb704
importtool: re-implemented functionality to hold ctrl to insert dragged clips
2020-03-03 15:51:53 +11: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
ab19e445bd
importtool: implemented auto-parameter detection from image streams too
2020-02-25 14:59:54 +11:00
itsmattkc
5602b6a88b
importtool: add "don't ask again" option on "no active sequence" dialog
...
In the previous commit, we added a dialog to give users options when dropping
footage on a sequence-less timeline panel. However some users will have a
preferred behavior that they'd want every time without having to go through
the messagebox, so we add a "don't ask again" option that stores the setting
in the application config.
2020-02-21 18:07:54 +11:00
itsmattkc
8f86fdd16e
importtool: add user option for creating a sequence on drop
...
If there was anything that 0.1.x taught me, it was that a substantial number of
users did not understand that a new sequence was being made by dropping footage
onto an empty timeline and wouldn't know what to do if they wanted parameters
that differed from the footage they dragged in. This dialog makes the operation
clear and gives users an option to set the parameters on drop for convenience.
2020-02-21 17:48:24 +11:00
itsmattkc
bac33e3d16
importtool: create a sequence automatically from dropped footage if one isn't
...
open already
2020-02-21 17:28:17 +11:00
itsmattkc
2ba928fa1f
code cleanup: renamed qtversionabstraction.h to qtutils.h
2020-02-08 00:13:38 +11:00
itsmattkc
42989994ca
fixed reference to DBL_MAX
2020-02-01 21:35:30 +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
1dfac0ea7f
timeline: removed unused variable in undo command
2020-01-19 23:52:23 +11:00
itsmattkc
4697b98980
fixed gcc compile issues
2020-01-19 20:39:48 +11:00
itsmattkc
c8baf4aa3e
implemented rubberband zoom in timeline
2020-01-07 20:24:07 +11:00
itsmattkc
d9572fa4e5
only allow splitting clips
2020-01-07 19:04:24 +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
dae09abf45
use speed value instead of media out value
...
This functions more or less identically to using a media out value, but the
desired speed is preserved through block length changes, even if the block's
length is reduced to zero (i.e. no rounding errors).
2020-01-06 15:21:27 +11:00
itsmattkc
0463106187
began timeline edit tool
2020-01-03 21:17:51 +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
8b2514c1de
implemented automatically switching to the hand tool when middle clicking on
...
all TimelineViewBase derivatives
2020-01-02 05:44:40 +11:00
itsmattkc
3492b72e05
pointer tool: only clean up tracks once per operation
2020-01-02 05:02:09 +11:00
itsmattkc
104415a4de
razor tool: only push an undocommand if blocks were actually detected to split
2020-01-02 05:01:39 +11:00
itsmattkc
ae71b206cd
updated timeline tools to allow rounding as well as flooring to find the frame
...
at the mouse cursor point
2020-01-02 04:11:50 +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
441555e9f2
fixed bug that wouldn't set a footage stream's enabled property correctly
2019-12-30 22:22:48 +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
f0cd480540
finished audio effects support in audio renderer
...
Working structure implemented in previous commit into the audio renderer is
complete in this commit.
2019-12-24 14:02:07 +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
be0d857e38
snap footage imports to the timeline timebase
...
Earlier, footage that was not the same frame rate as the sequence had the chance
of their length value falling between a frame. This doesn't really help anything
with video since a frame is a discrete point in time, and only led to confusion
while navigating the timeline.
2019-12-18 01:21:25 +11:00
itsmattkc
4e6da87585
ported crossdissolve to external shader
2019-12-17 15:58:16 +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
4ba024e3ae
implemented media out value to allow speed changes in clips
2019-12-16 18:29:35 +11:00
itsmattkc
965519e9cf
ported opacity node to external file format
...
The plan is to port all nodes that can be external to the external file format.
This should help keep things maintainable.
2019-12-15 02:51:28 +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
526f07ba08
implemented demonstrative dip to black transition
2019-12-12 19:00:49 +11:00
itsmattkc
e1f4821b5a
timeline tool will now create dual transitions
...
The previous commit was mostly cosmetic, this commit updates the node
connections so it's actually functional too.
2019-12-12 16:21:05 +11:00
itsmattkc
1ba254ae87
implemented creating dual and single transitions
...
The user can now create transitions on each side as well as transitions between
blocks.
2019-12-12 15:50:08 +11:00
itsmattkc
76c0399b75
implemented base transition support
...
While very much incomplete, transitions can now be created and will render
correctly.
2019-12-12 15:21:39 +11:00
itsmattkc
7b92b21df2
reimplemented "add" tool
...
Tool for adding empty/non-media clips in the timeline. Also basis of the
transition tool.
2019-12-11 19:54:53 +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