Commit Graph

8061 Commits

Author SHA1 Message Date
Mike Griese
066ebe104e Prepare for a new template project (#410)
This moves the extension template out to its own solution (with the SDK manually packed into it for now)

I've tested that I can now zip this up, then unzip and string replace on it, and we'll get a fully deployable, runnable extension, like 🫰
2025-02-07 10:44:07 -06:00
Seraphima Zykova
595fd3b6ee [Indexer] File icons (#343)
- [x] **Closes:** #316

![image](https://github.com/user-attachments/assets/4daeff29-4f56-41c3-8648-8d866b971382)
2025-02-07 10:43:40 -06:00
Mike Griese
4d696e1cfc BUILD: Fix signing the SDK (#413)
thanks dustin

This needed to also happen when we merged the upstream PT in #411
2025-02-07 05:15:29 -06:00
Stefan Markovic
c2245be456 Merge upstream PT #11 (#411)
* [Workspaces] implement the move feature (#35480)

* [Workspaces] Add move functionality

* spell checker

* [Workspaces] Modify Arranger to move apps without launch

* moved ipc helper

* removed callback

* use LauncherStatus in WindowArranger

* wait for launching next app

* launch in a separate thread and protect by mutexes

* update app version in advance

* changed canceling launch

* increased waiting time

* Fix optional parameter load from json

* changed arranger waiting time

* additional waiting time for Outlook

* added app id

* ensure ids before launch

* set id in editor

* minor updates

* [Workspaces] Move: Get the nearest window when moving a window

* [Workspaces] convert optional boolean to enum to avoid json problems

* Handle case when the new Application Property "moveIfExists" does not exist

* Re-implementing app-window pairing for moving feature.

* spell checker

* XAML formatting

* Fixing bug: IPC message not arriving

* spell checker

* Removing app-level-setting for move app. Also fixed compiler errors due styling.

* Updating editor window layout

* Re-implementing window positioning UI elements

* XAML formatting

* Code review findings

* Code cleanup

* Code cleanup

* Code cleanup

* code cleanup

* Code cleanup

* Code cleanup

* fix Move attribute after launch and snapshot

* Extend WindowArranger with PWA functionality to detect different PWA apps. PwaHelper moved to the common library

* fix repeat counter in the editor

* Code optimization

* code cleanup, optimization

* fix double-processing window

---------

Co-authored-by: Seraphima <zykovas91@gmail.com>
Co-authored-by: donlaci <donlaci@yahoo.com>

* [KeyboardManager]Fix mapping shift to numpad (#35890)

* Keyboard Manger fix numpad as shift

Fixed shift not being released if a numpad key as shift.

* Added comments

* Fix typo

* Fix the numpad unlocked key not working if the locked version is overridden by shift

* Fix spelling check.

* Revert the VK_CLEAR change.

---------

Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>

* [Analyzers] Update .editorconfig with rules to relax IDE errors (#36095)

* [Analyzers] Remove duplicate pascal case style from .editorconfig

* [Analyzers] Configured severity for individual IDE and CA rules showing as errors in VS

Set severity for IDE0005, IDE0008, IDE0016, IDE0018, IDE0019, IDE0021, IDE0022, IDE0023, IDE0025, IDE0027, IDE0028, IDE0029, IDE0031, IDE0032, IDE0034, IDE0036, IDE0039, IDE0042, IDE0044, IDE0045, IDE0046, IDE0047, IDE0057, IDE0051, IDE0052, IDE0054, IDE0055, IDE0056, IDE0057, IDE0059, IDE0060, IDE0061, IDE0063, IDE0071, IDE0073, IDE0074, IDE0075, IDE0077, IDE0078, IDE0083, IDE0090, IDE0100, IDE0130, IDE160, IDE180, IDE0200, IDE0240, IDE0250, IDE0251, IDE0260, IDE0270, IDE0290, IDE0300, IDE0301, IDE0305, IDE1005, IDE1006, CA1859, CA2022, CA2263

* [Analyzers] Fix mismatched analyzer descriptions

* [Analyzers] Fix misspelling

* Update .editorconfig

Made the following style rules `silent` instead of `suggestion`: 
- Use explicit type instead of 'var'
- Use expression body for ...
- Use block-scoped namespace

* [Analyzers] Set IDE0290 to silent

* [Analyzers] Remove IDE1006 configuration from .editorconfig in favor of making exclusions for the few entries

* [Analyzers][Indexer] Add IDE1006 suppressions

* [Analyzers][Peek] Add IDE1006 suppression

* [Analyzers][MWB] Add IDE1006 suppression.

* [Analyzers][Plugins] Add IDE1006 suppression

* [Analyzers][ImageResizer] Suppress IDE0073 to retain original copyright

* [Analyzers] Remove IDE0073 severity change in .editorconfig

---------

Co-authored-by: Ani <115020168+drawbyperpetual@users.noreply.github.com>

* [Workspaces] PWA follow-up (#36217)

* [PTRun][Calculator]Allow scientific notation with lowercase 'e' (#36187)

* [Workspaces] Add encoder parameter to bitmap.save() (#36228)

* [Workspaces] Add encoder parameter to bitmap.save()

* 1 more call fixed

* Move repeated code to the csharp library

* [Workspaces] Implement store of app window's size and position (#36086)

* [Workspaces] Implement store of app window's size and position

* Modifying the default values to -1. The program will use the original default values for the first run.

* [ScreenRuler]Add setting to show the measurement in an extra unit (#35887)

* display ruler: supporting millimeter and other units

* Measurement Tool: UI Setting for an extra unit

* Update images

* spelling

* spelling

* suit code style

* Fix for code review

* remove weird file

* rename field

* [Deps]Update MSTest from 3.5.0 to 3.6.3 (#36115)

* Update MSTest from 3.5.0 to 3.6.3

* Use STA attributes that are now part of MSTest

* Adding Jerry to community.md (#36232)

Update COMMUNITY.md

* [Workspaces] Arranger: smart timer (#36096)

* [Workspaces] Add move functionality

* spell checker

* [Workspaces] Modify Arranger to move apps without launch

* moved ipc helper

* removed callback

* use LauncherStatus in WindowArranger

* wait for launching next app

* launch in a separate thread and protect by mutexes

* update app version in advance

* changed canceling launch

* increased waiting time

* Fix optional parameter load from json

* changed arranger waiting time

* additional waiting time for Outlook

* added app id

* ensure ids before launch

* set id in editor

* minor updates

* [Workspaces] Move: Get the nearest window when moving a window

* [Workspaces] convert optional boolean to enum to avoid json problems

* Handle case when the new Application Property "moveIfExists" does not exist

* Re-implementing app-window pairing for moving feature.

* spell checker

* XAML formatting

* Fixing bug: IPC message not arriving

* spell checker

* Removing app-level-setting for move app. Also fixed compiler errors due styling.

* Updating editor window layout

* Re-implementing window positioning UI elements

* XAML formatting

* Code review findings

* Code cleanup

* Code cleanup

* Code cleanup

* code cleanup

* Code cleanup

* Code cleanup

* [Workspaces] Arranger: Reset wait timer after each successful arrange action

* fix merge error

---------

Co-authored-by: Seraphima <zykovas91@gmail.com>
Co-authored-by: donlaci <donlaci@yahoo.com>

* Upgrade to check-spelling v0.0.24 (#36235)

This upgrades to [v0.0.24](https://github.com/check-spelling/check-spelling/releases/tag/v0.0.24).

A number of GitHub APIs are being turned off shortly, so you need to upgrade or various uncertain outcomes will occur.

There's a new accessibility forbidden pattern:

> Do not use `(click) here` links
> For more information, see:
> * https://www.w3.org/QA/Tips/noClickHere
> * https://webaim.org/techniques/hypertext/link_text
> * https://granicus.com/blog/why-click-here-links-are-bad/
> * https://heyoka.medium.com/dont-use-click-here-f32f445d1021
```pl
(?i)(?:>|\[)(?:(?:click |)here|link|(?:read |)more)(?:</|\]\()
```

There are some minor bugs that I'm aware of and which I've fixed since this release, but I don't expect to make another release this month.

I've added a pair of patterns for includes and pragmas. My argument is that the **compiler** will _generally_ tell you if you've misspelled an include and the **linker** will _generally_ tell you if you misspell a lib.

- There's a caveat here: If your include case-insensitively matches the referenced file (but doesn't properly match it), then unless you either use a case-sensitive file system (as opposed to case-preserving) or beg clang to warn, you won't notice when you make this specific mistake -- this matters in that a couple of Windows headers (e.g. Unknwn.h) have particular case and repositories don't tend to consistently/properly write them.

* Adjust to community.md, shifting jerry's github user name (#36242)

Update COMMUNITY.md

* [AOT compatible] Resolve AOT Build Error in Peek.UI (#36194)

* add partial for aot support

* add Microsoft.NET.ILLink.Tasks to packages.props

* format

* Revert "format"

This reverts commit 742d5e2214.

* add Microsoft.NET.ILLink.Tasks to notice.md

* add auto reference

* update script to remove the 'Auto-reference line'

---------

Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>

* Awake Updates - `TILLSON_11272024` (#36049)

* Update with bug fixes for tray icon and support for parent process

* Process information enum

* Update the docs

* Fix spelling

* Make sure that PID is used in PT config flow

* Logic for checks based on #34148

* Update with link to PR

* Fixes #34717

* Small cleanup

* Proper task segmentation in a function

* Cleanup the code

* Fix synchronization context issue

* Update planning doc

* Test disabling caching to see if that manages to pass CI

* Cleanup to make sure that we're logging things properly.

* Update ci.yml

* Disable cache to pass CI

* Retry logic

* Cleanup

* Code cleanup

* Fixes #35848

* Update notes and codename

* After third attempt, log error instead of throwing exception

* More cleanup to avoid double execution

* Add expected word

* Safeguards for bad values for timed keep-awake

* More updates to make sure I am using uint

* Update error message

* Update packages

* Fix notice and revert CsWinRT upgrade

* Codename update

* Update expect.txt

* Update the struct

* Ensuring we're properly awaiting tray initialization

* Update to make sure tray reflects the bound process

* Cleanup, proper JSON serialization for logs.

* Not needed.

* Add command validation logic

* Moving the initialization logic earlier

* Make sure we show the display state in the tooltip

* Update tray string

* Update src/modules/awake/Awake/Core/Manager.cs

Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>

* Update src/modules/awake/Awake/Core/Manager.cs

Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>

* Update src/modules/awake/Awake/Core/Manager.cs

Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>

* Update src/modules/awake/Awake/Core/Manager.cs

Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>

* Update logic for icon resets

* Update doc

* Simplify function for setting mode shell icon

* Issues should be properly linked

* Minor cleanup

* Update timed behavior

---------

Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>
Co-authored-by: Clint Rutkas <clint@rutkas.com>

* [Workspaces] detecting right app version (#36100)

* [Workspaces] Add move functionality

* spell checker

* [Workspaces] Modify Arranger to move apps without launch

* moved ipc helper

* removed callback

* use LauncherStatus in WindowArranger

* wait for launching next app

* launch in a separate thread and protect by mutexes

* update app version in advance

* changed canceling launch

* increased waiting time

* Fix optional parameter load from json

* changed arranger waiting time

* additional waiting time for Outlook

* added app id

* ensure ids before launch

* set id in editor

* minor updates

* [Workspaces] Move: Get the nearest window when moving a window

* [Workspaces] convert optional boolean to enum to avoid json problems

* Handle case when the new Application Property "moveIfExists" does not exist

* Re-implementing app-window pairing for moving feature.

* spell checker

* XAML formatting

* Fixing bug: IPC message not arriving

* spell checker

* Removing app-level-setting for move app. Also fixed compiler errors due styling.

* Updating editor window layout

* Re-implementing window positioning UI elements

* XAML formatting

* Code review findings

* Code cleanup

* Code cleanup

* Code cleanup

* code cleanup

* Code cleanup

* Code cleanup

* [Workspaces] fix detection of specific version of apps

---------

Co-authored-by: Seraphima <zykovas91@gmail.com>
Co-authored-by: donlaci <donlaci@yahoo.com>

* Move the XamlStyler config to src/ (#36202)

my never ending goal to minimize files in the root dir

* [AdvancedPaste]Add Semantic Kernel opt-in to allow chaining of paste actions (#35902)

* [AdvancedPaste] Semantic Kernel support

* Changed log-line with potentially sensitive info

* Spellcheck issues

* Various improvements for Semantic Kernel

* Spellcheck issue

* Refactored Clipboard routines

* Added integration tests for KernelService

* Extra telemetry for AdvancedPaste

* Added 'Hotkey' suffix to AdvancedPaste_Settings telemetry event

* Added IsSavedQuery

* Added KernelQueryCache

* Refactoring

* Added KernelQueryCache to BugReportTool delete list

* Added opt-n for Semantic Kernel

* Fixed bug with KernelQueryCache

* Ability to view last AI chat message on error

* Improved kernel query cache

* Used System.IO.Abstractions and improved tests

* Fixed under-count of token usage

* Used Semantic Kernel icon

* Cleanup

* Add missing EndProject line

* Fix dependency version conflicts

* Fix NOTICE.md

* Correct place of SemanticKernel in NOTICE.md

* Unlinked CustomPreview toggle from AI

* Added Microsoft.Bcl.AsyncInterfaces dependency to AdvancedPaste

* Fixed NOTICE.md order

* Moved Custom Preview to behaviour section

* Made Image to Text raise error on empty output

* Added AIServiceBatchIntegrationTests

* Updated AIServiceBatchIntegrationTests

* Added prompt moderation

* Moved GPO Infobar to better location

* [Launcher]Port from WPF-UI to .NET 9 WPF (#36215)

* Initial implementation

* Fix fluent style

* Fix no endline

* Update expect.txt

* Fix formatting

* Fix light theme looking bad on Windows 10

* fix formatting

* test change

* Now really fixed W10

* Add a comment

* Fix typos

* Fix spellcheck errors

* Fix spellcheck pattern for websites

* Change patterns for spellcheck in the right file

* Fix XAML styling

* Fix contrast colors on W11

* Fix formatting

* Removed emty line

* Fix formatting

* Added comment to fluentHC file

* fix comment

* Fix Windows10 again.
Adress feedback.

* W11 fix chaning from high contrast to normal not having correct background

* W10 Fix high contrast not working after switching from light/dark moed

* Address feedback

* Fix formatting

* Second W11 fix chaning from high contrast to normal not having correct background

* [UX]Updating New+ and Settings icons (#36290)

* Updated icons

* Updating more icons and icos

* [Settings][Dashboard] Accessibility fixes (#36280)

* make narrator announce buttons/toggles

* add toggles module name

* [ci]Sign OpenAI dll that's not signed (#36299)

* Update CODEOWNERS to include gordon, jerry and kayla (#36308)

* Update CODEOWNERS

* Update names.txt

* Making the powertoys-code-owners team code owners (#36310)

* Update CODEOWNERS

* Update names.txt

* Update CODEOWNERS

* [FZEditor]Fix Create new layout dialog radio buttons IsChecked values  (#36320)

* 0.87 changelog (#36335)

* 0.87 changelog

* Fix spellcheck

* Update README.md

Co-authored-by: Heiko <61519853+htcfreek@users.noreply.github.com>

---------

Co-authored-by: Heiko <61519853+htcfreek@users.noreply.github.com>

* [PTRun]Fix WPF transparent border issue on Windows 10 (#36392)

* Added border on W10

* Added a comment

---------
Co-authored-by: Davide Giacometti <25966642+davidegiacometti@users.noreply.github.com>

* [PTRun]Fix .NET 9 crash in OneNote (#36417)

* Fix crash in OneNote Run

* added better comment

* [AdvancedPaste]Fix NullReferenceException on Dispose (#36428)

[AdvancedPaste] Fixed NullReferenceException on Dispose

* [Fuzz] Add fuzz testing for AdvancedPaste and new pipeline for onboarding OneFuzz (#36329)

* add fuzz

* install .net8

* add spelling check

* refine the pipeline

* add readme and update the test code

* fix spelling error

* change to weekly run

* Add New CI Pipeline for Latest WindowsAppSDK (#36282)

This PR introduces the following changes to the CI pipeline and version management:

Pipeline Enhancements:
1. Added a new script UpdateVersions.ps1 to automate the update of Microsoft.WindowsAppSDK versions across various project files.
2. Introduced a new pipeline configuration ci-using-the-latest-winappsdk.yml to build using the latest Microsoft.WindowsAppSDK.
3. Updated existing pipeline configurations to support the new useLatestWinAppSDK parameter.

Pipeline Configuration Updates:
1. Updated job-build-project.yml to handle the useLatestWinAppSDK parameter and adjust the RestoreAdditionalProjectSourcesArg accordingly.
2. Added a new template steps-update-winappsdk-and-restore-nuget.yml for updating and restoring NuGet packages with the latest Microsoft.WindowsAppSDK.
3. Added WinAPPSDK version selection, the pipeline can be manually triggered to use the specified version.

---------

Signed-off-by: Shawn Yuan <shuai.yuan.zju@gmail.com>
Co-authored-by: Clint Rutkas <clint@rutkas.com>

* [AOT compatible] Make HostsUILib become AOT compatible (#36136)

* Remove AOT configuration

* Refer to AOT compatibility props

---------

Co-authored-by: Yu Leng (from Dev Box) <yuleng@microsoft.com>

* [AOT compatible] Clean up some AOT build issue in FilePreviewCommon and MarkdownPreviewHandler (#36207)

* Use AppContext.BaseDirectory to replace assembly.GetExeAseembly.Location.
Fix json serilizer aot issue.

* clean up some AOT build issue

* Update src/modules/previewpane/MarkdownPreviewHandler/MarkdownPreviewHandlerControl.cs

Co-authored-by: Jeremy Sinclair <4016293+snickler@users.noreply.github.com>

* Update src/common/FilePreviewCommon/Formatters/JsonFormatter.cs

Co-authored-by: Jeremy Sinclair <4016293+snickler@users.noreply.github.com>

---------

Co-authored-by: Yu Leng (from Dev Box) <yuleng@microsoft.com>
Co-authored-by: Jeremy Sinclair <4016293+snickler@users.noreply.github.com>

* Add new pipeline using the latest webview2 from Edge Canary (#36317)

* using the latest webview2 for testing


---------

Signed-off-by: Shawn Yuan <shuai.yuan.zju@gmail.com>
Co-authored-by: Clint Rutkas <clint@rutkas.com>

* [Bug fix] Making the OpenAI key configuration page scrollable. (#36359)

* Fixed #34470

---------

Signed-off-by: Shawn Yuan <shuai.yuan.zju@gmail.com>

* [Bug fix] Add a format validation step before format conversion. (#36404)

This PR aims to fix the bug #35225 by introducing a new method IsJson to determine if a given text is in JSON format.
The IsJson method is then utilized in the ToJsonFromXmlOrCsvAsync method to optimize the processing logic.
If the text is already in JSON format, it is returned directly without further conversion from XML or CSV.

Co-authored-by: Heiko <61519853+htcfreek@users.noreply.github.com>

---------

Signed-off-by: Shawn Yuan <shuai.yuan.zju@gmail.com>
Co-authored-by: Heiko <61519853+htcfreek@users.noreply.github.com>

* Add more STCA team members (#36438)

* Add more STCA team members

* Include more spelling check errors

* Remove non-alpha in dictionary

* Add Zhaopeng Wang

* Fix spell checking error

* Remove "prerelease: true" (#36484)

* Remove "prerelease: true"

The Microsoft.WinGet.DSC module is GA so prerelease: true is no longer needed.

* Update expect.txt

fixing spellcheck warning

---------

Co-authored-by: Clint Rutkas <clint@rutkas.com>

* [Docs]Update README for 0.87.1 release (#36534)

* [CI] Enhance build Pipeline Reliability with Retry Logic and Improved Error Messaging (#36529)

* update pipeline with retry

* remove tests

* Add team member (#36590)

* [New+]Don't override New actions from Explorer on Windows 10 (#36467)

* [New+]Don't override New actions from Explorer

* Update src/modules/NewPlus/NewShellExtensionContextMenu.win10/shell_context_menu_win10.cpp

* Update src/modules/NewPlus/NewShellExtensionContextMenu.win10/shell_context_menu_win10.cpp

* Add pattern for learn.microsoft links

* Also only Query for context menu

* [PTRun][Calculator]Handle hexadecimal numbers to not return divide by 0 error (#36390)

* add '0x' handling for divide by 0 scenarios

* fix comment on division by 0 check

---------

Co-authored-by: Connor Plante <connor.plante@gmail.com>

* [TextExtractor]Minor UI/Accessibility fixes in the overlay UI (#36356)

minor UI and accessibility fixes

* [PTRun][Calculator]Update mages to v3.0.0 and support for `randi(n)` (#36560)

* update to mages 3.0.0

* allow randi() in calculator plugin

* fix tests and input validation

* fix spell check

* [QuickAccent]Added ć for Slovenian (#36336) (#36338)

* Fix snapping Workspaces Editor to Fancy Zones (#36463)

* Remove Workspaces Editor from Fancy Zone's excluded app list

* removed unused string

---------

Co-authored-by: Seraphima <zykovas91@gmail.com>

* [PTRun]Fix drag on .NET 9 WPF (#36635)

* [CQ]Continued to move stuff out of root - Solution.props (#36244)

* [QuickAccent]Add Proto-Indo-European (#36408)

* Add ḱ to PowerAccent for Proto-Indo-European

* Fix Spelling Check

* Add more letters to PIE

* Order PIE after PI

---------

Co-authored-by: Hao Liu (from Dev Box) <haoliu3@microsoft.com>
Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>

* [PTRun]Add context buttons for VSCodeWorkspaces plugin (#36517)

* [Settings][QuickAccent]Change 'character set' to plural form (#36565)

* [PTRun][Calculator]Fix unit tests on non-english systems (#36569)

* fix tests

* update comment

* [PTRun][Calc]Improve handling of non-base 10 numbers (#36700)

* [Settings][PTRun]Show plugin version and website (#36580)

* [Monaco]Add support for .resx and .resw preview support. (#36499)

Added support for .resx and .resw preview support. These files are XML based files so I added the file extensions as part of the registerAdditionalLanguage("xmlExt"...) function.

* [Settings] Add Workspaces' workspaces.json file to backup/restore list (#36714)

* [Localization] Fix loc pipeline to send downloaded localized files to TDBuild upon retry after failure (#36766)

* [AdvancedPaste]Fixed issues with Screen Reader integration (#36778)

* Remove Advent calendar from README (#36777)

* Remove Advent calendar from README

* Update hero image

* Delete doc/images/overview/PT_holiday_hero_image.png

* [AdvancedPaste]Add all BitmapDecoder supported image filetypes to ImageToText (#35600)

Adds support to ImageToText for all image filetypes supported by BitmapDecoder.

* [AOT]Clean up some AOT build issues in PowerAccent.Core (#36264)

* init

* Use AotCompatibility instead

* Replace typeof(Lanaguge) with GetValues<Language>

* Create new folder to place source generation context file.

---------

Co-authored-by: Yu Leng (from Dev Box) <yuleng@microsoft.com>

* [WinUI3]Fix Windows 10 title bar borders (#36429)

* Fix borders for windows in the Settings UI

* Fix HOSTS window

* Fix Advanced Paste

* Fix Environment Variables

* Fix File Locksmith

* Fix Peek, with a caveat

* Fix Registry Preview

* Remove unused imports

* Clean up imports in OobeShellPage

* Move OSVersionHelper from Common.UI up into ManagedCommon

* [QuickAccent]Fix unstable language loading (#36721)

* [Peek]Bring into foreground if previously minimized (#36506)

Added Activate() to bring Peek.UI window into focus upon Toggle. This allows the UI to be presented even if it was previously minimized.

* Update Run docs README (#36857)

* Update Run docs README

* Remove System dupe

* [Monaco]Make minimap toggleable (#33742)

* [Monaco]Fix Json format preview setting (#36867)

* [KBM]Added option for exact match shortcut (#36000)

* Added option for exact match shortcut

* Fix spell-check

* [Deps][Security]Update .NET Packages from 9.0.0 to 9.0.1  (#36879)

* [Deps] Update NuGet packages to version 9.0.1

Updated several NuGet packages from version 9.0.0 to 9.0.1, including:
- Microsoft.Data.Sqlite
- Microsoft.Bcl.AsyncInterfaces
- Microsoft.Extensions.DependencyInjection
- Microsoft.Extensions.Logging
- Microsoft.Extensions.Logging.Abstractions
- Microsoft.Extensions.Hosting
- Microsoft.Extensions.Hosting.WindowsServices
- Microsoft.Win32.SystemEvents
- Microsoft.Windows.Compatibility
- System.CodeDom
- System.ComponentModel.Composition
- System.Configuration.ConfigurationManager
- System.Data.OleDb
- System.Diagnostics.EventLog
- System.Diagnostics.PerformanceCounter
- System.Drawing.Common
- System.Management
- System.Runtime.Caching
- System.ServiceProcess.ServiceController
- System.Text.Encoding.CodePages
- System.Text.Json

* [Deps] Update NOTICE.md

* [Peek]Fix using the correct Monaco assets at runtime (#36890)

* [Workspaces] fixing bug: editor starts outside of visible desktop area (#36769)

* [Workspaces] fixing bug: editor starts outside of visible desktop area

* Update src/modules/Workspaces/WorkspacesEditor/MainWindow.xaml.cs

Co-authored-by: Seraphima Zykova <zykovas91@gmail.com>

---------

Co-authored-by: Seraphima Zykova <zykovas91@gmail.com>

* [Workspaces] Saving app properties on launch and recapture (#36751)

* [Workspaces] Implementing set and get GUID to/from HWND to distinguish windows moved by the Workspaces tool

* After launch and capture copy the CLI args from the "original" project

* Fix getting GUID

* spell check

* modification to be able to handle different data sizes on different systems

* code optimisation

* Replacing string parameter by InvokePoint

* renaming variable

* [AdvancedPaste]Use background thread for interactions between runner and Advanced Paste (#36858)

* [Advanced Paste] Use background thread for runner-Advanced Paste interaction

* Fixed typo

* [VCM]Deprecate the Video Conference Mute utility (#36772)

* Remove all VideoConferenceMute related code and files

* Clean up vcm driver registry keys

* Also remove the Webcam report tool

* Also clean out video conference on the installer

* Fix spellcheck

* Remove comment about video conf

* Update gpo files revision

* Revert removing the VCM policies

* Deprecate VCM GPO policy

* Change deprecation message to show first supported version

* Tweak supported strings in the adml

* Goodbye friends, you are forever part of the team (#36905)

* Goodbye friends

Forever part of the team 😢

* Update COMMUNITY.md

* Fix formatting issues in COMMUNITY.md

* [New utility]Sysinternals ZoomIt (#35880)

* ZoomIt initial code dump

* Change vcxproj to normalize dependency versions

* Fix code quality to build

* Add to PowerToys solution

* Clean out C-style casts

* Fix some more analyzer errors

* Constexpr a function

* Disable some warnings locally that it seemed better not to touch

* Add ZoomIt module interface

* Add GPO

* Add Settings page with Enable button

* Output as PowerToys.ZoomIt.exe

* Extract ZoomIt Settings definition to its own header

* Make ZoomItModuleInterface build with ZoomItSettings too

* WinRT C++ interop for ZoomItSettings

* From Registry To PowerToys Json

* Properly fix const_cast analyzer error

* Initial Settings page loading from registry

* Zoom mode settings

* Save settings

* Add file picker and DemoType file support

* Remaining DemoType settings

* Have ZoomIt properly reloading Settings and exiting

* Remove context menu entries for Options and Exit

* ZoomIt simple Break Options

* Break advanced options

* Simple Record settings

* Record Microphone setting

* Fix break background file picker title

* Font setting

* Fix build issues after merge

* Add ZoomIt conflict warning to Settings

* Exclude Eula from spell checking

* Fix spellcheck errors

* Fix spell check for accelerated menu items

* Remove cursor files from spellcheck. They're binary

* Fix forbidden patterns

* Fix XAML style

* Fix C# analyzers

* Fix signing

* Also sign module interface dll

* Use actual ZoomIt icon

* Add OOBE page for ZoomIt

* ZoomIt image for Settings

* Flyout and Dashboard entries

* Fix type speed slider labels

* Correctly load default Font

* Correctly register shortcuts on ZoomIt startup first run

* Fix modifier keys not changing until restart

* Show MsgBox on taken shortcut

* Start PowerToys Settings

* Normalize ZoomIt file properties with rest of PowerToys

* Add attribution

* Add ZoomIt team to Community.md

* More copyright adjustments

* Fix spellcheck

* Fix MsgBox simultaneous instance to the front

* Add mention of capturevideosample code use

* Add ZoomIt to process lists

* Add telemetry

* Add logging

* React to gpo

* Normalize code to space identation

* Fix installer build

* Localize percent setting

* Fix XAML styling

* Update src/settings-ui/Settings.UI/Strings/en-us/Resources.resw

Co-authored-by: Stefan Markovic <57057282+stefansjfw@users.noreply.github.com>

* Fix spellcheck

* One more spellcheck fix

* Integrate LiveDraw feature changes from upstream

* Fix name reuse in same scope

* Fix c-style casts

* Also register LIVEDRAW_HOTKEY

* Fix newLiveZoomToggleKey

* Update LiveZoom description in Settings to take LiveDraw into account

* Fix spellcheck

* Fix more spellcheck

* Fix Sysinternals capitalization

* Fix ARM64 Debug build

* Support Sysinternals build (#36873)

* Remove unneeded files

* Make build compatible with Sysinternals

* Separate PowerToys ZoomIt product name (#36887)

* Separate PowerToys ZoomIt product name

To help maintain the Sysinternals branding in the standalone version.

* Clarify branding-related includes

* Remove ZoomIt.sln

* Add foxmsft to spell-check names

* Add ZoomIt to README

* Add ZoomIt to GH templates

* Add ZoomIt events to DATA_AND_PRIVACY.md

* Remove publish_config.json

* Remove publish_config.json from vcxproj too

---------

Co-authored-by: Mark Russinovich <markruss@microsoft.com>
Co-authored-by: Alex Mihaiuc <69110671+foxmsft@users.noreply.github.com>
Co-authored-by: John Stephens <johnstep@microsoft.com>
Co-authored-by: Stefan Markovic <57057282+stefansjfw@users.noreply.github.com>

* [PTRun]Add hotkey to the show telemetry event (#36869)

* [PTRun]Update the code for .NET 9.0.1 - remove workarounds (#36909)

* Revove some unneeded changes after pdating to .net9.1

* [RegistryPreview]Copy context menu, data tooltip, MULTI_SZ fix (#36631)

* add context menus

* string resources for contextmenu

* fix line break parsing for MULTI_SZ

* better presentation of multiline values and value tooltip

* cleanup

* [MWB] - refactoring "Common" classes - Common.Log.cs, Common.Receiver.cs (#35726)

* [PTRun]Add setting for different trigonometric units in Calculator (#36717)

* Added angle units to PowerToys Run Calculator plugin.

* Update Resources.resx

* Added GitHub SpellCheck rule for 'gradians'.

---------

Co-authored-by: Heiko <61519853+htcfreek@users.noreply.github.com>

* [ci]Remove steps to build abstracted utilities packages (#36934)

* [Settings]Update GPO infobar icon, improve some pages and fix bugs (#33703)

* changes part 1

* fix xaml code

* changes part 2

* fix cmdNotFound page

* Update PowerOcrPage

* More Pages changed

* More Pages changed

* revert temporary change

* fix spelling

* add resw comment

* add resw comment

* Update MouseWihtoutBorderPage.xaml

* PowerPreview page

* workspaces page

* fix awake page gpo handling

* NewPlus page

* update new+ page!

* AdvancedPaste.xaml: Move Info bar.

* Update MouseJumpPanel.xaml

* Update GeneralPage.xaml

* fix position of info bar and some ui quirks

* fix xaml style

* fix string resources

* string changes

* prepare megre main

* update new+ page

* zoomit page

* various fixes

* [Common]NotificationUtil helper class with FileWatcher (#36720)

* add NotificationUtil helper with file watcher and cache

* fix spellcheck

* indentation

* [PTRun][Docs]Add YubicoOauthOTP to Third-Party plugins (#36761)

* [PTRun]Fixed typo in Value Generator messages (#36951)

* [AOT] Clean up some AOT issues in Advanced Paste module (#36297)

* Clean up the aot build issue.

* Merge main and clean up new AOT build issue

* Update LogEvent define.

* Update src/modules/AdvancedPaste/AdvancedPaste/Helpers/LogEvent.cs

Co-authored-by: Jeremy Sinclair <4016293+snickler@users.noreply.github.com>

* update typo bug

* Remove unused allow list item

* Create a new folder to place source generation context

* Merge main and rename LogEvent to AIServiceFormatEvent

---------

Co-authored-by: Yu Leng (from Dev Box) <yuleng@microsoft.com>
Co-authored-by: Jeremy Sinclair <4016293+snickler@users.noreply.github.com>

* [ZoomIt]React to gpo setting when run as standalone (#36975)

* [Settings]ImageResizer settings accessibility updates, fixes and refactor (#36903)

* Fix issue with missing Image Resizer unit and fit information in settings description.

* Fix accessibility issues on Edit and Remove buttons. Fix various issues and refactor view model and ImageSize. New resources for accessibility text formats.

* Fix unit test because of change to new preset width and height. Fix 2 unit tests having incorrect expected/actual orderings.

* Post-review update: accessibility strings now formatted within the converter, instead of via format strings; simplified encoder GUID collection declaration and retrieval.

* Minor example text fix.

* [Settings]Update "Back up" mentions when it should be used as a verb (#36965)

* Update Back up name

* Rename Backup to Back up

* [New+]Update last modified date to now for all templates created (#36133)

* Update last modified date to now for all templates created

* Now also set last update for directories. Thank you htcfreek!

* [ImageResizer][ci]Fix XAML style errors (#37009)

* [Settings] Add "new" labels to navigation for new utilities (#36939)

* initial implementation

* move new label to zoomit

* cleanup

* more cleanup

* fix XAML formatting

* update padding to 4px

* add badge to dashboard item

* fix XAML formatting

* Tweaking UX

---------

Co-authored-by: Niels Laute <niels.laute@live.nl>
Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>

* [MWB]Fix helper process termination issue in service mode (#36892)

* [MWB] Changed to suppress the flow of the execution context

* Fix build after merge

* [MWB] Fix helper process termination issue in service mode

* Add some comments

* [runner]Fix crashes caused by wrong setting AllowDataDiagnostics registry value (#37015)

* Fix setting registry value

* Prevent future similar crashes

* [PTRun][Calculator]Error check when loading trigonometry mode (#37033)

* [ZoomIt]Fix transparent draw after changing another setting (#37042)

* [Settings]Fix ZoomIt page changing current directory (#37052)

* [ci]Remove vc tools version workaround (#37098)

* 0.88 changelog (#37056)

* 0.88 changelog

* Update README.md

Co-authored-by: Clint Rutkas <clint@rutkas.com>

* Add installer hashes

* Fix aka.ms link for ZoomIt

* Add mention to the PTRun plugin's dll file version

* Update README.md

Co-authored-by: Kayla Cinnamon <cinnamon@microsoft.com>

---------

Co-authored-by: Clint Rutkas <clint@rutkas.com>
Co-authored-by: Kayla Cinnamon <cinnamon@microsoft.com>

* Update README.md - update What's Planned to 0.89 (#37157)

Update README.md

Just a tiny update, as reference to 0.88 was missed.

* [ci]Proper workaround for the vc tools version check (#37130)

* Revert "[ci]Remove vc tools version workaround (#37098)"

This reverts commit 2c069ce708.

* Adopt the same workaround as in Terminal

* build: add a couple more signing variables to ESRP (#37328)

This is in support of some identity changes we need to make.

---------

Signed-off-by: Shawn Yuan <shuai.yuan.zju@gmail.com>
Co-authored-by: Laszlo Nemeth <57342539+donlaci@users.noreply.github.com>
Co-authored-by: Seraphima <zykovas91@gmail.com>
Co-authored-by: donlaci <donlaci@yahoo.com>
Co-authored-by: Ionuț Manța <ionut@janeasystems.com>
Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>
Co-authored-by: Jeremy Sinclair <4016293+snickler@users.noreply.github.com>
Co-authored-by: Ani <115020168+drawbyperpetual@users.noreply.github.com>
Co-authored-by: PesBandi <127593627+PesBandi@users.noreply.github.com>
Co-authored-by: Wenjian Chern <55335597+Sophanatprime@users.noreply.github.com>
Co-authored-by: Youssef Victor <youssefvictor00@gmail.com>
Co-authored-by: Clint Rutkas <clint@rutkas.com>
Co-authored-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
Co-authored-by: leileizhang <leilzh@microsoft.com>
Co-authored-by: Den Delimarsky 🔐 <sign@den.dev>
Co-authored-by: Niels Laute <niels.laute@live.nl>
Co-authored-by: Davide Giacometti <25966642+davidegiacometti@users.noreply.github.com>
Co-authored-by: Heiko <61519853+htcfreek@users.noreply.github.com>
Co-authored-by: Shuai Yuan <128874481+shuaiyuanxx@users.noreply.github.com>
Co-authored-by: moooyo <42196638+moooyo@users.noreply.github.com>
Co-authored-by: Yu Leng (from Dev Box) <yuleng@microsoft.com>
Co-authored-by: Jerry Xu <n.xu@outlook.com>
Co-authored-by: Demitrius Nelon <denelon@microsoft.com>
Co-authored-by: Kai Tao <69313318+vanzue@users.noreply.github.com>
Co-authored-by: Connor Plante <150482134+plante-msft@users.noreply.github.com>
Co-authored-by: Connor Plante <connor.plante@gmail.com>
Co-authored-by: Domen Soklič <soklicd@gmail.com>
Co-authored-by: Hao Liu <liuhaobupt@163.com>
Co-authored-by: Hao Liu (from Dev Box) <haoliu3@microsoft.com>
Co-authored-by: immi <iafullprogrammer@gmail.com>
Co-authored-by: Asif Islam <77113884+asif4318@users.noreply.github.com>
Co-authored-by: Kayla Cinnamon <cinnamon@microsoft.com>
Co-authored-by: Dave Rayment <dave.rayment@gmail.com>
Co-authored-by: Neil McAlister <pingzing@users.noreply.github.com>
Co-authored-by: Mark Russinovich <markruss@microsoft.com>
Co-authored-by: Alex Mihaiuc <69110671+foxmsft@users.noreply.github.com>
Co-authored-by: John Stephens <johnstep@microsoft.com>
Co-authored-by: Michael Clayton <mike@kingslandconsulting.co.uk>
Co-authored-by: Nathan Gill <nathan.j.gill@outlook.com>
Co-authored-by: Daniel Nilsson <daniel.nilsson1989@gmail.com>
Co-authored-by: JackStuart <jack@jstuart.io>
Co-authored-by: Christian Gaarden Gaardmark <cgaarden@hotmail.com>
Co-authored-by: YDKK <YDKK@users.noreply.github.com>
Co-authored-by: Dustin L. Howett <duhowett@microsoft.com>
2025-02-06 15:45:51 -06:00
Mike Griese
2f3efa3e46 Change the default hotkey to Win+alt+space (#405)
Title

This is just a much simpler keybind. It harkens the mind to `alt+space`, without actually stealing that keybinding. 

I recommend `ctrl+alt+space` for the dev version (though, I'm not setting that for you)
2025-02-06 05:39:57 -06:00
Mike Griese
96404f02b2 Pilfer TypedEventHandlerExtensions from WCT (#404)
I think this pilfers the `InvokeAsync` as mentioned in #333

WE can't use the actual version for the same reason we can't use that one TryEnqueue extension - the WCT MD Text block we're on uses a different version of the WCT than the latest version, so the two get confused. 

We can remove this pilfered copy after either #245 or #219

Closes #333
2025-02-06 05:39:38 -06:00
Mike Griese
da40c449bd Separate out the nuget, CmdPal, and PT versions (#406)
Fixes #345 

This adds a pair of variables to allow us to set the CmdPal version separately from the PT version.

Also fixes up some naming of the nuget package
2025-02-05 10:11:50 -06:00
Stefan Markovic
b9322373b6 Merge upstream PT #10 (#402)
* [Workspaces] implement the move feature (#35480)

* [Workspaces] Add move functionality

* spell checker

* [Workspaces] Modify Arranger to move apps without launch

* moved ipc helper

* removed callback

* use LauncherStatus in WindowArranger

* wait for launching next app

* launch in a separate thread and protect by mutexes

* update app version in advance

* changed canceling launch

* increased waiting time

* Fix optional parameter load from json

* changed arranger waiting time

* additional waiting time for Outlook

* added app id

* ensure ids before launch

* set id in editor

* minor updates

* [Workspaces] Move: Get the nearest window when moving a window

* [Workspaces] convert optional boolean to enum to avoid json problems

* Handle case when the new Application Property "moveIfExists" does not exist

* Re-implementing app-window pairing for moving feature.

* spell checker

* XAML formatting

* Fixing bug: IPC message not arriving

* spell checker

* Removing app-level-setting for move app. Also fixed compiler errors due styling.

* Updating editor window layout

* Re-implementing window positioning UI elements

* XAML formatting

* Code review findings

* Code cleanup

* Code cleanup

* Code cleanup

* code cleanup

* Code cleanup

* Code cleanup

* fix Move attribute after launch and snapshot

* Extend WindowArranger with PWA functionality to detect different PWA apps. PwaHelper moved to the common library

* fix repeat counter in the editor

* Code optimization

* code cleanup, optimization

* fix double-processing window

---------

Co-authored-by: Seraphima <zykovas91@gmail.com>
Co-authored-by: donlaci <donlaci@yahoo.com>

* [KeyboardManager]Fix mapping shift to numpad (#35890)

* Keyboard Manger fix numpad as shift

Fixed shift not being released if a numpad key as shift.

* Added comments

* Fix typo

* Fix the numpad unlocked key not working if the locked version is overridden by shift

* Fix spelling check.

* Revert the VK_CLEAR change.

---------

Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>

* [Analyzers] Update .editorconfig with rules to relax IDE errors (#36095)

* [Analyzers] Remove duplicate pascal case style from .editorconfig

* [Analyzers] Configured severity for individual IDE and CA rules showing as errors in VS

Set severity for IDE0005, IDE0008, IDE0016, IDE0018, IDE0019, IDE0021, IDE0022, IDE0023, IDE0025, IDE0027, IDE0028, IDE0029, IDE0031, IDE0032, IDE0034, IDE0036, IDE0039, IDE0042, IDE0044, IDE0045, IDE0046, IDE0047, IDE0057, IDE0051, IDE0052, IDE0054, IDE0055, IDE0056, IDE0057, IDE0059, IDE0060, IDE0061, IDE0063, IDE0071, IDE0073, IDE0074, IDE0075, IDE0077, IDE0078, IDE0083, IDE0090, IDE0100, IDE0130, IDE160, IDE180, IDE0200, IDE0240, IDE0250, IDE0251, IDE0260, IDE0270, IDE0290, IDE0300, IDE0301, IDE0305, IDE1005, IDE1006, CA1859, CA2022, CA2263

* [Analyzers] Fix mismatched analyzer descriptions

* [Analyzers] Fix misspelling

* Update .editorconfig

Made the following style rules `silent` instead of `suggestion`: 
- Use explicit type instead of 'var'
- Use expression body for ...
- Use block-scoped namespace

* [Analyzers] Set IDE0290 to silent

* [Analyzers] Remove IDE1006 configuration from .editorconfig in favor of making exclusions for the few entries

* [Analyzers][Indexer] Add IDE1006 suppressions

* [Analyzers][Peek] Add IDE1006 suppression

* [Analyzers][MWB] Add IDE1006 suppression.

* [Analyzers][Plugins] Add IDE1006 suppression

* [Analyzers][ImageResizer] Suppress IDE0073 to retain original copyright

* [Analyzers] Remove IDE0073 severity change in .editorconfig

---------

Co-authored-by: Ani <115020168+drawbyperpetual@users.noreply.github.com>

* [Workspaces] PWA follow-up (#36217)

* [PTRun][Calculator]Allow scientific notation with lowercase 'e' (#36187)

* [Workspaces] Add encoder parameter to bitmap.save() (#36228)

* [Workspaces] Add encoder parameter to bitmap.save()

* 1 more call fixed

* Move repeated code to the csharp library

* [Workspaces] Implement store of app window's size and position (#36086)

* [Workspaces] Implement store of app window's size and position

* Modifying the default values to -1. The program will use the original default values for the first run.

* [ScreenRuler]Add setting to show the measurement in an extra unit (#35887)

* display ruler: supporting millimeter and other units

* Measurement Tool: UI Setting for an extra unit

* Update images

* spelling

* spelling

* suit code style

* Fix for code review

* remove weird file

* rename field

* [Deps]Update MSTest from 3.5.0 to 3.6.3 (#36115)

* Update MSTest from 3.5.0 to 3.6.3

* Use STA attributes that are now part of MSTest

* Adding Jerry to community.md (#36232)

Update COMMUNITY.md

* [Workspaces] Arranger: smart timer (#36096)

* [Workspaces] Add move functionality

* spell checker

* [Workspaces] Modify Arranger to move apps without launch

* moved ipc helper

* removed callback

* use LauncherStatus in WindowArranger

* wait for launching next app

* launch in a separate thread and protect by mutexes

* update app version in advance

* changed canceling launch

* increased waiting time

* Fix optional parameter load from json

* changed arranger waiting time

* additional waiting time for Outlook

* added app id

* ensure ids before launch

* set id in editor

* minor updates

* [Workspaces] Move: Get the nearest window when moving a window

* [Workspaces] convert optional boolean to enum to avoid json problems

* Handle case when the new Application Property "moveIfExists" does not exist

* Re-implementing app-window pairing for moving feature.

* spell checker

* XAML formatting

* Fixing bug: IPC message not arriving

* spell checker

* Removing app-level-setting for move app. Also fixed compiler errors due styling.

* Updating editor window layout

* Re-implementing window positioning UI elements

* XAML formatting

* Code review findings

* Code cleanup

* Code cleanup

* Code cleanup

* code cleanup

* Code cleanup

* Code cleanup

* [Workspaces] Arranger: Reset wait timer after each successful arrange action

* fix merge error

---------

Co-authored-by: Seraphima <zykovas91@gmail.com>
Co-authored-by: donlaci <donlaci@yahoo.com>

* Upgrade to check-spelling v0.0.24 (#36235)

This upgrades to [v0.0.24](https://github.com/check-spelling/check-spelling/releases/tag/v0.0.24).

A number of GitHub APIs are being turned off shortly, so you need to upgrade or various uncertain outcomes will occur.

There's a new accessibility forbidden pattern:

> Do not use `(click) here` links
> For more information, see:
> * https://www.w3.org/QA/Tips/noClickHere
> * https://webaim.org/techniques/hypertext/link_text
> * https://granicus.com/blog/why-click-here-links-are-bad/
> * https://heyoka.medium.com/dont-use-click-here-f32f445d1021
```pl
(?i)(?:>|\[)(?:(?:click |)here|link|(?:read |)more)(?:</|\]\()
```

There are some minor bugs that I'm aware of and which I've fixed since this release, but I don't expect to make another release this month.

I've added a pair of patterns for includes and pragmas. My argument is that the **compiler** will _generally_ tell you if you've misspelled an include and the **linker** will _generally_ tell you if you misspell a lib.

- There's a caveat here: If your include case-insensitively matches the referenced file (but doesn't properly match it), then unless you either use a case-sensitive file system (as opposed to case-preserving) or beg clang to warn, you won't notice when you make this specific mistake -- this matters in that a couple of Windows headers (e.g. Unknwn.h) have particular case and repositories don't tend to consistently/properly write them.

* Adjust to community.md, shifting jerry's github user name (#36242)

Update COMMUNITY.md

* [AOT compatible] Resolve AOT Build Error in Peek.UI (#36194)

* add partial for aot support

* add Microsoft.NET.ILLink.Tasks to packages.props

* format

* Revert "format"

This reverts commit 742d5e2214.

* add Microsoft.NET.ILLink.Tasks to notice.md

* add auto reference

* update script to remove the 'Auto-reference line'

---------

Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>

* Awake Updates - `TILLSON_11272024` (#36049)

* Update with bug fixes for tray icon and support for parent process

* Process information enum

* Update the docs

* Fix spelling

* Make sure that PID is used in PT config flow

* Logic for checks based on #34148

* Update with link to PR

* Fixes #34717

* Small cleanup

* Proper task segmentation in a function

* Cleanup the code

* Fix synchronization context issue

* Update planning doc

* Test disabling caching to see if that manages to pass CI

* Cleanup to make sure that we're logging things properly.

* Update ci.yml

* Disable cache to pass CI

* Retry logic

* Cleanup

* Code cleanup

* Fixes #35848

* Update notes and codename

* After third attempt, log error instead of throwing exception

* More cleanup to avoid double execution

* Add expected word

* Safeguards for bad values for timed keep-awake

* More updates to make sure I am using uint

* Update error message

* Update packages

* Fix notice and revert CsWinRT upgrade

* Codename update

* Update expect.txt

* Update the struct

* Ensuring we're properly awaiting tray initialization

* Update to make sure tray reflects the bound process

* Cleanup, proper JSON serialization for logs.

* Not needed.

* Add command validation logic

* Moving the initialization logic earlier

* Make sure we show the display state in the tooltip

* Update tray string

* Update src/modules/awake/Awake/Core/Manager.cs

Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>

* Update src/modules/awake/Awake/Core/Manager.cs

Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>

* Update src/modules/awake/Awake/Core/Manager.cs

Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>

* Update src/modules/awake/Awake/Core/Manager.cs

Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>

* Update logic for icon resets

* Update doc

* Simplify function for setting mode shell icon

* Issues should be properly linked

* Minor cleanup

* Update timed behavior

---------

Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>
Co-authored-by: Clint Rutkas <clint@rutkas.com>

* [Workspaces] detecting right app version (#36100)

* [Workspaces] Add move functionality

* spell checker

* [Workspaces] Modify Arranger to move apps without launch

* moved ipc helper

* removed callback

* use LauncherStatus in WindowArranger

* wait for launching next app

* launch in a separate thread and protect by mutexes

* update app version in advance

* changed canceling launch

* increased waiting time

* Fix optional parameter load from json

* changed arranger waiting time

* additional waiting time for Outlook

* added app id

* ensure ids before launch

* set id in editor

* minor updates

* [Workspaces] Move: Get the nearest window when moving a window

* [Workspaces] convert optional boolean to enum to avoid json problems

* Handle case when the new Application Property "moveIfExists" does not exist

* Re-implementing app-window pairing for moving feature.

* spell checker

* XAML formatting

* Fixing bug: IPC message not arriving

* spell checker

* Removing app-level-setting for move app. Also fixed compiler errors due styling.

* Updating editor window layout

* Re-implementing window positioning UI elements

* XAML formatting

* Code review findings

* Code cleanup

* Code cleanup

* Code cleanup

* code cleanup

* Code cleanup

* Code cleanup

* [Workspaces] fix detection of specific version of apps

---------

Co-authored-by: Seraphima <zykovas91@gmail.com>
Co-authored-by: donlaci <donlaci@yahoo.com>

* Move the XamlStyler config to src/ (#36202)

my never ending goal to minimize files in the root dir

* [AdvancedPaste]Add Semantic Kernel opt-in to allow chaining of paste actions (#35902)

* [AdvancedPaste] Semantic Kernel support

* Changed log-line with potentially sensitive info

* Spellcheck issues

* Various improvements for Semantic Kernel

* Spellcheck issue

* Refactored Clipboard routines

* Added integration tests for KernelService

* Extra telemetry for AdvancedPaste

* Added 'Hotkey' suffix to AdvancedPaste_Settings telemetry event

* Added IsSavedQuery

* Added KernelQueryCache

* Refactoring

* Added KernelQueryCache to BugReportTool delete list

* Added opt-n for Semantic Kernel

* Fixed bug with KernelQueryCache

* Ability to view last AI chat message on error

* Improved kernel query cache

* Used System.IO.Abstractions and improved tests

* Fixed under-count of token usage

* Used Semantic Kernel icon

* Cleanup

* Add missing EndProject line

* Fix dependency version conflicts

* Fix NOTICE.md

* Correct place of SemanticKernel in NOTICE.md

* Unlinked CustomPreview toggle from AI

* Added Microsoft.Bcl.AsyncInterfaces dependency to AdvancedPaste

* Fixed NOTICE.md order

* Moved Custom Preview to behaviour section

* Made Image to Text raise error on empty output

* Added AIServiceBatchIntegrationTests

* Updated AIServiceBatchIntegrationTests

* Added prompt moderation

* Moved GPO Infobar to better location

* [Launcher]Port from WPF-UI to .NET 9 WPF (#36215)

* Initial implementation

* Fix fluent style

* Fix no endline

* Update expect.txt

* Fix formatting

* Fix light theme looking bad on Windows 10

* fix formatting

* test change

* Now really fixed W10

* Add a comment

* Fix typos

* Fix spellcheck errors

* Fix spellcheck pattern for websites

* Change patterns for spellcheck in the right file

* Fix XAML styling

* Fix contrast colors on W11

* Fix formatting

* Removed emty line

* Fix formatting

* Added comment to fluentHC file

* fix comment

* Fix Windows10 again.
Adress feedback.

* W11 fix chaning from high contrast to normal not having correct background

* W10 Fix high contrast not working after switching from light/dark moed

* Address feedback

* Fix formatting

* Second W11 fix chaning from high contrast to normal not having correct background

* [UX]Updating New+ and Settings icons (#36290)

* Updated icons

* Updating more icons and icos

* [Settings][Dashboard] Accessibility fixes (#36280)

* make narrator announce buttons/toggles

* add toggles module name

* [ci]Sign OpenAI dll that's not signed (#36299)

* Update CODEOWNERS to include gordon, jerry and kayla (#36308)

* Update CODEOWNERS

* Update names.txt

* Making the powertoys-code-owners team code owners (#36310)

* Update CODEOWNERS

* Update names.txt

* Update CODEOWNERS

* [FZEditor]Fix Create new layout dialog radio buttons IsChecked values  (#36320)

* 0.87 changelog (#36335)

* 0.87 changelog

* Fix spellcheck

* Update README.md

Co-authored-by: Heiko <61519853+htcfreek@users.noreply.github.com>

---------

Co-authored-by: Heiko <61519853+htcfreek@users.noreply.github.com>

* [PTRun]Fix WPF transparent border issue on Windows 10 (#36392)

* Added border on W10

* Added a comment

---------
Co-authored-by: Davide Giacometti <25966642+davidegiacometti@users.noreply.github.com>

* [PTRun]Fix .NET 9 crash in OneNote (#36417)

* Fix crash in OneNote Run

* added better comment

* [AdvancedPaste]Fix NullReferenceException on Dispose (#36428)

[AdvancedPaste] Fixed NullReferenceException on Dispose

* [Fuzz] Add fuzz testing for AdvancedPaste and new pipeline for onboarding OneFuzz (#36329)

* add fuzz

* install .net8

* add spelling check

* refine the pipeline

* add readme and update the test code

* fix spelling error

* change to weekly run

* Add New CI Pipeline for Latest WindowsAppSDK (#36282)

This PR introduces the following changes to the CI pipeline and version management:

Pipeline Enhancements:
1. Added a new script UpdateVersions.ps1 to automate the update of Microsoft.WindowsAppSDK versions across various project files.
2. Introduced a new pipeline configuration ci-using-the-latest-winappsdk.yml to build using the latest Microsoft.WindowsAppSDK.
3. Updated existing pipeline configurations to support the new useLatestWinAppSDK parameter.

Pipeline Configuration Updates:
1. Updated job-build-project.yml to handle the useLatestWinAppSDK parameter and adjust the RestoreAdditionalProjectSourcesArg accordingly.
2. Added a new template steps-update-winappsdk-and-restore-nuget.yml for updating and restoring NuGet packages with the latest Microsoft.WindowsAppSDK.
3. Added WinAPPSDK version selection, the pipeline can be manually triggered to use the specified version.

---------

Signed-off-by: Shawn Yuan <shuai.yuan.zju@gmail.com>
Co-authored-by: Clint Rutkas <clint@rutkas.com>

* [AOT compatible] Make HostsUILib become AOT compatible (#36136)

* Remove AOT configuration

* Refer to AOT compatibility props

---------

Co-authored-by: Yu Leng (from Dev Box) <yuleng@microsoft.com>

* [AOT compatible] Clean up some AOT build issue in FilePreviewCommon and MarkdownPreviewHandler (#36207)

* Use AppContext.BaseDirectory to replace assembly.GetExeAseembly.Location.
Fix json serilizer aot issue.

* clean up some AOT build issue

* Update src/modules/previewpane/MarkdownPreviewHandler/MarkdownPreviewHandlerControl.cs

Co-authored-by: Jeremy Sinclair <4016293+snickler@users.noreply.github.com>

* Update src/common/FilePreviewCommon/Formatters/JsonFormatter.cs

Co-authored-by: Jeremy Sinclair <4016293+snickler@users.noreply.github.com>

---------

Co-authored-by: Yu Leng (from Dev Box) <yuleng@microsoft.com>
Co-authored-by: Jeremy Sinclair <4016293+snickler@users.noreply.github.com>

* Add new pipeline using the latest webview2 from Edge Canary (#36317)

* using the latest webview2 for testing


---------

Signed-off-by: Shawn Yuan <shuai.yuan.zju@gmail.com>
Co-authored-by: Clint Rutkas <clint@rutkas.com>

* [Bug fix] Making the OpenAI key configuration page scrollable. (#36359)

* Fixed #34470

---------

Signed-off-by: Shawn Yuan <shuai.yuan.zju@gmail.com>

* [Bug fix] Add a format validation step before format conversion. (#36404)

This PR aims to fix the bug #35225 by introducing a new method IsJson to determine if a given text is in JSON format.
The IsJson method is then utilized in the ToJsonFromXmlOrCsvAsync method to optimize the processing logic.
If the text is already in JSON format, it is returned directly without further conversion from XML or CSV.

Co-authored-by: Heiko <61519853+htcfreek@users.noreply.github.com>

---------

Signed-off-by: Shawn Yuan <shuai.yuan.zju@gmail.com>
Co-authored-by: Heiko <61519853+htcfreek@users.noreply.github.com>

* Add more STCA team members (#36438)

* Add more STCA team members

* Include more spelling check errors

* Remove non-alpha in dictionary

* Add Zhaopeng Wang

* Fix spell checking error

* Remove "prerelease: true" (#36484)

* Remove "prerelease: true"

The Microsoft.WinGet.DSC module is GA so prerelease: true is no longer needed.

* Update expect.txt

fixing spellcheck warning

---------

Co-authored-by: Clint Rutkas <clint@rutkas.com>

* [Docs]Update README for 0.87.1 release (#36534)

* [CI] Enhance build Pipeline Reliability with Retry Logic and Improved Error Messaging (#36529)

* update pipeline with retry

* remove tests

* Add team member (#36590)

* [New+]Don't override New actions from Explorer on Windows 10 (#36467)

* [New+]Don't override New actions from Explorer

* Update src/modules/NewPlus/NewShellExtensionContextMenu.win10/shell_context_menu_win10.cpp

* Update src/modules/NewPlus/NewShellExtensionContextMenu.win10/shell_context_menu_win10.cpp

* Add pattern for learn.microsoft links

* Also only Query for context menu

* [PTRun][Calculator]Handle hexadecimal numbers to not return divide by 0 error (#36390)

* add '0x' handling for divide by 0 scenarios

* fix comment on division by 0 check

---------

Co-authored-by: Connor Plante <connor.plante@gmail.com>

* [TextExtractor]Minor UI/Accessibility fixes in the overlay UI (#36356)

minor UI and accessibility fixes

* [PTRun][Calculator]Update mages to v3.0.0 and support for `randi(n)` (#36560)

* update to mages 3.0.0

* allow randi() in calculator plugin

* fix tests and input validation

* fix spell check

* [QuickAccent]Added ć for Slovenian (#36336) (#36338)

* Fix snapping Workspaces Editor to Fancy Zones (#36463)

* Remove Workspaces Editor from Fancy Zone's excluded app list

* removed unused string

---------

Co-authored-by: Seraphima <zykovas91@gmail.com>

* [PTRun]Fix drag on .NET 9 WPF (#36635)

* [CQ]Continued to move stuff out of root - Solution.props (#36244)

* [QuickAccent]Add Proto-Indo-European (#36408)

* Add ḱ to PowerAccent for Proto-Indo-European

* Fix Spelling Check

* Add more letters to PIE

* Order PIE after PI

---------

Co-authored-by: Hao Liu (from Dev Box) <haoliu3@microsoft.com>
Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>

* [PTRun]Add context buttons for VSCodeWorkspaces plugin (#36517)

* [Settings][QuickAccent]Change 'character set' to plural form (#36565)

* [PTRun][Calculator]Fix unit tests on non-english systems (#36569)

* fix tests

* update comment

* [PTRun][Calc]Improve handling of non-base 10 numbers (#36700)

* [Settings][PTRun]Show plugin version and website (#36580)

* [Monaco]Add support for .resx and .resw preview support. (#36499)

Added support for .resx and .resw preview support. These files are XML based files so I added the file extensions as part of the registerAdditionalLanguage("xmlExt"...) function.

* [Settings] Add Workspaces' workspaces.json file to backup/restore list (#36714)

* [Localization] Fix loc pipeline to send downloaded localized files to TDBuild upon retry after failure (#36766)

* [AdvancedPaste]Fixed issues with Screen Reader integration (#36778)

* Remove Advent calendar from README (#36777)

* Remove Advent calendar from README

* Update hero image

* Delete doc/images/overview/PT_holiday_hero_image.png

* [AdvancedPaste]Add all BitmapDecoder supported image filetypes to ImageToText (#35600)

Adds support to ImageToText for all image filetypes supported by BitmapDecoder.

* [AOT]Clean up some AOT build issues in PowerAccent.Core (#36264)

* init

* Use AotCompatibility instead

* Replace typeof(Lanaguge) with GetValues<Language>

* Create new folder to place source generation context file.

---------

Co-authored-by: Yu Leng (from Dev Box) <yuleng@microsoft.com>

* [WinUI3]Fix Windows 10 title bar borders (#36429)

* Fix borders for windows in the Settings UI

* Fix HOSTS window

* Fix Advanced Paste

* Fix Environment Variables

* Fix File Locksmith

* Fix Peek, with a caveat

* Fix Registry Preview

* Remove unused imports

* Clean up imports in OobeShellPage

* Move OSVersionHelper from Common.UI up into ManagedCommon

* [QuickAccent]Fix unstable language loading (#36721)

* [Peek]Bring into foreground if previously minimized (#36506)

Added Activate() to bring Peek.UI window into focus upon Toggle. This allows the UI to be presented even if it was previously minimized.

* Update Run docs README (#36857)

* Update Run docs README

* Remove System dupe

* [Monaco]Make minimap toggleable (#33742)

* [Monaco]Fix Json format preview setting (#36867)

* [KBM]Added option for exact match shortcut (#36000)

* Added option for exact match shortcut

* Fix spell-check

* [Deps][Security]Update .NET Packages from 9.0.0 to 9.0.1  (#36879)

* [Deps] Update NuGet packages to version 9.0.1

Updated several NuGet packages from version 9.0.0 to 9.0.1, including:
- Microsoft.Data.Sqlite
- Microsoft.Bcl.AsyncInterfaces
- Microsoft.Extensions.DependencyInjection
- Microsoft.Extensions.Logging
- Microsoft.Extensions.Logging.Abstractions
- Microsoft.Extensions.Hosting
- Microsoft.Extensions.Hosting.WindowsServices
- Microsoft.Win32.SystemEvents
- Microsoft.Windows.Compatibility
- System.CodeDom
- System.ComponentModel.Composition
- System.Configuration.ConfigurationManager
- System.Data.OleDb
- System.Diagnostics.EventLog
- System.Diagnostics.PerformanceCounter
- System.Drawing.Common
- System.Management
- System.Runtime.Caching
- System.ServiceProcess.ServiceController
- System.Text.Encoding.CodePages
- System.Text.Json

* [Deps] Update NOTICE.md

* [Peek]Fix using the correct Monaco assets at runtime (#36890)

* [Workspaces] fixing bug: editor starts outside of visible desktop area (#36769)

* [Workspaces] fixing bug: editor starts outside of visible desktop area

* Update src/modules/Workspaces/WorkspacesEditor/MainWindow.xaml.cs

Co-authored-by: Seraphima Zykova <zykovas91@gmail.com>

---------

Co-authored-by: Seraphima Zykova <zykovas91@gmail.com>

* [Workspaces] Saving app properties on launch and recapture (#36751)

* [Workspaces] Implementing set and get GUID to/from HWND to distinguish windows moved by the Workspaces tool

* After launch and capture copy the CLI args from the "original" project

* Fix getting GUID

* spell check

* modification to be able to handle different data sizes on different systems

* code optimisation

* Replacing string parameter by InvokePoint

* renaming variable

* [AdvancedPaste]Use background thread for interactions between runner and Advanced Paste (#36858)

* [Advanced Paste] Use background thread for runner-Advanced Paste interaction

* Fixed typo

* [VCM]Deprecate the Video Conference Mute utility (#36772)

* Remove all VideoConferenceMute related code and files

* Clean up vcm driver registry keys

* Also remove the Webcam report tool

* Also clean out video conference on the installer

* Fix spellcheck

* Remove comment about video conf

* Update gpo files revision

* Revert removing the VCM policies

* Deprecate VCM GPO policy

* Change deprecation message to show first supported version

* Tweak supported strings in the adml

* Goodbye friends, you are forever part of the team (#36905)

* Goodbye friends

Forever part of the team 😢

* Update COMMUNITY.md

* Fix formatting issues in COMMUNITY.md

* [New utility]Sysinternals ZoomIt (#35880)

* ZoomIt initial code dump

* Change vcxproj to normalize dependency versions

* Fix code quality to build

* Add to PowerToys solution

* Clean out C-style casts

* Fix some more analyzer errors

* Constexpr a function

* Disable some warnings locally that it seemed better not to touch

* Add ZoomIt module interface

* Add GPO

* Add Settings page with Enable button

* Output as PowerToys.ZoomIt.exe

* Extract ZoomIt Settings definition to its own header

* Make ZoomItModuleInterface build with ZoomItSettings too

* WinRT C++ interop for ZoomItSettings

* From Registry To PowerToys Json

* Properly fix const_cast analyzer error

* Initial Settings page loading from registry

* Zoom mode settings

* Save settings

* Add file picker and DemoType file support

* Remaining DemoType settings

* Have ZoomIt properly reloading Settings and exiting

* Remove context menu entries for Options and Exit

* ZoomIt simple Break Options

* Break advanced options

* Simple Record settings

* Record Microphone setting

* Fix break background file picker title

* Font setting

* Fix build issues after merge

* Add ZoomIt conflict warning to Settings

* Exclude Eula from spell checking

* Fix spellcheck errors

* Fix spell check for accelerated menu items

* Remove cursor files from spellcheck. They're binary

* Fix forbidden patterns

* Fix XAML style

* Fix C# analyzers

* Fix signing

* Also sign module interface dll

* Use actual ZoomIt icon

* Add OOBE page for ZoomIt

* ZoomIt image for Settings

* Flyout and Dashboard entries

* Fix type speed slider labels

* Correctly load default Font

* Correctly register shortcuts on ZoomIt startup first run

* Fix modifier keys not changing until restart

* Show MsgBox on taken shortcut

* Start PowerToys Settings

* Normalize ZoomIt file properties with rest of PowerToys

* Add attribution

* Add ZoomIt team to Community.md

* More copyright adjustments

* Fix spellcheck

* Fix MsgBox simultaneous instance to the front

* Add mention of capturevideosample code use

* Add ZoomIt to process lists

* Add telemetry

* Add logging

* React to gpo

* Normalize code to space identation

* Fix installer build

* Localize percent setting

* Fix XAML styling

* Update src/settings-ui/Settings.UI/Strings/en-us/Resources.resw

Co-authored-by: Stefan Markovic <57057282+stefansjfw@users.noreply.github.com>

* Fix spellcheck

* One more spellcheck fix

* Integrate LiveDraw feature changes from upstream

* Fix name reuse in same scope

* Fix c-style casts

* Also register LIVEDRAW_HOTKEY

* Fix newLiveZoomToggleKey

* Update LiveZoom description in Settings to take LiveDraw into account

* Fix spellcheck

* Fix more spellcheck

* Fix Sysinternals capitalization

* Fix ARM64 Debug build

* Support Sysinternals build (#36873)

* Remove unneeded files

* Make build compatible with Sysinternals

* Separate PowerToys ZoomIt product name (#36887)

* Separate PowerToys ZoomIt product name

To help maintain the Sysinternals branding in the standalone version.

* Clarify branding-related includes

* Remove ZoomIt.sln

* Add foxmsft to spell-check names

* Add ZoomIt to README

* Add ZoomIt to GH templates

* Add ZoomIt events to DATA_AND_PRIVACY.md

* Remove publish_config.json

* Remove publish_config.json from vcxproj too

---------

Co-authored-by: Mark Russinovich <markruss@microsoft.com>
Co-authored-by: Alex Mihaiuc <69110671+foxmsft@users.noreply.github.com>
Co-authored-by: John Stephens <johnstep@microsoft.com>
Co-authored-by: Stefan Markovic <57057282+stefansjfw@users.noreply.github.com>

* [PTRun]Add hotkey to the show telemetry event (#36869)

* [PTRun]Update the code for .NET 9.0.1 - remove workarounds (#36909)

* Revove some unneeded changes after pdating to .net9.1

* [RegistryPreview]Copy context menu, data tooltip, MULTI_SZ fix (#36631)

* add context menus

* string resources for contextmenu

* fix line break parsing for MULTI_SZ

* better presentation of multiline values and value tooltip

* cleanup

* [MWB] - refactoring "Common" classes - Common.Log.cs, Common.Receiver.cs (#35726)

* [PTRun]Add setting for different trigonometric units in Calculator (#36717)

* Added angle units to PowerToys Run Calculator plugin.

* Update Resources.resx

* Added GitHub SpellCheck rule for 'gradians'.

---------

Co-authored-by: Heiko <61519853+htcfreek@users.noreply.github.com>

* [ci]Remove steps to build abstracted utilities packages (#36934)

* [Settings]Update GPO infobar icon, improve some pages and fix bugs (#33703)

* changes part 1

* fix xaml code

* changes part 2

* fix cmdNotFound page

* Update PowerOcrPage

* More Pages changed

* More Pages changed

* revert temporary change

* fix spelling

* add resw comment

* add resw comment

* Update MouseWihtoutBorderPage.xaml

* PowerPreview page

* workspaces page

* fix awake page gpo handling

* NewPlus page

* update new+ page!

* AdvancedPaste.xaml: Move Info bar.

* Update MouseJumpPanel.xaml

* Update GeneralPage.xaml

* fix position of info bar and some ui quirks

* fix xaml style

* fix string resources

* string changes

* prepare megre main

* update new+ page

* zoomit page

* various fixes

* [Common]NotificationUtil helper class with FileWatcher (#36720)

* add NotificationUtil helper with file watcher and cache

* fix spellcheck

* indentation

* [PTRun][Docs]Add YubicoOauthOTP to Third-Party plugins (#36761)

* [PTRun]Fixed typo in Value Generator messages (#36951)

* [AOT] Clean up some AOT issues in Advanced Paste module (#36297)

* Clean up the aot build issue.

* Merge main and clean up new AOT build issue

* Update LogEvent define.

* Update src/modules/AdvancedPaste/AdvancedPaste/Helpers/LogEvent.cs

Co-authored-by: Jeremy Sinclair <4016293+snickler@users.noreply.github.com>

* update typo bug

* Remove unused allow list item

* Create a new folder to place source generation context

* Merge main and rename LogEvent to AIServiceFormatEvent

---------

Co-authored-by: Yu Leng (from Dev Box) <yuleng@microsoft.com>
Co-authored-by: Jeremy Sinclair <4016293+snickler@users.noreply.github.com>

* [ZoomIt]React to gpo setting when run as standalone (#36975)

* [Settings]ImageResizer settings accessibility updates, fixes and refactor (#36903)

* Fix issue with missing Image Resizer unit and fit information in settings description.

* Fix accessibility issues on Edit and Remove buttons. Fix various issues and refactor view model and ImageSize. New resources for accessibility text formats.

* Fix unit test because of change to new preset width and height. Fix 2 unit tests having incorrect expected/actual orderings.

* Post-review update: accessibility strings now formatted within the converter, instead of via format strings; simplified encoder GUID collection declaration and retrieval.

* Minor example text fix.

* [Settings]Update "Back up" mentions when it should be used as a verb (#36965)

* Update Back up name

* Rename Backup to Back up

* [New+]Update last modified date to now for all templates created (#36133)

* Update last modified date to now for all templates created

* Now also set last update for directories. Thank you htcfreek!

* [ImageResizer][ci]Fix XAML style errors (#37009)

* [Settings] Add "new" labels to navigation for new utilities (#36939)

* initial implementation

* move new label to zoomit

* cleanup

* more cleanup

* fix XAML formatting

* update padding to 4px

* add badge to dashboard item

* fix XAML formatting

* Tweaking UX

---------

Co-authored-by: Niels Laute <niels.laute@live.nl>
Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>

* [MWB]Fix helper process termination issue in service mode (#36892)

* [MWB] Changed to suppress the flow of the execution context

* Fix build after merge

* [MWB] Fix helper process termination issue in service mode

* Add some comments

* [runner]Fix crashes caused by wrong setting AllowDataDiagnostics registry value (#37015)

* Fix setting registry value

* Prevent future similar crashes

* [PTRun][Calculator]Error check when loading trigonometry mode (#37033)

* [ZoomIt]Fix transparent draw after changing another setting (#37042)

* [Settings]Fix ZoomIt page changing current directory (#37052)

* [ci]Remove vc tools version workaround (#37098)

* 0.88 changelog (#37056)

* 0.88 changelog

* Update README.md

Co-authored-by: Clint Rutkas <clint@rutkas.com>

* Add installer hashes

* Fix aka.ms link for ZoomIt

* Add mention to the PTRun plugin's dll file version

* Update README.md

Co-authored-by: Kayla Cinnamon <cinnamon@microsoft.com>

---------

Co-authored-by: Clint Rutkas <clint@rutkas.com>
Co-authored-by: Kayla Cinnamon <cinnamon@microsoft.com>

* Update README.md - update What's Planned to 0.89 (#37157)

Update README.md

Just a tiny update, as reference to 0.88 was missed.

* [ci]Proper workaround for the vc tools version check (#37130)

* Revert "[ci]Remove vc tools version workaround (#37098)"

This reverts commit 2c069ce708.

* Adopt the same workaround as in Terminal

* Fix AOT introduced error

* [check-spelling] Update metadata

Update for https://github.com/zadjii-msft/PowerToys/actions/runs/13139253022/attempts/1
Accepted in https://github.com/zadjii-msft/PowerToys/pull/402#issuecomment-2634374795

Signed-off-by: check-spelling-bot <check-spelling-bot@users.noreply.github.com>
on-behalf-of: @check-spelling <check-spelling-bot@check-spelling.dev>

* more

* Skip cmdpal in deps json check

* notice.md

---------

Signed-off-by: Shawn Yuan <shuai.yuan.zju@gmail.com>
Signed-off-by: check-spelling-bot <check-spelling-bot@users.noreply.github.com>
Co-authored-by: Laszlo Nemeth <57342539+donlaci@users.noreply.github.com>
Co-authored-by: Seraphima <zykovas91@gmail.com>
Co-authored-by: donlaci <donlaci@yahoo.com>
Co-authored-by: Ionuț Manța <ionut@janeasystems.com>
Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>
Co-authored-by: Jeremy Sinclair <4016293+snickler@users.noreply.github.com>
Co-authored-by: Ani <115020168+drawbyperpetual@users.noreply.github.com>
Co-authored-by: PesBandi <127593627+PesBandi@users.noreply.github.com>
Co-authored-by: Wenjian Chern <55335597+Sophanatprime@users.noreply.github.com>
Co-authored-by: Youssef Victor <youssefvictor00@gmail.com>
Co-authored-by: Clint Rutkas <clint@rutkas.com>
Co-authored-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
Co-authored-by: leileizhang <leilzh@microsoft.com>
Co-authored-by: Den Delimarsky 🔐 <sign@den.dev>
Co-authored-by: Niels Laute <niels.laute@live.nl>
Co-authored-by: Davide Giacometti <25966642+davidegiacometti@users.noreply.github.com>
Co-authored-by: Heiko <61519853+htcfreek@users.noreply.github.com>
Co-authored-by: Shuai Yuan <128874481+shuaiyuanxx@users.noreply.github.com>
Co-authored-by: moooyo <42196638+moooyo@users.noreply.github.com>
Co-authored-by: Yu Leng (from Dev Box) <yuleng@microsoft.com>
Co-authored-by: Jerry Xu <n.xu@outlook.com>
Co-authored-by: Demitrius Nelon <denelon@microsoft.com>
Co-authored-by: Kai Tao <69313318+vanzue@users.noreply.github.com>
Co-authored-by: Connor Plante <150482134+plante-msft@users.noreply.github.com>
Co-authored-by: Connor Plante <connor.plante@gmail.com>
Co-authored-by: Domen Soklič <soklicd@gmail.com>
Co-authored-by: Hao Liu <liuhaobupt@163.com>
Co-authored-by: Hao Liu (from Dev Box) <haoliu3@microsoft.com>
Co-authored-by: immi <iafullprogrammer@gmail.com>
Co-authored-by: Asif Islam <77113884+asif4318@users.noreply.github.com>
Co-authored-by: Kayla Cinnamon <cinnamon@microsoft.com>
Co-authored-by: Dave Rayment <dave.rayment@gmail.com>
Co-authored-by: Neil McAlister <pingzing@users.noreply.github.com>
Co-authored-by: Mark Russinovich <markruss@microsoft.com>
Co-authored-by: Alex Mihaiuc <69110671+foxmsft@users.noreply.github.com>
Co-authored-by: John Stephens <johnstep@microsoft.com>
Co-authored-by: Michael Clayton <mike@kingslandconsulting.co.uk>
Co-authored-by: Nathan Gill <nathan.j.gill@outlook.com>
Co-authored-by: Daniel Nilsson <daniel.nilsson1989@gmail.com>
Co-authored-by: JackStuart <jack@jstuart.io>
Co-authored-by: Christian Gaarden Gaardmark <cgaarden@hotmail.com>
Co-authored-by: YDKK <YDKK@users.noreply.github.com>
Co-authored-by: Stefan Markovic <stefansjfw@users.noreply.github.com>
2025-02-05 17:03:12 +01:00
Mike Griese
6856f4ef3e Change namespace to Microsoft.CommandPalette.Extensions (#403)
* The package ID changed! Now we're `Microsoft.CommandPalette`. The old app will need to be uninstalled seperately. 
* interfaces moved from `Microsoft.CmdPal.Extensions` ->  `Microsoft.CommandPalette.Extensions` 
* The C# reference implementation? `Microsoft.CmdPal.Extensions.Helpers` ->  `Microsoft.CommandPalette.Extensions.Toolkit` 
* I also replaced the `IconData`, `IconInfo`, `PropChangedEventArgs`, `ItemsChangedEventArgs` `runtimeclass`es with just `interface`s. That's gonna be mildly breaking for existing code migrating. 
* I lastly changed the `<AppExtension>` tag in the Package.appxmanifest to `com.microsoft.commandpalette` (from `com.microsoft.windows.commandpalette`)
2025-02-05 06:50:54 -06:00
Mike Griese
ce40df9665 Remove any straggling references to "Action"s (#401)
An earlier draft of the CmdPal codebase called the fundamental unit of doing an `Action`. We've moved away from that for a long time now. 

This just fixes all the cases I could still find. 

Closes #350
2025-02-04 08:40:38 -06:00
Mike Griese
06aeb227a1 Remove the prototype (#400)
Goodnight sweet prince
2025-02-04 06:02:37 -06:00
Mike Griese
c9c45691a7 Attempt to correlate apps to winget packages (#387)
This is a first best effort at #367. 

If an app is installed, we'll try to lookup if there's one and only app with that name in our big list of apps. If there is, then we'll set the command on the winget list to the "run" command. 

The uninstall command moves into the context menu, always. Even if we don't find it. This will make it harder to accidentally uninstall things. 

This also has another drive-by fix for #357. Problem wasn't just being on the UI thread, it's that we were trying to get the `.Kind` out of the activation args, after the spawning process had already died.
2025-02-04 05:44:39 -06:00
Mike Griese
4b67711b70 Add AOT support for the SDK and extensions (#394)
Big thanks to Mano for getting this prototyped with me

This enables the SDK helpers and extensions to be compiled as AOT code. Gotta go fast guys. 

Big changes were:
* Adding `partial` to all the helper classes that implemented WinRT interfaces
* Redoing a lot of JSON serialization to be AOT compatible
* re-working the COM calls in ExtensionServer and ExtensionInstanceManager to be AOT ready


Related to #197
2025-02-03 16:52:31 -06:00
Mike Griese
edb61457f4 BREAKING: Add ContentPages and Invoke(sender) (#395)
## BREAKING API CHANGES APPROACHING

Closes #307 
Closes #238 
Removes `Command` from `ITag`
Adds `IDetailsCommand` (to achieve the same goal as the above originally had)
Adds `ITreeContent`, based on a hunch
Adds `ShowToast` and `Confirm` to `CommandResult` too, but without UX yet

Extensions from before this change will need to be updated. 
* The `InvokableCommand` change should be trivial - the helpers should abstract that delta away for you.
* The `ContentPage` change should be pretty easy to make. 
  * Both `MarkdownPage` and `FormPage` are now just `ContentPage`
  * `FormPage.Forms()` -> `ContentPage.GetContent()`
  * `MarkdownPage.Bodies()` -> `ContentPage.GetContent()`
  * `IForm`s become `IFormContent`. Methods become properties (not that bad)
* I'm only deprecating the old Markdown and Form pages - I'll fully remove them before we OSS, but I'll give everyone a couple weeks to port them.
* No one was using `Tag.Command` and it always seemed iffy at best - better not.
2025-02-03 16:30:46 -06:00
Mike Griese
1a623ce136 get rid of dependency on Wox (#383)
Closes #363

The WebSearch plugin pulled in all of Wox.Infrastructure, which resulted in us pulling in _all of WPF_ as a dependency, which we obviously don't need.
2025-02-03 13:39:42 -06:00
Niels Laute
e8bab4f5b2 Various UX tweaks (#393)
This PR introduces a couple of design tweaks:

- Details pane padding and fontsizes/colors
- Extension icons using Segoe Fluent Icons are not the same color as the text, helping with eye scanning
- Updating the WinGet icon so it's now the same size as other extensions
- The extension icon is now shown in the searchbox to help improve context switching
2025-02-03 13:39:13 -06:00
Stefan Markovic
d86d318a9a Fix icon path (#382) 2025-01-29 12:43:44 -06:00
Stefan Markovic
41dc94aa06 Fix bad merge (#381) 2025-01-29 17:57:50 +01:00
Stefan Markovic
b7aba2661a Merge PT upstream #9 (#379)
* [Workspaces] implement the move feature (#35480)

* [Workspaces] Add move functionality

* spell checker

* [Workspaces] Modify Arranger to move apps without launch

* moved ipc helper

* removed callback

* use LauncherStatus in WindowArranger

* wait for launching next app

* launch in a separate thread and protect by mutexes

* update app version in advance

* changed canceling launch

* increased waiting time

* Fix optional parameter load from json

* changed arranger waiting time

* additional waiting time for Outlook

* added app id

* ensure ids before launch

* set id in editor

* minor updates

* [Workspaces] Move: Get the nearest window when moving a window

* [Workspaces] convert optional boolean to enum to avoid json problems

* Handle case when the new Application Property "moveIfExists" does not exist

* Re-implementing app-window pairing for moving feature.

* spell checker

* XAML formatting

* Fixing bug: IPC message not arriving

* spell checker

* Removing app-level-setting for move app. Also fixed compiler errors due styling.

* Updating editor window layout

* Re-implementing window positioning UI elements

* XAML formatting

* Code review findings

* Code cleanup

* Code cleanup

* Code cleanup

* code cleanup

* Code cleanup

* Code cleanup

* fix Move attribute after launch and snapshot

* Extend WindowArranger with PWA functionality to detect different PWA apps. PwaHelper moved to the common library

* fix repeat counter in the editor

* Code optimization

* code cleanup, optimization

* fix double-processing window

---------

Co-authored-by: Seraphima <zykovas91@gmail.com>
Co-authored-by: donlaci <donlaci@yahoo.com>

* [KeyboardManager]Fix mapping shift to numpad (#35890)

* Keyboard Manger fix numpad as shift

Fixed shift not being released if a numpad key as shift.

* Added comments

* Fix typo

* Fix the numpad unlocked key not working if the locked version is overridden by shift

* Fix spelling check.

* Revert the VK_CLEAR change.

---------

Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>

* [Analyzers] Update .editorconfig with rules to relax IDE errors (#36095)

* [Analyzers] Remove duplicate pascal case style from .editorconfig

* [Analyzers] Configured severity for individual IDE and CA rules showing as errors in VS

Set severity for IDE0005, IDE0008, IDE0016, IDE0018, IDE0019, IDE0021, IDE0022, IDE0023, IDE0025, IDE0027, IDE0028, IDE0029, IDE0031, IDE0032, IDE0034, IDE0036, IDE0039, IDE0042, IDE0044, IDE0045, IDE0046, IDE0047, IDE0057, IDE0051, IDE0052, IDE0054, IDE0055, IDE0056, IDE0057, IDE0059, IDE0060, IDE0061, IDE0063, IDE0071, IDE0073, IDE0074, IDE0075, IDE0077, IDE0078, IDE0083, IDE0090, IDE0100, IDE0130, IDE160, IDE180, IDE0200, IDE0240, IDE0250, IDE0251, IDE0260, IDE0270, IDE0290, IDE0300, IDE0301, IDE0305, IDE1005, IDE1006, CA1859, CA2022, CA2263

* [Analyzers] Fix mismatched analyzer descriptions

* [Analyzers] Fix misspelling

* Update .editorconfig

Made the following style rules `silent` instead of `suggestion`: 
- Use explicit type instead of 'var'
- Use expression body for ...
- Use block-scoped namespace

* [Analyzers] Set IDE0290 to silent

* [Analyzers] Remove IDE1006 configuration from .editorconfig in favor of making exclusions for the few entries

* [Analyzers][Indexer] Add IDE1006 suppressions

* [Analyzers][Peek] Add IDE1006 suppression

* [Analyzers][MWB] Add IDE1006 suppression.

* [Analyzers][Plugins] Add IDE1006 suppression

* [Analyzers][ImageResizer] Suppress IDE0073 to retain original copyright

* [Analyzers] Remove IDE0073 severity change in .editorconfig

---------

Co-authored-by: Ani <115020168+drawbyperpetual@users.noreply.github.com>

* [Workspaces] PWA follow-up (#36217)

* [PTRun][Calculator]Allow scientific notation with lowercase 'e' (#36187)

* [Workspaces] Add encoder parameter to bitmap.save() (#36228)

* [Workspaces] Add encoder parameter to bitmap.save()

* 1 more call fixed

* Move repeated code to the csharp library

* [Workspaces] Implement store of app window's size and position (#36086)

* [Workspaces] Implement store of app window's size and position

* Modifying the default values to -1. The program will use the original default values for the first run.

* [ScreenRuler]Add setting to show the measurement in an extra unit (#35887)

* display ruler: supporting millimeter and other units

* Measurement Tool: UI Setting for an extra unit

* Update images

* spelling

* spelling

* suit code style

* Fix for code review

* remove weird file

* rename field

* [Deps]Update MSTest from 3.5.0 to 3.6.3 (#36115)

* Update MSTest from 3.5.0 to 3.6.3

* Use STA attributes that are now part of MSTest

* Adding Jerry to community.md (#36232)

Update COMMUNITY.md

* [Workspaces] Arranger: smart timer (#36096)

* [Workspaces] Add move functionality

* spell checker

* [Workspaces] Modify Arranger to move apps without launch

* moved ipc helper

* removed callback

* use LauncherStatus in WindowArranger

* wait for launching next app

* launch in a separate thread and protect by mutexes

* update app version in advance

* changed canceling launch

* increased waiting time

* Fix optional parameter load from json

* changed arranger waiting time

* additional waiting time for Outlook

* added app id

* ensure ids before launch

* set id in editor

* minor updates

* [Workspaces] Move: Get the nearest window when moving a window

* [Workspaces] convert optional boolean to enum to avoid json problems

* Handle case when the new Application Property "moveIfExists" does not exist

* Re-implementing app-window pairing for moving feature.

* spell checker

* XAML formatting

* Fixing bug: IPC message not arriving

* spell checker

* Removing app-level-setting for move app. Also fixed compiler errors due styling.

* Updating editor window layout

* Re-implementing window positioning UI elements

* XAML formatting

* Code review findings

* Code cleanup

* Code cleanup

* Code cleanup

* code cleanup

* Code cleanup

* Code cleanup

* [Workspaces] Arranger: Reset wait timer after each successful arrange action

* fix merge error

---------

Co-authored-by: Seraphima <zykovas91@gmail.com>
Co-authored-by: donlaci <donlaci@yahoo.com>

* Upgrade to check-spelling v0.0.24 (#36235)

This upgrades to [v0.0.24](https://github.com/check-spelling/check-spelling/releases/tag/v0.0.24).

A number of GitHub APIs are being turned off shortly, so you need to upgrade or various uncertain outcomes will occur.

There's a new accessibility forbidden pattern:

> Do not use `(click) here` links
> For more information, see:
> * https://www.w3.org/QA/Tips/noClickHere
> * https://webaim.org/techniques/hypertext/link_text
> * https://granicus.com/blog/why-click-here-links-are-bad/
> * https://heyoka.medium.com/dont-use-click-here-f32f445d1021
```pl
(?i)(?:>|\[)(?:(?:click |)here|link|(?:read |)more)(?:</|\]\()
```

There are some minor bugs that I'm aware of and which I've fixed since this release, but I don't expect to make another release this month.

I've added a pair of patterns for includes and pragmas. My argument is that the **compiler** will _generally_ tell you if you've misspelled an include and the **linker** will _generally_ tell you if you misspell a lib.

- There's a caveat here: If your include case-insensitively matches the referenced file (but doesn't properly match it), then unless you either use a case-sensitive file system (as opposed to case-preserving) or beg clang to warn, you won't notice when you make this specific mistake -- this matters in that a couple of Windows headers (e.g. Unknwn.h) have particular case and repositories don't tend to consistently/properly write them.

* Adjust to community.md, shifting jerry's github user name (#36242)

Update COMMUNITY.md

* [AOT compatible] Resolve AOT Build Error in Peek.UI (#36194)

* add partial for aot support

* add Microsoft.NET.ILLink.Tasks to packages.props

* format

* Revert "format"

This reverts commit 742d5e2214.

* add Microsoft.NET.ILLink.Tasks to notice.md

* add auto reference

* update script to remove the 'Auto-reference line'

---------

Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>

* Awake Updates - `TILLSON_11272024` (#36049)

* Update with bug fixes for tray icon and support for parent process

* Process information enum

* Update the docs

* Fix spelling

* Make sure that PID is used in PT config flow

* Logic for checks based on #34148

* Update with link to PR

* Fixes #34717

* Small cleanup

* Proper task segmentation in a function

* Cleanup the code

* Fix synchronization context issue

* Update planning doc

* Test disabling caching to see if that manages to pass CI

* Cleanup to make sure that we're logging things properly.

* Update ci.yml

* Disable cache to pass CI

* Retry logic

* Cleanup

* Code cleanup

* Fixes #35848

* Update notes and codename

* After third attempt, log error instead of throwing exception

* More cleanup to avoid double execution

* Add expected word

* Safeguards for bad values for timed keep-awake

* More updates to make sure I am using uint

* Update error message

* Update packages

* Fix notice and revert CsWinRT upgrade

* Codename update

* Update expect.txt

* Update the struct

* Ensuring we're properly awaiting tray initialization

* Update to make sure tray reflects the bound process

* Cleanup, proper JSON serialization for logs.

* Not needed.

* Add command validation logic

* Moving the initialization logic earlier

* Make sure we show the display state in the tooltip

* Update tray string

* Update src/modules/awake/Awake/Core/Manager.cs

Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>

* Update src/modules/awake/Awake/Core/Manager.cs

Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>

* Update src/modules/awake/Awake/Core/Manager.cs

Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>

* Update src/modules/awake/Awake/Core/Manager.cs

Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>

* Update logic for icon resets

* Update doc

* Simplify function for setting mode shell icon

* Issues should be properly linked

* Minor cleanup

* Update timed behavior

---------

Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>
Co-authored-by: Clint Rutkas <clint@rutkas.com>

* [Workspaces] detecting right app version (#36100)

* [Workspaces] Add move functionality

* spell checker

* [Workspaces] Modify Arranger to move apps without launch

* moved ipc helper

* removed callback

* use LauncherStatus in WindowArranger

* wait for launching next app

* launch in a separate thread and protect by mutexes

* update app version in advance

* changed canceling launch

* increased waiting time

* Fix optional parameter load from json

* changed arranger waiting time

* additional waiting time for Outlook

* added app id

* ensure ids before launch

* set id in editor

* minor updates

* [Workspaces] Move: Get the nearest window when moving a window

* [Workspaces] convert optional boolean to enum to avoid json problems

* Handle case when the new Application Property "moveIfExists" does not exist

* Re-implementing app-window pairing for moving feature.

* spell checker

* XAML formatting

* Fixing bug: IPC message not arriving

* spell checker

* Removing app-level-setting for move app. Also fixed compiler errors due styling.

* Updating editor window layout

* Re-implementing window positioning UI elements

* XAML formatting

* Code review findings

* Code cleanup

* Code cleanup

* Code cleanup

* code cleanup

* Code cleanup

* Code cleanup

* [Workspaces] fix detection of specific version of apps

---------

Co-authored-by: Seraphima <zykovas91@gmail.com>
Co-authored-by: donlaci <donlaci@yahoo.com>

* Move the XamlStyler config to src/ (#36202)

my never ending goal to minimize files in the root dir

* [AdvancedPaste]Add Semantic Kernel opt-in to allow chaining of paste actions (#35902)

* [AdvancedPaste] Semantic Kernel support

* Changed log-line with potentially sensitive info

* Spellcheck issues

* Various improvements for Semantic Kernel

* Spellcheck issue

* Refactored Clipboard routines

* Added integration tests for KernelService

* Extra telemetry for AdvancedPaste

* Added 'Hotkey' suffix to AdvancedPaste_Settings telemetry event

* Added IsSavedQuery

* Added KernelQueryCache

* Refactoring

* Added KernelQueryCache to BugReportTool delete list

* Added opt-n for Semantic Kernel

* Fixed bug with KernelQueryCache

* Ability to view last AI chat message on error

* Improved kernel query cache

* Used System.IO.Abstractions and improved tests

* Fixed under-count of token usage

* Used Semantic Kernel icon

* Cleanup

* Add missing EndProject line

* Fix dependency version conflicts

* Fix NOTICE.md

* Correct place of SemanticKernel in NOTICE.md

* Unlinked CustomPreview toggle from AI

* Added Microsoft.Bcl.AsyncInterfaces dependency to AdvancedPaste

* Fixed NOTICE.md order

* Moved Custom Preview to behaviour section

* Made Image to Text raise error on empty output

* Added AIServiceBatchIntegrationTests

* Updated AIServiceBatchIntegrationTests

* Added prompt moderation

* Moved GPO Infobar to better location

* [Launcher]Port from WPF-UI to .NET 9 WPF (#36215)

* Initial implementation

* Fix fluent style

* Fix no endline

* Update expect.txt

* Fix formatting

* Fix light theme looking bad on Windows 10

* fix formatting

* test change

* Now really fixed W10

* Add a comment

* Fix typos

* Fix spellcheck errors

* Fix spellcheck pattern for websites

* Change patterns for spellcheck in the right file

* Fix XAML styling

* Fix contrast colors on W11

* Fix formatting

* Removed emty line

* Fix formatting

* Added comment to fluentHC file

* fix comment

* Fix Windows10 again.
Adress feedback.

* W11 fix chaning from high contrast to normal not having correct background

* W10 Fix high contrast not working after switching from light/dark moed

* Address feedback

* Fix formatting

* Second W11 fix chaning from high contrast to normal not having correct background

* [UX]Updating New+ and Settings icons (#36290)

* Updated icons

* Updating more icons and icos

* [Settings][Dashboard] Accessibility fixes (#36280)

* make narrator announce buttons/toggles

* add toggles module name

* [ci]Sign OpenAI dll that's not signed (#36299)

* Update CODEOWNERS to include gordon, jerry and kayla (#36308)

* Update CODEOWNERS

* Update names.txt

* Making the powertoys-code-owners team code owners (#36310)

* Update CODEOWNERS

* Update names.txt

* Update CODEOWNERS

* [FZEditor]Fix Create new layout dialog radio buttons IsChecked values  (#36320)

* 0.87 changelog (#36335)

* 0.87 changelog

* Fix spellcheck

* Update README.md

Co-authored-by: Heiko <61519853+htcfreek@users.noreply.github.com>

---------

Co-authored-by: Heiko <61519853+htcfreek@users.noreply.github.com>

* [PTRun]Fix WPF transparent border issue on Windows 10 (#36392)

* Added border on W10

* Added a comment

---------
Co-authored-by: Davide Giacometti <25966642+davidegiacometti@users.noreply.github.com>

* [PTRun]Fix .NET 9 crash in OneNote (#36417)

* Fix crash in OneNote Run

* added better comment

* [AdvancedPaste]Fix NullReferenceException on Dispose (#36428)

[AdvancedPaste] Fixed NullReferenceException on Dispose

* [Fuzz] Add fuzz testing for AdvancedPaste and new pipeline for onboarding OneFuzz (#36329)

* add fuzz

* install .net8

* add spelling check

* refine the pipeline

* add readme and update the test code

* fix spelling error

* change to weekly run

* Add New CI Pipeline for Latest WindowsAppSDK (#36282)

This PR introduces the following changes to the CI pipeline and version management:

Pipeline Enhancements:
1. Added a new script UpdateVersions.ps1 to automate the update of Microsoft.WindowsAppSDK versions across various project files.
2. Introduced a new pipeline configuration ci-using-the-latest-winappsdk.yml to build using the latest Microsoft.WindowsAppSDK.
3. Updated existing pipeline configurations to support the new useLatestWinAppSDK parameter.

Pipeline Configuration Updates:
1. Updated job-build-project.yml to handle the useLatestWinAppSDK parameter and adjust the RestoreAdditionalProjectSourcesArg accordingly.
2. Added a new template steps-update-winappsdk-and-restore-nuget.yml for updating and restoring NuGet packages with the latest Microsoft.WindowsAppSDK.
3. Added WinAPPSDK version selection, the pipeline can be manually triggered to use the specified version.

---------

Signed-off-by: Shawn Yuan <shuai.yuan.zju@gmail.com>
Co-authored-by: Clint Rutkas <clint@rutkas.com>

* [AOT compatible] Make HostsUILib become AOT compatible (#36136)

* Remove AOT configuration

* Refer to AOT compatibility props

---------

Co-authored-by: Yu Leng (from Dev Box) <yuleng@microsoft.com>

* [AOT compatible] Clean up some AOT build issue in FilePreviewCommon and MarkdownPreviewHandler (#36207)

* Use AppContext.BaseDirectory to replace assembly.GetExeAseembly.Location.
Fix json serilizer aot issue.

* clean up some AOT build issue

* Update src/modules/previewpane/MarkdownPreviewHandler/MarkdownPreviewHandlerControl.cs

Co-authored-by: Jeremy Sinclair <4016293+snickler@users.noreply.github.com>

* Update src/common/FilePreviewCommon/Formatters/JsonFormatter.cs

Co-authored-by: Jeremy Sinclair <4016293+snickler@users.noreply.github.com>

---------

Co-authored-by: Yu Leng (from Dev Box) <yuleng@microsoft.com>
Co-authored-by: Jeremy Sinclair <4016293+snickler@users.noreply.github.com>

* Add new pipeline using the latest webview2 from Edge Canary (#36317)

* using the latest webview2 for testing


---------

Signed-off-by: Shawn Yuan <shuai.yuan.zju@gmail.com>
Co-authored-by: Clint Rutkas <clint@rutkas.com>

* [Bug fix] Making the OpenAI key configuration page scrollable. (#36359)

* Fixed #34470

---------

Signed-off-by: Shawn Yuan <shuai.yuan.zju@gmail.com>

* [Bug fix] Add a format validation step before format conversion. (#36404)

This PR aims to fix the bug #35225 by introducing a new method IsJson to determine if a given text is in JSON format.
The IsJson method is then utilized in the ToJsonFromXmlOrCsvAsync method to optimize the processing logic.
If the text is already in JSON format, it is returned directly without further conversion from XML or CSV.

Co-authored-by: Heiko <61519853+htcfreek@users.noreply.github.com>

---------

Signed-off-by: Shawn Yuan <shuai.yuan.zju@gmail.com>
Co-authored-by: Heiko <61519853+htcfreek@users.noreply.github.com>

* Add more STCA team members (#36438)

* Add more STCA team members

* Include more spelling check errors

* Remove non-alpha in dictionary

* Add Zhaopeng Wang

* Fix spell checking error

* Remove "prerelease: true" (#36484)

* Remove "prerelease: true"

The Microsoft.WinGet.DSC module is GA so prerelease: true is no longer needed.

* Update expect.txt

fixing spellcheck warning

---------

Co-authored-by: Clint Rutkas <clint@rutkas.com>

* [Docs]Update README for 0.87.1 release (#36534)

* [CI] Enhance build Pipeline Reliability with Retry Logic and Improved Error Messaging (#36529)

* update pipeline with retry

* remove tests

* Add team member (#36590)

* [New+]Don't override New actions from Explorer on Windows 10 (#36467)

* [New+]Don't override New actions from Explorer

* Update src/modules/NewPlus/NewShellExtensionContextMenu.win10/shell_context_menu_win10.cpp

* Update src/modules/NewPlus/NewShellExtensionContextMenu.win10/shell_context_menu_win10.cpp

* Add pattern for learn.microsoft links

* Also only Query for context menu

* [PTRun][Calculator]Handle hexadecimal numbers to not return divide by 0 error (#36390)

* add '0x' handling for divide by 0 scenarios

* fix comment on division by 0 check

---------

Co-authored-by: Connor Plante <connor.plante@gmail.com>

* [TextExtractor]Minor UI/Accessibility fixes in the overlay UI (#36356)

minor UI and accessibility fixes

* [PTRun][Calculator]Update mages to v3.0.0 and support for `randi(n)` (#36560)

* update to mages 3.0.0

* allow randi() in calculator plugin

* fix tests and input validation

* fix spell check

* [QuickAccent]Added ć for Slovenian (#36336) (#36338)

* Fix snapping Workspaces Editor to Fancy Zones (#36463)

* Remove Workspaces Editor from Fancy Zone's excluded app list

* removed unused string

---------

Co-authored-by: Seraphima <zykovas91@gmail.com>

* [PTRun]Fix drag on .NET 9 WPF (#36635)

* [CQ]Continued to move stuff out of root - Solution.props (#36244)

* [QuickAccent]Add Proto-Indo-European (#36408)

* Add ḱ to PowerAccent for Proto-Indo-European

* Fix Spelling Check

* Add more letters to PIE

* Order PIE after PI

---------

Co-authored-by: Hao Liu (from Dev Box) <haoliu3@microsoft.com>
Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>

* [PTRun]Add context buttons for VSCodeWorkspaces plugin (#36517)

* [Settings][QuickAccent]Change 'character set' to plural form (#36565)

* [PTRun][Calculator]Fix unit tests on non-english systems (#36569)

* fix tests

* update comment

* [PTRun][Calc]Improve handling of non-base 10 numbers (#36700)

* [Settings][PTRun]Show plugin version and website (#36580)

* [Monaco]Add support for .resx and .resw preview support. (#36499)

Added support for .resx and .resw preview support. These files are XML based files so I added the file extensions as part of the registerAdditionalLanguage("xmlExt"...) function.

* [Settings] Add Workspaces' workspaces.json file to backup/restore list (#36714)

* [Localization] Fix loc pipeline to send downloaded localized files to TDBuild upon retry after failure (#36766)

* [AdvancedPaste]Fixed issues with Screen Reader integration (#36778)

* Remove Advent calendar from README (#36777)

* Remove Advent calendar from README

* Update hero image

* Delete doc/images/overview/PT_holiday_hero_image.png

* [AdvancedPaste]Add all BitmapDecoder supported image filetypes to ImageToText (#35600)

Adds support to ImageToText for all image filetypes supported by BitmapDecoder.

* [AOT]Clean up some AOT build issues in PowerAccent.Core (#36264)

* init

* Use AotCompatibility instead

* Replace typeof(Lanaguge) with GetValues<Language>

* Create new folder to place source generation context file.

---------

Co-authored-by: Yu Leng (from Dev Box) <yuleng@microsoft.com>

* [WinUI3]Fix Windows 10 title bar borders (#36429)

* Fix borders for windows in the Settings UI

* Fix HOSTS window

* Fix Advanced Paste

* Fix Environment Variables

* Fix File Locksmith

* Fix Peek, with a caveat

* Fix Registry Preview

* Remove unused imports

* Clean up imports in OobeShellPage

* Move OSVersionHelper from Common.UI up into ManagedCommon

* [QuickAccent]Fix unstable language loading (#36721)

* [Peek]Bring into foreground if previously minimized (#36506)

Added Activate() to bring Peek.UI window into focus upon Toggle. This allows the UI to be presented even if it was previously minimized.

* Update Run docs README (#36857)

* Update Run docs README

* Remove System dupe

* [Monaco]Make minimap toggleable (#33742)

* [Monaco]Fix Json format preview setting (#36867)

* [KBM]Added option for exact match shortcut (#36000)

* Added option for exact match shortcut

* Fix spell-check

* [Deps][Security]Update .NET Packages from 9.0.0 to 9.0.1  (#36879)

* [Deps] Update NuGet packages to version 9.0.1

Updated several NuGet packages from version 9.0.0 to 9.0.1, including:
- Microsoft.Data.Sqlite
- Microsoft.Bcl.AsyncInterfaces
- Microsoft.Extensions.DependencyInjection
- Microsoft.Extensions.Logging
- Microsoft.Extensions.Logging.Abstractions
- Microsoft.Extensions.Hosting
- Microsoft.Extensions.Hosting.WindowsServices
- Microsoft.Win32.SystemEvents
- Microsoft.Windows.Compatibility
- System.CodeDom
- System.ComponentModel.Composition
- System.Configuration.ConfigurationManager
- System.Data.OleDb
- System.Diagnostics.EventLog
- System.Diagnostics.PerformanceCounter
- System.Drawing.Common
- System.Management
- System.Runtime.Caching
- System.ServiceProcess.ServiceController
- System.Text.Encoding.CodePages
- System.Text.Json

* [Deps] Update NOTICE.md

* [Peek]Fix using the correct Monaco assets at runtime (#36890)

* [Workspaces] fixing bug: editor starts outside of visible desktop area (#36769)

* [Workspaces] fixing bug: editor starts outside of visible desktop area

* Update src/modules/Workspaces/WorkspacesEditor/MainWindow.xaml.cs

Co-authored-by: Seraphima Zykova <zykovas91@gmail.com>

---------

Co-authored-by: Seraphima Zykova <zykovas91@gmail.com>

* [Workspaces] Saving app properties on launch and recapture (#36751)

* [Workspaces] Implementing set and get GUID to/from HWND to distinguish windows moved by the Workspaces tool

* After launch and capture copy the CLI args from the "original" project

* Fix getting GUID

* spell check

* modification to be able to handle different data sizes on different systems

* code optimisation

* Replacing string parameter by InvokePoint

* renaming variable

* [AdvancedPaste]Use background thread for interactions between runner and Advanced Paste (#36858)

* [Advanced Paste] Use background thread for runner-Advanced Paste interaction

* Fixed typo

* [VCM]Deprecate the Video Conference Mute utility (#36772)

* Remove all VideoConferenceMute related code and files

* Clean up vcm driver registry keys

* Also remove the Webcam report tool

* Also clean out video conference on the installer

* Fix spellcheck

* Remove comment about video conf

* Update gpo files revision

* Revert removing the VCM policies

* Deprecate VCM GPO policy

* Change deprecation message to show first supported version

* Tweak supported strings in the adml

* Goodbye friends, you are forever part of the team (#36905)

* Goodbye friends

Forever part of the team 😢

* Update COMMUNITY.md

* Fix formatting issues in COMMUNITY.md

* [New utility]Sysinternals ZoomIt (#35880)

* ZoomIt initial code dump

* Change vcxproj to normalize dependency versions

* Fix code quality to build

* Add to PowerToys solution

* Clean out C-style casts

* Fix some more analyzer errors

* Constexpr a function

* Disable some warnings locally that it seemed better not to touch

* Add ZoomIt module interface

* Add GPO

* Add Settings page with Enable button

* Output as PowerToys.ZoomIt.exe

* Extract ZoomIt Settings definition to its own header

* Make ZoomItModuleInterface build with ZoomItSettings too

* WinRT C++ interop for ZoomItSettings

* From Registry To PowerToys Json

* Properly fix const_cast analyzer error

* Initial Settings page loading from registry

* Zoom mode settings

* Save settings

* Add file picker and DemoType file support

* Remaining DemoType settings

* Have ZoomIt properly reloading Settings and exiting

* Remove context menu entries for Options and Exit

* ZoomIt simple Break Options

* Break advanced options

* Simple Record settings

* Record Microphone setting

* Fix break background file picker title

* Font setting

* Fix build issues after merge

* Add ZoomIt conflict warning to Settings

* Exclude Eula from spell checking

* Fix spellcheck errors

* Fix spell check for accelerated menu items

* Remove cursor files from spellcheck. They're binary

* Fix forbidden patterns

* Fix XAML style

* Fix C# analyzers

* Fix signing

* Also sign module interface dll

* Use actual ZoomIt icon

* Add OOBE page for ZoomIt

* ZoomIt image for Settings

* Flyout and Dashboard entries

* Fix type speed slider labels

* Correctly load default Font

* Correctly register shortcuts on ZoomIt startup first run

* Fix modifier keys not changing until restart

* Show MsgBox on taken shortcut

* Start PowerToys Settings

* Normalize ZoomIt file properties with rest of PowerToys

* Add attribution

* Add ZoomIt team to Community.md

* More copyright adjustments

* Fix spellcheck

* Fix MsgBox simultaneous instance to the front

* Add mention of capturevideosample code use

* Add ZoomIt to process lists

* Add telemetry

* Add logging

* React to gpo

* Normalize code to space identation

* Fix installer build

* Localize percent setting

* Fix XAML styling

* Update src/settings-ui/Settings.UI/Strings/en-us/Resources.resw

Co-authored-by: Stefan Markovic <57057282+stefansjfw@users.noreply.github.com>

* Fix spellcheck

* One more spellcheck fix

* Integrate LiveDraw feature changes from upstream

* Fix name reuse in same scope

* Fix c-style casts

* Also register LIVEDRAW_HOTKEY

* Fix newLiveZoomToggleKey

* Update LiveZoom description in Settings to take LiveDraw into account

* Fix spellcheck

* Fix more spellcheck

* Fix Sysinternals capitalization

* Fix ARM64 Debug build

* Support Sysinternals build (#36873)

* Remove unneeded files

* Make build compatible with Sysinternals

* Separate PowerToys ZoomIt product name (#36887)

* Separate PowerToys ZoomIt product name

To help maintain the Sysinternals branding in the standalone version.

* Clarify branding-related includes

* Remove ZoomIt.sln

* Add foxmsft to spell-check names

* Add ZoomIt to README

* Add ZoomIt to GH templates

* Add ZoomIt events to DATA_AND_PRIVACY.md

* Remove publish_config.json

* Remove publish_config.json from vcxproj too

---------

Co-authored-by: Mark Russinovich <markruss@microsoft.com>
Co-authored-by: Alex Mihaiuc <69110671+foxmsft@users.noreply.github.com>
Co-authored-by: John Stephens <johnstep@microsoft.com>
Co-authored-by: Stefan Markovic <57057282+stefansjfw@users.noreply.github.com>

* [PTRun]Add hotkey to the show telemetry event (#36869)

* [PTRun]Update the code for .NET 9.0.1 - remove workarounds (#36909)

* Revove some unneeded changes after pdating to .net9.1

* [RegistryPreview]Copy context menu, data tooltip, MULTI_SZ fix (#36631)

* add context menus

* string resources for contextmenu

* fix line break parsing for MULTI_SZ

* better presentation of multiline values and value tooltip

* cleanup

* [MWB] - refactoring "Common" classes - Common.Log.cs, Common.Receiver.cs (#35726)

* [PTRun]Add setting for different trigonometric units in Calculator (#36717)

* Added angle units to PowerToys Run Calculator plugin.

* Update Resources.resx

* Added GitHub SpellCheck rule for 'gradians'.

---------

Co-authored-by: Heiko <61519853+htcfreek@users.noreply.github.com>

* [ci]Remove steps to build abstracted utilities packages (#36934)

* [Settings]Update GPO infobar icon, improve some pages and fix bugs (#33703)

* changes part 1

* fix xaml code

* changes part 2

* fix cmdNotFound page

* Update PowerOcrPage

* More Pages changed

* More Pages changed

* revert temporary change

* fix spelling

* add resw comment

* add resw comment

* Update MouseWihtoutBorderPage.xaml

* PowerPreview page

* workspaces page

* fix awake page gpo handling

* NewPlus page

* update new+ page!

* AdvancedPaste.xaml: Move Info bar.

* Update MouseJumpPanel.xaml

* Update GeneralPage.xaml

* fix position of info bar and some ui quirks

* fix xaml style

* fix string resources

* string changes

* prepare megre main

* update new+ page

* zoomit page

* various fixes

* [Common]NotificationUtil helper class with FileWatcher (#36720)

* add NotificationUtil helper with file watcher and cache

* fix spellcheck

* indentation

* [PTRun][Docs]Add YubicoOauthOTP to Third-Party plugins (#36761)

* [PTRun]Fixed typo in Value Generator messages (#36951)

* [AOT] Clean up some AOT issues in Advanced Paste module (#36297)

* Clean up the aot build issue.

* Merge main and clean up new AOT build issue

* Update LogEvent define.

* Update src/modules/AdvancedPaste/AdvancedPaste/Helpers/LogEvent.cs

Co-authored-by: Jeremy Sinclair <4016293+snickler@users.noreply.github.com>

* update typo bug

* Remove unused allow list item

* Create a new folder to place source generation context

* Merge main and rename LogEvent to AIServiceFormatEvent

---------

Co-authored-by: Yu Leng (from Dev Box) <yuleng@microsoft.com>
Co-authored-by: Jeremy Sinclair <4016293+snickler@users.noreply.github.com>

* [ZoomIt]React to gpo setting when run as standalone (#36975)

* [Settings]ImageResizer settings accessibility updates, fixes and refactor (#36903)

* Fix issue with missing Image Resizer unit and fit information in settings description.

* Fix accessibility issues on Edit and Remove buttons. Fix various issues and refactor view model and ImageSize. New resources for accessibility text formats.

* Fix unit test because of change to new preset width and height. Fix 2 unit tests having incorrect expected/actual orderings.

* Post-review update: accessibility strings now formatted within the converter, instead of via format strings; simplified encoder GUID collection declaration and retrieval.

* Minor example text fix.

* [Settings]Update "Back up" mentions when it should be used as a verb (#36965)

* Update Back up name

* Rename Backup to Back up

* [New+]Update last modified date to now for all templates created (#36133)

* Update last modified date to now for all templates created

* Now also set last update for directories. Thank you htcfreek!

* [ImageResizer][ci]Fix XAML style errors (#37009)

* [Settings] Add "new" labels to navigation for new utilities (#36939)

* initial implementation

* move new label to zoomit

* cleanup

* more cleanup

* fix XAML formatting

* update padding to 4px

* add badge to dashboard item

* fix XAML formatting

* Tweaking UX

---------

Co-authored-by: Niels Laute <niels.laute@live.nl>
Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>

* [MWB]Fix helper process termination issue in service mode (#36892)

* [MWB] Changed to suppress the flow of the execution context

* Fix build after merge

* [MWB] Fix helper process termination issue in service mode

* Add some comments

* [runner]Fix crashes caused by wrong setting AllowDataDiagnostics registry value (#37015)

* Fix setting registry value

* Prevent future similar crashes

* [PTRun][Calculator]Error check when loading trigonometry mode (#37033)

* [ZoomIt]Fix transparent draw after changing another setting (#37042)

* [Settings]Fix ZoomIt page changing current directory (#37052)

* [ci]Remove vc tools version workaround (#37098)

* 0.88 changelog (#37056)

* 0.88 changelog

* Update README.md

Co-authored-by: Clint Rutkas <clint@rutkas.com>

* Add installer hashes

* Fix aka.ms link for ZoomIt

* Add mention to the PTRun plugin's dll file version

* Update README.md

Co-authored-by: Kayla Cinnamon <cinnamon@microsoft.com>

---------

Co-authored-by: Clint Rutkas <clint@rutkas.com>
Co-authored-by: Kayla Cinnamon <cinnamon@microsoft.com>

* [check-spelling] Update metadata

Update for https://github.com/zadjii-msft/PowerToys/actions/runs/13033425108/attempts/1
Accepted in https://github.com/zadjii-msft/PowerToys/pull/379#issuecomment-2621811953

Signed-off-by: check-spelling-bot <check-spelling-bot@users.noreply.github.com>
on-behalf-of: @check-spelling <check-spelling-bot@check-spelling.dev>

---------

Signed-off-by: Shawn Yuan <shuai.yuan.zju@gmail.com>
Signed-off-by: check-spelling-bot <check-spelling-bot@users.noreply.github.com>
Co-authored-by: Laszlo Nemeth <57342539+donlaci@users.noreply.github.com>
Co-authored-by: Seraphima <zykovas91@gmail.com>
Co-authored-by: donlaci <donlaci@yahoo.com>
Co-authored-by: Ionuț Manța <ionut@janeasystems.com>
Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>
Co-authored-by: Jeremy Sinclair <4016293+snickler@users.noreply.github.com>
Co-authored-by: Ani <115020168+drawbyperpetual@users.noreply.github.com>
Co-authored-by: PesBandi <127593627+PesBandi@users.noreply.github.com>
Co-authored-by: Wenjian Chern <55335597+Sophanatprime@users.noreply.github.com>
Co-authored-by: Youssef Victor <youssefvictor00@gmail.com>
Co-authored-by: Clint Rutkas <clint@rutkas.com>
Co-authored-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
Co-authored-by: leileizhang <leilzh@microsoft.com>
Co-authored-by: Den Delimarsky 🔐 <sign@den.dev>
Co-authored-by: Niels Laute <niels.laute@live.nl>
Co-authored-by: Davide Giacometti <25966642+davidegiacometti@users.noreply.github.com>
Co-authored-by: Heiko <61519853+htcfreek@users.noreply.github.com>
Co-authored-by: Shuai Yuan <128874481+shuaiyuanxx@users.noreply.github.com>
Co-authored-by: moooyo <42196638+moooyo@users.noreply.github.com>
Co-authored-by: Yu Leng (from Dev Box) <yuleng@microsoft.com>
Co-authored-by: Jerry Xu <n.xu@outlook.com>
Co-authored-by: Demitrius Nelon <denelon@microsoft.com>
Co-authored-by: Kai Tao <69313318+vanzue@users.noreply.github.com>
Co-authored-by: Connor Plante <150482134+plante-msft@users.noreply.github.com>
Co-authored-by: Connor Plante <connor.plante@gmail.com>
Co-authored-by: Domen Soklič <soklicd@gmail.com>
Co-authored-by: Hao Liu <liuhaobupt@163.com>
Co-authored-by: Hao Liu (from Dev Box) <haoliu3@microsoft.com>
Co-authored-by: immi <iafullprogrammer@gmail.com>
Co-authored-by: Asif Islam <77113884+asif4318@users.noreply.github.com>
Co-authored-by: Kayla Cinnamon <cinnamon@microsoft.com>
Co-authored-by: Dave Rayment <dave.rayment@gmail.com>
Co-authored-by: Neil McAlister <pingzing@users.noreply.github.com>
Co-authored-by: Mark Russinovich <markruss@microsoft.com>
Co-authored-by: Alex Mihaiuc <69110671+foxmsft@users.noreply.github.com>
Co-authored-by: John Stephens <johnstep@microsoft.com>
Co-authored-by: Michael Clayton <mike@kingslandconsulting.co.uk>
Co-authored-by: Nathan Gill <nathan.j.gill@outlook.com>
Co-authored-by: Daniel Nilsson <daniel.nilsson1989@gmail.com>
Co-authored-by: JackStuart <jack@jstuart.io>
Co-authored-by: Christian Gaarden Gaardmark <cgaarden@hotmail.com>
Co-authored-by: YDKK <YDKK@users.noreply.github.com>
Co-authored-by: Stefan Markovic <stefansjfw@users.noreply.github.com>
2025-01-29 08:54:27 -06:00
Stefan Markovic
0931597d53 Fix build until POC is removed (#380) 2025-01-29 08:47:51 -06:00
Mike Griese
c39141b143 Tiny nits for winget (#378)
I guess I only subconsciously knew that the progress value in WinUI was in percent, not [0,1].
Also actually do the description fallback I wanted.
2025-01-29 06:56:10 -06:00
Mike Griese
4ce5515ced Remove all the PT Run v1 icons we no longer need (#377)
Removes icons we weren't using anymore. 
Replaces the Windows Services icon from the dll, with "Processing", which is also two gears. 
Fixes the FastUpToDate check, for tighter inner loop

Closes #125
2025-01-29 06:32:23 -06:00
Mike Griese
cce68789df Remove straggling empty fallbacks (#376)
Updating the search text for a fallback command is fully async. However, we just fire off all those updates, then immediately update the list of filtered items. That of course is dumb, because most of them haven't yet processed the update before we determine if we show it or not.

So, we've added an `UpdateFallbackItemsMessage` that we emit from a fallback command to let the main page know it may need to remove an item from its list.
2025-01-28 14:21:49 -06:00
Mike Griese
0fba556782 Hot (un)load extensions on (un)install (#375)
Closes #370 

The DevHome code was great for "I need something that can lookup extensions and enumerate all of them".

However, the DevHome code is a very blunt hammer when it comes to extensions. The only thing it tracks is "packages changed", and if it gets one of those, it just blows away all the extensions and rebuilds them. Yikes. 

This PR changes `ExtensionService` to be a scalpel. We'll keep `_installedExtensions` fresh. When we get a package install, we'll add only that package's extension to our cache, and let the `TopLevelCommandManager` know. Similarly for updates and uninstalls. 

That way, we can exactly change the top-level list as needed, rather than bluntly forcing all the extensions to reload. 

In the middle of all this, I fixed a bug where uninstalling an extension, then reloading would just fail to load extensions. This is because the old code would clear out the **whole** list of extensions when _one_ was uninstalled. That created a race where we'd be parsing the new list of all the extensions (from the reload), get an uninstall event, clear the list, then InvalidOperation as the list of extensions was modified during enumeration. 

There's a bunch more locking in here. This might drive-by #324 but hard to be sure. 

Related to #89
2025-01-28 13:45:46 -06:00
Mike Griese
899c233329 Don't move the caret to the end of the input if nothing changed (#374)
Title.

I just noticed that if you move the caret earlier in the input, then type, we'll toss the caret to the end of the input. Ew. Don't do that.

We should only move the caret if the text actually changed from what we already had.
2025-01-27 12:06:09 -08:00
Jordi Adoumie
a89375df1e Farewell (#332)
[Spartans never die](https://www.youtube.com/clip/UgkxrRi5-oeG7thHZ4qH-UNsw2JmyK_GmM0W)
2025-01-27 12:03:44 -08:00
Davide Giacometti
f14119a3ff Add isMultiline and placeholder to Input.Text (#371)
Add `isMultiline` and `placeholder` to `Input.Text`.
Default is the current behavior: single line without placeholder.
2025-01-27 12:00:36 -08:00
Mike Griese
e92a28917e Update acrylic when BG changes (#373)
Closes #225

Yes it absolutely was this easy.
2025-01-27 11:56:46 -08:00
Mike Griese
2311b35a08 Add sample to validate null arrays (#372)
Closes #221

Turns out that the crash in #221 doesn't actually repro anymore, but this sample will test that case
2025-01-27 11:56:29 -08:00
Mike Griese
7416b3462d Add a tray icon (#364)
Mostly pilfered code from `src/runner/tray_icon.cpp`

Creates a tray icon. No menu on it - just click it to focus the CmdPal. 

Closes #what-the-I-didn't-file-something-for-this?
2025-01-27 11:56:20 -08:00
Mike Griese
46bc657945 Add support for tags in Details metadata (#368)
Adds support for rendering tags in Details metadata.

As an example, adds tags to winget packages.

Closes #95 

Also adds separators, and a sample
2025-01-27 11:55:02 -08:00
Mike Griese
621044f3c5 Add a page for searching for extensions on winget (#369)
Tested with the `command-line` tag, because there's no extensions in winget until https://github.com/microsoft/winget-pkgs/pull/216685 merges

Also adds a link to search in the Store, though I think that won't be as useful. 

Lastly - also actually fixes the tag search 😅

Builds on #356
Closes #89
Probably needs #370 to feel right
2025-01-27 11:53:14 -08:00
Niels Laute
28efaa849a Settings in a window (#361)
- Settings are now in a window.
- Moved pages into a separate pages folder

We probably want to split up the extensions vs. general VMs, but we can do that later once we figured out what the Settings pages should look like.

Related to #80
2025-01-27 11:52:47 -08:00
Seraphima Zykova
62e99fbc70 [Indexer] Support wildcards like PT Run (#336)
Changed query generation to support wildcards like PT Run
2025-01-27 11:52:27 -08:00
Mike Griese
e51d70e055 Fix NOTICE and add version (#362)
I didn't know this file existed, whoops, sorry
2025-01-24 06:24:22 -08:00
Mike Griese
8f9534121f Initial draft of the winget extension (#356)
_targets #355_, which I need for improvements to messages

* [x] The initial package load takes a long time. This is pretty much unavoidable, but we do it on cmdpal startup, so anything after about 12s should be snappy
* [x] I cannot for the life of me get `FindPackagesAsync`, to be async. The call always ends up running synchronously, so I can't hook up the `operation.Completed` event, nor the cancellation. The action is already complete! 
  - this is probably blocking, because we still end up doing a search on most keystrokes, so we only get the final results after all the intermediate ones are done. 
  - Just pasting a search though? Just as snappy as you'd hope. 
  - Ahahahaha it wasn't me: [microsoft/winget-cli#5151](https://github.com/microsoft/winget-cli/pull/5151)
  -  manually wrapping this in a BG thread made it better
* [ ] We probably shouldn't make the default action for an installed package "Uninstall". 
  - Probably want to shunt over to the Settings app for the package
  - We probably want to do the thing where the second command doesn't show up if it's a separator
  - Punt? punt
* [x] We need to add more metadata in the details for packages. We have it, if only we could show it: #95 
  - This will be a follow-up
* [ ] This needs localization too
* I'm using the `1.10-preview` of the winget com interfaces. On my framework laptop at least, the `RefreshPackageCatalogAsync` API isn't yet implemented, so I need to test that
* [x] I don't think we implemented `MoreCommands` being observable in the host yet. We should.
  - Punted, #360 
* [ ] I probably also need to check if other APIs we're using exist or not
* [x] I haven't tested situations that like, need you to accept a license? Installing `nano` and the NanoLeaf app both _just work_. 
  - Punted?
2025-01-24 04:49:18 -08:00
Mike Griese
4d464bc801 Add support for hiding messages too (#355)
Bits of status messages that were omitted from #281. 

This lets extensions hide messages (and exposes the helper in the helper lib). 

It also adds support for displaying progress as a progress bar underneath the text of the status message. I'll need An Adult to help with the XAML, to re-template the InfoBar to allow a progress wheel in the icon instead, but for now? good enough. 

I'm doing this to unblock the next PR, which should add some rudimentary winget support.
2025-01-23 14:06:55 -08:00
Mike Griese
2d4bead312 Fix taskbar summons (#357)
Whoops. Activating the app from the taskbar comes in off the UI thread

This may have been an additional cause of #327
2025-01-23 14:06:06 -08:00
Mike Griese
5ed505ac92 Add 3 settings for Clint (#347)
* Add 3 settings for Clint

Is your name Clint? Do you like settings? Did you hate that backspace on the
main page could dismiss the palette? If you said yes to any of that, you're in
luck! This PR is for you!

This PR adds three new settings:

* `BackspaceGoesBack`: Controls if backspace with an empty search takes you back
  a level
* `SingleClickActivates`: Allows users to toggle between the "single click
  selects, double activates" vs "single click activates" behavior
* `HighlightSearchOnActivate`: When `true` (**default**), this will select the
  text in the search bar when the window is summoned

This drive-by fixes a bug where clicking to select an item stole focus from the
search box.

closes #306

* spel
2025-01-23 13:48:57 -08:00
Stefan Markovic
83e13e814b Mere PT upstream #8 (#346)
* [Workspaces] implement the move feature (#35480)

* [Workspaces] Add move functionality

* spell checker

* [Workspaces] Modify Arranger to move apps without launch

* moved ipc helper

* removed callback

* use LauncherStatus in WindowArranger

* wait for launching next app

* launch in a separate thread and protect by mutexes

* update app version in advance

* changed canceling launch

* increased waiting time

* Fix optional parameter load from json

* changed arranger waiting time

* additional waiting time for Outlook

* added app id

* ensure ids before launch

* set id in editor

* minor updates

* [Workspaces] Move: Get the nearest window when moving a window

* [Workspaces] convert optional boolean to enum to avoid json problems

* Handle case when the new Application Property "moveIfExists" does not exist

* Re-implementing app-window pairing for moving feature.

* spell checker

* XAML formatting

* Fixing bug: IPC message not arriving

* spell checker

* Removing app-level-setting for move app. Also fixed compiler errors due styling.

* Updating editor window layout

* Re-implementing window positioning UI elements

* XAML formatting

* Code review findings

* Code cleanup

* Code cleanup

* Code cleanup

* code cleanup

* Code cleanup

* Code cleanup

* fix Move attribute after launch and snapshot

* Extend WindowArranger with PWA functionality to detect different PWA apps. PwaHelper moved to the common library

* fix repeat counter in the editor

* Code optimization

* code cleanup, optimization

* fix double-processing window

---------

Co-authored-by: Seraphima <zykovas91@gmail.com>
Co-authored-by: donlaci <donlaci@yahoo.com>

* [KeyboardManager]Fix mapping shift to numpad (#35890)

* Keyboard Manger fix numpad as shift

Fixed shift not being released if a numpad key as shift.

* Added comments

* Fix typo

* Fix the numpad unlocked key not working if the locked version is overridden by shift

* Fix spelling check.

* Revert the VK_CLEAR change.

---------

Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>

* [Analyzers] Update .editorconfig with rules to relax IDE errors (#36095)

* [Analyzers] Remove duplicate pascal case style from .editorconfig

* [Analyzers] Configured severity for individual IDE and CA rules showing as errors in VS

Set severity for IDE0005, IDE0008, IDE0016, IDE0018, IDE0019, IDE0021, IDE0022, IDE0023, IDE0025, IDE0027, IDE0028, IDE0029, IDE0031, IDE0032, IDE0034, IDE0036, IDE0039, IDE0042, IDE0044, IDE0045, IDE0046, IDE0047, IDE0057, IDE0051, IDE0052, IDE0054, IDE0055, IDE0056, IDE0057, IDE0059, IDE0060, IDE0061, IDE0063, IDE0071, IDE0073, IDE0074, IDE0075, IDE0077, IDE0078, IDE0083, IDE0090, IDE0100, IDE0130, IDE160, IDE180, IDE0200, IDE0240, IDE0250, IDE0251, IDE0260, IDE0270, IDE0290, IDE0300, IDE0301, IDE0305, IDE1005, IDE1006, CA1859, CA2022, CA2263

* [Analyzers] Fix mismatched analyzer descriptions

* [Analyzers] Fix misspelling

* Update .editorconfig

Made the following style rules `silent` instead of `suggestion`: 
- Use explicit type instead of 'var'
- Use expression body for ...
- Use block-scoped namespace

* [Analyzers] Set IDE0290 to silent

* [Analyzers] Remove IDE1006 configuration from .editorconfig in favor of making exclusions for the few entries

* [Analyzers][Indexer] Add IDE1006 suppressions

* [Analyzers][Peek] Add IDE1006 suppression

* [Analyzers][MWB] Add IDE1006 suppression.

* [Analyzers][Plugins] Add IDE1006 suppression

* [Analyzers][ImageResizer] Suppress IDE0073 to retain original copyright

* [Analyzers] Remove IDE0073 severity change in .editorconfig

---------

Co-authored-by: Ani <115020168+drawbyperpetual@users.noreply.github.com>

* [Workspaces] PWA follow-up (#36217)

* [PTRun][Calculator]Allow scientific notation with lowercase 'e' (#36187)

* [Workspaces] Add encoder parameter to bitmap.save() (#36228)

* [Workspaces] Add encoder parameter to bitmap.save()

* 1 more call fixed

* Move repeated code to the csharp library

* [Workspaces] Implement store of app window's size and position (#36086)

* [Workspaces] Implement store of app window's size and position

* Modifying the default values to -1. The program will use the original default values for the first run.

* [ScreenRuler]Add setting to show the measurement in an extra unit (#35887)

* display ruler: supporting millimeter and other units

* Measurement Tool: UI Setting for an extra unit

* Update images

* spelling

* spelling

* suit code style

* Fix for code review

* remove weird file

* rename field

* [Deps]Update MSTest from 3.5.0 to 3.6.3 (#36115)

* Update MSTest from 3.5.0 to 3.6.3

* Use STA attributes that are now part of MSTest

* Adding Jerry to community.md (#36232)

Update COMMUNITY.md

* [Workspaces] Arranger: smart timer (#36096)

* [Workspaces] Add move functionality

* spell checker

* [Workspaces] Modify Arranger to move apps without launch

* moved ipc helper

* removed callback

* use LauncherStatus in WindowArranger

* wait for launching next app

* launch in a separate thread and protect by mutexes

* update app version in advance

* changed canceling launch

* increased waiting time

* Fix optional parameter load from json

* changed arranger waiting time

* additional waiting time for Outlook

* added app id

* ensure ids before launch

* set id in editor

* minor updates

* [Workspaces] Move: Get the nearest window when moving a window

* [Workspaces] convert optional boolean to enum to avoid json problems

* Handle case when the new Application Property "moveIfExists" does not exist

* Re-implementing app-window pairing for moving feature.

* spell checker

* XAML formatting

* Fixing bug: IPC message not arriving

* spell checker

* Removing app-level-setting for move app. Also fixed compiler errors due styling.

* Updating editor window layout

* Re-implementing window positioning UI elements

* XAML formatting

* Code review findings

* Code cleanup

* Code cleanup

* Code cleanup

* code cleanup

* Code cleanup

* Code cleanup

* [Workspaces] Arranger: Reset wait timer after each successful arrange action

* fix merge error

---------

Co-authored-by: Seraphima <zykovas91@gmail.com>
Co-authored-by: donlaci <donlaci@yahoo.com>

* Upgrade to check-spelling v0.0.24 (#36235)

This upgrades to [v0.0.24](https://github.com/check-spelling/check-spelling/releases/tag/v0.0.24).

A number of GitHub APIs are being turned off shortly, so you need to upgrade or various uncertain outcomes will occur.

There's a new accessibility forbidden pattern:

> Do not use `(click) here` links
> For more information, see:
> * https://www.w3.org/QA/Tips/noClickHere
> * https://webaim.org/techniques/hypertext/link_text
> * https://granicus.com/blog/why-click-here-links-are-bad/
> * https://heyoka.medium.com/dont-use-click-here-f32f445d1021
```pl
(?i)(?:>|\[)(?:(?:click |)here|link|(?:read |)more)(?:</|\]\()
```

There are some minor bugs that I'm aware of and which I've fixed since this release, but I don't expect to make another release this month.

I've added a pair of patterns for includes and pragmas. My argument is that the **compiler** will _generally_ tell you if you've misspelled an include and the **linker** will _generally_ tell you if you misspell a lib.

- There's a caveat here: If your include case-insensitively matches the referenced file (but doesn't properly match it), then unless you either use a case-sensitive file system (as opposed to case-preserving) or beg clang to warn, you won't notice when you make this specific mistake -- this matters in that a couple of Windows headers (e.g. Unknwn.h) have particular case and repositories don't tend to consistently/properly write them.

* Adjust to community.md, shifting jerry's github user name (#36242)

Update COMMUNITY.md

* [AOT compatible] Resolve AOT Build Error in Peek.UI (#36194)

* add partial for aot support

* add Microsoft.NET.ILLink.Tasks to packages.props

* format

* Revert "format"

This reverts commit 742d5e2214.

* add Microsoft.NET.ILLink.Tasks to notice.md

* add auto reference

* update script to remove the 'Auto-reference line'

---------

Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>

* Awake Updates - `TILLSON_11272024` (#36049)

* Update with bug fixes for tray icon and support for parent process

* Process information enum

* Update the docs

* Fix spelling

* Make sure that PID is used in PT config flow

* Logic for checks based on #34148

* Update with link to PR

* Fixes #34717

* Small cleanup

* Proper task segmentation in a function

* Cleanup the code

* Fix synchronization context issue

* Update planning doc

* Test disabling caching to see if that manages to pass CI

* Cleanup to make sure that we're logging things properly.

* Update ci.yml

* Disable cache to pass CI

* Retry logic

* Cleanup

* Code cleanup

* Fixes #35848

* Update notes and codename

* After third attempt, log error instead of throwing exception

* More cleanup to avoid double execution

* Add expected word

* Safeguards for bad values for timed keep-awake

* More updates to make sure I am using uint

* Update error message

* Update packages

* Fix notice and revert CsWinRT upgrade

* Codename update

* Update expect.txt

* Update the struct

* Ensuring we're properly awaiting tray initialization

* Update to make sure tray reflects the bound process

* Cleanup, proper JSON serialization for logs.

* Not needed.

* Add command validation logic

* Moving the initialization logic earlier

* Make sure we show the display state in the tooltip

* Update tray string

* Update src/modules/awake/Awake/Core/Manager.cs

Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>

* Update src/modules/awake/Awake/Core/Manager.cs

Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>

* Update src/modules/awake/Awake/Core/Manager.cs

Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>

* Update src/modules/awake/Awake/Core/Manager.cs

Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>

* Update logic for icon resets

* Update doc

* Simplify function for setting mode shell icon

* Issues should be properly linked

* Minor cleanup

* Update timed behavior

---------

Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>
Co-authored-by: Clint Rutkas <clint@rutkas.com>

* [Workspaces] detecting right app version (#36100)

* [Workspaces] Add move functionality

* spell checker

* [Workspaces] Modify Arranger to move apps without launch

* moved ipc helper

* removed callback

* use LauncherStatus in WindowArranger

* wait for launching next app

* launch in a separate thread and protect by mutexes

* update app version in advance

* changed canceling launch

* increased waiting time

* Fix optional parameter load from json

* changed arranger waiting time

* additional waiting time for Outlook

* added app id

* ensure ids before launch

* set id in editor

* minor updates

* [Workspaces] Move: Get the nearest window when moving a window

* [Workspaces] convert optional boolean to enum to avoid json problems

* Handle case when the new Application Property "moveIfExists" does not exist

* Re-implementing app-window pairing for moving feature.

* spell checker

* XAML formatting

* Fixing bug: IPC message not arriving

* spell checker

* Removing app-level-setting for move app. Also fixed compiler errors due styling.

* Updating editor window layout

* Re-implementing window positioning UI elements

* XAML formatting

* Code review findings

* Code cleanup

* Code cleanup

* Code cleanup

* code cleanup

* Code cleanup

* Code cleanup

* [Workspaces] fix detection of specific version of apps

---------

Co-authored-by: Seraphima <zykovas91@gmail.com>
Co-authored-by: donlaci <donlaci@yahoo.com>

* Move the XamlStyler config to src/ (#36202)

my never ending goal to minimize files in the root dir

* [AdvancedPaste]Add Semantic Kernel opt-in to allow chaining of paste actions (#35902)

* [AdvancedPaste] Semantic Kernel support

* Changed log-line with potentially sensitive info

* Spellcheck issues

* Various improvements for Semantic Kernel

* Spellcheck issue

* Refactored Clipboard routines

* Added integration tests for KernelService

* Extra telemetry for AdvancedPaste

* Added 'Hotkey' suffix to AdvancedPaste_Settings telemetry event

* Added IsSavedQuery

* Added KernelQueryCache

* Refactoring

* Added KernelQueryCache to BugReportTool delete list

* Added opt-n for Semantic Kernel

* Fixed bug with KernelQueryCache

* Ability to view last AI chat message on error

* Improved kernel query cache

* Used System.IO.Abstractions and improved tests

* Fixed under-count of token usage

* Used Semantic Kernel icon

* Cleanup

* Add missing EndProject line

* Fix dependency version conflicts

* Fix NOTICE.md

* Correct place of SemanticKernel in NOTICE.md

* Unlinked CustomPreview toggle from AI

* Added Microsoft.Bcl.AsyncInterfaces dependency to AdvancedPaste

* Fixed NOTICE.md order

* Moved Custom Preview to behaviour section

* Made Image to Text raise error on empty output

* Added AIServiceBatchIntegrationTests

* Updated AIServiceBatchIntegrationTests

* Added prompt moderation

* Moved GPO Infobar to better location

* [Launcher]Port from WPF-UI to .NET 9 WPF (#36215)

* Initial implementation

* Fix fluent style

* Fix no endline

* Update expect.txt

* Fix formatting

* Fix light theme looking bad on Windows 10

* fix formatting

* test change

* Now really fixed W10

* Add a comment

* Fix typos

* Fix spellcheck errors

* Fix spellcheck pattern for websites

* Change patterns for spellcheck in the right file

* Fix XAML styling

* Fix contrast colors on W11

* Fix formatting

* Removed emty line

* Fix formatting

* Added comment to fluentHC file

* fix comment

* Fix Windows10 again.
Adress feedback.

* W11 fix chaning from high contrast to normal not having correct background

* W10 Fix high contrast not working after switching from light/dark moed

* Address feedback

* Fix formatting

* Second W11 fix chaning from high contrast to normal not having correct background

* [UX]Updating New+ and Settings icons (#36290)

* Updated icons

* Updating more icons and icos

* [Settings][Dashboard] Accessibility fixes (#36280)

* make narrator announce buttons/toggles

* add toggles module name

* [ci]Sign OpenAI dll that's not signed (#36299)

* Update CODEOWNERS to include gordon, jerry and kayla (#36308)

* Update CODEOWNERS

* Update names.txt

* Making the powertoys-code-owners team code owners (#36310)

* Update CODEOWNERS

* Update names.txt

* Update CODEOWNERS

* [FZEditor]Fix Create new layout dialog radio buttons IsChecked values  (#36320)

* 0.87 changelog (#36335)

* 0.87 changelog

* Fix spellcheck

* Update README.md

Co-authored-by: Heiko <61519853+htcfreek@users.noreply.github.com>

---------

Co-authored-by: Heiko <61519853+htcfreek@users.noreply.github.com>

* [PTRun]Fix WPF transparent border issue on Windows 10 (#36392)

* Added border on W10

* Added a comment

---------
Co-authored-by: Davide Giacometti <25966642+davidegiacometti@users.noreply.github.com>

* [PTRun]Fix .NET 9 crash in OneNote (#36417)

* Fix crash in OneNote Run

* added better comment

* [AdvancedPaste]Fix NullReferenceException on Dispose (#36428)

[AdvancedPaste] Fixed NullReferenceException on Dispose

* [Fuzz] Add fuzz testing for AdvancedPaste and new pipeline for onboarding OneFuzz (#36329)

* add fuzz

* install .net8

* add spelling check

* refine the pipeline

* add readme and update the test code

* fix spelling error

* change to weekly run

* Add New CI Pipeline for Latest WindowsAppSDK (#36282)

This PR introduces the following changes to the CI pipeline and version management:

Pipeline Enhancements:
1. Added a new script UpdateVersions.ps1 to automate the update of Microsoft.WindowsAppSDK versions across various project files.
2. Introduced a new pipeline configuration ci-using-the-latest-winappsdk.yml to build using the latest Microsoft.WindowsAppSDK.
3. Updated existing pipeline configurations to support the new useLatestWinAppSDK parameter.

Pipeline Configuration Updates:
1. Updated job-build-project.yml to handle the useLatestWinAppSDK parameter and adjust the RestoreAdditionalProjectSourcesArg accordingly.
2. Added a new template steps-update-winappsdk-and-restore-nuget.yml for updating and restoring NuGet packages with the latest Microsoft.WindowsAppSDK.
3. Added WinAPPSDK version selection, the pipeline can be manually triggered to use the specified version.

---------

Signed-off-by: Shawn Yuan <shuai.yuan.zju@gmail.com>
Co-authored-by: Clint Rutkas <clint@rutkas.com>

* [AOT compatible] Make HostsUILib become AOT compatible (#36136)

* Remove AOT configuration

* Refer to AOT compatibility props

---------

Co-authored-by: Yu Leng (from Dev Box) <yuleng@microsoft.com>

* [AOT compatible] Clean up some AOT build issue in FilePreviewCommon and MarkdownPreviewHandler (#36207)

* Use AppContext.BaseDirectory to replace assembly.GetExeAseembly.Location.
Fix json serilizer aot issue.

* clean up some AOT build issue

* Update src/modules/previewpane/MarkdownPreviewHandler/MarkdownPreviewHandlerControl.cs

Co-authored-by: Jeremy Sinclair <4016293+snickler@users.noreply.github.com>

* Update src/common/FilePreviewCommon/Formatters/JsonFormatter.cs

Co-authored-by: Jeremy Sinclair <4016293+snickler@users.noreply.github.com>

---------

Co-authored-by: Yu Leng (from Dev Box) <yuleng@microsoft.com>
Co-authored-by: Jeremy Sinclair <4016293+snickler@users.noreply.github.com>

* Add new pipeline using the latest webview2 from Edge Canary (#36317)

* using the latest webview2 for testing


---------

Signed-off-by: Shawn Yuan <shuai.yuan.zju@gmail.com>
Co-authored-by: Clint Rutkas <clint@rutkas.com>

* [Bug fix] Making the OpenAI key configuration page scrollable. (#36359)

* Fixed #34470

---------

Signed-off-by: Shawn Yuan <shuai.yuan.zju@gmail.com>

* [Bug fix] Add a format validation step before format conversion. (#36404)

This PR aims to fix the bug #35225 by introducing a new method IsJson to determine if a given text is in JSON format.
The IsJson method is then utilized in the ToJsonFromXmlOrCsvAsync method to optimize the processing logic.
If the text is already in JSON format, it is returned directly without further conversion from XML or CSV.

Co-authored-by: Heiko <61519853+htcfreek@users.noreply.github.com>

---------

Signed-off-by: Shawn Yuan <shuai.yuan.zju@gmail.com>
Co-authored-by: Heiko <61519853+htcfreek@users.noreply.github.com>

* Add more STCA team members (#36438)

* Add more STCA team members

* Include more spelling check errors

* Remove non-alpha in dictionary

* Add Zhaopeng Wang

* Fix spell checking error

* Remove "prerelease: true" (#36484)

* Remove "prerelease: true"

The Microsoft.WinGet.DSC module is GA so prerelease: true is no longer needed.

* Update expect.txt

fixing spellcheck warning

---------

Co-authored-by: Clint Rutkas <clint@rutkas.com>

* [Docs]Update README for 0.87.1 release (#36534)

* [CI] Enhance build Pipeline Reliability with Retry Logic and Improved Error Messaging (#36529)

* update pipeline with retry

* remove tests

* Add team member (#36590)

* [New+]Don't override New actions from Explorer on Windows 10 (#36467)

* [New+]Don't override New actions from Explorer

* Update src/modules/NewPlus/NewShellExtensionContextMenu.win10/shell_context_menu_win10.cpp

* Update src/modules/NewPlus/NewShellExtensionContextMenu.win10/shell_context_menu_win10.cpp

* Add pattern for learn.microsoft links

* Also only Query for context menu

* [PTRun][Calculator]Handle hexadecimal numbers to not return divide by 0 error (#36390)

* add '0x' handling for divide by 0 scenarios

* fix comment on division by 0 check

---------

Co-authored-by: Connor Plante <connor.plante@gmail.com>

* [TextExtractor]Minor UI/Accessibility fixes in the overlay UI (#36356)

minor UI and accessibility fixes

* [PTRun][Calculator]Update mages to v3.0.0 and support for `randi(n)` (#36560)

* update to mages 3.0.0

* allow randi() in calculator plugin

* fix tests and input validation

* fix spell check

* [QuickAccent]Added ć for Slovenian (#36336) (#36338)

* Fix snapping Workspaces Editor to Fancy Zones (#36463)

* Remove Workspaces Editor from Fancy Zone's excluded app list

* removed unused string

---------

Co-authored-by: Seraphima <zykovas91@gmail.com>

* [PTRun]Fix drag on .NET 9 WPF (#36635)

* [CQ]Continued to move stuff out of root - Solution.props (#36244)

* [QuickAccent]Add Proto-Indo-European (#36408)

* Add ḱ to PowerAccent for Proto-Indo-European

* Fix Spelling Check

* Add more letters to PIE

* Order PIE after PI

---------

Co-authored-by: Hao Liu (from Dev Box) <haoliu3@microsoft.com>
Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>

* [PTRun]Add context buttons for VSCodeWorkspaces plugin (#36517)

* [Settings][QuickAccent]Change 'character set' to plural form (#36565)

* [PTRun][Calculator]Fix unit tests on non-english systems (#36569)

* fix tests

* update comment

* [PTRun][Calc]Improve handling of non-base 10 numbers (#36700)

* [Settings][PTRun]Show plugin version and website (#36580)

* [Monaco]Add support for .resx and .resw preview support. (#36499)

Added support for .resx and .resw preview support. These files are XML based files so I added the file extensions as part of the registerAdditionalLanguage("xmlExt"...) function.

* [Settings] Add Workspaces' workspaces.json file to backup/restore list (#36714)

* [Localization] Fix loc pipeline to send downloaded localized files to TDBuild upon retry after failure (#36766)

* [AdvancedPaste]Fixed issues with Screen Reader integration (#36778)

* Remove Advent calendar from README (#36777)

* Remove Advent calendar from README

* Update hero image

* Delete doc/images/overview/PT_holiday_hero_image.png

* [AdvancedPaste]Add all BitmapDecoder supported image filetypes to ImageToText (#35600)

Adds support to ImageToText for all image filetypes supported by BitmapDecoder.

* [AOT]Clean up some AOT build issues in PowerAccent.Core (#36264)

* init

* Use AotCompatibility instead

* Replace typeof(Lanaguge) with GetValues<Language>

* Create new folder to place source generation context file.

---------

Co-authored-by: Yu Leng (from Dev Box) <yuleng@microsoft.com>

* [WinUI3]Fix Windows 10 title bar borders (#36429)

* Fix borders for windows in the Settings UI

* Fix HOSTS window

* Fix Advanced Paste

* Fix Environment Variables

* Fix File Locksmith

* Fix Peek, with a caveat

* Fix Registry Preview

* Remove unused imports

* Clean up imports in OobeShellPage

* Move OSVersionHelper from Common.UI up into ManagedCommon

* [QuickAccent]Fix unstable language loading (#36721)

* [Peek]Bring into foreground if previously minimized (#36506)

Added Activate() to bring Peek.UI window into focus upon Toggle. This allows the UI to be presented even if it was previously minimized.

* Update Run docs README (#36857)

* Update Run docs README

* Remove System dupe

* [Monaco]Make minimap toggleable (#33742)

* [Monaco]Fix Json format preview setting (#36867)

* [KBM]Added option for exact match shortcut (#36000)

* Added option for exact match shortcut

* Fix spell-check

* [Deps][Security]Update .NET Packages from 9.0.0 to 9.0.1  (#36879)

* [Deps] Update NuGet packages to version 9.0.1

Updated several NuGet packages from version 9.0.0 to 9.0.1, including:
- Microsoft.Data.Sqlite
- Microsoft.Bcl.AsyncInterfaces
- Microsoft.Extensions.DependencyInjection
- Microsoft.Extensions.Logging
- Microsoft.Extensions.Logging.Abstractions
- Microsoft.Extensions.Hosting
- Microsoft.Extensions.Hosting.WindowsServices
- Microsoft.Win32.SystemEvents
- Microsoft.Windows.Compatibility
- System.CodeDom
- System.ComponentModel.Composition
- System.Configuration.ConfigurationManager
- System.Data.OleDb
- System.Diagnostics.EventLog
- System.Diagnostics.PerformanceCounter
- System.Drawing.Common
- System.Management
- System.Runtime.Caching
- System.ServiceProcess.ServiceController
- System.Text.Encoding.CodePages
- System.Text.Json

* [Deps] Update NOTICE.md

* [Peek]Fix using the correct Monaco assets at runtime (#36890)

* [Workspaces] fixing bug: editor starts outside of visible desktop area (#36769)

* [Workspaces] fixing bug: editor starts outside of visible desktop area

* Update src/modules/Workspaces/WorkspacesEditor/MainWindow.xaml.cs

Co-authored-by: Seraphima Zykova <zykovas91@gmail.com>

---------

Co-authored-by: Seraphima Zykova <zykovas91@gmail.com>

* [Workspaces] Saving app properties on launch and recapture (#36751)

* [Workspaces] Implementing set and get GUID to/from HWND to distinguish windows moved by the Workspaces tool

* After launch and capture copy the CLI args from the "original" project

* Fix getting GUID

* spell check

* modification to be able to handle different data sizes on different systems

* code optimisation

* Replacing string parameter by InvokePoint

* renaming variable

* [AdvancedPaste]Use background thread for interactions between runner and Advanced Paste (#36858)

* [Advanced Paste] Use background thread for runner-Advanced Paste interaction

* Fixed typo

* [VCM]Deprecate the Video Conference Mute utility (#36772)

* Remove all VideoConferenceMute related code and files

* Clean up vcm driver registry keys

* Also remove the Webcam report tool

* Also clean out video conference on the installer

* Fix spellcheck

* Remove comment about video conf

* Update gpo files revision

* Revert removing the VCM policies

* Deprecate VCM GPO policy

* Change deprecation message to show first supported version

* Tweak supported strings in the adml

* Goodbye friends, you are forever part of the team (#36905)

* Goodbye friends

Forever part of the team 😢

* Update COMMUNITY.md

* Fix formatting issues in COMMUNITY.md

* [New utility]Sysinternals ZoomIt (#35880)

* ZoomIt initial code dump

* Change vcxproj to normalize dependency versions

* Fix code quality to build

* Add to PowerToys solution

* Clean out C-style casts

* Fix some more analyzer errors

* Constexpr a function

* Disable some warnings locally that it seemed better not to touch

* Add ZoomIt module interface

* Add GPO

* Add Settings page with Enable button

* Output as PowerToys.ZoomIt.exe

* Extract ZoomIt Settings definition to its own header

* Make ZoomItModuleInterface build with ZoomItSettings too

* WinRT C++ interop for ZoomItSettings

* From Registry To PowerToys Json

* Properly fix const_cast analyzer error

* Initial Settings page loading from registry

* Zoom mode settings

* Save settings

* Add file picker and DemoType file support

* Remaining DemoType settings

* Have ZoomIt properly reloading Settings and exiting

* Remove context menu entries for Options and Exit

* ZoomIt simple Break Options

* Break advanced options

* Simple Record settings

* Record Microphone setting

* Fix break background file picker title

* Font setting

* Fix build issues after merge

* Add ZoomIt conflict warning to Settings

* Exclude Eula from spell checking

* Fix spellcheck errors

* Fix spell check for accelerated menu items

* Remove cursor files from spellcheck. They're binary

* Fix forbidden patterns

* Fix XAML style

* Fix C# analyzers

* Fix signing

* Also sign module interface dll

* Use actual ZoomIt icon

* Add OOBE page for ZoomIt

* ZoomIt image for Settings

* Flyout and Dashboard entries

* Fix type speed slider labels

* Correctly load default Font

* Correctly register shortcuts on ZoomIt startup first run

* Fix modifier keys not changing until restart

* Show MsgBox on taken shortcut

* Start PowerToys Settings

* Normalize ZoomIt file properties with rest of PowerToys

* Add attribution

* Add ZoomIt team to Community.md

* More copyright adjustments

* Fix spellcheck

* Fix MsgBox simultaneous instance to the front

* Add mention of capturevideosample code use

* Add ZoomIt to process lists

* Add telemetry

* Add logging

* React to gpo

* Normalize code to space identation

* Fix installer build

* Localize percent setting

* Fix XAML styling

* Update src/settings-ui/Settings.UI/Strings/en-us/Resources.resw

Co-authored-by: Stefan Markovic <57057282+stefansjfw@users.noreply.github.com>

* Fix spellcheck

* One more spellcheck fix

* Integrate LiveDraw feature changes from upstream

* Fix name reuse in same scope

* Fix c-style casts

* Also register LIVEDRAW_HOTKEY

* Fix newLiveZoomToggleKey

* Update LiveZoom description in Settings to take LiveDraw into account

* Fix spellcheck

* Fix more spellcheck

* Fix Sysinternals capitalization

* Fix ARM64 Debug build

* Support Sysinternals build (#36873)

* Remove unneeded files

* Make build compatible with Sysinternals

* Separate PowerToys ZoomIt product name (#36887)

* Separate PowerToys ZoomIt product name

To help maintain the Sysinternals branding in the standalone version.

* Clarify branding-related includes

* Remove ZoomIt.sln

* Add foxmsft to spell-check names

* Add ZoomIt to README

* Add ZoomIt to GH templates

* Add ZoomIt events to DATA_AND_PRIVACY.md

* Remove publish_config.json

* Remove publish_config.json from vcxproj too

---------

Co-authored-by: Mark Russinovich <markruss@microsoft.com>
Co-authored-by: Alex Mihaiuc <69110671+foxmsft@users.noreply.github.com>
Co-authored-by: John Stephens <johnstep@microsoft.com>
Co-authored-by: Stefan Markovic <57057282+stefansjfw@users.noreply.github.com>

* [PTRun]Add hotkey to the show telemetry event (#36869)

* [PTRun]Update the code for .NET 9.0.1 - remove workarounds (#36909)

* Revove some unneeded changes after pdating to .net9.1

* [RegistryPreview]Copy context menu, data tooltip, MULTI_SZ fix (#36631)

* add context menus

* string resources for contextmenu

* fix line break parsing for MULTI_SZ

* better presentation of multiline values and value tooltip

* cleanup

* [MWB] - refactoring "Common" classes - Common.Log.cs, Common.Receiver.cs (#35726)

* [PTRun]Add setting for different trigonometric units in Calculator (#36717)

* Added angle units to PowerToys Run Calculator plugin.

* Update Resources.resx

* Added GitHub SpellCheck rule for 'gradians'.

---------

Co-authored-by: Heiko <61519853+htcfreek@users.noreply.github.com>

* [ci]Remove steps to build abstracted utilities packages (#36934)

* [Settings]Update GPO infobar icon, improve some pages and fix bugs (#33703)

* changes part 1

* fix xaml code

* changes part 2

* fix cmdNotFound page

* Update PowerOcrPage

* More Pages changed

* More Pages changed

* revert temporary change

* fix spelling

* add resw comment

* add resw comment

* Update MouseWihtoutBorderPage.xaml

* PowerPreview page

* workspaces page

* fix awake page gpo handling

* NewPlus page

* update new+ page!

* AdvancedPaste.xaml: Move Info bar.

* Update MouseJumpPanel.xaml

* Update GeneralPage.xaml

* fix position of info bar and some ui quirks

* fix xaml style

* fix string resources

* string changes

* prepare megre main

* update new+ page

* zoomit page

* various fixes

* [Common]NotificationUtil helper class with FileWatcher (#36720)

* add NotificationUtil helper with file watcher and cache

* fix spellcheck

* indentation

* [PTRun][Docs]Add YubicoOauthOTP to Third-Party plugins (#36761)

* [PTRun]Fixed typo in Value Generator messages (#36951)

* [AOT] Clean up some AOT issues in Advanced Paste module (#36297)

* Clean up the aot build issue.

* Merge main and clean up new AOT build issue

* Update LogEvent define.

* Update src/modules/AdvancedPaste/AdvancedPaste/Helpers/LogEvent.cs

Co-authored-by: Jeremy Sinclair <4016293+snickler@users.noreply.github.com>

* update typo bug

* Remove unused allow list item

* Create a new folder to place source generation context

* Merge main and rename LogEvent to AIServiceFormatEvent

---------

Co-authored-by: Yu Leng (from Dev Box) <yuleng@microsoft.com>
Co-authored-by: Jeremy Sinclair <4016293+snickler@users.noreply.github.com>

* xaml format

* [check-spelling] Update metadata

Update for https://github.com/zadjii-msft/PowerToys/actions/runs/12884838755/attempts/1
Accepted in https://github.com/zadjii-msft/PowerToys/pull/346#issuecomment-2604315393

Signed-off-by: check-spelling-bot <check-spelling-bot@users.noreply.github.com>
on-behalf-of: @check-spelling <check-spelling-bot@check-spelling.dev>

---------

Signed-off-by: Shawn Yuan <shuai.yuan.zju@gmail.com>
Signed-off-by: check-spelling-bot <check-spelling-bot@users.noreply.github.com>
Co-authored-by: Laszlo Nemeth <57342539+donlaci@users.noreply.github.com>
Co-authored-by: Seraphima <zykovas91@gmail.com>
Co-authored-by: donlaci <donlaci@yahoo.com>
Co-authored-by: Ionuț Manța <ionut@janeasystems.com>
Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>
Co-authored-by: Jeremy Sinclair <4016293+snickler@users.noreply.github.com>
Co-authored-by: Ani <115020168+drawbyperpetual@users.noreply.github.com>
Co-authored-by: PesBandi <127593627+PesBandi@users.noreply.github.com>
Co-authored-by: Wenjian Chern <55335597+Sophanatprime@users.noreply.github.com>
Co-authored-by: Youssef Victor <youssefvictor00@gmail.com>
Co-authored-by: Clint Rutkas <clint@rutkas.com>
Co-authored-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
Co-authored-by: leileizhang <leilzh@microsoft.com>
Co-authored-by: Den Delimarsky 🔐 <sign@den.dev>
Co-authored-by: Niels Laute <niels.laute@live.nl>
Co-authored-by: Davide Giacometti <25966642+davidegiacometti@users.noreply.github.com>
Co-authored-by: Heiko <61519853+htcfreek@users.noreply.github.com>
Co-authored-by: Shuai Yuan <128874481+shuaiyuanxx@users.noreply.github.com>
Co-authored-by: moooyo <42196638+moooyo@users.noreply.github.com>
Co-authored-by: Yu Leng (from Dev Box) <yuleng@microsoft.com>
Co-authored-by: Jerry Xu <n.xu@outlook.com>
Co-authored-by: Demitrius Nelon <denelon@microsoft.com>
Co-authored-by: Kai Tao <69313318+vanzue@users.noreply.github.com>
Co-authored-by: Connor Plante <150482134+plante-msft@users.noreply.github.com>
Co-authored-by: Connor Plante <connor.plante@gmail.com>
Co-authored-by: Domen Soklič <soklicd@gmail.com>
Co-authored-by: Hao Liu <liuhaobupt@163.com>
Co-authored-by: Hao Liu (from Dev Box) <haoliu3@microsoft.com>
Co-authored-by: immi <iafullprogrammer@gmail.com>
Co-authored-by: Asif Islam <77113884+asif4318@users.noreply.github.com>
Co-authored-by: Kayla Cinnamon <cinnamon@microsoft.com>
Co-authored-by: Dave Rayment <dave.rayment@gmail.com>
Co-authored-by: Neil McAlister <pingzing@users.noreply.github.com>
Co-authored-by: Mark Russinovich <markruss@microsoft.com>
Co-authored-by: Alex Mihaiuc <69110671+foxmsft@users.noreply.github.com>
Co-authored-by: John Stephens <johnstep@microsoft.com>
Co-authored-by: Michael Clayton <mike@kingslandconsulting.co.uk>
Co-authored-by: Nathan Gill <nathan.j.gill@outlook.com>
Co-authored-by: Daniel Nilsson <daniel.nilsson1989@gmail.com>
Co-authored-by: Stefan Markovic <stefansjfw@users.noreply.github.com>
2025-01-21 14:28:51 +01:00
Stefan Markovic
0b60644c57 Xaml format (#341) 2025-01-17 14:02:21 +01:00
Mike Griese
21c6f9674e Restore a minimized window, before we summon it (#340)
Closes #327

Pretty straightforward this. Just restore the window if we're minimized.

Co-authored-by: Mike Griese <zadjii@gmail.com>
2025-01-17 06:42:06 -06:00
Jordi Adoumie
9b97db9cd8 Fix the Web Search Fallback Command (#325)
The fallback command was still showing up on empty query because we weren't explicitly setting the underlying command name to the empty string when it is empty. This is what it looked like in the root view: 

![image](https://github.com/user-attachments/assets/eff8249f-8acb-47ef-9529-86ebb7011811)

This is a really small PR that just fixes that issue.
2025-01-17 06:05:37 -06:00
Mike Griese
d53979bb5d Add a setting that controls if we go back home when summoned or not (#326)
Adds a setting which controls what happens when you press the global hotkey. 

When enabled, the hotkey will bring you home when you activate the hotkey, rather than just leave the palette on the current page. 

Closes #271
2025-01-17 06:04:46 -06:00
Mike Griese
a06750b18d Add tags to show which commands have aliases (#334)
_targets #281_

Adds tags onto top-level items that have an alias assigned to them

![image](https://github.com/user-attachments/assets/de2932ca-49f2-41d4-8e86-a96d3b85f42a)

Closes #312
2025-01-17 06:04:25 -06:00
Mike Griese
b86dfab994 Use the SearchText from the extension (#319)
And the placeholder text too.

This one's mildly confusing, because we don't want the View and the Model fighting over the same exact property. Basically I just have the view be able to call the SearchText setter, and the model's PropChanged is listened to by the View. They shouldn't fight too much then. 

Closes #163
Closes #112
2025-01-17 05:57:21 -06:00
Mike Griese
5873cacabe Add support for showing status messages in the host (#281)
This PR is a ton of _plumbing_. UX-wise, this is very rough. What's more important in this PR is the broad wiring this does, to connect individual pages with the `IExtension` that's hosting them. 

`CommandPaletteHost` is the important new class that we're introducing. This is the class that implements the `IExtensionHost` interface, and is the one by which extensions can use to log messages back to the host. 

There's both:
* A singleton instance of the `CommandPaletteHost`, which represents all global state,
* per-extension instances of the `CommandPaletteHost`, which allows us to know which extension a message came from. 

When we fetch a command provider, we'll create a new `CommandPaletteHost` for that extension, and connect the extension to that instance.
* Log messages from an extension go to the global list of messages, so those go to the global instance's list of `LogMessageViewModel`s		
* When an extension writes status messages, we'll add the messages to _that extension's_ `CommandPaletteHost`. 
* The `PageContext` is aware of the `CommandPaletteHost`, so it can now retrieve information about the hosting extension for that page. Since all pages for an extension share a single `CommandPaletteHost`, status messages can be shown across all the pages in that extension's context, then hidden when the user leaves that context.

This also does part of #253, because now we have a `TopLevelCommandWrapper` AND a `TopLevelCommandItemWrapper`, separately. That lets us store the `CommandPaletteHost` in the `TopLevelCommandWrapper`, which we need so that when we activate a top-level command, we can fetch the extension host out of it and give it to the pages that follow.

Also included is the "single builtin command provider" which is also in #264, because it's kinda insane to have things like "Quit", "Reload extension", "View log", things which are all _core pieces of the palette itself_, each need a separate provider. That's insane. 

I didn't add support for:
* Extensions to hide messages once they're shown
* I dunno if `PropChanged`'ing a status message works
* I didn't add support for progress bars yet, because it's NOT TRIVIAL to replace the icon of an InfoBar with a progress wheel. What the heck WinUI 😠 
* Again, this is Programmer Xaml - we'll need real designers to come around and clean this up

---------

Co-authored-by: Mike Griese <zadjii@gmail.com>
2025-01-17 05:43:17 -06:00
Mike Griese
7da291e398 Add a ctor for Tag to initialize the text (#335)
This is like, the 99% ues case, so it would be nice if this was easy.
I'm also experimenting with making fewer instances of Tag objects, to
see if that helps things. Not yet, but we'll see
2025-01-17 04:00:51 -06:00
Mike Griese
67eadef5bf Fix the tag crash (#339)
Most of my notes are in #322. This one was a journey.

The app was doing something re-entrant when we changed the selected item. It had nothing to do with `ScrollIntoView` (though, not calling that would stop the crash).

Seems like that `ItemsList_SelectionChanged` -> `UpdateSelectedItemCommand` -> `WeakReferenceMessenger.Default.Send<ShowDetailsMessage>`, all on the UI thread, seemed to really make XAML mad. And a combination of hopping to the background thread, and debouncing the `ShowDetails` call, seemed to fix it. 

Tags made it worse - presumbaly it made the XAML layout pass take longer, which widened the window for the app to think it was re-entrant

Closes #322
2025-01-17 04:00:09 -06:00
Mike Griese
8ed322cce3 Use localappdata to store settings, instead of in WindowsApps (#304)
I'm smarter than that, really. 

As described in #302. You can't write into `WindowsApps`, where actual packages are installed. Instead, you need to use the local app data path. 

This replicates logic that we've got in the Terminal, for getting the right LocalAppData path, without using Windows.Storage. Original code looks like:

```c++
_TIL_INLINEPREFIX bool IsPackaged()
{
    static const auto isPackaged = []() {
        UINT32 bufferLength = 0;
        const auto hr = GetCurrentPackageId(&bufferLength, nullptr);
        return hr != APPMODEL_ERROR_NO_PACKAGE;
    }();
    return isPackaged;
}

std::filesystem::path GetBaseSettingsPath()
{
    static auto baseSettingsPath = []() {
        /* some portable mode code we don't need */

        wil::unique_cotaskmem_string localAppDataFolder;
        // KF_FLAG_FORCE_APP_DATA_REDIRECTION, when engaged, causes SHGet... to return
        // the new AppModel paths (Packages/xxx/RoamingState, etc.) for standard path requests.
        // Using this flag allows us to avoid Windows.Storage.ApplicationData completely.
        THROW_IF_FAILED(SHGetKnownFolderPath(FOLDERID_LocalAppData, KF_FLAG_FORCE_APP_DATA_REDIRECTION, nullptr, &localAppDataFolder));

        std::filesystem::path parentDirectoryForSettingsFile{ localAppDataFolder.get() };

        if (!IsPackaged())
        {
            parentDirectoryForSettingsFile /= UnpackagedSettingsFolderName;
        }

        // Create the directory if it doesn't exist
        std::filesystem::create_directories(parentDirectoryForSettingsFile);

        return parentDirectoryForSettingsFile;
    }();
    return baseSettingsPath;
}
```

I stuck this in a `Helpers.Utilities` class, because we will not be the only ones hitting this. 

Closes #302
2025-01-17 03:58:16 -06:00