Mike-Solar
c0dcd33de0
R8 phase 1: extract app/engine shared utilities into shared/include/oakutil
...
Move the pure-header utilities shared by app/ and engine/ out of
engine/common/ into a new shared/include/oakutil/ layer (define, lerp,
decibel, digit, range, crashpadutils, autoscroll, qtutils, filefunctions
declarations, and a trimmed xmlutils exposing a CancelAtom-free void*
overload). engine/common/ keeps forwarding headers so internal include
paths are unchanged; app/ now includes oakutil/* directly.
engine/node/project.h gains an explicit NodeGroup forward declaration
previously obtained transitively through the old xmlutils.h.
2026-07-27 17:14:56 +08:00
Mike-Solar
17888a2dc1
change: remove UB in core.h
2026-07-27 08:26:13 +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
2c2df99963
name every undo command
2023-03-12 00:49:03 -08:00
itsmattkc
019f095ee4
implement history panel
2023-03-11 22:26:21 -08:00
itsmattkc
896ef17272
timeline: jump playhead to end when inserting or overwriting
2023-03-03 00:28:10 -08:00
itsmattkc
5e29414dce
clip: use footage label by default rather than copied label
2023-02-21 19:44:26 -08:00
itsmattkc
11e4e051c3
move undo files around for better organization
2023-02-20 16:09:22 -08:00
itsmattkc
9745b536f6
nodes: remove graph and merge into project
2023-02-17 14:13:03 -08:00
itsmattkc
dd9c52ab59
start moving core frameworks to external libraries
2023-01-19 09:51:47 -08:00
itsmattkc
38517c8c31
node: removed slow unrecommended functions
2022-11-05 11:58:38 -07:00
itsmattkc
df97df635d
timeline: implement nest function
...
Also includes some improved cache/request code
2022-10-01 13:04:51 -07:00
itsmattkc
d0e12ce607
timeline: add options for manually caching and discarding parts of clips
2022-09-13 19:19:42 -07:00
itsmattkc
53def87749
timeline: request caches on import
2022-09-01 11:05:30 -07:00
itsmattkc
079d6beff2
timeline: separate markers and workarea
2022-06-27 23:39:31 -07:00
itsmattkc
7ab3350c59
timeline: ensure tentative subtitle command is taken when dropping onto null
2022-05-16 09:06:49 -07:00
itsmattkc
7130371690
timeline: improved subtitle import behavior
2022-05-16 08:37:14 -07:00
itsmattkc
fb72ca4997
timeline: fix bug in trackviewitem drag/drop
2022-05-13 20:34:29 -07:00
itsmattkc
c0ad244397
nodeview: implement dragging items from project explorer into node view
2022-05-11 14:55:07 -07:00
itsmattkc
83e7707025
media: implement importing SRT files
2022-05-11 13:48:59 -07:00
itsmattkc
4b366a9b73
update copyright year to 2022
2022-05-10 10:38:56 -07:00
itsmattkc
91b761693b
code: use config macro
...
Macro is much easier to use and more readable
2022-05-04 09:50:34 -07:00
itsmattkc
9101f5dc49
implemented core audio recording support
2022-05-02 14:00:03 -07:00
itsmattkc
e6d4fe43de
reworked and vastly improved snapping subsystem
2022-05-02 00:01:49 -07:00
itsmattkc
93be94bc2c
more work
2021-11-16 23:58:34 -08:00
itsmattkc
6033039046
improved connector UI in node view
2021-11-10 21:59:54 -08:00
itsmattkc
dc7f7a6dda
formalized valuehint as a class
2021-09-21 20:13:14 -07:00
itsmattkc
751b5f6c44
timeline: used footage params as basis for manual selection
2021-09-21 19:03:51 -07:00
itsmattkc
2d3aaa474d
timeline: fixed crash
2021-09-21 12:38:01 -07:00
itsmattkc
3b8736dbf7
timeline: check if sequence outputs to node about to be imported
...
Fixes #1744
2021-09-21 12:27:12 -07:00
itsmattkc
f78a4643f3
timeline: use vector rather than map
2021-09-21 11:57:42 -07:00
itsmattkc
b07bccb7dc
nodes: revert to single output
2021-09-07 22:01:36 -07:00
itsmattkc
438cce1ce5
widget: use rational for internal playhead value
...
Fixes #1688
2021-08-02 10:55:01 -07:00
itsmattkc
c41047ab02
timeline: reorganized undo commands
...
Split commands between several files rather than having them all in two monolithic ones.
2021-07-16 01:38:20 -07:00
itsmattkc
5dd2132037
timeline: set sequence position in sequence's context
2021-07-08 11:42:09 -07:00
itsmattkc
6d2ffb1bc4
Merge branch 'master' into nodeview-redux
2021-06-16 17:20:05 -07:00
itsmattkc
401d69954c
timeline: ignore drop event if no ghosts were made
2021-06-16 17:18:35 -07:00
itsmattkc
24ce8f8446
remove null context commands
2021-05-27 15:14:28 +10:00
itsmattkc
f2d64728f9
work towards timeline/nodeview interactivity
2021-05-17 11:14:56 +10:00
itsmattkc
8e9859b2b3
initial commit
2021-05-16 09:58:57 +10:00
itsmattkc
77d4b18a60
updated copyright year for 2021 [skip ci]
2021-04-17 18:56:50 +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
f61bb67ff0
timeline: prevent nesting sequence with itself
2021-04-08 10:44:44 +10:00
itsmattkc
eef19ca0ff
streamlined viewable-based lengths
2021-04-08 09:46:31 +10:00
itsmattkc
bb32048c65
use frame rate and timebase less interchangeably
2021-04-07 13:08:25 +10:00