chore: release v2.4
- Add theme system (Dark/Light palettes, ModernTheme, ThemeManager) - Add InputDialog, Spinner common view - Add DuplicatesCsvExportService - Refresh views, dialogs, and view models across tabs - Update localization strings (en/fr) - Tweak services (transfer, permissions, search, user access, ownership elevation, bulk operations) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -50,6 +50,18 @@ public partial class App : Application
|
||||
App app = new();
|
||||
app.InitializeComponent();
|
||||
|
||||
// Apply persisted theme (System/Light/Dark) before MainWindow constructs so brushes resolve correctly.
|
||||
try
|
||||
{
|
||||
var theme = host.Services.GetRequiredService<ThemeManager>();
|
||||
var settings = host.Services.GetRequiredService<SettingsService>().GetSettingsAsync().GetAwaiter().GetResult();
|
||||
theme.ApplyFromString(settings.Theme);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log.Warning(ex, "Failed to apply persisted theme at startup");
|
||||
}
|
||||
|
||||
var mainWindow = host.Services.GetRequiredService<MainWindow>();
|
||||
|
||||
// Wire LogPanelSink now that we have the RichTextBox
|
||||
@@ -101,6 +113,7 @@ public partial class App : Application
|
||||
services.AddSingleton<ISessionManager>(sp => sp.GetRequiredService<SessionManager>());
|
||||
services.AddSingleton<ProfileService>();
|
||||
services.AddSingleton<SettingsService>();
|
||||
services.AddSingleton<ThemeManager>();
|
||||
services.AddSingleton<MainWindowViewModel>();
|
||||
// Phase 11-04: ProfileManagementViewModel and SettingsViewModel now receive IBrandingService and GraphClientFactory
|
||||
services.AddTransient<ProfileManagementViewModel>();
|
||||
@@ -125,6 +138,7 @@ public partial class App : Application
|
||||
// Phase 3: Duplicates
|
||||
services.AddTransient<IDuplicatesService, DuplicatesService>();
|
||||
services.AddTransient<DuplicatesHtmlExportService>();
|
||||
services.AddTransient<DuplicatesCsvExportService>();
|
||||
services.AddTransient<DuplicatesViewModel>();
|
||||
services.AddTransient<DuplicatesView>();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user