itsmattkc
a6f4922d66
nodeview: allow esc key to cancel adding a node
2020-02-16 11:44:35 +11:00
itsmattkc
fa0f732d39
nodeview: attach new nodes to mouse for easier placement
2020-02-16 11:19:26 +11:00
itsmattkc
b44d7165c5
nodeviewitem: toggle expanded state on double click
2020-02-16 01:05:41 +11:00
itsmattkc
1776615999
viewer: map context menu position from sender rather than itself
2020-02-16 00:57:34 +11:00
itsmattkc
c74134b5b0
viewer: catch ocio exception when creating new processor
2020-02-16 00:34:12 +11:00
itsmattkc
d66425c324
prepared gl improvements for merge
2020-02-14 02:35:10 +11:00
itsmattkc
6a47b05ab8
work on oslworker
2020-02-14 02:13:38 +11:00
itsmattkc
2ba928fa1f
code cleanup: renamed qtversionabstraction.h to qtutils.h
2020-02-08 00:13:38 +11:00
itsmattkc
40e8aec285
viewer: minor code improvements
2020-02-03 01:27:45 +11:00
itsmattkc
9b7cbb3fbd
viewer: automatically update maximum scroll from media length
2020-02-01 23:09:25 +11:00
itsmattkc
42989994ca
fixed reference to DBL_MAX
2020-02-01 21:35:30 +11:00
itsmattkc
4213209727
fixed gcc compilation issue
2020-02-01 21:27:06 +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
0469fac4a9
node: send invalidatevisible signal through graph
...
When dragging a value in the UI, we use a "single frame update" because we want
to prioritize the currently visible frame to give visual feedback as soon as
possible. Previously, we generated a single frame InvalidateCache() signal
from the widgets themselves, but this had the major downside of not necessarily
emitting the time that the viewer was actually showing (due to either node time
transformations or times differing between the effects panels and the viewer
panels). Now, we send a different signal that viewers can handle themselves to
update the time that they're currently showing. This means the fast updating
will work no matter how many viewers are connected at whatever time each viewer
is set to.
2020-01-26 14:16:22 +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
f068c425d2
viewer: provide UI to set preview resolution
...
Previews don't need to be rendered full resolution, particularly since the
preview is hardly ever 1:1 size of the sequence. The functionality to render
at lower resolutions already existed, but there was no UI for it. This commit
implements UI to set the resolution divider on the viewer.
2020-01-26 13:27:06 +11:00
itsmattkc
0e82ec600d
keyframes: implemented same single frame strategy on bezier control points
2020-01-25 18:00:35 +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
fdbaa75dff
renderer: allow parameters to be changed mid-session
2020-01-22 14:05:37 +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
1101b58ee8
allow setting of pixel format/ocio method/sample format in preferences
...
Implementation isn't perfect yet, viewer/renderer doesn't update yet when
the preference is changed so a sequence needs to be re-opened for the change to
take effect.
2020-01-18 03:37:36 +11:00
itsmattkc
e6b45c75c3
fixed bug where scrubbed frames would be cached but not committed to the hashmap
2020-01-17 18:13:49 +11:00
itsmattkc
f8f932112c
fixed bug where the node remove with exclusive deps command would never run
2020-01-17 13:56:45 +11:00
itsmattkc
653709dc84
try to index media immediately on import
...
Since indexing is supplemental, it can be made a background task that can occur
at more or less any time. So we run it as soon as possible.
2020-01-17 03:58:29 +11:00
itsmattkc
63b3c60017
allow editing sequence properties in projectexplorer
2020-01-16 15:01:13 +11:00
itsmattkc
c6710b1359
correctly update the panel subtitles based on the media connected
2020-01-16 14:57:16 +11:00
itsmattkc
d32306f88b
only disk cache around the playhead
2020-01-10 20:35:48 +11:00
itsmattkc
7df52b7fd5
added disk preferences pane and the ability to set the disk cache location
2020-01-09 15:51:59 +11:00
itsmattkc
b233bdf8c9
a fairly decent node auto-positioning algorithm, not perfect, but a good start
2020-01-09 04:03:47 +11:00
itsmattkc
7018973d09
basic auto-positioning implementation
...
Not perfect by any means, but nodes are now automatically placed in relation to
their surroundings and connections.
2020-01-09 01:41:23 +11:00
itsmattkc
1b34c5566d
anchor node graphics item by their center
...
Makes auto-positioning them somewhat easier.
2020-01-09 01:40:06 +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
a616aaa182
correctly affect speed/reversing when shuttling audio
2020-01-07 16:41:30 +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
3a8a509f1a
clear frame caches and renderers if the viewer node is ever changed
...
Clears the state if a viewer node is disconnected.
2020-01-03 21:17:20 +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