Commit Graph
111 Commits
Author SHA1 Message Date
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