mirror of
https://github.com/microsoft/PowerToys.git
synced 2026-04-08 20:27:36 +02:00
CmdPal: fix content on extension settings (#40794)
Regressed in one of the #40113 prs. The Core.VM.PageViewModelFactory didn't actually know how to make a ContentPage, because Core can't handle a FormContent. But really, the CommandSettingsViewModel shouldn't have ever been in the .Core namespace, nor should it have used the ContentPageViewModel. To prevent future mistakes like this, * I got rid of `Core.ViewModels/PageViewModelFactory`, cause we didn't need it. * I made `ContentPageViewModel` abstract, to prevent you from trying to instantiate it Closes #40778
This commit is contained in:
@@ -14,7 +14,7 @@ using Microsoft.CommandPalette.Extensions.Toolkit;
|
|||||||
|
|
||||||
namespace Microsoft.CmdPal.Core.ViewModels;
|
namespace Microsoft.CmdPal.Core.ViewModels;
|
||||||
|
|
||||||
public partial class ContentPageViewModel : PageViewModel, ICommandBarContext
|
public abstract partial class ContentPageViewModel : PageViewModel, ICommandBarContext
|
||||||
{
|
{
|
||||||
private readonly ExtensionObject<IContentPage> _model;
|
private readonly ExtensionObject<IContentPage> _model;
|
||||||
|
|
||||||
|
|||||||
@@ -1,27 +0,0 @@
|
|||||||
// Copyright (c) Microsoft Corporation
|
|
||||||
// The Microsoft Corporation licenses this file to you under the MIT license.
|
|
||||||
// See the LICENSE file in the project root for more information.
|
|
||||||
|
|
||||||
using Microsoft.CommandPalette.Extensions;
|
|
||||||
|
|
||||||
namespace Microsoft.CmdPal.Core.ViewModels;
|
|
||||||
|
|
||||||
public class PageViewModelFactory : IPageViewModelFactoryService
|
|
||||||
{
|
|
||||||
private readonly TaskScheduler _scheduler;
|
|
||||||
|
|
||||||
public PageViewModelFactory(TaskScheduler scheduler)
|
|
||||||
{
|
|
||||||
_scheduler = scheduler;
|
|
||||||
}
|
|
||||||
|
|
||||||
public PageViewModel? TryCreatePageViewModel(IPage page, bool nested, AppExtensionHost host)
|
|
||||||
{
|
|
||||||
return page switch
|
|
||||||
{
|
|
||||||
IListPage listPage => new ListViewModel(listPage, _scheduler, host) { IsNested = nested },
|
|
||||||
IContentPage contentPage => new ContentPageViewModel(contentPage, _scheduler, host),
|
|
||||||
_ => null,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -3,11 +3,11 @@
|
|||||||
// See the LICENSE file in the project root for more information.
|
// See the LICENSE file in the project root for more information.
|
||||||
|
|
||||||
using ManagedCommon;
|
using ManagedCommon;
|
||||||
|
using Microsoft.CmdPal.Core.ViewModels;
|
||||||
using Microsoft.CmdPal.Core.ViewModels.Models;
|
using Microsoft.CmdPal.Core.ViewModels.Models;
|
||||||
using Microsoft.CmdPal.UI.ViewModels;
|
|
||||||
using Microsoft.CommandPalette.Extensions;
|
using Microsoft.CommandPalette.Extensions;
|
||||||
|
|
||||||
namespace Microsoft.CmdPal.Core.ViewModels;
|
namespace Microsoft.CmdPal.UI.ViewModels;
|
||||||
|
|
||||||
public partial class CommandSettingsViewModel(ICommandSettings? _unsafeSettings, CommandProviderWrapper provider, TaskScheduler mainThread)
|
public partial class CommandSettingsViewModel(ICommandSettings? _unsafeSettings, CommandProviderWrapper provider, TaskScheduler mainThread)
|
||||||
{
|
{
|
||||||
@@ -29,9 +29,9 @@ public partial class CommandSettingsViewModel(ICommandSettings? _unsafeSettings,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (model.SettingsPage is IContentPage page)
|
if (model.SettingsPage != null)
|
||||||
{
|
{
|
||||||
SettingsPage = new(page, mainThread, provider.ExtensionHost);
|
SettingsPage = new CommandPaletteContentPageViewModel(model.SettingsPage, mainThread, provider.ExtensionHost);
|
||||||
SettingsPage.InitializeProperties();
|
SettingsPage.InitializeProperties();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user