Files
ytLlive/Helpers/index.md
T
gramps a74162e34e Resolution dropdown, list-focus preservation, unified dark theme, startup logging, and memory map
- Bottom-bar resolution dropdown (1080p60/1080p30/720p60/480p30) with tooltip
  on finding upload bandwidth; disabled while live; no in-app speed test
- FocusPreservingListBox keeps selection/focus coherent when a selected
  scene/source is deleted (skip hidden scenes; leave list when empty)
- Themes/Controls.xaml: single dark-theme dictionary merged once in App.xaml;
  custom ComboBox template fixes SelectionBoxItem rendering; GoLiveWindow and
  ReuseImageDialog consolidated onto shared styles
- AppLog file logger + AppDomain/Dispatcher exception hooks; checkpointed
  MainWindow/VM/dialog constructors (caught MenuItemRole.Separator XAML crash)
- Memory map: schema.md conventions, per-directory index.md, updated ai.md/
  TASKS.md/README.md (OAuth creds real; token persistence still pending)
2026-08-06 08:33:05 -07:00

1.1 KiB

Helpers — index

Cross-cutting utilities. See schema.md for the memory-map conventions.

File Purpose
ViewModelBase.cs INotifyPropertyChanged + SetProperty<T>() — base for all ViewModels
RelayCommand.cs ICommand implementation for all button actions
AppLog.cs File logger to %APPDATA%\ytLlive\startup.log; startup checkpoints + unhandled-exception capture (the crash this map is named for)
FocusPreservingListBox.cs ListBox subclass that keeps selection/focus coherent when the selected item is deleted; IsSelectable predicate skips hidden scenes; drag-reorder guard
OAuthCredentials.cs Baked-in Google OAuth client ID/secret (desktop app; loopback callback)
ImageCache.cs Image byte caching (assets live in the DB)
InverseBoolToVisibilityConverter.cs / NotNullToVisibilityConverter.cs XAML value converters for visibility bindings

Related: Themes/Controls.xaml styles the lists this class backs; Models/index.md and ViewModels/index.md for the objects it works on.