Files
ytLlive/ReuseImageDialog.xaml.cs
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

31 lines
909 B
C#

using System.Windows;
using ytLive.Helpers;
using ytLive.ViewModels;
namespace ytLive;
public partial class ReuseImageDialog : Window
{
public string? PickedAssetId { get; private set; }
public bool WantsNew { get; private set; }
public ReuseImageDialog(ReuseImageViewModel viewModel)
{
AppLog.Write("ReuseImageDialog ctor: before InitializeComponent");
InitializeComponent();
AppLog.Write("ReuseImageDialog ctor: after InitializeComponent");
DataContext = viewModel;
viewModel.ReuseRequested += () =>
{
PickedAssetId = viewModel.SelectedCandidate?.AssetId;
if (PickedAssetId != null) DialogResult = true;
};
viewModel.NewImageRequested += () =>
{
WantsNew = true;
DialogResult = true;
};
viewModel.CancelRequested += () => DialogResult = false;
}
}