itsmattkc
1aa87cbda6
various: encapsulate all code in the olive namespace to avoid name collisions
...
Large-scale code cleanup. Also adds a license to the top of all files that were
missing it.
2020-04-06 15:29:53 +10:00
itsmattkc
edc38ad8a2
timeline: implemented adding objects in the timeline (e.g. solid, title)
2020-04-06 00:05:09 +10:00
itsmattkc
1319d7141f
viewer: re-implemented auto viewer full screen from menubar/keyboard shortcut
2020-04-01 19:22:53 +11:00
itsmattkc
6ea6dd810e
pixelsampler: added pixel sampler panel
...
When visible, this panel will show the current reference and display transformed
color under the cursor of any viewer.
2020-04-01 16:57:10 +11:00
itsmattkc
061f7ac20d
mainwindow: show active project filename in the titlebar
2020-04-01 13:19:18 +11:00
itsmattkc
b54388894c
project: implemented the ability to delete items from projects
2020-03-28 12:33:28 +11:00
itsmattkc
3399227b3a
keyframeview: implemented transforming keyframe times to and from sequence time
...
Since the node graph can have transform cross nodes, input keyframes may occur
at a different times requiring transforming between sequence time and media
time. This commit implements such a mechanism in all UI classes that need it.
2020-03-26 19:17:46 +11:00
itsmattkc
3b8743a0ce
timeline: show timecode on block items and started copy function
2020-03-23 15:28:58 +11:00
itsmattkc
51f02ea01b
viewer: allow switching open sequences
2020-03-21 22:18:17 +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
02e7c68104
timeline: reimplemented linking/unlinking functionality
2020-03-15 13:41:46 +11:00
itsmattkc
1c4411a4ad
timebasedwidget/timeruler: reimplemented creating and displaying markers
2020-03-14 23:03:27 +11:00
itsmattkc
dc37389d02
timeline: implemented in/out points
2020-03-08 01:06:45 +11:00
itsmattkc
38a30b584a
timeline: implemented some base ripple delete functionality
2020-03-07 18:07:55 +11:00
itsmattkc
0bca86e3c7
panels: allow insert and overwrite from footageviewerpanel too
...
Makes FootageViewerPanel and ProjectPanel derive from a common base that
TimelinePanel searches for when looking for a source to insert/overwrite from.
2020-03-03 20:26:01 +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
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
bf7fc9a0c4
panels: selecting a clip in the timeline automatically selects the corresponding
...
nodes in the nodeview
2020-02-26 00:39:30 +11:00
itsmattkc
0a74714f5d
nodeview/nodepanel: implemented select all/deselect all functionality
2020-02-23 11:38:30 +11:00
itsmattkc
6facdc1f1b
projectpanel/projectexplorer: added select all/deselect all functionality
2020-02-23 11:33:49 +11:00
itsmattkc
0e7b051228
timelinewidget: show cache status in timeline too
2020-02-22 14:45:50 +11:00
itsmattkc
c0360abee1
toolpanel: override Retranslate()
2020-02-01 22:28:14 +11:00
itsmattkc
2fef893fd0
panels: override Retranslate() rather than reimplementing changeEvent() in every derivative
2020-02-01 22:11:14 +11:00
itsmattkc
17c1493aa7
all time-based panels are now derived from a common base class
...
Cuts down on a lot of duplicate code between
TimelineWidget/ViewerWidget/CurveWidget/NodeParamView
and TimelinePanel/ViewerPanel/CurvePanel/ParamPanel since they all use similar
time functions.
2020-02-01 19:39:43 +11:00
itsmattkc
24f7eeb210
renderer: implemented function to wait for workers in the main thread
...
The workers run in separate threads meaning if any significant change is made
(e.g. parameters changing, or even closing the program), these workers may still
be mid-render. This is particularly problematic when closing since the nodes a
worker is rendering may be deleted mid-render. Render backends now have a
function that pauses the main thread (but starts a second event loop so the UI
isn't frozen) until the worker threads are all finished. This way, massive
changes can be made safely without race conditions.
2020-01-22 17:11:17 +11:00
itsmattkc
c6710b1359
correctly update the panel subtitles based on the media connected
2020-01-16 14:57:16 +11:00
itsmattkc
00b5672639
implemented saving UI
...
Implemented the file dialog, save progress dialog, and separate thread to save
in (saving needs to be done in a separate thread so the main/GUI thread doesn't
get blocked).
2020-01-12 16:26:05 +11:00
itsmattkc
31b60664a7
Merge branch 'merge-timeline-and-viewer'
2020-01-04 02:45:26 +11:00
itsmattkc
3369bb53f9
implement double clicking a sequence in the project explorer to open it
2020-01-03 21:14:27 +11:00
itsmattkc
df837efbc6
merged timeline and viewer nodes together
2020-01-03 03:26:00 +11:00
itsmattkc
2b24fae26f
implemented vertical "zooming" in the TimelineWidget and CurveView
...
This comes in the form of changing the vertical scale in the CurveView and
adjusting all track heights in the Timeline.
2019-12-31 00:23:28 +11:00
itsmattkc
0db13a96ab
implemented a footage viewer
...
Essentially a minor derivation of a viewer type that can automatically view
footage from the project (i.e. not in a sequence).
2019-12-30 20:17:48 +11:00
itsmattkc
26cafa7936
implemented bulk of curve editor's functionality
...
While certainly not entirely complete yet, this implements most of the UI
functionality of the graph editor.
2019-12-28 18:26:37 +11:00
itsmattkc
d82acf9b7e
implemented basic animation curve editor widgets
...
Frontend is largely done, it just needs backend and connecting to other
widgets to function correctly.
2019-12-28 00:27:13 +11:00
itsmattkc
3c9b16555f
created curve editor panel
2019-12-28 00:26:42 +11:00
itsmattkc
227db9d653
updated ParamPanel to be able to be connected with ViewerPanel and TimelinePanel
2019-12-27 02:41:31 +11:00
itsmattkc
61c60e00d6
various small code cleanups and improvements
...
Largely refactoring work to make the code somewhat nicer to work with.
2019-12-26 19:00:08 +11:00
itsmattkc
d140094cf5
moved PanelManager to a more traditional singleton form
2019-12-26 17:27:30 +11:00
itsmattkc
97c192672e
constructed keyframeview and timeruler together inside nodeparamview and connected them
2019-12-25 02:42:07 +11:00
itsmattkc
836192df48
fixed circular dependency that oddly only occurred on MSVC
2019-12-18 16:49:42 +11:00
itsmattkc
b96fd7ae45
allowed access to the viewer node from the viewer widgets
2019-12-16 03:02:28 +11:00
itsmattkc
2f04a53054
implemented deleting clips in the timeline
...
Also fixed bugs in the Node::GetExclusiveDependencies function and in the
NodeInputArray::RemoveAt function to make this functionality work.
2019-12-14 17:10:06 +11:00
itsmattkc
18bf126574
implemented deleting nodes in the nodeview (undoable)
2019-12-13 04:12:00 +11:00
itsmattkc
8d599b60e4
reimplemented split at playhead functionality
...
Reimplemented an older but very useful timeline function for splitting blocks
at the current playhead.
2019-11-19 22:25:04 +09:00
itsmattkc
429514b1fd
separation of previous renderer into base and derivation complete
...
The previous iteration was fairly OpenGL-heavy. It's now been separated into
a base class that is OpenGL independent and a derived class that is
OpenGL-based. Over time this should allow for portability away from OpenGL
if necessary.
2019-11-01 12:58:38 +11:00
itsmattkc
52f4c59bec
implemented new audio monitor widget
2019-10-23 03:21:05 +11:00
itsmattkc
ea4f6f43c4
added support for multiple timeline sections
2019-10-05 04:38:17 +10:00
itsmattkc
4c90405feb
connect timeline and viewer together by default
2019-09-27 23:55:24 +10:00
itsmattkc
f52c60c26e
fixed keyboard shortcut implementation
2019-09-26 04:09:45 +10:00
itsmattkc
00d3932194
fixed maximize panel implementation
2019-09-26 04:00:41 +10:00