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
c812f6ea28
fix: panel/window bugs surfaced by new gtest coverage
...
- MainWindowLayoutInfo: toXml() iterated open_sequences_ for the
<viewers> section and fromXml() never parsed it, so open footage
viewers were lost on layout save/load
- PanelWidget never set QObject::objectName, so
PanelManager::GetPanelWithName() always returned nullptr and every
caller (layout restore, NodeView param panel lookup) was dead code
- PanelManager::DestroyInstance() left instance_ dangling (UAF on any
later RegisterPanel), unlike the other singletons
2026-07-17 16:53:13 +08:00
Mike-Solar
ddca6a5e01
proxy: add dedicated Proxy dialog and preferences fields
...
- New ProxyDialog (Tools > Proxy Settings..., plus 'Proxy Settings...'
in the project panel and timeline Proxy submenus) unifying global
proxy settings, per-footage custom presets, generation and deletion
in one place instead of three scattered entry points; this also fixes
the Tools menu action opening the wrong preferences tab
- Preferences Disk tab gains an 'include audio in proxies' checkbox and
an ffmpeg executable path field (blank = auto-detect)
- Add ProxyDialog smoke tests
2026-07-16 22:53:13 +08:00
Mike-Solar
15525528c9
mainwindow: keep Preferences in the Tools menu on macOS
...
On macOS Qt's text-heuristic menu role relocates any action whose text
starts with "Preferences" into the application menu. With the English
translation the Tools > Preferences action matched the heuristic and
disappeared from the Tools menu. Pin the action to QAction::NoRole so it
stays in the Tools menu on every platform and language.
2026-07-16 22:31:21 +08:00
Mike-Solar
e5eeaddf2f
format: reformatting files
2026-07-13 15:30:43 +08:00
Mike-Solar
f0d41eae52
build: rebrand output artifacts to Oak and fix macOS QML deployment
...
- Rename macOS bundle output from Olive.app to Oak.app.
- Rename editor binary to oak-editor and render worker to oak-render-worker.
- Rename crash handler output to oak-crashhandler.
- Update worker lookup, NSIS installer, Linux desktop/AppRun, crashhandler
symbol paths, and documentation for the new binary names.
- Update CD workflow paths and add -qmldir flags to macdeployqt so QtQuick
/ QML plugins required by KDDockWidgets are bundled, fixing the launch
crash on macOS.
- Update user-facing GitHub URLs to OakVideoEditorCommunity/oak.
2026-07-13 15:26:15 +08:00
Mike-Solar
cf32fcfee1
Add configurable proxy settings and a menu entry
...
- Extend ProxyManager::ProxyParams with crf and preset, and update
ProxyTask/ProxyParamsEqual to use them.
- Add global config keys ProxyWidth, ProxyHeight, ProxyCRF, ProxyPreset.
- Add a Proxy Settings group to Preferences -> Disk with width/height/CRF/preset
controls.
- Read proxy settings from config when generating proxies from the timeline.
- Add Tools -> Proxy Settings... menu entry that opens Preferences on the Disk tab.
- Add ConfigDialogBase::SetCurrentTab() so PreferencesDialog can start on a
specific tab.
2026-07-13 10:19:30 +08:00
孙羽
116a4b8368
fix windows compile
2026-05-27 21:34:09 +08:00
Mike-Solar
0984756c19
fix: Compile v8.1.1 instead of latest ffmpeg for Ubuntu, remove override for MainWindow::nativeEvent, and change Windows packages to UCRT.
2026-05-21 17:40:24 +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
7ec8a4dd7e
serializer: ensure backwards compatibility
2023-02-26 15:42:54 -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
2d83beb2c6
mainwindowlayoutinfo: don't skip old versions
2023-02-20 14:56:57 -08:00
itsmattkc
d09e257523
mainwindow: ensure timelines are actually tabified
2023-02-17 14:16:07 -08:00
itsmattkc
9745b536f6
nodes: remove graph and merge into project
2023-02-17 14:13:03 -08:00
itsmattkc
963d3b4b51
move add tool items to main menu
...
Makes them shortcut-assignable. Fixes #2158
2023-02-17 11:58:36 -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
dd9c52ab59
start moving core frameworks to external libraries
2023-01-19 09:51:47 -08:00
itsmattkc
1575b82fd2
core: add debugging "magic" function
...
Just a UI way of turning on debug functionality
2022-11-05 11:56:39 -07: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
ea8a2fad9d
menus: hide sequence cache options
2022-09-13 21:30:54 -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