Commit Graph
287 Commits
Author SHA1 Message Date
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 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 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 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 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 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 e12013e2fb don't use shared ptrs for project items 2020-12-16 10:28:43 +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 97afae9687 timeline: when ripple removing an area, don't split gaps 2020-11-29 12:17:23 +11:00
itsmattkc 73aa3760f3 timeline: initialize variable introduced in last commit 2020-11-28 19:36:57 +11:00
itsmattkc 350df42ad1 timeline: improved rubberband behavior
Improved rubberband responsiveness and show rubberband if dragging from a gap
(or other such immovable block).
2020-11-28 17:31:44 +11:00
itsmattkc f8ceefff6c don't use shared ptr on projects
Really unnecessary
2020-11-27 14:24:02 +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 a043a686c6 timeline: started record tool 2020-11-25 11:53:56 +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 1400c313ca timeline: correctly use ptr to qvector rather than qlist
Fixes copy/paste crash
2020-11-24 11:04:33 +11:00
itsmattkc 29f2d3024e timeline: clear selections when disconnecting viewer
Fixes #1400
2020-11-23 09:15:46 +11:00
itsmattkc 54cd244801 nodes: added distort nodes
Adds nodes for cropping and transforming
2020-11-22 11:34:37 +11:00
itsmattkc 857e4b046d timeline: when inserting gaps, only do one per track 2020-11-20 19:37:00 +11:00
itsmattkc e4f011831d timeline: don't try to link if no clips are selected 2020-11-20 19:36:43 +11:00
itsmattkc 6eade26bc8 timeline: force update after timeline actions
This is actually relatively efficient since Qt will ignore multiple update
requests leading up to an update and only update once.

Fixes #1374
2020-11-19 17:50:42 +11:00
itsmattkc afbd3ada36 bypass track invalidate length limit on trim command 2020-11-18 19:34:12 +11:00
itsmattkc b3c3fe0fc8 merged video and audio nodes into a single media node
They performed exactly the same function so I don't think we need the clutter.

Also bumped the project version, but old projects are automatically converted.
2020-11-18 13:48:14 +11:00
itsmattkc 04dd502a40 nodes: bypass invalidate length limit for certain track operations
Fixes #1290
Fixes #1228
2020-11-18 12:56:00 +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 15a29288aa added Q_OBJECT macro to classes that were missing it 2020-11-17 19:13:16 +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 81450044e0 added preference for duplicating dependencies
Fixes #1320
2020-11-16 16:32:15 +11:00
itsmattkc 1b9bf6d92c switched many QLists for QVectors
Minor optimization
2020-11-16 16:17:43 +11:00
itsmattkc 0d0766e4fb improved render channel count system 2020-11-15 22:16:40 +11:00
itsmattkc 6ecdb02fd0 okay maybe not 2020-11-08 00:47:59 +11:00
itsmattkc 07dc7104c5 made timerangelist a encapsulation rather than a derivation
Locks off functionality that really shouldn't be used.
2020-10-29 02:18:41 +11:00
itsmattkc 4082f6d938 Merge branch 'master' of https://github.com/olive-editor/olive 2020-10-23 01:26:49 +11:00
itsmattkc 917738d1de Merge branch 'master' into otio 2020-10-22 20:26:16 +11:00
Thomas Wilshaw 4ddc659335 MediaInput: Rename streams access methods.
Change MediaInput::footage() to MediaInput::stream() and
MediaInput::SetFootage() to MediaInput::SetStream() as they access
streams not footage.

Also update all instances of access methods to reflect this change.
2020-10-19 15:50:36 +01:00
itsmattkc db8d321fa7 project: improved loading and footage importing 2020-10-19 14:41:01 +11:00
itsmattkc 221e0efb96 timeline: fix double free on items
Who the hell wrote this? It's all wrong for no reason and makes no sense

Fixes #1222
2020-10-10 20:24:41 +11:00
itsmattkc 0d102defab tracks: use node label instead of separate name string 2020-10-10 20:17:25 +11:00
itsmattkc 6e8295666d timeline: optimized rubberband selections 2020-10-10 17:22:04 +11:00
itsmattkc ae8af531a9 timeline: removed cursor setting from block item (how did this get here?) 2020-10-10 17:21:47 +11:00