a74162e34e
- 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)
35 lines
1.1 KiB
C#
35 lines
1.1 KiB
C#
using System.Windows;
|
|
using System.Windows.Threading;
|
|
using ytLive.Helpers;
|
|
|
|
namespace ytLive;
|
|
|
|
/// <summary>
|
|
/// Interaction logic for App.xaml
|
|
/// </summary>
|
|
public partial class App : Application
|
|
{
|
|
public App()
|
|
{
|
|
AppLog.Write("App ctor");
|
|
}
|
|
|
|
protected override void OnStartup(StartupEventArgs e)
|
|
{
|
|
// The app is a WinExe (no visible console) and is often debugged from
|
|
// WSL where it can't even run, so startup checkpoints and any unhandled
|
|
// exception are written to %APPDATA%\ytLlive\startup.log via AppLog.
|
|
AppDomain.CurrentDomain.UnhandledException += (_, args) =>
|
|
AppLog.Write(args.ExceptionObject is Exception ex
|
|
? "AppDomain unhandled exception: " + ex
|
|
: "AppDomain unhandled exception object: " + args.ExceptionObject);
|
|
|
|
DispatcherUnhandledException += (_, args) =>
|
|
AppLog.Write(args.Exception, "Dispatcher unhandled exception");
|
|
|
|
AppLog.Write("App OnStartup begin");
|
|
base.OnStartup(e);
|
|
AppLog.Write("App OnStartup end");
|
|
}
|
|
}
|