mirror of
https://github.com/microsoft/PowerToys.git
synced 2026-02-23 19:49:43 +01:00
## Summary of the Pull Request This PR is ready to review with a bunch of code clean-up around shell and page initialization/navigation, progress, errors, and the back button. There's still some future items to think about, but that's beyond the scope of this work right now. See more notes in comments below on changes: > Alright, I cleaned up all the Page Initialization and Navigation code for Shell, it's all centralized there now (which makes sense) and removes 3x duplicated code we had in the ExtPage templates. They're just basic XAML controls now which don't really need to worry about how they get loaded, and just get their VMs. > > I also tidied up the massive if statement we had in ShellPage.xaml.cs for each page type so we have a singular logical flow that just branches in two statements with an inline switch for the VM constructor and the page type. > > In the future, we may want to cache some page VMs there, so if you navigate back/forth we don't reload everything... > > This also let us remove a message which was effectively just internal communication. Should be a bit cleaner now, certainly easier to add new page types now too. These are some of the last remnants of things from the original MVVM setup when we were still testing patterns and then just copied. This uses `IsInitialized` for tracking the progress bar and bubbles up errors better without blocking the app (and provides better context for errors). This also fixes the issue with the Back Button stealing focus instead of the search box (by moving it to the Shell page to leave the SearchBox control as just responsible for the searchbox/keyboard input). ------- Future Open questions/TODO: - [ ] How do we better track the parent extension/owner of pages/commands/etc... for error reporting? - [x] Need to clean-up backend logic of VMs for the loading state for the new Shell page centralization - [x] For instance, progress only happens like once now... - [x] May be able to centralize some of the loading bits logic? - [x] Finalize some brushes for error items - [ ] Still need to potentially track individual issues loading specific items, but maybe this is a good enough start for a single PR once the above are addressed? - [ ] Cache page VMs? - [ ] Clean-up async loading of pages and their content Helps with #220. This will make #238 easier as then we don't need as much XAML/Loading glue for those Co-authored-by: Niels Laute <niels.laute@live.nl> Co-authored-by: Mike Griese <zadjii@gmail.com>
115 lines
8.8 KiB
XML
115 lines
8.8 KiB
XML
<Project>
|
|
<PropertyGroup>
|
|
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
|
|
</PropertyGroup>
|
|
<ItemGroup>
|
|
<PackageVersion Include="AdaptiveCards.ObjectModel.WinUI3" Version="2.0.0-beta" />
|
|
<PackageVersion Include="AdaptiveCards.Rendering.WinUI3" Version="2.1.0-beta" />
|
|
<PackageVersion Include="AdaptiveCards.Templating" Version="2.0.2" />
|
|
<PackageVersion Include="Appium.WebDriver" Version="4.4.5" />
|
|
<PackageVersion Include="Azure.AI.OpenAI" Version="1.0.0-beta.17" />
|
|
<PackageVersion Include="CommunityToolkit.Common" Version="8.4.0" />
|
|
<PackageVersion Include="CommunityToolkit.Mvvm" Version="8.4.0" />
|
|
<PackageVersion Include="CommunityToolkit.WinUI.Animations" Version="8.2.241112-preview1" />
|
|
<PackageVersion Include="CommunityToolkit.WinUI.Collections" Version="8.2.241112-preview1" />
|
|
<PackageVersion Include="CommunityToolkit.WinUI.Controls.Primitives" Version="8.2.241112-preview1" />
|
|
<PackageVersion Include="CommunityToolkit.WinUI.Controls.SettingsControls" Version="8.2.241112-preview1" />
|
|
<PackageVersion Include="CommunityToolkit.WinUI.Controls.Segmented" Version="8.2.241112-preview1" />
|
|
<PackageVersion Include="CommunityToolkit.WinUI.Controls.Sizers" Version="8.2.241112-preview1" />
|
|
<PackageVersion Include="CommunityToolkit.WinUI.Converters" Version="8.2.241112-preview1" />
|
|
<PackageVersion Include="CommunityToolkit.WinUI.Extensions" Version="8.2.241112-preview1" />
|
|
<PackageVersion Include="CommunityToolkit.WinUI.UI.Controls.DataGrid" Version="7.1.2" />
|
|
<PackageVersion Include="CommunityToolkit.WinUI.UI.Controls.Markdown" Version="7.1.2" />
|
|
|
|
<PackageVersion Include="CommunityToolkit.Labs.WinUI.Controls.MarkdownTextBlock" Version=" 0.1.241129-build.1830" />
|
|
|
|
<PackageVersion Include="ControlzEx" Version="6.0.0" />
|
|
<PackageVersion Include="HelixToolkit" Version="2.24.0" />
|
|
<PackageVersion Include="HelixToolkit.Core.Wpf" Version="2.24.0" />
|
|
<PackageVersion Include="HtmlAgilityPack" Version="1.11.71" />
|
|
<PackageVersion Include="hyjiacan.pinyin4net" Version="4.1.1" />
|
|
<PackageVersion Include="Interop.Microsoft.Office.Interop.OneNote" Version="1.1.0.2" />
|
|
<PackageVersion Include="LazyCache" Version="2.4.0" />
|
|
<PackageVersion Include="Mages" Version="2.0.2" />
|
|
<PackageVersion Include="Markdig.Signed" Version="0.34.0" />
|
|
<!-- Including MessagePack to force version, since it's used by StreamJsonRpc but contains vulnerabilities. After StreamJsonRpc updates the version of MessagePack, we can upgrade StreamJsonRpc instead. -->
|
|
<PackageVersion Include="MessagePack" Version="2.5.187" />
|
|
<PackageVersion Include="Microsoft.CmdPal.Extensions.SDK" Version="0.0.1" />
|
|
<PackageVersion Include="Microsoft.CodeAnalysis.NetAnalyzers" Version="9.0.0" />
|
|
<PackageVersion Include="Microsoft.Data.Sqlite" Version="9.0.0" />
|
|
<!-- Including Microsoft.Bcl.AsyncInterfaces to force version, since it's used by Microsoft.SemanticKernel. -->
|
|
<PackageVersion Include="Microsoft.Bcl.AsyncInterfaces" Version="9.0.0" />
|
|
<PackageVersion Include="Microsoft.Diagnostics.Tracing.TraceEvent" Version="3.1.16" />
|
|
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="9.0.0" />
|
|
<PackageVersion Include="Microsoft.Extensions.Logging" Version="9.0.0" />
|
|
<PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="9.0.0" />
|
|
<PackageVersion Include="Microsoft.Extensions.Hosting" Version="9.0.0" />
|
|
<PackageVersion Include="Microsoft.Extensions.Hosting.WindowsServices" Version="9.0.0" />
|
|
<PackageVersion Include="Microsoft.SemanticKernel" Version="1.15.0" />
|
|
<PackageVersion Include="Microsoft.Toolkit.Uwp.Notifications" Version="7.1.2" />
|
|
<PackageVersion Include="Microsoft.Web.WebView2" Version="1.0.2903.40" />
|
|
<!-- Package Microsoft.Win32.SystemEvents added as a hack for being able to exclude the runtime assets so they don't conflict with 8.0.1. This is a dependency of System.Drawing.Common but the 8.0.1 version wasn't published to nuget. -->
|
|
<PackageVersion Include="Microsoft.Win32.SystemEvents" Version="9.0.0" />
|
|
<PackageVersion Include="Microsoft.Windows.Compatibility" Version="9.0.0" />
|
|
<PackageVersion Include="Microsoft.Windows.CsWin32" Version="0.2.46-beta" />
|
|
<!-- CsWinRT version needs to be set to have a WinRT.Runtime.dll at the same version contained inside the NET SDK we're currently building on CI. -->
|
|
<!--
|
|
TODO: in Common.Dotnet.CsWinRT.props, on upgrade, verify RemoveCsWinRTPackageAnalyzer is no longer needed.
|
|
This is present due to a bug in CsWinRT where WPF projects cause the analyzer to fail.
|
|
-->
|
|
<PackageVersion Include="Microsoft.Windows.CsWinRT" Version="2.1.5" />
|
|
<PackageVersion Include="Microsoft.Windows.SDK.BuildTools" Version="10.0.22621.2428" />
|
|
<PackageVersion Include="Microsoft.WindowsAppSDK" Version="1.6.241114003" />
|
|
<PackageVersion Include="Microsoft.Xaml.Behaviors.WinUI.Managed" Version="2.0.9" />
|
|
<PackageVersion Include="Microsoft.Xaml.Behaviors.Wpf" Version="1.1.39" />
|
|
<PackageVersion Include="ModernWpfUI" Version="0.9.4" />
|
|
<!-- Moq to stay below v4.20 due to behavior change. need to be sure fixed -->
|
|
<PackageVersion Include="Moq" Version="4.18.4" />
|
|
<PackageVersion Include="MSTest" Version="3.6.3" />
|
|
<PackageVersion Include="NLog" Version="5.0.4" />
|
|
<PackageVersion Include="NLog.Extensions.Logging" Version="5.3.8" />
|
|
<PackageVersion Include="NLog.Schema" Version="5.2.8" />
|
|
<PackageVersion Include="OpenAI" Version="2.0.0" />
|
|
<PackageVersion Include="ReverseMarkdown" Version="4.1.0" />
|
|
<PackageVersion Include="ScipBe.Common.Office.OneNote" Version="3.0.1" />
|
|
<PackageVersion Include="SharpCompress" Version="0.37.2" />
|
|
<PackageVersion Include="StreamJsonRpc" Version="2.19.27" />
|
|
<PackageVersion Include="StyleCop.Analyzers" Version="1.2.0-beta.556" />
|
|
<!-- Package System.CodeDom added as a hack for being able to exclude the runtime assets so they don't conflict with 8.0.1. This is a dependency of System.Management but the 8.0.1 version wasn't published to nuget. -->
|
|
<PackageVersion Include="System.CodeDom" Version="9.0.0" />
|
|
<PackageVersion Include="System.CommandLine" Version="2.0.0-beta4.22272.1" />
|
|
<PackageVersion Include="System.ComponentModel.Composition" Version="9.0.0" />
|
|
<PackageVersion Include="System.Configuration.ConfigurationManager" Version="9.0.0" />
|
|
<PackageVersion Include="System.Data.OleDb" Version="9.0.0" />
|
|
<!-- Package System.Data.SqlClient added to force it as a dependency of Microsoft.Windows.Compatibility to the latest version available at this time. -->
|
|
<PackageVersion Include="System.Data.SqlClient" Version="4.8.6" />
|
|
<!-- Package System.Diagnostics.EventLog added as a hack for being able to exclude the runtime assets so they don't conflict with 8.0.1. This is a dependency of System.Data.OleDb but the 8.0.1 version wasn't published to nuget. -->
|
|
<PackageVersion Include="System.Diagnostics.EventLog" Version="9.0.0" />
|
|
<!-- Package System.Diagnostics.PerformanceCounter added as a hack for being able to exclude the runtime assets so they don't conflict with 8.0.11. -->
|
|
<PackageVersion Include="System.Diagnostics.PerformanceCounter" Version="9.0.0" />
|
|
<PackageVersion Include="System.Drawing.Common" Version="9.0.0" />
|
|
<PackageVersion Include="System.IO.Abstractions" Version="21.0.29" />
|
|
<PackageVersion Include="System.IO.Abstractions.TestingHelpers" Version="21.0.29" />
|
|
<PackageVersion Include="System.Management" Version="9.0.0" />
|
|
<PackageVersion Include="System.Reactive" Version="6.0.1" />
|
|
<PackageVersion Include="System.Runtime.Caching" Version="9.0.0" />
|
|
<PackageVersion Include="System.ServiceProcess.ServiceController" Version="9.0.0" />
|
|
<PackageVersion Include="System.Text.Encoding.CodePages" Version="9.0.0" />
|
|
<PackageVersion Include="System.Text.Json" Version="9.0.0" />
|
|
<PackageVersion Include="UnicodeInformation" Version="2.6.0" />
|
|
<PackageVersion Include="UnitsNet" Version="5.56.0" />
|
|
<PackageVersion Include="UTF.Unknown" Version="2.5.1" />
|
|
<PackageVersion Include="WinUIEx" Version="2.2.0" />
|
|
<PackageVersion Include="WPF-UI" Version="3.0.5" />
|
|
<!-- TODO! Mike see which of these we actually need, and -->
|
|
<PackageVersion Include="System.Text.RegularExpressions" Version="4.3.1" />
|
|
<PackageVersion Include="System.Net.Http" Version="4.3.4" />
|
|
<PackageVersion Include="System.Private.Uri" Version="4.3.2" />
|
|
</ItemGroup>
|
|
<ItemGroup Condition="'$(IsExperimentationLive)'!=''">
|
|
<!-- Additional dependencies used by experimentation -->
|
|
<PackageVersion Include="Microsoft.VariantAssignment.Client" Version="2.4.17140001" />
|
|
<PackageVersion Include="Microsoft.VariantAssignment.Contract" Version="3.0.16990001" />
|
|
</ItemGroup>
|
|
</Project>
|