itsmattkc
5bdee74205
waveformview: corrected rectified waveform algorithm
...
Fixed bug where code erroneously multipled by full channel height. This is an
incorrect assumption since the full range of -1.0 to 1.0 is 2.0 which means the
difference needs to be halfed to create a range from 0.0 to 1.0.
2020-03-18 14:23:35 +11:00
itsmattkc
abb4c440fb
core: added signalling for timecode display changes
...
Allows targeted application-wide UI updates for when the user changes the
timecode display so that the response is immediate.
2020-03-18 14:09:31 +11:00
itsmattkc
eb871ceccc
waveformview: implemented rectified waveforms
2020-03-18 14:09:19 +11:00
itsmattkc
69e65f6784
viewer: fixed occasional OCIO bug
...
Addresses a flaw where if the user changed the OCIO "display", Olive wouldn't
check whether the currently selected "view" still existed in the new display
or not which would create an invalid color processor if not. This commit now
checks whether the new display contains the current view, and sets the default
view for the new display if not.
2020-03-17 03:13:14 +11:00
itsmattkc
a1f5c85f49
various: use simpler/smarter XML reading functions
...
Should address any XML parsing issues and allows for simpler, more maintainable
code. Should also address a crash that could occur when pasting nodes that had
inputs that weren't copied.
2020-03-17 02:38:17 +11:00
itsmattkc
72eb3a5d82
nodeview: worked around qt issue where the selection signal would still be sent after an item was deleted
2020-03-17 00:34:32 +11:00
itsmattkc
1c192100c2
viewer: fixed bug where seeking would be stuck to one frame
2020-03-17 00:01:18 +11:00
itsmattkc
34f60e639a
nodeview: implemented copying/pasting nodes
...
Re-uses XML-based project saving/loading functions to store nodes, their
parameters, and their connections in a text-based format in the clipboard.
2020-03-15 20:01:58 +11:00
itsmattkc
50061e4e55
waveformview: show in/out points in waveformview
...
Moved drawing routines to the base class that is used by both TimeRuler
and WaveformView
2020-03-15 18:21:14 +11:00
itsmattkc
02e7c68104
timeline: reimplemented linking/unlinking functionality
2020-03-15 13:41:46 +11:00
itsmattkc
b57b091ca4
timeline: auto-unlink blocks when they're deleted
2020-03-15 13:15:36 +11:00
itsmattkc
1c4411a4ad
timebasedwidget/timeruler: reimplemented creating and displaying markers
2020-03-14 23:03:27 +11:00
itsmattkc
a56484d3e6
timelinescaledobject: implemented minimum scale
...
Used by Viewer to keep TimeRuler and WaveformView within restrictions.
2020-03-14 22:34:23 +11:00
itsmattkc
7f2dcc8200
waveformview: made UI seekable
2020-03-14 01:57:40 +11:00
itsmattkc
73d693f2d5
waveformview: implemented basic waveformview display
2020-03-14 01:22:03 +11:00
itsmattkc
f0e6f9a5f9
various: created derived class for widget derivations of
...
TimelineScaledObject
Minor code cleanup, faster than deriving both QWidget and
TimelineScaledObject each time.
2020-03-14 00:45:50 +11:00
itsmattkc
75417f85d1
timeruler: ported common functions to timelinescaledobject
...
Removed code that was largely duplicated.
2020-03-14 00:40:39 +11:00
itsmattkc
c1c8067ee7
viewer: implemented basic zoom
...
No scrolling functionality yet, but the zoom is functional and efficient.
2020-03-13 16:41:09 +11:00
itsmattkc
0418c8ab85
viewer: began waveformview widget
2020-03-13 16:02:18 +11:00
itsmattkc
e2fe9ad548
viewer: folded waveform view into base viewer widget class
2020-03-13 15:48:09 +11:00
itsmattkc
9e4c79699e
node: split off traversing functions from renderer for usage elsewhere
...
Fixes issue where Viewer node wouldn't pick up correct length if a tracks
weren't in use.
2020-03-13 15:31:15 +11:00
itsmattkc
41da5dbd53
timebasedwidget: added comment explaining scrollbar re-adjustment
2020-03-12 12:06:13 +11:00
itsmattkc
c338e6d99d
resizablescrollbar: refined timeline scrollbar resizing to be more accurate
2020-03-11 14:11:12 +11:00
itsmattkc
39215a7dd0
footageviewer: direct in/out/markers to footage item rather than assuming a
...
sequence item
2020-03-09 18:28:57 +11:00
itsmattkc
8cf9327936
timelineviewblockitem: fixed issue that caused waveforms to always appear at
...
the start of the timeline
2020-03-09 16:57:51 +11:00
itsmattkc
dc37389d02
timeline: implemented in/out points
2020-03-08 01:06:45 +11:00
itsmattkc
52fc4f064b
timeline: rewrote ripple deleting into an undoable command that takes place
...
after the gaps are made and cleaned
Results in more reliable ripple delete behavior.
Also fixes bug that would cause gaps that were cleaned and then restored in an
undo to crash when selected.
2020-03-07 20:42:07 +11:00
itsmattkc
8ec3258234
nodeview: added asserts for improved debugging
2020-03-07 20:40:52 +11:00
itsmattkc
38a30b584a
timeline: implemented some base ripple delete functionality
2020-03-07 18:07:55 +11:00
itsmattkc
d5fdc555e1
timelineviewblockitem: prevent waveforms from exceeding the clip rectangle
2020-03-07 02:47:15 +11:00
itsmattkc
f2d6d3b32c
timeline/renderer: automatically update timeline view when a visual waveform
...
has updated
2020-03-07 02:44:15 +11:00
itsmattkc
3f043496f3
nodeparam: allowed for dynamic nodeparam property change to affect UI widgets
...
immediately
2020-03-07 02:16:48 +11:00
itsmattkc
c168bf1a80
nodeparam: implemented parameters that allow arbitrary properties to be set
...
for UI representations
Allows properties to be set without adding explicit extra members to NodeInputs.
Crucially this means parameters like slider value representations (percent,
decibel, etc.) can be set from NodeInputs now.
2020-03-07 01:21:36 +11:00
itsmattkc
c75a0e8498
timeline/renderer: implemented basic waveform display support
2020-03-06 16:18:07 +11:00
itsmattkc
a41c0e65ac
re-implemented resizable scrollbar (still somewhat crude)
2020-03-05 00:34:39 +11:00
itsmattkc
8daac83b19
footageviewer: allow dragging footage from footage viewer
2020-03-03 20:35:54 +11:00
itsmattkc
2f7819d0ae
timeline: use similar reverse strategy for inserting/overwriting from
...
the most recently focused project panel
2020-03-03 20:13:58 +11:00
itsmattkc
c1680ad420
menushared: added menu/panel proxy for ripple deletion
2020-03-03 20:07:14 +11:00
itsmattkc
9b73892c41
ui: implemented keyboard controls for inserting/overwriting footage into the
...
timeline
Allows users to use the keyboard to place footage into the timeline rather than
forcing them to drag.
2020-03-03 20:03:50 +11:00
itsmattkc
a9577d72ee
pointertool: reused insert code from importtool
2020-03-03 16:34:09 +11:00
itsmattkc
e3759bb704
importtool: re-implemented functionality to hold ctrl to insert dragged clips
2020-03-03 15:51:53 +11:00
itsmattkc
baf3fbde05
global: made every user action set a project "modified" state that will prevent
...
the main window from closing instantly
2020-03-03 14:33:45 +11:00
itsmattkc
d8f83f1452
nodeview: further optimization of node view
2020-03-03 01:50:31 +11:00
itsmattkc
796a30eda9
timelinewidget: when rubberbanding, only emit selection changed when
...
the rubberband is finished
2020-03-02 17:03:36 +11:00
itsmattkc
3e34975dd9
nodeview: improved and optimized some selection code
2020-03-02 17:03:03 +11:00
itsmattkc
f6d602d8e0
nodeview: improved code structures
2020-03-02 16:07:24 +11:00
itsmattkc
566a0729c1
timeruler: ignore cache signals if cache status isn't enabled
...
Minor optimization.
2020-02-28 15:49:26 +11:00
itsmattkc
fde5e47901
projectexplorer:use if defined() and elif defined() for improved
...
compiler compatibility
2020-02-27 17:47:11 +11:00
itsmattkc
02ce48d0c6
various: pixel optimizations
...
Several things are accomplished in this commit, including:
- Use OIIO instead of our own functions for pixel format conversions
(cleaner code/less for us to maintain)
- Fold all PixelService functions into the PixelFormat class
(cleaner code)
- Moved OpenGL pixel definitions to OpenGL classes and out of the
global classes.
- Add support for RGB buffers as well as RGBA (optimization)
2020-02-27 13:54:38 +11:00
itsmattkc
0624184b18
projectexplorer: re-implemented reveal in explorer function
2020-02-27 11:30:26 +11:00