itsmattkc
d7c5ac4b44
implement entire project in nodes
...
Project items are now represented directly in nodes opening up more versatility and possibilities. This is the first iteration of this and will be buggy. Need to test thoroughly.
2021-02-15 21:31:57 +11:00
itsmattkc
9f99182089
use catch up scrolling when dragging items
2021-01-25 10:22:14 +11:00
itsmattkc
eb132d93de
timebasedviews: only drag playhead when there's no item underneath the cursor
2021-01-24 09:36:05 +11:00
itsmattkc
2a51853fd4
fix bug with underlining on timeline
2021-01-18 16:06:40 +11:00
itsmattkc
d8efab1b77
improved new timeline drawing
2021-01-18 11:23:59 +11:00
itsmattkc
b4dd976e90
revised UI color system when showing nodes
...
Olive now has a set of colors that categories can be "assigned" to. The timeline also shares the same colors as the NodeView. Colors can be configured per node (aka per clip).
2021-01-15 18:44:34 +11:00
itsmattkc
f7883bd02c
began some rewrites to timeline drawing
2021-01-14 10:30:20 +11:00
itsmattkc
fbdda3d6d4
various code cleanups
2021-01-13 12:05:05 +11:00
itsmattkc
8f729203fc
some timeline refactoring, preparing for rewrites
2021-01-09 11:41:33 +11:00
itsmattkc
374fa3f75c
moved some files around for better organization
2020-12-16 19:05:22 +11:00
itsmattkc
6cb6407bd8
don't use shared ptrs on streams
2020-12-16 13:46:19 +11:00
itsmattkc
378216acb9
timeline: draw playheads over selections
2020-11-26 19:52:54 +11:00
itsmattkc
afa31e1df8
timeline: don't flip scroll axes on apple trackpads
2020-11-25 17:16:35 +11:00
itsmattkc
b5cc13c10e
timeline: snap pointer and import operations to timebase
...
If frame rates are mixed, ensures that video doesn't end up falling or ending on half frames which potentially make the entire sequence awkward
2020-11-25 11:46:41 +11:00
itsmattkc
c7f5af9534
moved autoscroll code to TimeBasedWidget rather than TimelineViewBase
...
Better place for it. Fixes #1406
2020-11-25 10:00:57 +11:00
itsmattkc
75d4cd899b
use hardcoded namespace
...
The macro defined namespaces confused the hell out of lupdate and more or less broke translations permanently. Looks like the only way we can do it is to have a hardcoded namespace, which goes against my instinct, but honestly how likely is it that we'll change the namespace anyway (I guess forks might want to do it, but that's their problem ;) )
2020-11-17 20:24:42 +11:00
itsmattkc
d241090a9f
finally updated the copyright year
2020-11-17 20:13:22 +11:00
itsmattkc
e2010dde83
made formal QtUtils class
2020-11-17 09:42:36 +11:00
itsmattkc
4aea9a3757
timeline: pad by full width rather than half width
2020-11-17 00:20:56 +11:00
itsmattkc
6ecdb02fd0
okay maybe not
2020-11-08 00:47:59 +11:00
itsmattkc
ae8af531a9
timeline: removed cursor setting from block item (how did this get here?)
2020-10-10 17:21:47 +11:00
itsmattkc
6e417d0ad6
timeline: made ghosts a foreground drawn object
...
Minor optimization, minor UI improvement, somewhat more manageable code.
2020-10-03 22:40:03 +10:00
itsmattkc
dd3d11c7e0
timeline: moved tools to separate files
...
Code cleanup, TimelineWidget header was getting a little too bloated.
2020-10-02 22:02:18 +10:00
itsmattkc
0508acc613
timeline: began crude edit tool functionality
2020-10-02 17:10:15 +10:00
itsmattkc
a313fb525c
use QGraphicsView::FullViewportUpdate on TimelineViewBase
...
Since this appears to be necessary for all derivatives anyway, we'll add
this directly to the base class.
2020-09-28 14:21:17 +10:00
itsmattkc
9c488d9a37
timeline: use full viewport update
...
Fixes #1190
2020-09-18 12:59:16 +10:00
itsmattkc
f0928814fc
track: store height in "units" rather than pixels
...
Fixes DPI scalability issue if a project ever moved from a display with
one DPI to another.
2020-08-22 00:23:46 +10:00
itsmattkc
d5dce29b22
cache: merged cachetask and footagecache into one precache task
...
Since the actual auto-cache now happens elsewhere, this cleans up a lot of
dead code.
2020-08-05 23:45:18 +10:00
itsmattkc
2afa5a42c7
ui: optimized widget signals for selecting clips/nodes
...
Decent performance optimization when working with the UI.
2020-08-01 02:12:20 +10:00
itsmattkc
86b66004b0
ui: removed last of the widget proxies
2020-07-23 23:11:00 +10:00
itsmattkc
023ded1fb5
timeline: overhauled pointer tool again
...
Allows dynamic switching between pointer/roll/slide since occasionally this
behavior is interchangeable. Fixes a lot of transition behavior (but not
all of it).
2020-07-23 18:37:57 +10:00
itsmattkc
ce353ccbed
timeline: various work to improve timeline behavior, particularly when dealing with transitions
2020-07-22 18:09:57 +10:00
itsmattkc
0b4a9f4650
timeline: fixed bug that caused I-beam to render incorrectly
2020-07-10 02:40:23 +10:00
itsmattkc
af69f157a3
timeline: improved beam tool and its derivatives
2020-07-07 18:43:18 +10:00
itsmattkc
8bf653925f
curve/timeline: improved user interface behavior
...
* Implements "auto-fit" setting for curve view and sets it on open.
* Improves scroll zooming on all TimelineViewBase derivatives.
* Improves code sharing for better maintenance.
2020-06-23 05:25:34 +10:00
itsmattkc
1725f01459
paramview: changed to static viewer-bound and fixed various scrolling issues
2020-06-22 00:38:00 +10:00
itsmattkc
5397457c8d
timeline: treat non-primary clicks as non-moving
...
Fixes bug where drag would get stuck if the user right clicked on the
timeline.
2020-06-18 03:35:59 +10:00
itsmattkc
29d56a1583
timeline: implemented UI indicator for tools like razor and edit
2020-06-16 18:30:00 +10:00
itsmattkc
41b04d976c
nodes/clips: use node label as clip name and allow changing multiple labels at once
...
Merges the "clip name" and "node label" into the same entity.
2020-06-16 16:23:05 +10:00
itsmattkc
aaee2ab9ed
timeline: vastly improved snapping
2020-06-06 13:59:49 +10:00
itsmattkc
de3288893d
renderer: move waveform generation into worker and mutex the waveform
...
Addresses scheduling issues where a backend might be closed (or even
destroyed) before it processes a waveform signal from a worker. Requires
extra multithreading code.
2020-06-05 15:18:14 +10:00
itsmattkc
0e87762afa
waveforms: moved waveform to track rather than block
...
This is a much more robust and thread-safe system of storing the waveforms.
2020-06-04 18:03:21 +10:00
itsmattkc
c2e47a296c
timeline: heavily optimized and improved nearly all timeline optimizations
...
Features a lot of timeline-related cache optimizations as well as general
optimizations and improvements in timeline behavior. Should improve
usability significantly.
2020-06-01 04:42:59 +10:00
itsmattkc
e065885d78
timelineview: added backwards compatibility for qt < 5.12
2020-05-27 04:26:37 +10:00
itsmattkc
14ac1ada6e
various: adding files missing in last commit
...
Oddly some files didn't commit previously. This commit adds those.
2020-05-27 03:24:37 +10:00
itsmattkc
c5458c6843
timeline: use headers in waveform data files rather than sidecar metadata files
2020-05-03 00:44:14 +10:00
itsmattkc
676b18ba6e
timelineviewblockitem: fixed incorrectly positioned underline
2020-05-02 15:45:16 +10:00
itsmattkc
be5e5042bd
timeline: prevent rubberband from showing if the user right clicked
2020-05-01 04:08:35 +10:00
itsmattkc
8ab91a70cc
nodeview: implemented moving with either the hand tool or middle mouse button
...
Includes splitting off this functionality from TimelineViewBase so it can be
re-used in any QGraphicsView.
2020-04-29 04:56:58 +10:00
itsmattkc
ac3f49a845
nodes: moved matrix input on "video input" elsewhere
...
Rather than plugging a matrix into the video input node, the matrix is now
multiplied by the video input using a math node. This is probably more
sensible from a user perspective.
This also means the renderer is tolerant of texture sizes that are not equal
to the sequence size, however most nodes will downsample the texture to the
sequence size (and if not, it will be downsampled once it is cached). Textures
will still *always* be in reference space and the sequence's format. This seems
like the best compromise between backend and frontend congruity.
2020-04-27 04:11:24 +10:00