itsmattkc
4827782331
moved sequence params into node graph too
...
Reduces code by reusing more of the existing node infrastructure
to synchronize sequence parameters the render backend.
2021-02-18 13:20:23 +11:00
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
155470bec1
implemented sorting in project explorer
...
Wow I can't believe I forgot about the QSortFilterProxyModel
for like 1.5 years straight.
2021-02-11 23:23:13 +11:00
itsmattkc
b8de563a6d
restored invalidation code when value is changed
2021-02-11 14:35:05 +11:00
itsmattkc
81c1922911
use strings to connect nodes
...
This makes the node system somewhat more high-level with the intent of making
working with them far more flexible and stable. By making the architecture more
abstracted, it becomes far less rigid which should allow us to do even more
with it and make it much less crash prone.
2021-02-09 15:48:37 +11:00
itsmattkc
d1a3e22eaa
fixed linux compilation issues
2021-01-31 10:39:14 +11:00
itsmattkc
8d8727c7c9
removed unused variable
2021-01-30 12:31:23 +11:00
itsmattkc
d53885fe3d
improved nodeparamview Y setting
...
Still not perfect, mostly due to Qt's terrible QMainWindowLayout, but ah well
2021-01-30 10:27:52 +11:00
itsmattkc
060714cec6
fixed uninitialized variable
2021-01-30 09:41:26 +11:00
itsmattkc
29eccf8e84
add opening sequence to the import undo command
2021-01-29 18:11:01 +11:00
itsmattkc
b748b1142b
wrap keyframing settings in IsKeyframable just because
2021-01-29 17:36:58 +11:00
itsmattkc
ad4b83a098
new undo system
...
Also enables undoing when working with node input arrays
2021-01-29 16:10:34 +11:00
itsmattkc
4e5db91c17
keyframeviewbase: cleaned up code and show tooltip values in input's desired format
2021-01-25 11:05:09 +11:00
itsmattkc
9f99182089
use catch up scrolling when dragging items
2021-01-25 10:22:14 +11:00
itsmattkc
2da0aed942
remove unnecessary sequence casts
2021-01-25 09:33:50 +11:00
itsmattkc
7795d42347
moved block links to node links
...
Seems like it might be useful to have this as part of the node architecture as a whole
2021-01-25 09:17:25 +11:00
itsmattkc
2c7e974f78
scroll only in increments when dragging the playhead
2021-01-24 18:38:57 +11:00
itsmattkc
0f38769208
fixed more keyframe dragging bugs
2021-01-24 18:17:55 +11:00
itsmattkc
2dd578c6e2
curveview: fixed reset zoom propagation
2021-01-24 17:50:12 +11:00
itsmattkc
2ab797e7fe
curvewidget: share color between view and tree
2021-01-24 15:32:25 +11:00
itsmattkc
d4e6d33db1
keyframeviewbase: hold shift to only drag bezier by time
2021-01-24 15:32:03 +11:00
itsmattkc
8d975faa83
renamed function for clarity
2021-01-24 15:31:01 +11:00
itsmattkc
f04ca0a707
implemented select and deselect all in curve and param panels
2021-01-24 15:29:38 +11:00
itsmattkc
8ccf7562cf
disable keyframing on some parameters
2021-01-24 15:28:01 +11:00
itsmattkc
59da13969d
add functions to select or zoom to fit keyframes of a single input
2021-01-24 14:06:39 +11:00
itsmattkc
b45ca61d6d
fixed bug where bezier control points weren't affected by Y scale
2021-01-24 14:05:51 +11:00
itsmattkc
49a9e5b870
finally added limits to bezier so curves can't loop over themselves
2021-01-24 14:04:18 +11:00
itsmattkc
b68397d687
implement keyframe track separation in curve view
2021-01-24 12:09:00 +11:00
itsmattkc
4dd2b64c6d
keyframecontrol: update state if keyframe time changes
2021-01-24 12:08:23 +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
62bab2ec01
keyframeview: show time and value in tooltip while dragging
2021-01-24 09:35:41 +11:00
itsmattkc
13b5d9237a
ensure node order is signalled if a node is unpinned and removed from param view
2021-01-23 08:28:40 +11:00
itsmattkc
ec4d061857
improved resizable scrollbar functionality
2021-01-23 08:19:04 +11:00
itsmattkc
03dc971a4b
nodeview: use existing zoom check function
2021-01-23 08:18:45 +11:00
itsmattkc
03d31b2225
fixed cursor zooming algorithm
...
What the hell is this? How did I write this old algorithm? Did it even work?
2021-01-22 19:52:05 +11:00
itsmattkc
78ed7213c8
minor code improvement: use string literal
2021-01-22 19:25:37 +11:00
itsmattkc
e02a307498
timeline: don't copy vectors
...
This is no longer necessary
2021-01-22 19:25:22 +11:00
itsmattkc
d9019f9cb1
fixed node removals
2021-01-22 19:23:20 +11:00
itsmattkc
b114bf98c9
only select nodes on right click if the current clicked node isn't already selected
2021-01-22 17:12:04 +11:00
itsmattkc
3ce29f9093
apparently these weren't committed before, whoops
2021-01-22 17:07:42 +11:00
itsmattkc
88d1b86d11
bumped project version
2021-01-22 17:06:36 +11:00
itsmattkc
fecd0e3775
trackview: delete from index 0
...
Fixes #1253
2021-01-22 17:00:39 +11:00
itsmattkc
a261dd55f1
use quintptrs for footage rather than QVariant::fromValue
2021-01-22 16:04:37 +11:00
itsmattkc
744b768970
fixed loading bug caused by lack of while loop
2021-01-22 16:04:22 +11:00
itsmattkc
a81860a4ba
fixed issue where setting project thread didn't set any other threads
2021-01-22 15:42:25 +11:00
itsmattkc
516a5246c6
improved decibel handling in floatslider
2021-01-22 15:40:52 +11:00
itsmattkc
2af776b110
fixed various caching update issues
2021-01-22 14:33:30 +11:00
itsmattkc
dfdb375cbf
polygon: use string literal
2021-01-22 12:20:41 +11:00
itsmattkc
8a5df32281
fixed arrays in nodeparamview
2021-01-22 12:20:25 +11:00
itsmattkc
ce8704f7d3
fixed block placement issue
2021-01-22 09:07:13 +11:00
itsmattkc
396ccfa160
reworked param view for new structure
2021-01-19 09:10:23 +11:00
itsmattkc
3e1fb01758
initialize array variable and set where used
2021-01-19 09:09:12 +11:00
itsmattkc
fa1fbd3a34
nodeview: updated with new node color UI system
2021-01-19 09:08:46 +11:00
itsmattkc
8e7035bd40
restored nodeview
2021-01-19 00:06:57 +11:00
itsmattkc
835b82205f
ripple: when choosing gaps on other tracks, use after or at instead of before
...
Fixes some edge cases
2021-01-18 16:40:05 +11:00
itsmattkc
cb1accaf0c
minor code enhancements
2021-01-18 16:33:49 +11:00
itsmattkc
9bc0629346
rewrote timeline ripple tool command
...
Cleaner code and fixes a bunch of issues and whatnot
2021-01-18 16:33:27 +11:00
itsmattkc
84df19dc35
updated tracklist algorithm to new and improved one
2021-01-18 16:32:52 +11:00
itsmattkc
2a51853fd4
fix bug with underlining on timeline
2021-01-18 16:06:40 +11:00
itsmattkc
20ed087aad
timeline: fixed bug with out handle on some blocks
2021-01-18 16:05:22 +11:00
itsmattkc
8497c6589c
further merge hash optimizations
2021-01-18 12:04:03 +11:00
itsmattkc
e7b0c18a99
implemented track adding as an undo command
2021-01-18 12:03:48 +11:00
itsmattkc
d8efab1b77
improved new timeline drawing
2021-01-18 11:23:59 +11:00
itsmattkc
5ab585de8e
razor tool: don't try to split a clip at it's end point
2021-01-18 11:17:12 +11:00
itsmattkc
07782a96ad
some timeline fixes
2021-01-18 10:45:37 +11:00
itsmattkc
57aa53cc79
ensure blocks are transformed when hashing
...
Fixes cache glitch
2021-01-18 10:45:07 +11:00
itsmattkc
104cbbe44b
set array size before reconnecting
...
Fixes issue where tracks would become confused about the true array size
2021-01-18 10:44:30 +11:00
itsmattkc
0936c7c580
added some documentation to audiovisualwaveform
2021-01-18 10:43: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
91740dd823
reworked all timeline commands
...
I'll be honest, this stuff probably caused a lot of crashes. Objects were constantly created and destroyed without the foresight that other commands might be using them. This should fix a lot of that.
2021-01-15 14:36:21 +11:00
itsmattkc
96c0921193
use std::map instead of QMap for the node connections
...
std::map gives us a reverse iterator which we need. QMap doesn't seem to.
2021-01-15 14:34:36 +11:00
itsmattkc
b83677e319
moved input signals to graph to prevent signal desyncs
2021-01-14 10:32:42 +11:00
itsmattkc
ad0cefecaf
remove now commented out ifdef guard
2021-01-14 10:30:33 +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
3337be07e5
use QVector instead of QList for block cache
2021-01-09 10:41:13 +11:00
itsmattkc
441a459774
viewer: use label instead of media name
2021-01-09 10:38:04 +11:00
itsmattkc
181235f6ce
began new infrastructure
...
Yep, this is another one of my "famous" sweeping rewrites. Expect things to break.
Goals for this are:
- Greatly simplify node connections (particularly with arrays) so the code requires less maintenance/is more stable
- Redesign node structure to address issues where UI would stall for lengthy periods of time
- Less reliance on shared ptrs/greater reliance on QObject system for inheritance/memory management
- General code cleanup and improvements
2021-01-05 11:20:38 +11:00
itsmattkc
19eabf2830
fixed variable that didn't change since it was behind an ifdef guard
2020-12-30 18:27:44 +11:00
itsmattkc
c0095a40ce
cache platform palette on load
2020-12-30 18:10:38 +11:00
itsmattkc
3024d68d59
fixed unused variable warning
2020-12-30 18:08:43 +11:00
itsmattkc
06b29b3a35
Merge branch 'master' of https://github.com/olive-editor/olive
2020-12-30 14:46:15 +11:00
itsmattkc
78903391a3
timeline: don't snap add tool if snapping is disabled
2020-12-30 10:38:53 +11:00
itsmattkc
b604a7271d
viewer: fix regression where multiple viewers could play at once
2020-12-30 10:38:34 +11:00
itsmattkc
374fa3f75c
moved some files around for better organization
2020-12-16 19:05:22 +11:00
itsmattkc
7849d6f3ff
corrections for non shared ptrs in OTIO code
2020-12-16 14:32:18 +11:00
itsmattkc
6cb6407bd8
don't use shared ptrs on streams
2020-12-16 13:46:19 +11:00
itsmattkc
e12013e2fb
don't use shared ptrs for project items
2020-12-16 10:28:43 +11:00
itsmattkc
1cd07bc1f7
improved footage relink
...
Interface improvements and uses more heuristics to relink files faster.
2020-12-13 14:27:47 +11:00
itsmattkc
0699795c6f
export: implemented audio bit rate setting
...
The UI for this isn't perfect, I just wrote this in because I needed it. But the backend is solid.
2020-12-04 01:01:50 +11:00
itsmattkc
7dd9115e3f
audiowaveformview: clamp start to 0
2020-11-30 12:07:22 +11:00
itsmattkc
d2727f1932
minor tweak to fix compilation on linux
2020-11-30 09:32:08 +11:00
itsmattkc
2363f7057c
resizabletimelinescrollbar: handle RATIONAL_MAX without overflow
2020-11-30 08:59:53 +11:00
itsmattkc
d82f484c4c
audiowaveformview: on validation, only update visible sections
2020-11-30 08:57:51 +11:00
itsmattkc
b39565cff4
audiowaveformview: multithreaded waveform rendering
2020-11-30 08:18:11 +11:00
itsmattkc
f48c8b552b
export: calculate total length from individual frames rather than all frames
2020-11-30 07:22:48 +11:00
itsmattkc
9ee523b145
timeline: split gaps only if there's an insert
...
Fixes regression from 97afae9687
2020-11-29 17:06:56 +11:00
itsmattkc
6a6fa8674a
actually stage the new files
2020-11-29 17:05:52 +11:00
itsmattkc
c15b734011
timebasedwidget: show workarea and markers on scrollbar
2020-11-29 16:56:00 +11:00