Mike-Solar
0fe37dba3c
engine: timeline panel batch/composite commands migrate to the facade (part 2)
...
- new primitives: ripple_delete_in_to_out (ripple or gap fill plus
work-area state, one undo command), trim_clips_to (batch edge trim
returning a count), delete_empty_tracks (type-filtered batch), and
marker_remove_many (sparse marker deletion by timestamp array)
- delete-in-to-out, edit-to, delete-all-empty-tracks, and sequence
viewer marker deletion now go through the facade; empty operations
no longer push empty undo entries
- footage viewer marker deletion keeps its app path deliberately
(facade marker handles are Sequences, not generic viewers); the
tentative subtitle track and pointer drag chain stay as documented
leftovers
2026-07-20 13:37:10 +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
004e942cf9
fix: remaining issues recorded during test coverage work
...
- RenderManager: GPU-side members (context_, decoder_cache_,
shader_cache_, auto_cacher_, worker_pool_, decoder_clear_timer_) were
left uninitialized when the configured graphics backend is unknown
(e.g. dummy); ViewerWidget then dereferenced garbage and crashed.
Initialize them at declaration
- CurveView::SelectKeyframesOfInput ignored its reference parameter and
selected keyframes of every connected track; select only the
requested track's keyframes
- SeekableWidget::SeekToScenePoint dereferenced GetViewerNode()
unconditionally; skip the playhead update when no viewer is connected
- LoadOTIOTask: unknown root schema leaked the freshly allocated
project_ (delete + reset; OTIO is not enabled in local builds so this
file is compile-verified by inspection only)
Locked by new tests: RenderManagerDummyBackend,
TimeRuler.SeekToScenePointWithoutViewerIsNoOp,
CurveViewTest.SelectKeyframesOfInputSelectsOnlyRequestedTrack
2026-07-17 17:20:50 +08:00
Mike-Solar
b4db6ebc88
fix: define TimeRuler::SetCenteredText (declared but never defined)
...
Any caller would hit a link error; there were none, so the bug was
latent until the new widget tests called it.
2026-07-17 15:48:03 +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
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
3e47da7009
timebasedviewselectionmanager: scale/unscale when dragging too
2023-03-11 13:49:41 -08:00
itsmattkc
9824760ce1
Merge branch 'master' into move-serialization
2023-02-28 20:40:40 -08:00
itsmattkc
9ff6e689d6
vastly improved rubberband selection behavior with selection manager widgets
2023-02-28 20:21:38 -08:00
itsmattkc
7ec8a4dd7e
serializer: ensure backwards compatibility
2023-02-26 15:42:54 -08:00
itsmattkc
11e4e051c3
move undo files around for better organization
2023-02-20 16:09:22 -08: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
d164a9a59a
seekable: prioritize dragging playhead over workarea
2022-11-18 10:50:07 -08:00
itsmattkc
eae02ac28b
prioritize dragging markers over workarea
2022-11-18 10:35:51 -08:00
itsmattkc
b33260dce8
timebased: only snap to workarea if enabled
...
Fixes #2106
2022-11-18 10:30:18 -08:00
itsmattkc
2d3ce55fd7
timebasedview: fix playhead dragging regression
2022-11-16 13:14:37 -08:00
itsmattkc
451de7030b
Merge branch 'move-time-to-viewer'
2022-11-01 18:20:22 -07:00
itsmattkc
d52d5b13b2
seekablewidget: allow rubberband select while holding ctrl
...
Fixes #2061
2022-11-01 12:48:48 -07:00
itsmattkc
bdbfb56879
shift timelineview scroll code into base classes
...
Fixes #2060
2022-10-24 12:01:47 -07:00
itsmattkc
d1545745d8
various: moved time from viewer UI to viewer node
2022-10-23 20:56:04 -07:00
itsmattkc
bc9f8c2e3b
Merge branch 'master' into cache-update
2022-08-27 10:54:20 -07:00
itsmattkc
af6cb35cde
timeline: use better system of identifying ruler focus
2022-08-27 09:26:07 -07:00
itsmattkc
54d0a94a20
Merge branch 'master' into cache-update
2022-08-18 08:12:46 -07:00
itsmattkc
32a1d31bc0
seekablewidget: add hand move events
2022-07-27 12:44:50 -07:00
itsmattkc
0e6ebee827
exportdialog/timeruler: disable marker and workarea editing
...
Fixes #1979
2022-07-23 09:59:18 -07:00
itsmattkc
46be693b3e
timeline: show marker text even on markers without range
2022-07-19 11:21:06 -07:00
itsmattkc
24ae3a25d3
timeline: use scroll cooldown when dragging playhead
2022-07-16 17:12:35 -07:00
itsmattkc
7e1792cfea
Merge branch 'master' into cache-update
2022-07-01 22:32:49 -05:00
itsmattkc
079d6beff2
timeline: separate markers and workarea
2022-06-27 23:39:31 -07:00
itsmattkc
0fc6ab149f
timeruler: fixed scroll regression
...
Fixes #1960
2022-06-21 10:26:19 -07:00
itsmattkc
52db848918
ui: draw in/out semi translucent
...
Fixes #1957
2022-06-20 10:26:16 -07:00
itsmattkc
25699ef05b
cache: use disk states to share caches
2022-06-05 19:47:33 -07:00
itsmattkc
7a8794fe88
ui: draw clip cache on timeline
2022-06-03 17:16:29 -07:00
itsmattkc
e0bb31b199
remove shifts, operations, and make caches node-agnostic
2022-05-16 19:53:38 -07:00
itsmattkc
bfd6a407a5
Merge branch 'master' into hashremoval
2022-05-16 09:12:49 -07:00
itsmattkc
18d10f6c8d
widgets: unset cursor rather than setting arrow
2022-05-12 13:39:59 -07:00
itsmattkc
78d5314c0a
seekablewidget: don't allow deleting if dragging
...
Fixes potential crash if a user does this
2022-05-11 13:44:59 -07:00
itsmattkc
7c12b6dc16
updates for C++17
2022-05-11 10:50:47 -07:00
itsmattkc
182e1599af
keyframes: implemented copying/pasting
2022-05-10 15:42:09 -07:00
itsmattkc
4b366a9b73
update copyright year to 2022
2022-05-10 10:38:56 -07:00
itsmattkc
4bc82ca6df
removed hashes from previewautocacher
2022-05-09 19:40:58 -07:00
itsmattkc
0f99d8a662
timeruler: add ability to resize markers and workarea
2022-05-09 17:53:21 -07:00
itsmattkc
6e4cb02ac2
seekablewidget: reimplement 0 limit on seek
2022-05-02 16:07:35 -07:00
itsmattkc
e6d4fe43de
reworked and vastly improved snapping subsystem
2022-05-02 00:01:49 -07:00