Module settings_ui

Source
Expand description

Settings window (egui::Window, closable). Tabs:

  • General: theme (system/dark/light), decoder (auto/mf/ffmpeg), ffmpeg folder (text + Browse…, shows whether ffmpeg/ffprobe were found), preview max width, snapping, confirm overwrite, “Edit with Simple Editor” context menu checkbox (install/uninstall via crate::contextmenu).
  • Performance: GPU preview toggle + the detected OpenGL renderer, preview render quality (%), movie mode (pre-rendered playback) and the stock image the effect thumbnails are rendered from.
  • Capture: screen recording (fps, bitrate, microphone, desktop audio, cursor, record-on-blur, output folder) and voiceover (input device, channels). Device lists come from engine::capture.
  • Export: encoder combo (auto + detected encoders filtered to h264/hevc/vp9/av1 families), CRF, preset.
  • Hotkeys: table of every Action (label, current binding, “Rebind” → waits for the next key press with modifiers (Escape cancels, Backspace/Delete unbinds), “Reset”), plus “Reset all”. Conflicts are resolved by unbinding the other action (Hotkeys::set). Note the fixed mouse modifiers. Returns true when settings changed (caller saves + re-applies theme/backend/hotkeys).

Structs§

SettingsUi
Status 🔒

Constants§

DECODERS 🔒
PALETTE_MODES 🔒
THEMES 🔒

Functions§

appearance 🔒
Appearance: mode (Follow Windows / Light / Dark / Custom) + a colour override per Palette field the app actually paints with. Mutates s.palette directly, so theme::palette_with (recomputed every frame in App::update) picks it up immediately — no restart, no extra plumbing.
capture 🔒
While rebinding: take the first key press this frame, bind/unbind/cancel, and swallow all key/text events so nothing else reacts to them. Returns true if a binding changed.
capture_tab 🔒
color_row 🔒
One overridable colour: checkbox turns the override on/off, the button edits it while on (shown at fallback — today’s derived colour — while off, so turning it on starts from what’s in effect).
export 🔒
general 🔒
hotkeys_tab 🔒
icon_row 🔒
One icon assignment: current glyph (or blank), and a picker with every glyph, None and Default.
performance 🔒
port_field 🔒
MCP port DragValue. The app restarts the server whenever settings.mcp_port changes, so the value is held in state.port_edit while the user drags or types and only written when the gesture ends — otherwise a drag from 7337 to 7400 walks through ~60 ports and one busy port in between turns the server off. Returns true when the setting changed.
show