Commit Graph
193 Commits
Author SHA1 Message Date
Mike-Solar dd5508e571 docs: archive completed C ABI campaign docs under plans/completed/
Move the finished migration campaign docs (handoffs v3-v6, roadmap,
R5 guides, R6 cleanup, R7 pure-ABI) from docs/zh/ into
docs/zh/plans/completed/ with an archive README; fix all
cross-references; refresh plans/README.md index (active plans now
marked unlocked).
2026-07-27 01:52: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
孙羽 116a4b8368 fix windows compile 2026-05-27 21:34:09 +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 22fd521951 Merge branch 'refs/heads/dev' into plugin
# Conflicts:
#	.gitmodules
#	CMakeLists.txt
#	ext/core
2025-12-13 21:45:46 +08:00
Mike-Solar 1e33a31b73 Update FFmpeg handling and focus management
Refactor FFmpeg frame processing and improve focus management in panels. Add memory sanitization for debug builds and update KDDockWidgets integration.
2025-11-23 16:35:09 +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 81654071a9 mainwindow: set a preferred width for the audiomonitor
This doesn't seem to be a pixel width, but I have no idea yet how this reacts on other computers
2023-03-20 16:22:59 -07: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 aa2653a583 mainwindow: implement hack to fix pixel sampler 2023-02-21 19:32:15 -08:00
itsmattkc d7c83269c5 Merge branch 'node-rework' 2023-02-21 09:58:08 -08:00
itsmattkc 11e4e051c3 move undo files around for better organization 2023-02-20 16:09:22 -08:00
itsmattkc d09e257523 mainwindow: ensure timelines are actually tabified 2023-02-17 14:16:07 -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 2007b8460c mainwindow: save premaximized state where applicable 2023-02-14 12:21:04 -08:00
itsmattkc d1a7bd29aa mainwindow: improved panel organization 2023-02-08 18:18:06 -08:00
itsmattkc 70d34c674b core: switch to single-project implementation
This has never worked right, it's caused a number of complexities within the code, and I think there are better ways to do this.
2023-02-08 12:15:05 -08:00
itsmattkc 451de7030b Merge branch 'move-time-to-viewer' 2022-11-01 18:20:22 -07:00
itsmattkc 4d80044d6d upgrade to qt 6 compliance 2022-10-28 19:42:14 -07:00
itsmattkc d1545745d8 various: moved time from viewer UI to viewer node 2022-10-23 20:56:04 -07:00
itsmattkc c173bcad2a mainwindow: remove timeline from "main time panels" when destroyed
Fixes potential crash with multiple sequences
2022-10-04 20:52:38 -07:00
itsmattkc 8a2f2912b4 multicam: allow overrides by selecting multicam nodes in nodeview 2022-10-02 11:23:55 -07:00
itsmattkc 14c7bd6dbc multicam: implemented queuing of future node selections during playback 2022-10-02 10:39:35 -07:00
itsmattkc 14bf515d3f multicam: various improvements 2022-10-01 16:57:46 -07:00
itsmattkc 640e6741f4 multicam: prioritize current clip under playhead 2022-09-29 19:45:38 -07:00
itsmattkc 6e183fe4be multicam: refactor to heavily optimize multicam monitor retrieval 2022-09-29 17:50:09 -07:00
itsmattkc 74a1ec1479 multicam: implement clip splitting 2022-09-28 17:57:09 -07:00
itsmattkc a6b8b7ccbc multicam: finished usable implementation 2022-09-25 20:26:10 -07:00
itsmattkc 15d786538a multicampanel: move to viewerpanelbase 2022-09-25 18:06:02 -07:00
itsmattkc 487cd166d7 start implementation of multicam panel 2022-09-21 13:16:19 -07:00
itsmattkc 92949c50dd viewerpanelbase: stop playback when panel is defocused 2022-08-21 10:02:44 -07:00
itsmattkc 42db352921 mainwindow: don't disable focus when appending timeline panel
I guess this was supposed to fix something at some point but now breaks it, so I'm removing it
2022-08-07 22:25:31 -07:00
itsmattkc 15a67bc12a project: auto-select imported files 2022-07-26 11:39:35 -07:00
itsmattkc 89927c71ff implemented reveal in footage viewer option
Fixes #1958
2022-06-27 23:40:05 -07:00
itsmattkc de31f3351a mainwindow: use primary screen rather than desktop widget 2022-06-21 13:35:31 -07:00
itsmattkc 501564fb22 ui: replace html edit in text node with edit in viewer button 2022-05-10 18:07:17 -07:00
itsmattkc 4b366a9b73 update copyright year to 2022 2022-05-10 10:38:56 -07:00
itsmattkc 102ce9aa7b nodeparamview/nodeview: connect selections and enable multi-select in npv 2022-05-04 14:59:51 -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 82bd6a103c timeline: implement reveal in project action 2022-05-03 14:23:41 -07:00
itsmattkc 9101f5dc49 implemented core audio recording support 2022-05-02 14:00:03 -07:00
itsmattkc 5afd322644 nodeparamview: significant optimization
- Skips multiple calls to SetContexts in quick succession
- Only add/remove contexts as necessary rather than resetting every time
2022-04-10 12:09:04 -07:00
itsmattkc 38c8bd4b0d paramview: implemented passthrough editing 2022-04-04 22:13:08 -07:00
itsmattkc d3ffeaa35a project: reorder panels closing project 2022-01-04 11:19:11 -08:00
itsmattkc 4f9ac4b36d parampanel: close contexts belonging to closing project 2022-01-02 18:43:27 -08:00
itsmattkc 2eee6c2360 fixed unused var 2022-01-02 16:15:32 -08:00