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
8311128f4c
engine: node parameter panel migrates to the facade
...
- new facade API: set_input_at_time (element addressing, track=-1 for
all components at once), set_input_string_at_time, frame_time_base,
array_insert_at/remove_at, disconnect_ex (element-aware), and
keyframes_set_type_many (first cross-track keyframe op, addressed by
(time,track) pairs)
- the widget bridge's commit funnel, color path, array ops, label
disconnect, and keyframe set-type actions in keyframeview/curvewidget
now go through the facade; keyframeviewundo.h loses two consumers
- deliberate leftovers with rationale: keyframecontrol's multi-track
composite ops (documented track-0-only limitation of the keyframe
family), keyframeproperties dialog (needs a set_time primitive),
curveview's drag UX, and NodeInputDragger (already engine-side)
2026-07-20 14:42:00 +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
e5eeaddf2f
format: reformatting files
2026-07-13 15:30:43 +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
e1938a14e0
Finish TODO 6 and 7
2026-01-04 23:16:10 +08:00
Mike-Solar
1b29bd147e
Add missing param instance types (String, Double3D/Integer3D, Group/Page, Custom/Bytes) and mapping to node inputs. app/pluginSupport/OlivePluginInstance.cpp, app/node/plugins/Plugin.cpp
2026-01-04 22:53:26 +08:00
Mike-Solar
f191486375
Implement multi-input OFX clip wiring and texture handling
...
Store PluginJob input values for lookup
Add per-clip texture inputs on plugin nodes
Map input clips to textures during render (with Source fallback)
2026-01-04 22:30:41 +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
e2c04f2e7c
nodeparamview: handle array size changes in keyframe view
...
Fixes #2097
2023-02-21 22:17:41 -08:00
itsmattkc
e859ba51f0
nodeparamviewitem: fix regression crash on array append command
2023-02-21 21:08:35 -08:00
itsmattkc
11e4e051c3
move undo files around for better organization
2023-02-20 16:09:22 -08:00
itsmattkc
b8ee27e1cb
node: removed dumb undoable param
2023-02-19 11:36:46 -08:00
itsmattkc
9745b536f6
nodes: remove graph and merge into project
2023-02-17 14:13:03 -08:00
itsmattkc
d1545745d8
various: moved time from viewer UI to viewer node
2022-10-23 20:56:04 -07:00
itsmattkc
b28495c7a6
nodeparamview: speed up node adding
2022-09-28 19:56:18 -07:00
itsmattkc
4c71a33b7b
node: implement array start offset
2022-07-17 14:48:00 -07:00
itsmattkc
8455e94de3
nodeparamview: fix crash when body is recreated
2022-05-28 19:20:33 -07:00
itsmattkc
d600d3acb8
nodeparamview: fix null receiver warning
2022-05-23 11:35:56 -07:00
itsmattkc
22bd9f4eec
nodeparamviewitem: fix max column
...
Fixes #1922
2022-05-12 13:29:54 -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
f910117a58
blur: implement radial and directional blur methods
2022-05-08 16:53:04 -07:00
itsmattkc
001834cbfa
node: implemented bypassing
2022-04-26 15:07:01 -07:00
itsmattkc
1448f641e5
nodeparamview: remove item when nodes is removed from context
2022-04-09 15:36:49 -07:00
itsmattkc
cbd7c99219
nodeparamview: span columns where possible
2022-03-27 17:23:27 -07:00
itsmattkc
6aa493bd67
reworked param view passthroughs for groups
2022-01-22 18:17:51 -08:00
itsmattkc
ce0bdee295
paramview: always connect signals to real node rather than group
2022-01-21 10:06:43 -08:00
itsmattkc
090fbb09d0
contexts in param view
2021-12-08 14:08:12 -08:00
itsmattkc
c04b689215
paramview: preliminary group support
2021-12-02 08:56:36 -08:00
itsmattkc
495b07fc55
implemented node groups
2021-11-24 17:58:48 -08:00
itsmattkc
5f859895a8
nodeparamview: improved performance
2021-09-30 00:20:07 -07:00
itsmattkc
8796cce8c6
nodeparamview: improved node value tree size policy
2021-09-22 18:55:56 -07:00
itsmattkc
67c7c71ca2
implemented "value hints" for choosing output values to use
2021-09-17 20:56:53 -07:00
itsmattkc
b07bccb7dc
nodes: revert to single output
2021-09-07 22:01:36 -07:00
itsmattkc
3593d70f34
speedduration: more or less done now
2021-08-01 14:18:22 -07:00
itsmattkc
e3e5f836b2
nodeparamview: use hidden body to preserve width instead of size policy
...
Fixes various layout issues in NodeParamView.
2021-05-28 17:55:07 +10:00
itsmattkc
77d4b18a60
updated copyright year for 2021 [skip ci]
2021-04-17 18:56:50 +10:00
ThomasWilshaw
da275efdf2
Merge branch 'master' into rational_slider
2021-04-14 12:08:58 +01:00
Simran
fca485bd69
Fix plural handling for translations ( #1424 )
...
* .arg() doesn't handle plurals, replace %1 with %n and pass number to tr(), but only if there is an accompanying word for that we want singular/plural translations and only for whole numbers.
* Qt's translation methods only accept integers and we don't know what grammatical number form would be correct for floating-point numbers in different languages anyway.
* Add optional 2nd argument to SliderBase::SetFormat() to activate deferred plural handling:
SetFormat(QT_TRANSLATE_N_NOOP("olive::SliderBase", "%n unit(s)"), true)
* Generate en_US.ts with lupdate's -pluralonly option. Only source strings that require plural handling need to be translated (as long as the source language is American English).
2021-04-13 00:58:46 +02:00
ThomasWilshaw
ecce4d1ae2
Merge branch 'master' into rational_slider
2021-04-12 10:42:26 +01:00
itsmattkc
893adc3d72
implemented value node
...
Also implements changes necessary to support an input data type
that changes. Much of that foundation was built in
`nodearchchanges`, but hadn't been finalized. This commit
finalizes and provides a reference implementation/test with the
"Value" node.
Fixes #1443
2021-04-12 16:37:26 +10:00
itsmattkc
8c18b58bbb
nodeparamview: pick up move event
...
Fixes #1547
2021-04-11 19:58:37 +10:00
Thomas Wilshaw
f9b423f731
Link RationalSlider timebase with nodeparamview
2021-04-08 11:26:36 +01: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
c444213a85
nodeparamview: null check for input UI
...
Fixes #1523
2021-03-23 08:38:18 +11:00