Mike-Solar
66d761b4b7
R8: finish app/ pure C ABI migration (P3-P9) and make OTIO required
...
- app/ no longer includes engine C++ headers nor holds engine C++ types:
engine access goes through the oakengine C ABI plus C++ wrappers
(oakutil/oaknode.h, oakutil/oakvideo.h) and app-local mirror types
(tooltypes, trackreferencehandle, timelinecommonapp, keyframetypes,
subtitleapp, serializedlayoutinfoapp, nodevaluehandle, sliderdisplaytypeapp)
- engine: new C ABI functions for block/track/clip/transition navigation
and predicates, links, caches, waveform/playback, disk folder,
sequence_track_list, node_free, footage_is_valid, block_get_track,
get_brush; loadotio/saveotio ported to the current engine API
- OTIO is now a required dependency: CI and CD build it on every
platform, FindOpenTimelineIO fixed for OTIO 0.16/0.19 (the old deps
include requirement silently disabled OTIO everywhere), runtime
libraries are bundled into packages and copied next to macOS binaries
(oak_copy_otio_runtime)
- fix ProjectViewModel drag&drop mime read/write size mismatch (segfault)
- unify color label naming (k_olive -> "Oak") in the app-side mirror
- docs: OTIO required, FFmpeg minimum corrected to 6.0 (en/zh)
- gtest suite: 1925 passed, 0 failed
2026-07-31 22:46:52 +08:00
Mike-Solar
0aa5879f35
app: migrate all engine access to the C ABI facade (nm U _ZN5olive = 0)
...
Every app module now reaches liboakengine exclusively through
oakengine_* C calls, EngineEventBridge subscriptions and app-side
handle headers (cliphandle/keyframehandle/nodevaluehandle/oakvaluehelper).
Direct C++ command construction, engine signal connect()s, and engine
type usage in MOC-visible signatures are gone: 557 -> 0 undefined
olive:: symbols in oak-editor.
2026-07-26 22:43:21 +08:00
Mike-Solar
bb40b4923e
style: unify identifier naming per updated conventions
...
Automated with clang-tidy readability-identifier-naming (config added to
.clang-tidy) plus scripted passes, per the updated rules now documented
in CONTRIBUTING.md:
- types (class/struct/enum/alias/template params): PascalCase
- functions, variables, members: snake_case (incl. rational -> Rational)
- private/protected members: trailing underscore; static member
variables likewise (instance_, available_themes_)
- constants and enum values: snake_case (kLinear -> k_linear,
F32P -> f32p); ALL_CAPS reserved for macros
- macros: OAK_ prefix (OLIVE_ADD_TEST/OLIVE_ASSERT/OLIVE_CONFIG ->
OAK_ADD_TEST/OAK_ASSERT/OAK_CONFIG, GL_PREAMBLE -> OAK_GL_PREAMBLE,
include guards -> OAK_*)
- file names: all lowercase (Current/Plugin/OliveHost/OliveClip/
OlivePluginInstance -> current/plugin/olivehost/oliveclip/
oliveplugininstance)
- getters share the member name sans underscore, setters set_foo()
- Qt and third-party (OpenFX) virtual overrides and framework callbacks
keep their original names (exempt in .clang-tidy)
Manual follow-ups required where automation could not reach:
- string-based QMetaObject/SIGNAL/SLOT references updated to renamed
methods (AddTask, CreatedFile, DeleteSpecificFile, moveSelectionUp, ...)
- macro bodies referencing renamed methods (OLIVE_CONFIG,
NODE_DEFAULT_DESTRUCTOR, MANAGEDDISPLAYWIDGET_*)
- self-shadowing locals renamed where signals/methods became same-named
(size_changed, worker_count, selected_items, import param, filters)
- third_party OFX member/namespace usages restored (OFX::Host::*,
_created, _clipPrefsDirty, createInstance, clearPersistentMessage)
- STL protocol aliases restored (const_iterator) with .clang-tidy
ignore rules; qHash overloads restored
Full build and test suite pass: ctest 4/4, ~1960 gtest cases green.
2026-07-19 16:10:54 +08:00
Mike-Solar
bfb1b2fce4
update copyright back
2026-01-16 21:22:05 +08:00
Mike-Solar
b8669f6a11
Change project name;
2026-01-05 16:22:26 +08:00
Mike Solar
6fdfd03ffd
update: update copyright
2025-08-05 17:12:49 +08:00
Mike Solar
74f73ab3be
change: change code style to Linux style except indent.
2025-08-03 03:09:40 +08:00
itsmattkc
9745b536f6
nodes: remove graph and merge into project
2023-02-17 14:13:03 -08:00
itsmattkc
25b6b07a06
Squashed commit of the following:
...
commit 60c0f65c5e3c2faf1f7b0ae10b4131dabbcf715b
Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com >
Date: Wed Feb 15 22:34:16 2023 -0800
mainwindow: don't close last timeline panel when removing sequence
commit bc892810d67c1dd4f9c0639767c563681f29701d
Merge: 69051a120 aef08f8cd
Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com >
Date: Tue Feb 14 17:05:25 2023 -0800
Merge branch 'master' into kddockwidgets
commit 69051a120b8423d0ad7b38def2f7555d323cd74d
Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com >
Date: Tue Feb 14 15:29:24 2023 -0800
finished kddockwidgets integration
commit 9a39dbeade871a0b9454b424c7f7a7482671d40b
Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com >
Date: Tue Feb 14 11:54:25 2023 -0800
switch to kddockwidgets
2023-02-16 00:44:08 -08:00
itsmattkc
d1a7bd29aa
mainwindow: improved panel organization
2023-02-08 18:18:06 -08:00
itsmattkc
15a67bc12a
project: auto-select imported files
2022-07-26 11:39:35 -07:00
itsmattkc
f2e604c2cb
ui: add rename shortcut
2022-07-22 13:25:46 -07:00
itsmattkc
4b366a9b73
update copyright year to 2022
2022-05-10 10:38:56 -07:00
itsmattkc
82bd6a103c
timeline: implement reveal in project action
2022-05-03 14:23:41 -07:00
itsmattkc
5b7255b8bb
improved insert/overwrite functions
2021-08-28 13:40:27 -07:00
itsmattkc
edd52dd811
projectpanel: select nodes when items are selected in the project explorer
2021-05-26 14:22:10 +10:00
itsmattkc
77d4b18a60
updated copyright year for 2021 [skip ci]
2021-04-17 18:56:50 +10:00
itsmattkc
c03c197412
added ability to open viewers on any viewer node or derivative
...
Fixes #1362
Also fixes some other bugs that impeded this from working.
2021-04-12 22:58:34 +10:00
itsmattkc
cb75e37e77
moved several files around
...
Mostly moved classes that became node derivatives into the node/ folder.
2021-04-08 12:15:59 +10:00
itsmattkc
898ea25e89
finished merge of viewer and footage
2021-04-06 13:08:56 +10:00
itsmattkc
62ff7bed69
correctly map root folder to source model
2021-03-31 11:55:00 +11:00
itsmattkc
500fb58d49
arranged items so they are inputs of folder rather than outputs
2021-03-12 12:22:19 +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
f7883bd02c
began some rewrites to timeline drawing
2021-01-14 10:30:20 +11:00
itsmattkc
f8ceefff6c
don't use shared ptr on projects
...
Really unnecessary
2020-11-27 14:24:02 +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
63c194896d
core: implemented yes/no to all when closing multiple modified projects
2020-04-19 03:29:39 +10:00
itsmattkc
d232e035f5
mainwindow/project: implemented saving/restoring panel state to project file
2020-04-19 02:25:02 +10:00
itsmattkc
55dcf0f5fd
projectexplorer: added functionality for opening a folder in another tab/window
2020-04-19 01:11:50 +10:00
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
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
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
6facdc1f1b
projectpanel/projectexplorer: added select all/deselect all functionality
2020-02-23 11:33:49 +11:00
itsmattkc
2fef893fd0
panels: override Retranslate() rather than reimplementing changeEvent() in every derivative
2020-02-01 22:11:14 +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
1d25fbd9e7
added db conversions and new menu into project panel
2019-07-21 19:04:32 -07:00
itsmattkc
5e3c2fb7e4
documented (nearly) ever class
2019-07-06 23:32:01 -05:00
itsmattkc
a6971b3fde
more work on project management
2019-07-06 09:46:55 -05:00
itsmattkc
bc631c495d
create new folder added
2019-07-05 11:04:23 -05:00
itsmattkc
271fbd01ae
heuristic to import into selected folder
2019-07-05 00:12:15 -05:00
itsmattkc
3e6bc54f48
more project management updates
2019-07-01 17:53:52 -07:00
itsmattkc
55c869ac1b
added copyright header to all source files
2019-06-22 23:26:31 -07:00
itsmattkc
839082895b
toolbar reimplemented
2019-06-21 13:10:55 -07:00
itsmattkc
459ad13eda
wrote viewmodel model for project browsing
2019-06-21 11:51:50 -07:00
itsmattkc
df93b9f242
cleaned source tree
2019-06-20 11:36:43 -07:00
itsmattkc
a468b3727d
further development on rewrite
2019-06-17 16:05:51 -07:00