Commit Graph
100 Commits
Author SHA1 Message Date
Mike-Solar e5eeaddf2f format: reformatting files 2026-07-13 15:30:43 +08:00
Mike-Solar 5c8f80480d UI: flatten preferences behavior tabs and add node parameter editor shortcut
- Move Behavior-General options (hover focus, slider ladder, scroll zooms)
  into the General preferences tab.
- Move Behavior-Audio option (audio scrubbing) into the Audio preferences tab.
- Promote remaining Behavior categories (Timeline, Playback, Project, Nodes,
  Rendering) to top-level sidebar entries without the 'Behavior - ' prefix.
- Update Chinese translations for the new sidebar titles and fill unfinished
  Behavior tab strings.

NodeView:
- Remove double-click jump-to-parameter-editor behavior; keep expand/collapse.
- Add right-click context menu item 'Show in Parameter Editor'.
- Add Shift+P shortcut bound to the same action.

Render:
- Fix crash in PreviewAutoCacher::ClearSingleFrameRenders when proxy playback
  causes a render ticket to finish synchronously before the watcher pointer is
  returned. Defer the watcher Finished signal via queued connection so the
  caller can safely register the watcher before it is deleted.
2026-07-13 10:19:30 +08:00
Mike-Solar f57ffa482f Flatten Behavior preferences into sidebar categories and scroll to node on double-click
Behavior preferences used a nested QTreeWidget with groups like General,
Audio, Timeline, etc. Replace it with one tab per group in the left sidebar
so users can jump directly to a category without expanding a secondary menu.

Also wire double-clicking a node in the node graph to emit a selection
signal with its context, causing the parameter panel to scroll to that
node's parameters (in addition to showing/raising the panel as before).
2026-07-13 10:19:30 +08:00
Mike-Solar cf32fcfee1 Add configurable proxy settings and a menu entry
- Extend ProxyManager::ProxyParams with crf and preset, and update
  ProxyTask/ProxyParamsEqual to use them.
- Add global config keys ProxyWidth, ProxyHeight, ProxyCRF, ProxyPreset.
- Add a Proxy Settings group to Preferences -> Disk with width/height/CRF/preset
  controls.
- Read proxy settings from config when generating proxies from the timeline.
- Add Tools -> Proxy Settings... menu entry that opens Preferences on the Disk tab.
- Add ConfigDialogBase::SetCurrentTab() so PreferencesDialog can start on a
  specific tab.
2026-07-13 10:19:30 +08:00
Mike-Solar b4e39e5bcd Address ChatGPT Vulkan review items
- Add PickRenderableFormat / IsColorAttachmentSupported so 3-channel
  Vulkan formats fall back to 4-channel when unsupported.
- Make oakvulkan target and C ABI check conditional on Vulkan_FOUND;
  skip liboakvulkan build/dependencies when Vulkan headers/libs are
  absent.
- Update Preferences tooltip to reflect Vulkan is an experimental
  prototype that may fall back to OpenGL.
- Revise dynamic backend plan doc: phase 3/4/5 described as prototype
  frameworks with runtime validation pending, and list recent Vulkan
  fixes (init idempotency, descriptor/sampler lifetime, dynamic
  viewport/scissor, render pass clear, format probing).

Both OAK_ENABLE_DYNAMIC_RENDER_BACKEND=ON and OFF configurations
build and pass ctest (4/4).
2026-07-13 10:19:29 +08:00
Mike-Solar 341283b1cd Add graphics backend selection 2026-07-13 10:19:29 +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 86e82b13e2 remove unused includes 2026-01-05 14:24:28 +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 c1c6893713 various: moved more to core lib 2023-01-19 16:01:31 -08:00
itsmattkc 1c4149a0fd preferences: add option to use glFinish
i hate opengl i hate opengl i hate opengl i hate opengl i hate opengl i hate opengl i hate opengl i hate opengl i hate opengl i hate opengl i hate opengl i hate opengl i hate opengl i hate opengl
2022-11-05 12:49:30 -07:00
itsmattkc 451de7030b Merge branch 'move-time-to-viewer' 2022-11-01 18:20:22 -07:00
itsmattkc 4d80044d6d upgrade to qt 6 compliance 2022-10-28 19:42:14 -07:00
itsmattkc 3978a8501a timeline: implement select to seek and seek to select 2022-10-23 22:28:35 -07:00
itsmattkc 402c4e1694 ui: move zoom scrolling option to preferences 2022-08-12 09:16:12 -07:00
itsmattkc 8853665187 config: save on preferences dialog accept 2022-05-14 15:02:32 -07:00
itsmattkc 4b366a9b73 update copyright year to 2022 2022-05-10 10:38:56 -07:00
itsmattkc 5bed4396ea use audioprocessor to match device's output 2022-05-05 16:32:17 -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 b290c4d007 audio: extended support for planar/packed formats 2022-05-03 13:41:27 -07:00
itsmattkc ef515579df completed audio recording implementation 2022-05-02 17:05:11 -07:00
itsmattkc 9101f5dc49 implemented core audio recording support 2022-05-02 14:00:03 -07:00
itsmattkc f04ff5f1ff preferences: minor relabelling of marker settings 2022-05-01 11:16:33 -07:00
itsmattkc e8dde836e3 Merge branch 'master' into pr/1717 2022-05-01 10:58:44 -07:00
itsmattkc 48adb159b8 various: consolidated dir exists+mkpath into one function 2022-04-07 17:11:50 -07:00
ThomasWilshaw 02b9a38737 Merge branch 'master' into marker 2022-01-28 22:30:29 +00:00
itsmattkc a2f8c6eb29 preferences: fixed bug that broke selecting backend 2022-01-14 22:44:00 -08:00
itsmattkc 6fed061e65 implemented audio dialog
It's arguably not finished in that each API has parameters that users may want control over (e.g. ASIO latency), but it allows selecting devices again which is a necessity
2022-01-14 18:21:12 -08:00
Thomas Wilshaw 374b97b6a5 Add default marker color to config 2021-10-22 22:15:53 +01:00
itsmattkc fbc5997d32 removed reliance on Qt multimedia 2021-10-01 16:12:12 -07:00
itsmattkc ee81a47f2e begin switch to portaudio
Qt's audio system has served us well, but it's a little limited moving forward. PortAudio is a mature and versatile library that will allow for better audio for users.
2021-10-01 15:41:24 -07:00
itsmattkc 5e7cb068d9 revise keyboard shortcuts to be translatable
Fixes #1459
2021-08-12 14:31:31 -07:00
itsmattkc f6e510025d preferences: fixed issue with keyboard shortcut search 2021-08-09 13:35:11 -07:00
itsmattkc ef31c3fb1a sequence: move default to sequence dialog 2021-05-24 10:13:26 +10:00
itsmattkc 72ed87d923 ui: scroll zoom preference now specific to widget
Fixes #1597
2021-05-10 12:07:15 +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
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
itsmattkc 17f40cf91f preferencesdialog: reimplemented default sequence settings
I'm not sure why this was removed, it's a pretty important thing
to be able to configure, but anyway it's back now.
2021-04-12 22:50:34 +10:00
itsmattkc 82d2a253d9 preferences: revised audio tab
Cleaned up and improved the audio tab.

Fixes #1546. Kind of. There doesn't seem to be much need for a
sample rate selection for our current high-level audio system.
If we implement higher end audio backends in the future (e.g.
ASIO, JACK), those can be given a sample rate setting.
2021-04-11 20:20:01 +10: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 0ee98a47ea project: implemented autorecovery core
Not done yet, but nearly.
2021-04-01 13:10:43 +11:00
itsmattkc 62332eb216 keysequenceeditor: override backspace and esc behavior
Fixes #1455
2021-03-21 23:26:33 +11:00
itsmattkc c6a2349ad6 improved slider ladders 2021-03-15 13:43:04 +11:00
itsmattkc d7c5ac4b44 implement entire project in nodes
Project items are now represented directly in nodes opening up more versatility and possibilities. This is the first iteration of this and will be buggy. Need to test thoroughly.
2021-02-15 21:31:57 +11:00
itsmattkc b4dd976e90 revised UI color system when showing nodes
Olive now has a set of colors that categories can be "assigned" to. The timeline also shares the same colors as the NodeView. Colors can be configured per node (aka per clip).
2021-01-15 18:44:34 +11:00
itsmattkc 992b6eb952 added plural forms to translatable strings
Fixes #1421
2020-11-27 13:04:49 +11:00
itsmattkc 75d4cd899b use hardcoded namespace
The macro defined namespaces confused the hell out of lupdate and more or less broke translations permanently. Looks like the only way we can do it is to have a hardcoded namespace, which goes against my instinct, but honestly how likely is it that we'll change the namespace anyway (I guess forks might want to do it, but that's their problem ;) )
2020-11-17 20:24:42 +11:00