Commit Graph
117 Commits
Author SHA1 Message Date
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
itsmattkc 31b60664a7 Merge branch 'merge-timeline-and-viewer' 2020-01-04 02:45:26 +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 db146b376a implemented core UI caching feedback functionality
Not a perfect implementation yet, but this shows UI feedback on what frames are
cached and which ones aren't.
2020-01-03 05:38:20 +11:00
itsmattkc df837efbc6 merged timeline and viewer nodes together 2020-01-03 03:26:00 +11:00
itsmattkc 7eae6a85f8 fixed bug that wouldn't clear TrackViewItems when a new sequence was opened 2020-01-02 05:59:37 +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 bfb111a2b0 timelinewidget: don't include gaps in the rubberband selection and clean tracks
after deleting clips from them
2020-01-02 05:03:36 +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 f65e1e52b5 implemented scroll wheel zooming in all TimelineViewBase derivatives 2019-12-31 19:49:09 +11:00
itsmattkc e41fdbd6e3 implemented autoscrolling derivatives of TimelineViewBase around the playhead 2019-12-31 19:17:40 +11:00
itsmattkc 9c3e5b76b2 when zooming any TimelineViewBase derivative, zoom towards the playhead 2019-12-31 19:01:52 +11:00
itsmattkc c2558b3d06 implemented inverted timeline scroll axes
Timeline scrolls horizontally by default with a preference to disable that
functionality.
2019-12-31 18:46:42 +11:00
itsmattkc 9060636499 correctly connect timeline and trackview so they vertically scroll in tandem
with each other
2019-12-31 18:29:23 +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 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 b65abe4881 use floor instead of round when calculating frame from cursor
Fixes a bug where clicking on the right of a frame would register as clicking
the next frame.
2019-12-28 04:47:27 +11:00