Files
LlamaCasty/TASKS/task-30-gear-cleanup-preview-layout.md
gramps 87509bcf99 docs: restructure TASKS.md into a catalog — one file per task in TASKS/
TASKS.md is now the index (status table, open items, research pointer).
33 files: 32 task files + 1 research facts file. The full take-saga
narrative and all design decisions are preserved verbatim; the catalog
makes the queue readable without opening every task body. Schema and
AGENTS.md updated to reflect the new layout.
2026-09-05 16:31:46 -07:00

2.5 KiB

TASK 30 — Gear menu cleanup + Default Location for Recordings + preview layout restructure

Catalog: TASKS.md — status and requirements live here.

Status: ✅ Done (shipped 2026-08-29, commits 6031a56 → 61b850f → 455a409)

The creator's KISS review: gear menu cleanup, single Start button, record-location setting, and a full layout restructure moving all live controls into the preview pane.

What shipped:

Gear menu cleanup:

  • Removed Save Layout / Save Layout As… / Open Layout… from Gear menu + dead VM commands/methods (SaveLayoutCommand, SaveLayoutAsCommand, OpenLayoutCommand, SaveLayoutAs(), OpenLayoutFile()). Multi-layout = use OBS.

Default Location for Recordings (App Settings):

  • First real setting panel in the Gear menu: "Default Location for Recordings".
  • DefaultRecordFolder() (internal static): configured → %USERPROFILE%\Downloads → MyVideos.
  • RecordFolderDisplay property, ResetRecordFolderCommand, Browse + "Use Downloads" reset.
  • TextBox binding fixed to Mode=OneWay (get-only computed property).
  • ONE fallback test: DefaultRecordFolder_Falls_Back_To_Downloads.

Single Start button:

  • Button Content="Start" hardcoded in XAML. Removed PrimaryButtonText / IsStreamingStart properties + all OnPropertyChanged references. Pills = intent, lights = state, button = trigger.

Preview layout restructure — all live controls under preview:

  • Socials button moved from footer (scenes/sources column) to preview bottom row, left of TRAX button. MouseEnter/MouseLeave handlers pulse the SocialBarElement DropShadowEffect (sine wave BlurRadius 24→48, Opacity 0.7→1.0 at 30ms tick).
  • Mic controls moved from footer into preview pane (vertical StackPanel below Socials+TRAX): MIC button + sound meter + mute grid + volume slider — the same footer controls, relocated.
  • Preview bottom row: vertical StackPanel Grid.Row="2" → Line 1 (Socials + TRAX), Line 2 (MIC + meter + mute + slider). All centered.

Bottom bar restructured:

  • Reduced to single row (mic row removed), tighter padding (Padding="16,4").
  • Gear icon moved to far left. Stream stats (Bitrate/FPS/Dropped/Duration) centered under preview pane. Resolution dropdown stays far right.

Avatar fix:

  • Avatar BitmapImage no longer loads in the constructor (stale image from last session).
  • Only loads when IsConnected fires true via OnViewModelPropertyChanged.

Tests:

  • Build 0 warnings, 247 tests (2 pre-existing known failures excluded).