itsmattkc
a422f6e369
timelineviewbase: decrease ctrl+scroll speed
2020-04-23 01:00:26 +10:00
itsmattkc
832cc986b7
timeline/block: reimplemented enabling/disabling blocks
2020-04-17 02:16:04 +10:00
itsmattkc
cc421d4108
keyframeview: show correct length and jump to the corresponding time in NodeParamView
2020-04-15 03:35:48 +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
6ea52e4123
audio renderer/timeline: pass through channel count of waveform visualizations
2020-04-05 19:59:14 +10:00
itsmattkc
bfbb2e3fef
msvc: fixed compile/syntax error that only seems to occur in msvc
2020-04-02 13:09:21 +11:00
itsmattkc
5aa4f91c46
timelineviewblockitem: fixed some indentation
...
Minor code tidiness.
2020-03-30 15:13:17 +11:00
itsmattkc
3b8743a0ce
timeline: show timecode on block items and started copy function
2020-03-23 15:28:58 +11:00
itsmattkc
fed17e35fa
audiowaveformview: optimizes waveform to only redraw when necessary
...
Draws to a pixmap only when the waveform changes so it doesn't have to be
regenerated on every draw. Also renames WaveformView to AudioWaveformView
2020-03-18 14:44:05 +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
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
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
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
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
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
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
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
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
5d8be03970
implemented support for trimming transitions
2020-01-07 01:47:58 +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
7bf2422c44
moved timeline tracktypes into timelinecommon.h
2020-01-06 15:34:12 +11:00
itsmattkc
31b60664a7
Merge branch 'merge-timeline-and-viewer'
2020-01-04 02:45:26 +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
8b2514c1de
implemented automatically switching to the hand tool when middle clicking on
...
all TimelineViewBase derivatives
2020-01-02 05:44:40 +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
5d82aa1a7d
ensure playhead cannot be dragged below 0 in the TimelineViewBase
2019-12-26 19:03:44 +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
23001386d0
implemented base UI keyframe functionality
...
This commit implements much of the base functionality for creating and
destroying keyframes in the UI. Not complete yet, but getting there.
2019-12-26 16:32:08 +11:00
itsmattkc
d705a27d54
moved more functions to the base class in the vein of the previous commit
2019-12-25 02:41:40 +11:00
itsmattkc
4b48a73db3
moved some timelineview functions into a timelineviewbase for reusing
...
Later classes will feature similar functionality to the TimelineView, moving
them to a base class that can be easily reused seems like a good idea.
2019-12-25 02:20:23 +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
764fbb74c1
improved appearance of transitions in timeline
2019-12-14 02:57:31 +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
f15683b593
allow gaps and transitions to be selected in the timeline
...
This will be useful for various reasons, however the behavior of selecting
gaps and transitions will need to be regulated harder than clips in the near
future.
2019-12-13 01:55:41 +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