Mike-Solar
66d761b4b7
R8: finish app/ pure C ABI migration (P3-P9) and make OTIO required
...
- app/ no longer includes engine C++ headers nor holds engine C++ types:
engine access goes through the oakengine C ABI plus C++ wrappers
(oakutil/oaknode.h, oakutil/oakvideo.h) and app-local mirror types
(tooltypes, trackreferencehandle, timelinecommonapp, keyframetypes,
subtitleapp, serializedlayoutinfoapp, nodevaluehandle, sliderdisplaytypeapp)
- engine: new C ABI functions for block/track/clip/transition navigation
and predicates, links, caches, waveform/playback, disk folder,
sequence_track_list, node_free, footage_is_valid, block_get_track,
get_brush; loadotio/saveotio ported to the current engine API
- OTIO is now a required dependency: CI and CD build it on every
platform, FindOpenTimelineIO fixed for OTIO 0.16/0.19 (the old deps
include requirement silently disabled OTIO everywhere), runtime
libraries are bundled into packages and copied next to macOS binaries
(oak_copy_otio_runtime)
- fix ProjectViewModel drag&drop mime read/write size mismatch (segfault)
- unify color label naming (k_olive -> "Oak") in the app-side mirror
- docs: OTIO required, FFmpeg minimum corrected to 6.0 (en/zh)
- gtest suite: 1925 passed, 0 failed
2026-07-31 22:46:52 +08:00
Mike-Solar
c0dcd33de0
R8 phase 1: extract app/engine shared utilities into shared/include/oakutil
...
Move the pure-header utilities shared by app/ and engine/ out of
engine/common/ into a new shared/include/oakutil/ layer (define, lerp,
decibel, digit, range, crashpadutils, autoscroll, qtutils, filefunctions
declarations, and a trimmed xmlutils exposing a CancelAtom-free void*
overload). engine/common/ keeps forwarding headers so internal include
paths are unchanged; app/ now includes oakutil/* directly.
engine/node/project.h gains an explicit NodeGroup forward declaration
previously obtained transitively through the old xmlutils.h.
2026-07-27 17:14:56 +08:00
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
03d4087124
refactor: cut engine-to-UI include violations ahead of the liboakengine split
...
- slider DisplayType enums sink to node/sliderdisplaytype.h (canonical
engine home); FloatSlider/RationalSlider alias them for compatibility
- DropWithoutSequenceBehavior enum sinks to common/dropworkflowbehavior.h
- Config errors now go through a registered ErrorHandler hook instead of
QMessageBox with a MainWindow parent; the style default no longer
depends on the UI style manager
- MainWindowLayoutInfo moves to node/project/serializer/ and its panel
dependency is reduced to a plain std::map alias (PanelLayoutInfo),
breaking the engine -> PanelWidget -> KDDockWidgets chain
- ProjectImportErrorDialog moves from task/ to dialog/projectimport/
- remove confirmed-redundant UI includes and give project.h/import.h/
project.cpp the direct includes they were borrowing transitively
- project.h includes folder/sequence headers directly (it used both
types in its own API all along)
2026-07-20 00:52:12 +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
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
70690c5b54
sliderladder: detect if wrap didn't work
...
Wayland doesn't let us control the cursor so this code would break
2023-05-29 18:09:24 -07:00
itsmattkc
b7c0da3132
fix slider ladder on wayland
2023-05-29 12:30:27 -07:00
itsmattkc
c1c6893713
various: moved more to core lib
2023-01-19 16:01:31 -08:00
itsmattkc
dd9c52ab59
start moving core frameworks to external libraries
2023-01-19 09:51:47 -08:00
itsmattkc
49ad3a1e34
timecode: fix issue converting seconds to timecode and vice versa
...
Fixes #2091
2022-11-05 13:45:21 -07:00
itsmattkc
4d80044d6d
upgrade to qt 6 compliance
2022-10-28 19:42:14 -07:00
itsmattkc
a8305dadb3
slider: only use one screen for wrapping
2022-07-27 11:47:10 -07:00
itsmattkc
13a0da537f
numericsliderbase: make connections before showing
...
Fixes #1962
2022-07-08 03:20:12 -07:00
itsmattkc
393f0105dc
slider: queue drag timer start
2022-06-06 09:40:07 -07:00
itsmattkc
e6bbe08ba5
slider: return cursor if wrapped
2022-05-10 17:19:59 -07:00
itsmattkc
4b366a9b73
update copyright year to 2022
2022-05-10 10:38:56 -07:00
itsmattkc
63ac71b84c
numericsliderbase: fixed bug where multiplier was applied twice
2022-05-07 12:34:05 -07:00
itsmattkc
6286b7091c
sliders: implement color coding for clarity
2022-05-05 17:29:40 -07:00
itsmattkc
91b761693b
code: use config macro
...
Macro is much easier to use and more readable
2022-05-04 09:50:34 -07:00
itsmattkc
16580841a6
Squashed commit of the following:
...
commit 8619bb044081da81b4eef238d138bd051e678a4c
Merge: 1a767e0c2 1c30c4d36
Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com >
Date: Sun Mar 27 23:59:10 2022 -0700
Merge branch 'master' into gizmo-rework
commit 1a767e0c2279cac3baf96a9028c1b78ec0491e00
Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com >
Date: Sun Mar 27 17:23:07 2022 -0700
implement custom html parser/exporter
commit bbd9361d345ce864d198f4340b3d59f526e642e5
Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com >
Date: Wed Mar 9 22:27:17 2022 -0800
textgizmo: further improved behavior
commit 27634d5d377f03cab009bca418765d73764893f2
Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com >
Date: Wed Mar 9 22:26:19 2022 -0800
textgizmo: improved double click behavior
commit 0897ebfa36e676461c7a47305a3c1bf66e7a9fd1
Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com >
Date: Wed Mar 9 10:20:57 2022 -0800
text: added more features and improvements
commit 9d6446a25d977ea0c66e5f5c69239aed0e92fe83
Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com >
Date: Wed Mar 9 10:14:59 2022 -0800
text: don't create color input
commit d1d3b9d46e74d8197ba3485a8e965068eb245166
Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com >
Date: Wed Mar 9 09:10:23 2022 -0800
text: convert to reference space
commit 3ba1565129a0bdd74b860b1869fec5ef30025abb
Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com >
Date: Mon Mar 7 17:57:26 2022 -0800
finally got scaling to work
holy shit I never thought it'd be this easy
commit 081368cfac9b49a171db6c1d576e134903dffac0
Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com >
Date: Mon Mar 7 11:25:58 2022 -0800
improved text behavior
commit f3eda52eee29b7cd354d7d90b3ae1a819e1b1cf2
Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com >
Date: Mon Mar 7 11:08:31 2022 -0800
implemented font styles (weights and italics)
commit 0898b613ec9b473ac93996536d00541e0a2a3f74
Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com >
Date: Mon Mar 7 01:26:13 2022 -0800
implemented beginnings of text gizmo
commit bffb8ede2d425e7391d16bc03e613d4d90367add
Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com >
Date: Sun Mar 6 17:55:03 2022 -0800
conformed transform node to new gizmos
commit 1a1f86fa9bec9ea6b67f77032748c04b6b4c95fd
Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com >
Date: Sat Mar 5 11:16:34 2022 -0800
update polygon node
commit 2388dd69164e8c57e0a1d221c7680a0d39173c2c
Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com >
Date: Fri Mar 4 15:31:39 2022 -0800
implement glsl hack for corner pin
commit e96df6cb326fb278cc6555890ff0ac1d37ebf4bf
Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com >
Date: Thu Mar 3 17:06:14 2022 -0800
updated corner pin
commit c70aa0e72d4e83045c84259294608c1380e8929b
Merge: 5afed6383 780342881
Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com >
Date: Thu Mar 3 17:04:40 2022 -0800
Merge branch 'master' into gizmo-rework
commit 5afed6383952d7d936b5eeda2556339c854610af
Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com >
Date: Thu Mar 3 16:55:57 2022 -0800
use float points for more precise math
commit 159ade0d2812d556dee57f99e3f733ef1e838d01
Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com >
Date: Thu Mar 3 16:55:40 2022 -0800
ported shape node
commit 28f9500d7bc6cd2661ee9ea591db7b3f8d583196
Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com >
Date: Thu Mar 3 15:50:19 2022 -0800
implemented enough dragging code to reimplement crop
Requires far less boiler-plate code per node
commit 5aeaa59227ad2f1dc3c7f499c636de843a262a88
Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com >
Date: Wed Mar 2 19:45:04 2022 -0800
update just merged corner pin for new gizmos
commit 8a2d041650d1b873c6d87664564ebcdf92a3760f
Merge: c916e8e08 f5b4729a1
Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com >
Date: Wed Mar 2 19:38:36 2022 -0800
Merge branch 'master' into gizmo-rework
commit c916e8e08016c1d0b72d85087db76e4137587d52
Author: itsmattkc <34096995+itsmattkc@users.noreply.github.com >
Date: Wed Mar 2 19:35:09 2022 -0800
gizmos: rewrote drawing into standard routines
Work towards a far more maintainable gizmo system
2022-03-28 00:01:48 -07:00
itsmattkc
217973e069
Slider: add label substitution for certain values
...
Allows "Threads" option in advanced export setting to show "Auto" when set to 0
2022-02-01 15:36:26 -08:00
itsmattkc
8dbcbea891
sliderladder: don't switch rungs if wrapped around screen
2022-01-06 09:42:29 -08:00
itsmattkc
c87fd45a9f
ladder: implement screen wrapping
2022-01-03 12:55:57 -08:00
itsmattkc
619de01db4
refined curve view
2021-12-17 17:07:59 -08:00
itsmattkc
fbc5997d32
removed reliance on Qt multimedia
2021-10-01 16:12:12 -07:00
itsmattkc
401f8d394c
shapenode: added gizmos
2021-09-22 01:45:05 -07:00
itsmattkc
6da4464f05
moved effects slider drag bool to static and outside core
2021-07-19 19:25:45 -07:00
itsmattkc
593a3b025a
Merge branch 'master' into nodeview-redux
2021-07-16 20:09:33 -07:00
itsmattkc
8350ce300f
cache: improved invalidation system
2021-07-15 20:59:37 -07:00
luzpaz
01536f9865
Fix various typos in code comments ( #1670 ) [skip ci]
...
Found via `codespell -q 3 -S *.ts,*.xml -L ba,keypair,numer,uint`
2021-07-13 13:54:30 +02:00
itsmattkc
029b826f90
slider: change ctrl and shift modifiers
...
Ctrl now does * 0.01 and shift does * 100.
2021-05-08 09:39:21 +10:00
itsmattkc
dedc189ebf
sliders: make certain set functions slots
2021-05-05 18:58:51 +10:00
itsmattkc
77d4b18a60
updated copyright year for 2021 [skip ci]
2021-04-17 18:56:50 +10:00
itsmattkc
9328539373
slider: reworked sliderbase and derivatives
...
Mostly cleaning up code, SliderBase was fairly messy.
2021-04-17 12:49:21 +10:00
Thomas Wilshaw
579a409078
Properly remove a/b display type
2021-04-14 13:24:18 +01:00
Thomas Wilshaw
139adbdb31
Cleanup for merge.
2021-04-14 12:48:44 +01:00
ThomasWilshaw
da275efdf2
Merge branch 'master' into rational_slider
2021-04-14 12:08:58 +01:00
itsmattkc
51064f44f5
slider: use cursor-less drag when no multipliers are active
2021-04-13 23:47:58 +10: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
Thomas Wilshaw
2820f45bca
Fix shadowed variable
2021-04-12 10:57:57 +01:00
Thomas Wilshaw
48f841db9c
Remove unused signals and slots
2021-04-12 10:40:49 +01:00
Thomas Wilshaw
6a4f292ae2
Use customContextMenu for changing the display type
2021-04-12 10:35:44 +01:00
Thomas Wilshaw
a297dd0e53
Add width hint to slider ladder for custom display widths
2021-04-12 10:23:56 +01:00
Thomas Wilshaw
cb0cfebf40
Fix clamping bug,
2021-04-09 11:57:49 +01:00
Thomas Wilshaw
4d8233e7ac
Add display type context menu to RationalSlider
2021-04-09 10:52:07 +01:00