Commit Graph
126 Commits
Author SHA1 Message Date
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