Commit Graph
92 Commits
Author SHA1 Message Date
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
itsmattkc 81c1922911 use strings to connect nodes
This makes the node system somewhat more high-level with the intent of making
working with them far more flexible and stable. By making the architecture more
abstracted, it becomes far less rigid which should allow us to do even more
with it and make it much less crash prone.
2021-02-09 15:48:37 +11:00