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
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
6aaf37e2e5
proxy: per-footage presets, audio in proxies, configurable ffmpeg path
...
- Footage can store custom proxy parameters (width/height/crf/preset/
extension/audio) that override the global settings; they are
serialized with the project and used by every generation entry point
via Footage::GetEffectiveProxyParams()
- Proxies now include the source audio streams (AAC) unless disabled;
the proxy filename records the audio flag and offline audio rendering
decodes from the proxy when present
- ProxyTask resolves ffmpeg from the new FFmpegPath config key first,
then PATH, then common install locations (e.g. Homebrew on macOS),
instead of relying on PATH only; the error message points at the
preferences when no executable is found
- ProxyTask::BuildArguments() is extracted for testability
- Add ProxyIncludeAudio and FFmpegPath config defaults
- Add regression tests for the filename audio marker, config-backed
params, ffmpeg resolution, argument building, and custom-param
persistence
2026-07-16 22:31:37 +08:00
Mike-Solar
e5eeaddf2f
format: reformatting files
2026-07-13 15:30:43 +08:00
Mike-Solar
43599dba9e
Add batch proxy menu to Project Explorer and persist Use Proxy state
...
The Project Explorer previously only had an old Pre-Cache submenu that
required choosing a sequence. Replace it with the same Proxy menu that
the timeline uses:
- Generate Proxy: batch-generates proxies for all selected footage items
that have an enabled video stream, using ProxyManager and the current
proxy settings.
- Use Proxy: checkable toggle that enables/disables proxy playback for the
selected footage.
- Reveal Proxy / Delete Proxy: consistent with the timeline context menu.
Also make Footage::SaveCustom() write the <proxy> element whenever
proxy_enabled_ is true, even if proxy_path_ is empty, and load it back
in LoadCustom(). This preserves the user's Use Proxy preference across
project saves so it is restored on the next open.
Translation files updated with lupdate; zh_CN and zh_TW translations for
the new Project Explorer strings (and the matching timeline strings) are
filled in.
2026-07-13 10:19:30 +08:00
Mike-Solar
bfb1b2fce4
update copyright back
2026-01-16 21:22:05 +08:00
Mike-Solar
6b64abb1fa
Limit import files
2026-01-05 16:36:43 +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
ec2ff82229
node: merge tooltip into data function
2023-02-27 18:12:28 -08:00
itsmattkc
11e4e051c3
move undo files around for better organization
2023-02-20 16:09:22 -08:00
itsmattkc
2c4347e9a6
node: merge various metadata functions into one
2023-02-19 21:16:05 -08:00
itsmattkc
9745b536f6
nodes: remove graph and merge into project
2023-02-17 14:13:03 -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
d1a7bd29aa
mainwindow: improved panel organization
2023-02-08 18:18:06 -08:00
itsmattkc
61d2215b07
projectexplorer: if label = filename, rename on replace
...
Fixes #2098
2022-11-18 10:55:11 -08:00
itsmattkc
4d80044d6d
upgrade to qt 6 compliance
2022-10-28 19:42:14 -07:00
itsmattkc
cce44e40f4
project: implement searching
...
I can't believe this has been unimplemented this whole time...
2022-09-14 13:40:35 -07:00
itsmattkc
a2b400a1dc
projectexplorer: add delete context menu entry
...
Fixes #2004
2022-08-10 09:51:02 -07:00
itsmattkc
15a67bc12a
project: auto-select imported files
2022-07-26 11:39:35 -07:00
itsmattkc
f2e604c2cb
ui: add rename shortcut
2022-07-22 13:25:46 -07:00
itsmattkc
98a71a47c8
projectexplorer: fixed UI issues around renaming items
2022-07-16 16:54:32 -07:00
itsmattkc
75bc2c2e67
projectexplorer: implement replace footage function
2022-06-21 10:42:05 -07:00
itsmattkc
4b366a9b73
update copyright year to 2022
2022-05-10 10:38:56 -07:00
itsmattkc
82bd6a103c
timeline: implement reveal in project action
2022-05-03 14:23:41 -07:00
itsmattkc
1644b9e4c1
remove dodgy node properties dialog
2021-12-15 13:45:51 -08:00
itsmattkc
f184e5cd31
projectexplorer: improved rename functionality
2021-09-21 11:57:26 -07:00
itsmattkc
c004aa0175
project: implemented modified and created date columns
2021-07-27 16:48:39 -07:00
itsmattkc
cdc8df1dc5
added node properties dialog
...
Incomplete, but probably useful
2021-07-23 18:22:02 -07:00
itsmattkc
edd52dd811
projectpanel: select nodes when items are selected in the project explorer
2021-05-26 14:22:10 +10:00
itsmattkc
09dc79f9f6
project: remove array element when deleting a folder's subitem
...
Fixes #1639
2021-05-23 10:38:30 +10:00
itsmattkc
77d4b18a60
updated copyright year for 2021 [skip ci]
2021-04-17 18:56:50 +10:00
itsmattkc
c03c197412
added ability to open viewers on any viewer node or derivative
...
Fixes #1362
Also fixes some other bugs that impeded this from working.
2021-04-12 22:58:34 +10:00
itsmattkc
a87adbd801
fixed precache task
...
Fixes #1558
2021-04-11 18:57:21 +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
898ea25e89
finished merge of viewer and footage
2021-04-06 13:08:56 +10:00
itsmattkc
62ff7bed69
correctly map root folder to source model
2021-03-31 11:55:00 +11:00
itsmattkc
e44918c70a
delete exclusive dependencies when deleting items from project explorer
2021-03-16 12:59:58 +11:00
itsmattkc
fd6319b837
fixed regression from switching folder from outputs to inputs
2021-03-14 21:51:47 +11:00
itsmattkc
500fb58d49
arranged items so they are inputs of folder rather than outputs
2021-03-12 12:22:19 +11:00
itsmattkc
b21271534f
added UI for editing video parameters in nodes
2021-02-20 13:27:56 +11:00
itsmattkc
4827782331
moved sequence params into node graph too
...
Reduces code by reusing more of the existing node infrastructure
to synchronize sequence parameters the render backend.
2021-02-18 13:20:23 +11:00
itsmattkc
d7c5ac4b44
implement entire project in nodes
...
Project items are now represented directly in nodes opening up more versatility and possibilities. This is the first iteration of this and will be buggy. Need to test thoroughly.
2021-02-15 21:31:57 +11:00
itsmattkc
155470bec1
implemented sorting in project explorer
...
Wow I can't believe I forgot about the QSortFilterProxyModel
for like 1.5 years straight.
2021-02-11 23:23:13 +11:00
itsmattkc
ad4b83a098
new undo system
...
Also enables undoing when working with node input arrays
2021-01-29 16:10:34 +11:00
itsmattkc
f7883bd02c
began some rewrites to timeline drawing
2021-01-14 10:30:20 +11:00
itsmattkc
fbdda3d6d4
various code cleanups
2021-01-13 12:05:05 +11:00