More of the service stuff

This commit is contained in:
Michael Jolley
2025-11-15 17:03:12 -06:00
parent 0873dcf341
commit 449c4ec95c
3 changed files with 11 additions and 6 deletions

View File

@@ -34,10 +34,10 @@ public partial class TopLevelCommandManager : ObservableObject,
TaskScheduler IPageContext.Scheduler => _taskScheduler; TaskScheduler IPageContext.Scheduler => _taskScheduler;
public TopLevelCommandManager(IServiceProvider serviceProvider) public TopLevelCommandManager(IServiceProvider serviceProvider, TaskScheduler taskScheduler)
{ {
_serviceProvider = serviceProvider; _serviceProvider = serviceProvider;
_taskScheduler = _serviceProvider.GetService<TaskScheduler>()!; _taskScheduler = taskScheduler;
WeakReferenceMessenger.Default.Register<ReloadCommandsMessage>(this); WeakReferenceMessenger.Default.Register<ReloadCommandsMessage>(this);
_reloadCommandsGate = new(ReloadAllCommandsAsyncCore); _reloadCommandsGate = new(ReloadAllCommandsAsyncCore);
} }

View File

@@ -111,6 +111,7 @@ public partial class App : Application
services.AddSingleton(TaskScheduler.FromCurrentSynchronizationContext()); services.AddSingleton(TaskScheduler.FromCurrentSynchronizationContext());
services.AddSingleton<IAppHostService, PowerToysAppHostService>(); services.AddSingleton<IAppHostService, PowerToysAppHostService>();
services.AddSingleton<ITelemetryService, TelemetryForwarder>(); services.AddSingleton<ITelemetryService, TelemetryForwarder>();
services.AddSingleton<IPageViewModelFactoryService, CommandPalettePageViewModelFactory>();
// TODO: Register ILogger // TODO: Register ILogger
@@ -170,16 +171,17 @@ public partial class App : Application
services.AddSingleton<IRunHistoryService, RunHistoryService>(); services.AddSingleton<IRunHistoryService, RunHistoryService>();
// ViewModels // ViewModels
services.AddSingleton<ShellViewModel>(); services.AddSingleton<IRootPageService, PowerToysRootPageService>();
services.AddSingleton<SettingsViewModel>(); services.AddSingleton<SettingsViewModel>();
services.AddSingleton<IPageViewModelFactoryService, CommandPalettePageViewModelFactory>(); services.AddSingleton<ShellViewModel>();
// Views // Views
services.AddSingleton<IRootPageService, PowerToysRootPageService>();
services.AddSingleton<MainWindow>(); services.AddSingleton<MainWindow>();
services.AddSingleton<ShellPage>(); services.AddSingleton<ShellPage>();
services.AddTransient<ListPage>(); services.AddTransient<ListPage>();
// Settings Pages
services.AddTransient<GeneralPage>(); services.AddTransient<GeneralPage>();
services.AddTransient<ExtensionPage>(); services.AddTransient<ExtensionPage>();
services.AddTransient<ExtensionsPage>(); services.AddTransient<ExtensionsPage>();

View File

@@ -74,7 +74,10 @@ public sealed partial class ShellPage : Microsoft.UI.Xaml.Controls.Page,
public event PropertyChangedEventHandler? PropertyChanged; public event PropertyChangedEventHandler? PropertyChanged;
public ShellPage(ShellViewModel shellViewModel, SettingsModel settingsModel, TopLevelCommandManager topLevelCommandManager) public ShellPage(
ShellViewModel shellViewModel,
SettingsModel settingsModel,
TopLevelCommandManager topLevelCommandManager)
{ {
this.InitializeComponent(); this.InitializeComponent();