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
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
3e47da7009
timebasedviewselectionmanager: scale/unscale when dragging too
2023-03-11 13:49:41 -08:00
itsmattkc
9f4124beb3
timebasedviewselectionmanager: fixed bug detecting single click selections
2023-03-11 13:39:00 -08:00
itsmattkc
9ff6e689d6
vastly improved rubberband selection behavior with selection manager widgets
2023-02-28 20:21:38 -08:00
itsmattkc
dd9c52ab59
start moving core frameworks to external libraries
2023-01-19 09:51:47 -08:00
itsmattkc
5096278e60
nodes: use much smarter time transform function
...
Fixes #2042
2022-10-23 12:15:36 -07:00
itsmattkc
dd32f81da8
timebasedviewselectionmanager: only start drags if primary button pressed
...
Fixes #1981
2022-07-23 09:50:21 -07:00
itsmattkc
925d63d707
timebased: transform keyframe times to global for snapping
2022-07-22 17:57:19 -07:00
itsmattkc
7c12b6dc16
updates for C++17
2022-05-11 10:50:47 -07:00
itsmattkc
4b366a9b73
update copyright year to 2022
2022-05-10 10:38:56 -07:00
itsmattkc
0f99d8a662
timeruler: add ability to resize markers and workarea
2022-05-09 17:53:21 -07:00
itsmattkc
e6d4fe43de
reworked and vastly improved snapping subsystem
2022-05-02 00:01:49 -07:00
itsmattkc
f7396de121
markers: reimplemented copy/paste
2022-05-01 22:33:58 -07:00
itsmattkc
6a0b5856c9
various: extended marker and timeline functionality
2022-05-01 21:17:22 -07:00
itsmattkc
619de01db4
refined curve view
2021-12-17 17:07:59 -08:00
itsmattkc
bf196e790b
refined keyframeview and curveview
2021-12-15 19:45:04 -08:00
itsmattkc
7d82d56f31
reworked much of keyframeview for new architecture
2021-12-13 14:12:30 -08:00