Commit Graph
139 Commits
Author SHA1 Message Date
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 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 dd7427f51a fix: bugs surfaced by new gtest coverage
- html.cpp: rgba() colors parsed with setRedF/GreenF/BlueF (0-1) while the
  writer emits 0-255 integers, so semi-transparent text colors lost their
  RGB on round-trip; parse with integer setters instead
- CLIProgressDialog: percentage padding compared normalized progress
  (0.0-1.0) against 10/100, so padding was always fully applied; compute
  the percentage first
- TimelineUndoPointer BlockTrimCommand: remove_block_from_graph_ was
  never initialized (UB on redo)
- TimelineUndoGeneral TransitionRemoveCommand: track_ was never
  initialized; GetRelevantProject() could dereference it before redo()
- ProjectLoadTask::Run(): failure path deleted project_ without
  resetting it, leaving GetLoadedProject() dangling
2026-07-17 13:07:43 +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 b091ed8592 project: remove constant root node 2023-02-28 17:01:46 -08:00
itsmattkc 7ec8a4dd7e serializer: ensure backwards compatibility 2023-02-26 15:42:54 -08:00
itsmattkc 46d15396a6 Merge branch 'track-redux' into move-serialization 2023-02-23 11:09:45 -08:00
itsmattkc 92af3b5aec loadotio: corrected includes 2023-02-21 16:09:58 -08:00
itsmattkc 12aa67b4f7 otio: fix compilation 2023-02-21 15:36:08 -08:00
itsmattkc 028651f9fb moved serialization 2023-02-21 14:26:34 -08:00
itsmattkc 11e4e051c3 move undo files around for better organization 2023-02-20 16:09:22 -08:00
itsmattkc c5da1339b9 importtask: removed unnecessary line 2023-02-19 21:31:06 -08:00
itsmattkc 9745b536f6 nodes: remove graph and merge into project 2023-02-17 14:13:03 -08:00
itsmattkc f234deb9ee core: allow saving uncompressed xml projects too 2022-12-04 22:35:58 -08:00
itsmattkc 5bcb426488 ffmpeg: ensure duration detection responds to cancel action 2022-11-19 17:36:16 -08:00
itsmattkc 4d80044d6d upgrade to qt 6 compliance 2022-10-28 19:42:14 -07:00
Thomas Wilshaw c43d4b7a12 otioload: Improve error reporting 2022-10-21 17:48:47 +01:00
itsmattkc 4b366a9b73 update copyright year to 2022 2022-05-10 10:38:56 -07:00
itsmattkc 158c1fecb6 import: fixed crash when importing folders 2022-05-10 09:08:49 -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 9101f5dc49 implemented core audio recording support 2022-05-02 14:00:03 -07:00
itsmattkc f7396de121 markers: reimplemented copy/paste 2022-05-01 22:33:58 -07:00
itsmattkc fb53931f68 implement "type" for xml node data 2022-04-25 13:16:27 -07:00
itsmattkc 576ea8e81f refactored copy/paste code for new serializers
Vastly improves code quality and reusability
2022-01-12 16:34:40 -08:00
itsmattkc 4ecce20c35 start implementing serializers 2022-01-12 08:48:31 -08:00
itsmattkc 8373a7ea96 loadotio: minor UI tweaks 2022-01-08 11:57:30 -08:00
itsmattkc 9264a2f856 Merge pull request #1330 from ThomasWilshaw/OTIO_load
OTIO load
2022-01-07 19:35:38 -08:00
Thomas Wilshaw da00d94b60 Fix string creation 2022-01-07 01:24:29 +00:00
Thomas Wilshaw 764c7bb088 Add tr to string and fix variable name 2022-01-07 01:20:38 +00:00
Thomas Wilshaw 5624b03e65 Merge branch 'OTIO_load' of https://github.com/ThomasWilshaw/olive into OTIO_load 2022-01-07 00:03:34 +00:00
Thomas Wilshaw 836903cbe9 Fix PR comments 2022-01-07 00:02:46 +00:00
itsmattkc 3960f54e9c code: moved project version related variables to project class 2022-01-06 12:50:40 -08:00
ThomasWilshaw b865bfa963 Merge branch 'master' into OTIO_load 2022-01-06 13:56:08 +00:00
itsmattkc 38372791f6 Merge pull request #1806 from ThomasWilshaw/otio_save_track_length
saveotio: Make sure all tracks are the same length
2022-01-03 13:16:05 -08:00
itsmattkc 9d5ec1e60f Merge branch 'node-view-show-ctx' 2022-01-02 12:15:55 -08:00
Thomas Wilshaw b6e6b89461 saveotio: Make sure all tracks are the same length 2021-12-19 16:38:29 +00:00
itsmattkc ab42396c26 Merge pull request #1797 from ThomasWilshaw/otio_save_fix
saveotio: Fix external reference available media
2021-12-10 19:21:45 -08:00
Thomas Wilshaw b2b28344f4 saveotio: Use correct frame rates
available_range is the total length of the source clip and is stored
using the same frame rate as the source clip.

source_range is the length of the clip in the timeline and so is
stored using the sequence frame rate.
2021-12-10 22:25:42 +00:00
Thomas Wilshaw dcaf34c69d saveotio: Use qIsNan rather than comparison 2021-12-10 17:34:51 +00:00
Thomas Wilshaw 516c5cb3b1 saveotio: Use built in function and check for NaN 2021-12-10 16:46:21 +00:00
itsmattkc 1828c2fd73 otio: update to be v0.14 compliant 2021-12-01 15:41:05 -08:00
Thomas Wilshaw cb0ebb24a4 saveotio: Fix external reference available media 2021-11-25 13:18:01 +00:00
itsmattkc a6af473f53 reimplemented node positioning and deleting 2021-11-17 12:09:41 -08:00
Thomas Wilshaw 90a0077c02 Fix uninitialized memory build error
Join Sequences and timelines together in a QMap for simpler code.
2021-11-15 15:10:26 +00:00
Thomas Wilshaw dc11358b85 loadotio: Update loading bar 2021-11-09 14:50:34 +00:00