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
02e7c68104
timeline: reimplemented linking/unlinking functionality
2020-03-15 13:41:46 +11:00
itsmattkc
b57b091ca4
timeline: auto-unlink blocks when they're deleted
2020-03-15 13:15:36 +11:00
itsmattkc
a56484d3e6
timelinescaledobject: implemented minimum scale
...
Used by Viewer to keep TimeRuler and WaveformView within restrictions.
2020-03-14 22:34:23 +11:00
itsmattkc
7f2dcc8200
waveformview: made UI seekable
2020-03-14 01:57:40 +11:00
itsmattkc
73d693f2d5
waveformview: implemented basic waveformview display
2020-03-14 01:22:03 +11:00
itsmattkc
f0e6f9a5f9
various: created derived class for widget derivations of
...
TimelineScaledObject
Minor code cleanup, faster than deriving both QWidget and
TimelineScaledObject each time.
2020-03-14 00:45:50 +11:00
itsmattkc
c338e6d99d
resizablescrollbar: refined timeline scrollbar resizing to be more accurate
2020-03-11 14:11:12 +11:00
itsmattkc
8cf9327936
timelineviewblockitem: fixed issue that caused waveforms to always appear at
...
the start of the timeline
2020-03-09 16:57:51 +11:00
itsmattkc
dc37389d02
timeline: implemented in/out points
2020-03-08 01:06:45 +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
d5fdc555e1
timelineviewblockitem: prevent waveforms from exceeding the clip rectangle
2020-03-07 02:47:15 +11:00
itsmattkc
f2d6d3b32c
timeline/renderer: automatically update timeline view when a visual waveform
...
has updated
2020-03-07 02:44:15 +11:00
itsmattkc
c75a0e8498
timeline/renderer: implemented basic waveform display support
2020-03-06 16:18:07 +11:00
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
796a30eda9
timelinewidget: when rubberbanding, only emit selection changed when
...
the rubberband is finished
2020-03-02 17:03:36 +11:00
itsmattkc
d7cde3b22e
timelinewidget: clear block items before destruction
...
Prevents block items signalling anything after the TimelineWidget has already
been destroyed.
2020-02-26 14:36:51 +11:00
itsmattkc
bf7fc9a0c4
panels: selecting a clip in the timeline automatically selects the corresponding
...
nodes in the nodeview
2020-02-26 00:39:30 +11:00
itsmattkc
ab19e445bd
importtool: implemented auto-parameter detection from image streams too
2020-02-25 14:59:54 +11:00
itsmattkc
0e7b051228
timelinewidget: show cache status in timeline too
2020-02-22 14:45:50 +11:00
itsmattkc
9cb04b0020
timelineview: simplified TrackRippleRemoveAreaCommand and fixed bug that
...
incorrectly calculated the splice copy's media in
2020-02-22 01:14:38 +11:00
itsmattkc
c7a3906c97
timelineview: fixed bug that wouldn't invalidate all necessary regions of the
...
cache when using rippleremovearea
2020-02-22 00:49:57 +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
6eeae7b15e
timebasedwidget: move center scroll functionality to base class so widgets like
...
Viewer can use it
2020-02-17 15:21:10 +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
ce17d94b12
timeline: don't show speed dialog if no blocks are selected
...
Prevents segfault opening SpeedDurationDialog with an empty clip list.
2020-01-26 13:37:47 +11:00
itsmattkc
b713ab47eb
keyframes: only update active frames even from curve and param editor
...
When adjusting a slider, keyframe time, or curve value, it is undesirable to
re-cache the entire affected area while the user is still dragging UI objects.
Since the video is unlikely to be playing, the priority must go to the
currently active frame so the user gets visual feedback on the rendered image
as soon as possible. This was implemented in some areas, but this commit should
have that functionality in all areas.
2020-01-25 17:51:34 +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
c6710b1359
correctly update the panel subtitles based on the media connected
2020-01-16 14:57:16 +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
e71697f693
fixed bug in ripple remove undo command where blocks deleted at the start of
...
the track would be restored at the end
2020-01-06 18:13:56 +11:00
itsmattkc
d3ed7f9863
hash the transition's progress
...
Since the transition progress directly affects the resulting image, it's
important to include it in the frame hash.
2020-01-06 17:25:38 +11:00
itsmattkc
402f031be2
fix connections for new tracktype namespace
2020-01-06 15:43:21 +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