Mike-Solar
013a175707
refactor: workspace layout — crates/, app at root, legacy C++ removed
...
Single mechanical restructure commit:
- root Cargo.toml = oakapp bin + workspace; one cargo build produces
oakapp, oak-cli, oak-worker, liboakengine.dylib
- app/rust/src -> src/ (app at repo root, no rust/ nesting)
- src/<mod>/rust -> crates/oak<mod>; src/oakcore-rs -> crates/oakcore;
src/bindings/oakotio -> crates/oakotio; src/engine/rust ->
crates/oakengine (keeps cdylib+staticlib+rlib)
- public C headers include/<mod>/ -> crates/oakengine/include/<mod>/
- OFX SDK headers vendored into crates/oakplugin/ofx/ (HostSupport gone)
- legacy deleted: old src/ C++ modules, engine/, core/, ffmpeg_bridge/,
app/ (Qt), cli/worker C++, root CMakeLists, third_party/KDDockWidgets
submodule, otio-install, all build-* output (~40GB)
- oakstorage kept but excluded from the workspace (skeleton w/ todos);
gpui excluded (own workspace)
- verified: cargo build green, cargo test --workspace 1845/0
(with the documented OCIO_RS_* env override for the homebrew OCIO)
2026-08-10 20:24:25 +08:00
Mike-Solar
0c02ff0d77
proxy: isolate proxies from export renders and improve proxy workflow
...
- FootageJob::should_use_proxy() centralizes the proxy decision; worker
pre-decode now honors the render mode so exports always decode the
original media (previously every frame was pre-decoded from proxies)
- global Tools > Use Proxy Media toggle with footage invalidation
- ffmpeg -progress parsing for real percentage feedback while generating
- divider mode (1/2, 1/4, 1/8 of source resolution) with UI, proxy
filename tags and per-footage persistence (pdivider)
- Media Offline warning slat rendered for missing footage
- regression tests: export isolation, relink invalidation, offline slat,
progress parsing, divider arguments
2026-07-19 21:43:58 +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
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
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
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
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
1575b82fd2
core: add debugging "magic" function
...
Just a UI way of turning on debug functionality
2022-11-05 11:56:39 -07:00
itsmattkc
4b366a9b73
update copyright year to 2022
2022-05-10 10:38:56 -07:00
itsmattkc
7ceb5c0914
timeline: implement track select tool
...
Fixes #866
2022-04-11 19:49:50 -07:00
itsmattkc
88b7151c17
restored project properties dialog
2022-01-12 13:15:52 -08:00
itsmattkc
420042bb57
project: added revert function
...
This can be triggered either with File > Revert or by re-opening an already open project
Fixes #1710
2021-08-09 11:37:45 -07:00
itsmattkc
72d71ddf8c
mainmenu: added remaining tools
2021-08-09 11:28:01 -07:00
itsmattkc
4510f6d36a
timeline: add move in/out to playhead
...
Fixes #1691
2021-08-02 07:50:36 -07:00
itsmattkc
930d8309d3
timeline: implemented nudging #1692
2021-07-30 19:17:26 -07:00
itsmattkc
407cb5fcc7
menu: clear cache item
...
Fixes #1305
2021-07-16 10:49:36 -07:00
itsmattkc
6ff9ab9f54
menu: added hidden secondary delete option to pick up backspace shortcut
2021-05-23 10:16:39 +10:00
itsmattkc
77d4b18a60
updated copyright year for 2021 [skip ci]
2021-04-17 18:56:50 +10:00
itsmattkc
b21271534f
added UI for editing video parameters in nodes
2021-02-20 13:27:56 +11:00
itsmattkc
75d4cd899b
use hardcoded namespace
...
The macro defined namespaces confused the hell out of lupdate and more or less broke translations permanently. Looks like the only way we can do it is to have a hardcoded namespace, which goes against my instinct, but honestly how likely is it that we'll change the namespace anyway (I guess forks might want to do it, but that's their problem ;) )
2020-11-17 20:24:42 +11:00
itsmattkc
d241090a9f
finally updated the copyright year
2020-11-17 20:13:22 +11:00
itsmattkc
9a1917d160
used different approach for populating open recent menu
...
Fixes #1243
2020-11-16 10:23:23 +11:00
itsmattkc
bc60c74562
finalized very, very basic OTIO support
...
Ironed out various project and footage loading issues, and a single
cache invalidation issue.
2020-10-23 01:26:17 +11:00
itsmattkc
917738d1de
Merge branch 'master' into otio
2020-10-22 20:26:16 +11:00
itsmattkc
5b69137edf
timeruler: add context menu
...
Should have more stuff in it, this is a basic implementation
2020-10-12 00:19:01 +11:00
itsmattkc
bb6d5505f5
otio: began early functionality to export to OTIO
2020-09-25 16:32:18 +10:00
itsmattkc
9b9af17a73
mainmenu: add send feedback option
2020-09-16 14:11:29 +10:00
itsmattkc
a40eaa1ed5
mainmenu: added cache actions
2020-05-15 15:09:08 +10:00
itsmattkc
90597bd08a
mainmenu: fixed bug in window menu
2020-05-02 16:28:06 +10:00
itsmattkc
1474a505ee
mainmenu: removed debug log item
...
This was not implemented and I think there are better ways to acquire this
information.
2020-04-19 17:52:03 +10:00
itsmattkc
2849ae210c
timeline/viewer: reimplemented "play in to out" and "loop"
2020-04-19 17:22:32 +10:00
itsmattkc
93e5e7c0c1
core/mainmenu: implemented save/close all/current actions for multiple projects
...
Expands on UI from multiple project support implemented earlier.
2020-04-19 00:37:44 +10:00
itsmattkc
6df708028f
core: reimplemented "open recent" functionality and opening a project from command line
2020-04-17 02:57:56 +10:00
itsmattkc
42905d1d51
mainmenu/menushared: rewrote convenience functions to use new qt signal/slot syntax
...
Code improvement
2020-04-17 00:20:46 +10:00
itsmattkc
9cc4349054
timebasedwidget: re-implemented toggle show all function
2020-04-15 15:31:54 +10:00
itsmattkc
1aa87cbda6
various: encapsulate all code in the olive namespace to avoid name collisions
...
Large-scale code cleanup. Also adds a license to the top of all files that were
missing it.
2020-04-06 15:29:53 +10:00
itsmattkc
1319d7141f
viewer: re-implemented auto viewer full screen from menubar/keyboard shortcut
2020-04-01 19:22:53 +11:00
itsmattkc
abb4c440fb
core: added signalling for timecode display changes
...
Allows targeted application-wide UI updates for when the user changes the
timecode display so that the response is immediate.
2020-03-18 14:09:31 +11:00
itsmattkc
1c4411a4ad
timebasedwidget/timeruler: reimplemented creating and displaying markers
2020-03-14 23:03:27 +11:00
itsmattkc
9b73892c41
ui: implemented keyboard controls for inserting/overwriting footage into the
...
timeline
Allows users to use the keyboard to place footage into the timeline rather than
forcing them to drag.
2020-03-03 20:03:50 +11:00
itsmattkc
e41fdbd6e3
implemented autoscrolling derivatives of TimelineViewBase around the playhead
2019-12-31 19:17:40 +11:00
itsmattkc
2b24fae26f
implemented vertical "zooming" in the TimelineWidget and CurveView
...
This comes in the form of changing the vertical scale in the CurveView and
adjusting all track heights in the Timeline.
2019-12-31 00:23:28 +11:00
itsmattkc
61c60e00d6
various small code cleanups and improvements
...
Largely refactoring work to make the code somewhat nicer to work with.
2019-12-26 19:00:08 +11:00
itsmattkc
45bfad2b20
setting ocio config specific to project
2019-09-30 05:40:14 +10:00
itsmattkc
d2dc0d2823
work on internal color management
2019-09-28 01:38:15 +10:00
itsmattkc
3f65441dc8
various minor adjustments
2019-09-26 04:25:49 +10:00