Compare commits

...

3259 Commits

Author SHA1 Message Date
Dustin L. Howett
1790891cc9 Migrate spelling-0.0.21 changes from main 2022-09-13 17:14:13 +02:00
yuyoyuppe
adfc1e1f69 fixes 2022-09-13 17:14:13 +02:00
yuyoyuppe
88452054b0 [Awake] add missed RunnerHelper.WaitForPowerToysRunner 2022-09-13 16:18:05 +02:00
yuyoyuppe
cdc0f850b7 expect 2022-09-13 15:09:22 +02:00
yuyoyuppe
45a19fba6b [FZE] don't use Environment.Exit and fix WaitForPowerToysRunner 2022-09-13 15:06:21 +02:00
yuyoyuppe
8823fc7975 [MeasureTool] Don't use Environment.Exit(0); 2022-09-13 15:06:21 +02:00
yuyoyuppe
473979a517 [TextExtractor] Don't use Environment.Exit 2022-09-13 14:24:19 +02:00
Andrey Nekrasov
8f3f9ba9d5 [ColorPicker] Use cancellable NativeEventWaiter + cleanup using 2022-09-13 14:24:19 +02:00
Andrey Nekrasov
8fc15fc43e [PowerLauncher] Remove unused API 2022-09-12 21:22:59 +02:00
Andrey Nekrasov
a4d3625fd0 [Awake] Don't use Process.Exit and move to CsWin32 2022-09-12 21:10:02 +02:00
Seraphima Zykova
cba6507d2b [AlwaysOnTop] Remove borders from Task view thumbnails (#20290) 2022-09-12 19:39:11 +02:00
unuing
ceba2708c6 Bump the minimum thickness of always on top border to 1 (#20505) 2022-09-12 13:44:38 +03:00
Andrey Nekrasov
38e7b3b7ae [PTRun] Gracefully shutdown all threads when exiting (#20450) 2022-09-12 11:20:24 +01:00
Floris Westerman
73590c3ea9 [PTRun] Windows Terminal plugin: Add option to open profiles in quake window (#19960)
* Run/Windows Terminal: Add option to open profiles in quake window

* Typo

* Incorporate review feedback
2022-09-11 22:25:29 +02:00
NN
922d21f9f1 Catch std::exception by reference (#20385) 2022-09-11 18:50:13 +02:00
Andrey Nekrasov
675d79a4aa [Screen Ruler] Improve UX (#20400)
* [Screen Ruler] add 7% opacity to tooltip background

* [Screen Ruler] restrict mouse cursor to monitor while in bounds mode

* [Screen Ruler] Do not preview overlay ui on all virtual desktops (Win + tab)

* [Screen Ruler] add hotkeys for toolbar #20345

* [Screen Ruler] Make single snapshot capture mode a default and update warning

* [Screen Ruler] Fix touch input in bounds mode #20286

* [Screen Ruler] activate window and set HWND_TOPMOST flag again after initialization
2022-09-09 21:25:05 +03:00
Joseph Finney
03cf77723e [TextExtractor]Check for CJK Language before combining OCR result to string (#20415) 2022-09-09 16:18:40 +01:00
Andrey Nekrasov
f19ba94a2c [Installer] Gracefully terminate PowerToys process before updating do… (#20430)
* [Installer] Gracefully terminate PowerToys process before updating dotnet
2022-09-09 18:11:33 +03:00
Stefan Markovic
7b0f97597d [PowerAccent] Move low-level keyboard hook to c++ (#20190)
* Move llkeyboardhook to c++

* expect.txt

* Address PR comment - Resolve namespaces

* Address PR comments - CallNextHook and correct char selection

* Also unpress the letter key

Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>
2022-09-09 13:27:56 +02:00
Seraphima Zykova
7f8c5c9f0c [AlwaysOnTop] Fix: Border stays after moving window to another desktop (#20006) 2022-09-07 17:24:35 +02:00
Andrey Nekrasov
e33e23909f [BugReportTool] Make failures to copying LocalRow logs and deleting tmp folder non-fatal (#20311) 2022-09-07 17:32:34 +03:00
Stefan Markovic
2dae107977 Fix duplicate attribute build error (#20285) 2022-09-07 12:26:08 +02:00
Jaime Bernardo
0c5eb1e32d 0.62 changelog (#20240)
* 0.62 changelog

* Update README.md

Co-authored-by: Aaron Junker <aaron.junker@outlook.com>

* Update README.md

Co-authored-by: Jay <65828559+Jay-o-Way@users.noreply.github.com>

* Addreess PR review

* Known issue for Text Extractor running on Windows 10 ARM 64

Co-authored-by: Clint Rutkas <clint@rutkas.com>
Co-authored-by: Aaron Junker <aaron.junker@outlook.com>
Co-authored-by: Jay <65828559+Jay-o-Way@users.noreply.github.com>
2022-09-06 11:04:51 -07:00
Andrey Nekrasov
9d7c9c1746 [Screen Ruler] Better error handling and reuse D3D device (#20223)
* [Screen Ruler] simplify lines calculation

* [Screen Ruler] Add inches and centimeters support

* [Chore] prefer x64 toolset to avoid hitting C1076

* [Screen Ruler] Allow making screenshots in non-continuous mode

* [Screen Ruler] Use single d3d device for all ops

* [Screen Ruler] remove gpu mutex and clean up screen capturing

* [Screen Ruler] handle and log DXGI initialization failure

* [Screen Ruler] Add unhandled exception handler

* [Screen Ruler] comment out Units of Measure setting

* [Screen Ruler] introduce a separate device dedicated for capturing
2022-09-05 15:39:56 +03:00
Andrey Nekrasov
feead9c68b [Screen Ruler] Fix possible crash in CaptureSingleFrame (#20275) 2022-09-05 14:38:20 +03:00
Andrey Nekrasov
5d4b365910 [Screen Ruler] Update module interface on activation hotkey change (#20237) 2022-09-02 18:28:56 +03:00
Clint Rutkas
dda4bfa6b8 verbiage tweak (#20226) 2022-09-02 04:27:37 -07:00
Jaime Bernardo
3f3e837c36 [QuickAccent]Add a setting for the menu delay time (#20221) 2022-09-01 16:56:19 +01:00
Andrey Nekrasov
006165574e [Screen Ruler] Remove latch sync, since we don't capture the overlay window anymore (#20218) 2022-09-01 14:56:27 +01:00
Niels Laute
c8b7995d8c [Settings] Image updates for the new utilities (#20215)
* Image updates

* Update ImageResizer.gif
2022-09-01 14:56:06 +01:00
Jaime Bernardo
82ff6400eb [Settings]Order new PowerToys after renames (#20208) 2022-08-31 20:43:23 +01:00
Jaime Bernardo
9b3e8503a8 [QuickAccent] Rename PowerAccent to Quick Accent (#20176)
* Rename PowerAccent to Keyboard Accent

* Fix bug report and translation issue templates

* Rename to Quick Accent

* missing mention
2022-08-31 19:05:54 +01:00
Andrey Nekrasov
7e291fb303 [Screen Ruler] Don't flicker UI window at startup (#20206) 2022-08-31 20:55:27 +03:00
Jaime Bernardo
086eb58d80 [TextExtractor]Rename PowerOCR to Text Extractor (#20178)
* [Image To Text]Rename PowerOCR to Image To Text

* fix spellchecker

* Rename to Text Extractor

* Missing mention

* Another missing mention
2022-08-31 18:29:20 +01:00
Niels Laute
96f34ee4e9 [Settings]Icon updates for new utilities (#20193)
* PowerOCR icon updates

* Icon updates

* Update Selector.xaml
2022-08-31 17:47:19 +01:00
Andrey Nekrasov
7001d8c79f [Screen Ruler] Fix measuring of single lines (#20201) 2022-08-31 19:13:52 +03:00
Jaime Bernardo
6e515954dd [ImageToText]Fix issues on different dpi screens (#20199)
* [ImageToText]Fix issues on different dpi screens

* Fix manifest identation
2022-08-31 16:36:28 +01:00
Jaime Bernardo
f489626f6e [docs]Update COMMUNITY.md with PowerOCR and PowerAccent (#20162)
* [docs]Update COMMUNITY.md with PowerOCR and PowerAccent

* Linkedin link

* fix spellcheck

* Update COMMUNITY.md

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

Co-authored-by: Damien LEROY <dleroy@veepee.com>
Co-authored-by: Clint Rutkas <clint@rutkas.com>
2022-08-31 15:58:49 +01:00
Andrey Nekrasov
c7d1465946 [Screen Ruler] optimize d3d device & continuous capture mode (#20198)
* [Screen Ruler] Exclude overlay window from capture

* [Screen ruler] Sync OverlayUI threads creation and don't recreate d3d device
2022-08-31 17:43:32 +03:00
Jaime Bernardo
76ebed0897 [PowerOCR][Telemetry]Cancel and capture events (#20165) 2022-08-31 15:41:21 +01:00
Stefan Markovic
fcfbb67123 Fix wix warnings introduced by MeasureTool (#20188) 2022-08-31 14:26:05 +02:00
Heiko
bc603f88ce [Settings > Screen ruler] Fix disabled state of infobar (#20184)
* code changes

* fix typo

* Update src/settings-ui/Settings.UI.Library/ViewModels/MeasureToolViewModel.cs

Co-authored-by: Andrey Nekrasov <yuyoyuppe@users.noreply.github.com>
2022-08-31 00:35:34 +03:00
Jaime Bernardo
f39691cdbc [ScreenRuler]Fix aka.ms links with new name (#20180) 2022-08-30 21:28:28 +03:00
Andrey Nekrasov
1383e9666c [ITT] fix crashes on shift selection and clipboard access (#20166)
* [ITT] fix crashes on shift selection and clipboard access

* exception logging
2022-08-30 17:21:43 +01:00
Andrey Nekrasov
eb235eef37 [Screen Ruler] fix attribution link (#20174) 2022-08-30 17:56:14 +03:00
Baira
fc68f1810e Fix typo in Resources.resx (#20170) 2022-08-30 17:31:41 +03:00
Andrey Nekrasov
49a6359990 [Screen Ruler] Close on left click and attribution adjustment (#20163)
* [Screen Ruler] end measure mode sessions on left click

* [Screen Ruler] move attribution to a separate section

* spelling
2022-08-30 13:39:21 +01:00
Jaime Bernardo
311a4dbae9 [Installer][MeasureTool]Add winappsdk loc and assets (#20168) 2022-08-30 13:36:57 +01:00
Clint Rutkas
55c5cf850f Adjusting image and wording in settings (#20151)
* adding in warning for measuring

* Adjust verbiage

* adjusting base image for screen ruler

* tweak image

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

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

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

* This mode -> The continuous capture mode

Co-authored-by: Heiko <61519853+htcfreek@users.noreply.github.com>
2022-08-30 13:36:15 +01:00
Ikko Ashimine
a4f4d5985a [Dev][Comment]Fix typo in Microsoft.Plugin.Program/Main.cs (#20104)
therefor -> therefore
2022-08-29 19:28:15 +01:00
Seraphima Zykova
c0d5f36224 [FZEditor] Canvas layout width/height resize fix (#20099) 2022-08-29 19:18:00 +01:00
Jaime Bernardo
56264eb089 [installer]Update .net to 6.0.8 (#20147) 2022-08-29 15:23:51 +01:00
Andrey Nekrasov
66c8d38e59 [Screen Ruler] optimize d3d -> d2d texture copying + other fixes (#20138)
* [Screen Ruler] optimize d3d -> d2d texture copying + other fixes

* [Screen Ruler] hide cursor when using the bounds tool
2022-08-29 16:16:28 +03:00
Stefan Markovic
a06a62b986 Add PowerOCRto issue template (#20142) 2022-08-29 14:44:43 +02:00
Davide Giacometti
7d742760e7 [PowerOCR] Fix taskbar interaction (#20126) 2022-08-29 10:33:39 +01:00
Stefan Markovic
9207983abb [PowerAccent] Fix toolbar positioning on first launch (#20135)
As position is being set according to toolbar width&height (depends on num of
characters), on first toolbar-show size of the toolbar is wrong (list items are not set yet).
Therefore, first set characters and then position.
2022-08-29 09:19:00 +01:00
Andrey Nekrasov
78d65a87cd [New PowerToy] Add Screen Ruler module for measuring screen contents (#19701)
* [MeasureTool] initial commit

* [chore] clean up needless WindowsTargetPlatformVersion overrides from projects

* [MeasureTool] initial implementation

* Fix build errors

* Update vsconfig for needed Windows 10 SDK versions

* fix spellchecker

* another spellcheck fix

* more spellcheck errors

* Fix measurement being off by 1 on both ends

* UI fixes

* Add feet to crosses

* Remove anti-aliasing, as it's creating artifacts

* Use pixel tolerance from settings

* Tooltip updates

* Restore antialiasing to draw the tooltip

* remove comment for spell check

* Updated icons

* Icon updates

* Improve measurement accuracy and display

* Fix spellchecker

* Add less precise drawing on continuous warning

* Add setting for turning cross feet on

* Swap LMB/RMB for interaction

* Uncheck active tool's RadioButton when it exits

* activation hotkey toggles UI instead of just launching it

* track runner process and exit when it exits

* add proj ref

* toolbar is interactive during measurements

* always open toolbar on the main display

* refactor colors

* refactor edge detection & overlay ui

* refactor overlay ui even more

* simplify state structs

* multimonitor preparation: eliminate global state

* prepare for merge

* spelling

* proper thread termination + minor fixes

* multimonitor: launch tools on all monitors

* multimonitor support: track cursor position

* spell

* fix powertoys!

* ScreenSize -> Box

* add shadow effect for textbox

* spell

* fix debug mode

* dynamic text box size based on text layout metrics

* add mouse wheel to adjust pixel tolerance + per channel detection algorithm setting

* spelling

* fix per channel distance calculations

* update installer deps + spelling

* tool activation telemetry

* update assets and try to fix build

* use × instead of x

* allow multiple measurements with bounds tool with shift-click

* move #define DEBUG_OVERLAY in an appropriate space

* spell-checked

* update issue template + refactor text box drawing

* implement custom renderer and make × semiopaque

* spelling

* pass dpiScale to x renderer

* add sse2neon license

* update OOBE

* move license to NOTICE

* appropriate module preview image

* localization for AutomationPeer

* increase default pixel tolerance from 5 to 30

* add PowerToys.MeasureToolUI.exe to bugreport

* explicitly set texture dims

* clarify continuous capture description

* fix a real spelling error!

* cleanup

* clean up x2

* debug texture

* fix texture access

* fix saveasbitmap

* improve sum of all channel diffs method score calc

* optimize

* ContinuousCapture is enabled by default to avoid confusion

* build fix

* draw captured screen in a non continuous mode

* cast a spell...

* merge fix

* disable stroboscopic effect

* split global/perScreen measure state and minor improvements

* spelling

* fix comment

* primary monitor debug also active for the bounds tool

* dpi from rt for custom renderer

* add comment

* fix off by 1

* make backround convertion success for non continuous mode non-essential

* fix spelling

* overlay window covers taskbar

* fix CI

* revert taskbar covering

* fix CI

* fix ci again

* fix 2

* fix ci

* CI fix

* fix arm ci

* cleanup cursor convertion between coordinate spaces

* fix spelling

* Fix signing

* Fix MeasureToolUI version

* Fix core version

* fix race condition in system internals which happens during concurrent d3d/d2d resource creation

Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>
Co-authored-by: Niels Laute <niels.laute@live.nl>
2022-08-27 02:17:20 +03:00
Taras
2274e0c67d [FancyZones] Fix selecting correct layout for duplicate (#20101) 2022-08-26 17:12:22 +01:00
damienleroy
d9c0af232b [New PowerToy] PowerAccent (#19212)
* add poweraccent (draft) for PR

* removing french text for Spell checking job

* add 'poweraccent' to spell checker

* add 'damienleroy' to spell checker file

* adding RuntimeIdentifiers for PowerAccent project

* duplicate image for settings

* update commandline arguments for launch settings

* Removing WndProc for testing with inter-process connection

* add PowerAccent sources for PowerToys

* fix spellcheck

* fixing stylecop conventions

* Remove StyleCop.Analyzers because of duplicate

* fixing command line reference

* Fixing CS8012 for PowerAccent.

* ARM64 processor

* - Modify PowerAccent fluenticon for dark mode
- Try fix arm64 release

* Remove taskbar

* init Oobe view

* - added POwerAccent to App.xaml.cs
- change style to markdown in Oobe display

* - fixing poweraccent crash
- change Oobe LearnMore link

* Installer and signing

* Cleanup
Add settings

* Issue template

* Add some more characters

* Disabled by default

* Proper ToUnicodeEx calling and remove hacks

* Fix spellcheck

* Remove CommandLine dependency and debug prints. Add logs

* fix signing

* Fix binary metadata with version

* Fix the added space bug

* Only type space if it was the trigger method

* Take account of InputTime for displaying UI

* Fix code styling

* Remove the Trace WriteLine hack and add a delay instead

* Reinstate logs

* Better explanations

* Add telemetry for showing the menu

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

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

* Update src/modules/poweraccent/PowerAccent.Core/Tools/KeyboardListener.cs

* Update src/modules/poweraccent/PowerAccent.Core/Services/SettingsService.cs

* Add accented characters for S

* Default to both activation methods

* Update src/modules/poweraccent/PowerAccent.Core/Services/SettingsService.cs

* Update src/modules/poweraccent/PowerAccent.Core/Services/SettingsService.cs

* Update src/modules/poweraccent/PowerAccent.Core/Services/SettingsService.cs

* Update src/modules/poweraccent/PowerAccent.Core/Services/SettingsService.cs

* Update src/modules/poweraccent/PowerAccent.Core/Services/SettingsService.cs

* Update src/modules/poweraccent/PowerAccent.Core/Services/SettingsService.cs

Co-authored-by: Damien LEROY <dleroy@veepee.com>
2022-08-26 17:01:50 +01:00
Heiko
785160653c [PT Run][Calculator] Input validation improvements (#20067)
* improve input validation

* update test

* update tests

* simplify test case

* fix devision by zero check
2022-08-26 16:40:15 +01:00
Joseph Finney
eedea3159c [New PowerToy] OCR PowerToy (#19172)
* Init commit

* Fix unintended GUID change of Microsoft.PowerToys.Run.Plugin.TimeZone.UnitTests

* Region and click word working

* Code style

* Close even when there is no result from the OCR

* Fix spelling concerns, and make overlay black to match snipping tool

* increase opacity of overlay to match snipping tool

* Code Style and cleanup

* Code style

* Create Logos and hook them into the project file

* Make the PowerOCR VCXProj more like Awake VCXProj

* Rename MainWindow to OCROverlay

* Add WindowUtilities and WindowForms

* Remove fsg to fix spelling error

* launch OCR Overlay on every screen

* Add PowerOCR to Runner Main.cpp

* Add PowerOCR Settings and Properties

* Add PowerOcrViewModel

* Fix wrong setting reference in PowerOcrSettingsVM

* Try to clean up the Cpp project for PowerOCR

* Went to ARM64 was x64 thanks @snickler

* Clean up PowerOCR C++ Proj with file refs

* Rewrite C++ dllmain comparing to awake

* Changes for spelling issues. The rest will stay

* Create PowerOcr Settings Page and add to settings shell

* Fix PowerOcr Settings

* Fix multi-monitor scaling issue

* Add close all overlays when escaping

* Update src/runner/main.cpp to call correct Power OCR dll

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

* Update expect.txt

* Add many files from Color Picker for hotkey activation

* Organize project into helper folder

* Use new hotkey activation and keep process alive

* Fix bug where scalebmp wasn't working

* Add The file headers and dispose app.xaml.cs

* Code style changes

* Fix bug where PowerOCR was toggling Awake

* Unsubscribe from keyboard events making they don't fire twice

* Add SndPowerOcrSetting and add to SettingsVM

* Trying to make the runner close PowerOCR when runner closes

* Fix app_name

* Update spellcheck expect

* use mutex on PowerOCR app to keep to single instance

* Rebuild the module interface using ColorPicker as a template.

Process still stays alive.

* Fix project names of the module interface

* Put app startup args back to 0 like color picker

* Runner now finds and enables/disables PowerOCR

* remove unneeded item groups from settings proj, per stefansjfw

* Add PowerOCR Screenshots

* Revert changed project GUID

* Add OOBE content for PowerOCR

* Keep cursor on one screen since the OCR window does not span screens.

* reload settings when activation key is pressed

* New screenshots and OOBE text

* Add PowerOCR as a case in the settings App.xaml.cs OnLaunched

* Settings and OOBE Text Changes

* Using using on bitmaps and change OCR overlay to stay open if no result

* Keyboard activation is handled is true

* Remove unused start PowerOCR OOBE Method

* [PowerOCR]Add some telemetry

* Add some logging

* Don't recreate the OCR overlay Windows more times

* Add to BugReportTool to get event viewer errors

* Fix wrong comment

* Fix another comment

* Add files to installer

* Add to signing

* Don't take Esc away from other apps

* Default to Win Shift R

* Use low level keyboard hook from runner

* Remove esc from local low level keyboard hook

* Fix some nits

* Default to Win Shift T
2022-08-25 11:25:52 +01:00
Floris Westerman
768603eb61 Fix always setting the zoom factor (#19963) 2022-08-24 21:09:00 +03:00
ivanstosic-janea
bb67764be6 [ShortcutGuide]Fix overlay narrator shortcut (#19981)
* Update overlay.svg

* Update title text offset

* Update overlay_portrait.svg
2022-08-24 12:31:06 +01:00
Davide Giacometti
16c7a22410 [PreviewPane][Monaco]Format json/xml before rendering (#19980) 2022-08-24 12:08:10 +01:00
Stefan Markovic
e7d3aadec3 [runner]Fix issue on files cleanup when directory doesn't exist (#20063)
* Fix issue when directory doesn't exist

* Address PR comment
2022-08-24 11:04:23 +01:00
Davide Giacometti
a3b7c70fe0 [Meta]Removed obsolete package Castle.Core (#19994) 2022-08-24 10:52:11 +01:00
Floris Westerman
f44bf99dfd [PTRun][Unit]Support for plural units and improve alternative spellings (#19961)
* Upgrade UnitsNet package to a version that supports plural

* Add support for plurals

Fix metre conversion
Add and update unit tests
2022-08-24 10:50:34 +01:00
Stefan Markovic
13db8575e0 [PowerRename] Show UI info if item cannot be renamed (#19934)
* PowerRename cleanup

* Extract ExplorerItem as a UserControl

* Add VisualStateManager

* UI fixes

* Implement error UI logic

Highlight items that couldn't be renamed and add error message flyout

* Update src/modules/powerrename/lib/PowerRenameManager.cpp

Address PR comment

Co-authored-by: Jay <65828559+Jay-o-Way@users.noreply.github.com>

* Update src/modules/powerrename/lib/PowerRenameManager.cpp

Address PR comment

Co-authored-by: Jay <65828559+Jay-o-Way@users.noreply.github.com>

* Folder max path is 247

* Implement State() properly

Co-authored-by: Niels Laute <niels.laute@live.nl>
Co-authored-by: Jay <65828559+Jay-o-Way@users.noreply.github.com>
2022-08-24 10:47:27 +02:00
Pedro Lamas
c26e23b904 [FileExplorer]Stl Thumbnails color customization (#19928) 2022-08-23 21:45:27 +01:00
Davide Giacometti
5c431b5ac5 [Runner] Cleanup updates directory at startup (#19875)
* cleanup updates and logs at startup

* perform cleanup in separate thread
2022-08-23 21:32:45 +01:00
Heiko
c85305695e [Settings][Plugin manager] Activation commands: Fix conflict with calc plugin and add warning (#19593)
* update activation commands

* add warning and badges

* fix spelling

* fix badge style

* fixes

* small fixes missed

* spell fix

* revert changes for Program plugin

* small tweaks

* Add Grid control

* merge warnings

* fix spelling

* fix resource

* updating conflicitng keywords

* remove keywordWarning and warningBagde

* fix broken reference

* add new information bar
2022-08-23 21:28:41 +01:00
Jeff Lord
4c796c0b53 [PTRun]Add history plugin (#19569)
* Progress!

* Progress...

* POC level.

* Added ability to delete from history using IPublicAPI

* Some sorting, works in some cases.

* Rename "Run History" back to just "History".

* Updated item from review.

* Slight change to PowerLauncher ref, set Copy Local = False

* Fixed missing history items if added to history without search term.

* Added placeholder unit test project

* Updates for new History plugin.

* Update Product.wxs, removed useless Unit Test project

* Removed actual files for "Microsoft.PowerToys.Run.Plugin.History.UnitTests"

* Added history.md, updated ESRPSigning_core.json

* Changes for review

* Removed now global CodeAnalysis/stylecop
2022-08-23 21:27:45 +01:00
Seraphima Zykova
8cea22aaf1 [FZEditor]Highlight distance range: slider and fix narrator (#19840)
* announce corrected value

* tooltip

* slider

* announce value

* custom slider announce

* slider slyle

* announce range

* show current value
2022-08-23 20:41:22 +01:00
pea-sys
b6fe34cada [FZ] add UTF8 BOM to JsonHelpers.Tests.cpp 2022-08-23 15:39:59 +03:00
Stefan Markovic
e9d0f16d2e Fix querying when search delay is off (#20034) 2022-08-22 17:14:42 +02:00
Jaime Bernardo
df80bd461d [FileExplorer][Markdown]Increase security (#20005)
* [FileExplorer][Markdown]Increase security

* Fix comment mention to SVG
2022-08-22 09:53:44 +01:00
Jaime Bernardo
a1d5df23a8 [Installer][FilePreview]Fix Monaco localization (#20001) 2022-08-19 18:41:46 +01:00
Stefan Markovic
de72a9860d SetBackground and InitializeLoadingScreen synchronously (#20002) 2022-08-19 19:37:05 +02:00
Seraphima Zykova
bbd108be7e [AlwaysOnTop] Remaining border fix (#19914) 2022-08-19 12:44:23 +02:00
Jaime Bernardo
de130171e9 [FileExplorer][SVG]Increase security (#19941)
* [FileExplorer][SVG]Increase security

* fix spellchecker

* Use 403 instead of 404
2022-08-18 12:09:14 +01:00
Jeremy Sinclair
4e3c965511 [ARM64][ci]Verify solution files configurations (#19878)
* [ARM64] Initial configuration verification script

* Updated text. Added solution verifications

* Updated spell checking

* Updated with proper argument to PowerShell tasks

* Use pwsh. Moved before .NET 6 task

* Load vswhere from installer location.
2022-08-17 16:35:45 +01:00
Stefan Markovic
ae57ca07f0 Bump winappsdk to 1.1.4 (#19937) 2022-08-17 14:25:27 +02:00
Aaron Junker
405d79e72f [Dev file previewer]Various improvements (#18259)
* Made file too big string variable

* Performance improvements

* Add progress bar to indicate loading

* Added Logging

* Added name to log files

* Push

* Updated expect.txt

* Push

* * Fixes small bug I sometimes encountered by unloading the application
* Fixes bug where sometimes the loading bar kept stuck (on "file is too big" screen

* Update expect.txt

* Resolved review comments
Added LogTrace() function

* Unifying tasks

* Removed unneccesary log message

* * Added margin to loading bar and text.
* Changed color of background to monaco dark skin color
* Centred loading bar

* Changed logger path

* Changed log path

* Fixed align of loading label

* Fix label size and position

Co-authored-by: Stefan Markovic <stefan@janeasystems.com>
2022-08-16 19:32:49 +02:00
CleanCodeDeveloper
733041ba2b Remove obsolete fxCop suppressions and references (#19905) 2022-08-15 11:21:52 -07:00
Stefan Markovic
9100e03be9 PowerRename cleanup (#19849) 2022-08-15 15:47:11 +02:00
Seraphima Zykova
a5ecbc4088 [CI] FancyZones unit tests (#17910) 2022-08-15 15:40:10 +02:00
Clint Rutkas
ae65e55c14 commenting out settings button in FZ Editor (#19829)
* commenting out settnigs due to z-index issue between how FZ Editor works and a user clicking settings

* Update MainWindow.xaml
2022-08-11 15:44:35 -07:00
Koh Jun Dong
efa09182d3 [PTRun][URL]Fix web link with ports support (#19809)
* [PT Run] Fix web link with ports support (#14260)

* URL in the format of `domain:port` now directs to default browser

* Add tests to verify web link with ports scenario

* Fix test case and scenario where mismatching schema and port for IPv6 does not result in correct output

* [PT Run][Tests] Change and add more UriParser Tests

* Specifically of note is line 56, where [IPv6]:80 diverts to https instead of http.

* [PT Run][Tests] Add UriParser tests

* Add more tests targeting port handling

* [PT Run] Fix http handling

* This also fixes oddity with IPv4 and IPv6 handling

* [PT Run] Add second results depending on condition

* Test: update all test to reflect updated functions & add a little more tests

* Update function to show two results when URI is in the format of `domain:port` (situation where it can also be `schema:path`)

* Update regex style to follow previous code

* [PT Run] Change tests and filter localhost from certain results

* Add tests for 127.0.0.1, localhost, and ::1

* Move test around into more logical arrangement

* Filter localhost out from showing double results

* [PT Run] Fix spelling on comments

* [PT Run] Add some words to expect.txt

* [PT Toys] Clarify comment regarding [::]

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

* [PT Run] Remove tests regarding tel protocol

* [PT Run] Clarify UriParser parameter

* [PT Run] Add UriParser tests for tel protocol

* Current code has a regression bug where tel:xxxx, if xxxx is more than 65536 it will break. Will fix in follow up commit.

* [PT Run] Refactor ExtendedUriParser and its tests

* Remove `isWebUri` from ExtendedUriParser, keeping only webUri and systemUri

* Tel protocol regression bug still exists

* [PT Run] Fix wrong icon when webUri result

* [PT Run] Fix regression bug for tel protocol

* Tel protocol will sometimes bug out when tel:xxxx if xxxxx is more than 65535, as UriBuilder will throw error thinking the port number has been exceeded

* [PT Toy] Fix tel test

* [PT Run] Changes to tests

* Add test for application uri to include ports, for all non-protocol, http and https variants

* Rearrange some more test to make more logical sense, and add comments

* [PT Run] Simplify code

* Move webUri and systemUri to be global, as per htcfreek's recommendation

* Add comment to empty catch

* Change null to default

* [PT Toy] Update test name

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

* [PT Toy] Change result prompt when empty string

* [PT Toy] Fix typo in comment

* [PT Toy] Simplify line

* [PT Toy] Change result prompt when empty string
2022-08-11 17:04:39 +01:00
Jaime Bernardo
c0217a3cc4 [build][deps]Fix building in Visual Studio 17.3 (#19869) 2022-08-11 16:16:04 +01:00
Jeff Lord
7f4a2ca6db [PTRun]Fix cutting off and using previous input (#19215)
* Deselect previous selected item because it might not be valid.

* fast execute non-delayed queries

* Speling fixxes.

* Fixed _isTextSetProgrammatically check for when PTRSearchQueryFastResultsWithDelay = false

* Resoved some comments.

* Added partial delay for fast plugins

* Updates settings UI for second throttle value. Changed text.

* 'Verbiage' update
2022-08-10 11:07:53 +01:00
sosssego
5d6160cf7a [PTRun][Folder]Expand environment variables(#19791)
* Fix for issue 19428
Expand the environmental variables before path combine

* Adding unit test
2022-08-10 10:26:27 +01:00
Jaime Bernardo
3753642f23 [build]Add version to binaries and add check in CI (#19792)
* [ci]Fail for binaries without a version

* Add version to AlwaysOnTop dll

* Add version to AlwaysOnTop executable

* Add a version to Awake module

* Add version to FancyZones module dll

* Add version to PowerRenameUI executable

* Add version to VideoConferenceMute module

* Add version to the Bug Report Tool

* Add version to Styles Report Tools

* Add version to Webcam Report Tool

* Add version to PowerToysSetupCustomActions

* fix spellcheck

* Update tools/WebcamReportTool/resource.h
2022-08-10 09:58:21 +01:00
CleanCodeDeveloper
dae63ce3b9 Remove fxcop leftovers (#19772)
* Fixed FxCop leftovers

* Fixed FxCop leftovers
2022-08-08 21:35:46 -07:00
Stefan Markovic
1fe9d95322 [PowerRename] Cleanup and fix for renaming to empty string (#19691)
* Add UI items using OnItemAdded callback

* Simplify ToggleAll() logic

* Simplify items' Checkbox logic

* Do not allow renaming to empty string

* Simplify ShowAll/ShowRenamed logic

* Simplify rename button logic
2022-08-05 18:14:53 +01:00
unuing
6ef439bda4 Fix a wrong url in README.md (#19776) 2022-08-05 00:16:21 -07:00
unuing
dd14fe0c42 Update README.md (#19757)
* Update README.md

* Update README.md
2022-08-04 16:34:23 +01:00
Clint Rutkas
3d54cb8385 Update README.md 2022-08-02 15:20:50 -07:00
Jaime Bernardo
792331e5a6 [PowerRename]Don't crash dllhost on right-click (#19723)
* Add version to PowerRename context menu

* [PowerRename]Don't crash dllhost on right-click
2022-08-02 19:28:10 +01:00
sosssego
6caf472798 [ColorPicker]Fix HSB color format and add unit tests (#19634)
* Change HSB color convert and add unit test

* Using HSV implementation to not duplicate code.
2022-08-02 17:00:52 +01:00
Seraphima Zykova
0d0aaca0e6 [Installer]Revert ignore start menu shortcut on update (#19715)
This reverts commit 7f6c91e166.

Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>
2022-08-02 15:30:36 +01:00
Jaime Bernardo
5a0f9a3a2d 0.61 changelog (#19668)
* 0.61 changelog

* Update README.md

Co-authored-by: Jay <65828559+Jay-o-Way@users.noreply.github.com>

* Fix PR feedback

* fix spellcheck

* Remove known issue about dev insider builds

Co-authored-by: Jay <65828559+Jay-o-Way@users.noreply.github.com>
2022-08-01 13:55:12 -07:00
Bruno Meneguello
65f457e9d1 [PT Run][VSCodeWorkspace] Adds support for VSCode portable (#19442)
* [PT Run][VSCodeWorkspace] Adds support for VSCode portable

* Add PATH warning to the subheader
2022-08-01 17:03:50 +01:00
Martin Bourbier
b1ad9160cc [runner][nit]remove redundant namespace (#19626) 2022-08-01 11:27:04 +01:00
Stefan Markovic
bdddea9b04 [AOT] Fix CPU consumption (#19653)
Wait until object is signaled instead
2022-07-28 17:53:40 +02:00
Ikko Ashimine
9fb9c6a61e [Settings] fix typo in Resources.resw (#19647)
relevent -> relevant
2022-07-28 10:21:27 +01:00
Josh Soref
a397e72eb0 [ci]Upgrade check-spelling to v0.0.20 (#19574) 2022-07-27 11:39:46 +01:00
Stefan Markovic
da9c2b649b [Settings] Close Settings app if running as standalone process after showing message dialog (#19620)
... in Release mode
In Debug mode leave settings app running after closing message dialog
2022-07-27 12:39:31 +02:00
Stefan Markovic
7f6c91e166 [installer] Ignore startmenu shortcut on update (#19618) 2022-07-27 12:38:33 +02:00
dependabot[bot]
6d97fb2dc8 [ci]Bump check-spelling/check-spelling from 0.0.20.pre.alpha7 to 0.0.20 (#19610)
Bumps [check-spelling/check-spelling](https://github.com/check-spelling/check-spelling) from 0.0.20.pre.alpha7 to 0.0.20.
- [Release notes](https://github.com/check-spelling/check-spelling/releases)
- [Commits](https://github.com/check-spelling/check-spelling/compare/v0.0.20-alpha7...v0.0.20)

---
updated-dependencies:
- dependency-name: check-spelling/check-spelling
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-27 11:37:19 +01:00
Yves-Laurent Creton
2979bfbc42 [PTRun][Program]Apply settings from program json file (#19632)
Added setters to properties so that they can be overruled when already stored as json in the localappdata folder
2022-07-27 11:33:44 +01:00
Stefan Markovic
c8458dc059 [AOT] Fix rounded corners black edges (#19615)
* [AOT] Fix rounded corners black edges

Enable antialiasing for render target

* Update expect.txt
2022-07-26 12:50:55 +02:00
Jeff Lord
6ea274a4e4 Change UI, PowerLauncher_PluginWeightBoost from text to number (#19571) 2022-07-22 12:55:58 +02:00
Stefan Markovic
f0e045d17d Add Override ToString() for ResizeSize class (#19562)
Narrator now reads Name of the ResizeSize instead of the class name
2022-07-21 23:20:02 +02:00
Clint Rutkas
3caef119a7 adjusted wording for when keys are orphaned (#19506)
* adjusted wording

* Update Resources.resx

* adding in helper comment
2022-07-20 09:22:29 -07:00
unuing
b395001808 Update README.md (#19554) 2022-07-20 09:07:26 -07:00
Heiko
e11bafcc93 [PT Run] [Program plugin] Add localized name (#19149)
* create common localization class

* add loc name to prog plugin

* fixes

* Tool tip fixes and comments

* cleanup and highlight fix

* change

* Improvements

* Add GetLocalizedPath()

* smal code improvements
2022-07-20 16:11:33 +02:00
Davide Giacometti
28751d2d36 NetAnalyzers and StyleCop centralized (#19476)
* NetAnalyzers and StyleCop centralized

* removed code analysis from devdocs
2022-07-19 22:40:40 +02:00
Clint Rutkas
f519a88ee0 Update .gitattributes 2022-07-19 13:06:16 -07:00
osfanbuff63
bb65085727 Make GitHub display .vsconfig as a JSON file (#19491)
* Make GitHub display .vs-config as a JSON file

* Remove *

* Update .gitattributes
2022-07-19 13:05:41 -07:00
Stefan Markovic
bf2a107d7d Move to .NET 6.0.7 (#19522) 2022-07-19 18:20:56 +02:00
Davide Giacometti
915663e7db revert for QueryHistory and UserSelectedRecord saved on search (#19164) 2022-07-19 13:56:27 +02:00
rohanrdy
31fd6258e0 Fix Typo (#19488)
* Update Resources.resx

Fixed a typo (From 'Klick' --> 'Click')

* Update src/modules/launcher/Plugins/Microsoft.Plugin.WindowWalker/Properties/Resources.resx

Co-authored-by: Jay <65828559+Jay-o-Way@users.noreply.github.com>

Co-authored-by: Jay <65828559+Jay-o-Way@users.noreply.github.com>
2022-07-18 16:23:57 -07:00
Davide Giacometti
af4dc80ce9 properly handle thread when AOT is destroyed (#19489) 2022-07-18 13:43:01 +02:00
Davide Giacometti
996a235e12 [PTRun]Don't show results from other plugins when using keyword (#19206) 2022-07-15 10:38:11 +01:00
Jeff Lord
8e2570033c [Settings][PTRun]Grey out score adjustment when plugin is not global (#19301) 2022-07-15 10:26:08 +01:00
Jaime Bernardo
c08135d6e3 [General]Fix random dead keys being pressed (#19438) 2022-07-15 10:25:11 +01:00
Niels Laute
680f89e0f7 [General] Update Segoe icon glyph codes (#19311)
* Updating icons

* Tweak fontsizes

* Changes based on feedback
2022-07-15 10:17:18 +01:00
August Karlstedt
98ef328331 [FancyZones]Set better default layout for vertical monitors (#19412) 2022-07-15 10:16:57 +01:00
Davide Giacometti
0c78b12f59 [AOT]Fix for flickering border (#19362) 2022-07-15 10:16:32 +01:00
Stefan Markovic
98d312a9d4 [PowerRename] Scale window size (#19378) 2022-07-15 09:22:59 +01:00
Stefan Markovic
35797e8680 [FileExplorer Add-ons][SVG thumbnail]Swap order of default and svg namespace if default comes first (#19381) 2022-07-15 09:21:23 +01:00
Stefan Markovic
ca64239809 [General]Upgrade to WinAppSDK 1.1.2 (#19321)
* Move PowerRename and Settings to WinAppSDK-1.1.2

* Cleanup GlobalSuppressions file
2022-07-15 09:16:32 +01:00
Davide Giacometti
e6be44623a [General]Consolidate to language version C# 10 (#19209) 2022-07-15 09:06:00 +01:00
Union Palenshus
3d8fbd0507 Fixing img src for onenote.md doc (#19357) 2022-07-14 09:36:54 -07:00
Stefan Markovic
de4b66b51e [installer] Remove unneeded installer/MSIX directory (#19320)
* [installer] Remove uneeded installer/MSIX dir

* Run spellcheck
2022-07-14 17:33:15 +01:00
Jaime Bernardo
45d0e7da2b [ci]Add version number to symbols artifact (#19400) 2022-07-14 08:54:58 +01:00
Jaime Bernardo
35d0cc5104 [Tool]Exhaustively check every monitor in the Monitor Report Tool (#19384)
* Check full EnumDisplayDevicesW entries

* refactor code a bit

* Fix spellcheck

* Remove unneeded var
2022-07-13 11:53:47 +01:00
Jaime Bernardo
0fbec1ca02 [FancyZones]Fallback and fixes for GetDisplays (#19380)
* [FancyZones]Fallback and fixes for GetDisplays

* fix infinite cycle
2022-07-13 11:53:18 +01:00
Jaime Bernardo
d37bab3d2d [FindMyMouse]Fix hang on top left activation (#19347) 2022-07-12 12:58:16 +01:00
Jaime Bernardo
ad28c41c46 [Win11]Also show old context menus (#19249) 2022-07-11 16:40:34 +01:00
Jaime Bernardo
db06840338 [Win11]Fix context menus on insider dev builds (#19236) 2022-07-11 16:40:21 +01:00
Seraphima Zykova
73c259342b [FancyZones] Monitor id comparison fix (#19312)
* added monitor number to id comparison

* added monitor number to id in editor

* empty serial number comparison
2022-07-11 16:39:03 +01:00
Clint Rutkas
c36a80dad5 Update msstore-submissions.yml (#19253) 2022-07-08 10:44:28 -07:00
Jaime Bernardo
cfff0a2af8 0.60 changelog (#19184)
* 0.60 changelog

* fix spellcheck

* remove old spellchecker names

* add names to expect as well

* Mention .lnk shortcuts

* Update README.md

* Update README.md

* Update README.md

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

* Update README.md

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

* Address PR feedback

* Add note about windows dev channel insider builds

Co-authored-by: Clint Rutkas <clint@rutkas.com>
Co-authored-by: Heiko <61519853+htcfreek@users.noreply.github.com>
2022-07-07 09:27:11 -07:00
Jaime Bernardo
e887b3b395 [PowerRename][ImageResizer]Fallback for tier 1 menus (#19195)
* [PowerRename][ImageResizer]fallback for tier 1 menus

* Simplify logic
2022-07-07 15:56:14 +01:00
Andrey Nekrasov
d4b62d8118 [arm64][Settings]Handle the case when .NET load crash on System.Management (#19176)
Prevent crashing with "System.Management requires native modules from the .NET Framework to operate." on creating ThemeListener.
2022-07-05 13:25:25 +01:00
Seraphima Zykova
32fc88abd2 [FancyZones] Fix applied layout reset in multi monitor mode (#19174) 2022-07-05 12:07:59 +01:00
Jeff Lord
0ad71815bb [PTRun]Fix null reference issue when clean previous query is on (#19167) 2022-07-04 18:38:29 +01:00
Andrey Nekrasov
4f1e3b85bf [chore][installer]Upgrade to .net 6.0.6 (#19165)
Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>
2022-07-04 16:35:06 +01:00
Heiko
202abd351b [PT Run] [Terminal Plugin] Use GetAppListEntires and add scoring (#19148)
* use GetAppListEntires() method

* add scoring
2022-07-04 15:19:40 +01:00
Jeff Lord
0da616f917 [PTRun]Settings for result order tuning (#18978)
* Change to allow new settings for results tuning.

* Change to allow new settings for results tuning.

* Added WeightBoost

* Fixed null-ref crash in QueryResults

* Change based on stefansjfw review. Remove PowerLauncher_PluginWeightBoost.Content

* Fixed another of my dumb null-refs...

* Updated some text

* Moved global sort order and set enable/disabled as needed.

* Fixed enabled-state of "Global sort order score modifier" setting.
2022-07-04 15:12:56 +01:00
Seraphima Zykova
0c238a8eea [FancyZones]Window transparency error fix (#19134) 2022-07-01 17:24:16 +01:00
Seraphima Zykova
d201ae4335 [AlwaysOnTop] Round corners on Windows 11 (#19109)
* check window corners

* draw rounded rectangle

* draw rounded corners

* switch between rounded and not rounded rects

* added enabled corners setting

* update corner
2022-07-01 16:56:45 +01:00
Seraphima Zykova
35bb4280d0 [FancyZones]Monitor identification (#19077)
* moved monitors identifying

* changed device id

* get wmi info

* convert old data

* save/load applied layouts

* changed monitor identification

* id comparison

* save/load app zone history

* moved com and security init

* update ids in editor

* lib fix

* updated tests

* changed comparison

* tests

* updated id comparison

* updated log

* moved definition

* spell check

* resolve conflicts

* refactoring

* update serial numbers if possible
2022-07-01 16:29:02 +01:00
Josh Soref
3cb0638c7e [ci]Upgrade to check-spelling 0.0.20alpha7 (#19127)
* spelling: added

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: and

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: another

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: color

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: file

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: github

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: not

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: occurrences

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: stamp

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: suppressions

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: the

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: up to

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: whether

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: whichdoes

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* Upgrade check-spelling to v0.0.20-alpha7

Config based on:
a5001170a7

* Adding duplicate detection to patterns.txt
* Adding line_forbidden.patterns
* Adding reject.txt
* Updated excludes (and sorted)
* Switching to unified workflow

* moving `wil` to allow.txt to clarify that it's a term of art
  (https://github.com/microsoft/wil), whereas often it's a typo for `will`.

* Update src/runner/main.cpp

Co-authored-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2022-07-01 15:09:41 +01:00
Davide Giacometti
f4dbdbdd7a [PTRun]Remove BinaryFormatter (#19036) 2022-07-01 14:44:24 +01:00
William Bradley
b7fccc3211 Immersive dark mode + Theme Listener (#18315)
* C++ impl of immersive dark mode

* Stop using the hardcoded value.

* Conjured up theme listener based on registry.

* Update MainWindow.xaml.cpp

* Update expect.txt

* Moved themehelpers to the common themes lib.

* Ported theme helpers back to .NET

* Update expect.txt

* Updated C# Theme Listening logic to mimic the one from Windows Community Toolkit.

* Replaced unmanaged code for RegisterForImmersiveDarkMode with unmanaged ThemeListener class.

* Fix upstream changes

* Update ThemeListener.h

* Update ThemeListener.h

* Proper formatting

* Added handler to Keyboard Manager.

* Update EditKeyboardWindow.cpp

* Added dwmapi.lib to runner, removed condition from additional dependencies.

* Update PowerRenameUI.vcxproj

* Added new deps for ManagedCommon to Product.wxs

* Crude attempts and understanding installer

* Removed Microsoft.Win32.Registry.dll from product.wxs.

* Updated dictionary

* Renamed ThemeListener class file for consistency, removed unused CheckImmersiveDarkMode in theme_helpers.

* Update Themes.vcxproj

* Update theme_listener.cpp

* Removed SupportsImmersiveDarkMode version check

* Removed SupportsImmersiveDarkMode version check

* Whoops

* Update expect.txt
2022-07-01 10:52:48 +01:00
Stefan Markovic
e637902892 [PowerRename][ImageResizer] Tier1 Win11 Context menu (#19000)
* Test win11 tier1 context menu

* Try to test signing

* Cleanup

* Cleanup project file

* Sign dll
Add PowerToys preffix
Add assets to installer

* expect.txt

* Switch to named pipes
Unregister package on uninstall
Remove unneeded files
Cleanup

* Bring back check if package registered but use per-user method

* Fix win11 check

* expect.txt

* Check if package already registered

* Revert "Check if package already registered"

FindPackages() method needs admin privileges.

This reverts commit 5af584fed4.

* Fix PowerRename args checking

* Cleanup assets

* Tier1 context menu ImageResizer
Minor cleanups
Move logic to package.h

* [WIP] Signing and installer
Expect.txt

* Localized context menu title

* Retarget everything 10.0.18362.0 -> 10.0.19041.0

* Address PR comments
 - check if selection renamable
 - minor cleanup
 - struct initialization

* Fix ImageResizerLib project configuration

* More Windows version updates

* Remove unneeded file & try fix resource build error

* Add Microsoft.PowerToys prefix to packages

* Test

* Fix convert-resx-to-rc.ps1 script issue causing resource files compile error

Don't generate empty STRINGTABLE for resx files without data

* Avoid duplicate context menu items

* [BugReportTool] Report installed context menu packages
2022-06-30 22:10:14 +02:00
Naveen
a0eacca17f chore: Included githubactions in the dependabot config (#19100)
This should help with keeping the GitHub actions updated on new releases. This will also help with keeping it secure.

Dependabot helps in keeping the supply chain secure https://docs.github.com/en/code-security/dependabot

GitHub actions up to date https://docs.github.com/en/code-security/dependabot/working-with-dependabot/keeping-your-actions-up-to-date-with-dependabot

https://github.com/ossf/scorecard/blob/main/docs/checks.md#dependency-update-tool
Signed-off-by: naveen <172697+naveensrinivasan@users.noreply.github.com>
2022-06-30 07:40:50 -07:00
msftbot[bot]
656ac441cd Add .github/fabricbot.json (#19097)
Co-authored-by: msftbot[bot] <48340428+msftbot[bot]@users.noreply.github.com>
2022-06-29 09:38:57 -07:00
Seraphima Zykova
9e0781d86c [FancyZones Editor] UI fixes (#18966)
* canvas scaling

* moved editor params saving

* show monitor size

* removed unused cmd args

* separate dpi unaware thread

* tests

* dpi unaware monitor size

* spell

* early return on editor params saving error

* show scaling value

* changed font
2022-06-29 16:39:03 +01:00
Jeremy Sinclair
81f99264b3 [Installer]Update VCRedist version to latest (#19107)
* Update VCRedist version to latest

* Silently continue when VCRedist hits 0x666 error
2022-06-29 16:30:40 +01:00
Union Palenshus
28eb4c80f6 [PTRun][OneNote]Add query caching and delayedExecution (#18919)
* Adding OneNote plugin for PowerToys Run

* Updating to 3.0.1 dependency, updating md, spellcheck, ready for PR

* Updating spelling and using localized string

* Adding OneNote link to readme

* Adding OneNote requirement to description

* removing 'open' from description

* Updating interop version, PR feedback

* Adding query caching and delayedExecution to PT Run OneNote plugin

* Adding binaries to signing, and updating doc

* Adding dependency nuget package binaries to installer

* PR feedback and .editorconfig fix to ignore IDE rules that conflict with repo styling

* Fixing spelling
2022-06-29 14:56:55 +01:00
Jeff Lord
19bf2e3614 [PTRun][Settings]Allow "Search Settings" to work and find the correct item. (#19030)
* Update for PTRun-Window-Search-Settings-19023

* Fixed xml formatting.
2022-06-29 14:51:59 +01:00
Clint Rutkas
3e300e9151 Update README.md 2022-06-28 15:42:38 -07:00
Jaime Bernardo
3b542d2fdf [chore]Force specific Newtonsoft.Json version (#19093) 2022-06-28 20:47:53 +01:00
Heiko
46cf9a2334 [PTRun][Plugins]Translation fixes and improvements (#19037)
* add resx comment to sys plugin (#18843)

* number examples calc plugin (#18934)

* TD description fix (#17377)

* small fixes

* add comments

* make spell checker happy
2022-06-28 19:21:08 +01:00
Jaime Bernardo
a81bc2e7b5 [PTRun][Calculator]Update Mages to 2.0.1 (#19087)
* [PTRun][Calculator]Update Mages to 2.0.1

* Fix tests for the new precision
2022-06-28 17:25:06 +01:00
Stefan Markovic
1772af60a2 [PowerRename] Clicking on regex/date&time cheatsheet item appends to Search/Replace field text (#19056)
* [PowerRename] Fill Search/Replace field by clicking on regex/date&time cheatsheet items

* Make ListViews item non-selectable
2022-06-28 17:59:15 +02:00
Heiko
5d6f1ba676 [PT Run][Settings plugin]Update sharing settings (#19035)
* update share settings

* Spelling fix
2022-06-28 14:42:32 +01:00
Davide Giacometti
27c52bebc7 [PTRun]removed obsolete Wox code based on WebRequest (#19038) 2022-06-28 14:41:13 +01:00
Jaime Bernardo
6ccc059d7a [ci]Remove CodeQL workflow (#19013) 2022-06-28 14:37:45 +01:00
Stefan Markovic
de3f6f9fff [PowerRename] Fix files enumeration logic (#19057) 2022-06-28 15:33:36 +02:00
Jaime Bernardo
62c9594584 [chore]Consolidate nuget packages (#19063) 2022-06-28 14:30:57 +01:00
Jaime Bernardo
548678bf44 [MouseCrosshairs]Change default shortcut (#19061) 2022-06-28 14:30:25 +01:00
Jaime Bernardo
f8c624a62d [test][chore]Update test sdk to 17.2.0 (#19059)
* [test][chore]Update test sdk to 17.2.0

* Add timezone unit tests to CI
2022-06-28 14:30:03 +01:00
Jaime Bernardo
fcdf79f7e9 [ci][test]Disable tests that depend on WebView2 (#19078)
* [ci][test]Disable tests that depend on WebView2

* Add actual dll name for markdown tests

* Random commit to trigger CI again
2022-06-28 12:03:09 +01:00
Dustin L. Howett
31e3c46641 Make sure we run CG component detection on main (#19060)
* Make sure we run CG component detection on main

I believe that there is a hidden "default branch" setting in Azure
DevOps, and ours is set to "master". CG only attempts to automatically
inject to builds off the default branch... and because we're a GitHub
repo running builds in AzDO we _can't change what the default branch
is_. Oops.

Copied from microsoft/terminal#e0bd76b30

* spellbot got mad at me
2022-06-27 09:25:25 -07:00
Jaime Bernardo
eeda2ec985 [ci][build]Sign PowerToysSetupCustomActions.dll (#18992)
* [ci]Sign PowerToysSetupCustomActions.dll

* Specifically sign the Custom Actions dll

* Proper dll build path

* Verify if dll inside msi is really signed
2022-06-24 13:06:44 +01:00
Tobias Sekan
7af8b930be [PTRun][TimeZone]Fix empty subtiles and missing results (#18632)
* Fix for #16627, Partial fixers for #16695 and #17349

* remove none related  PR changes

* more PR related fixes
2022-06-24 13:00:46 +01:00
Mahdi Hosseini
6f5429ec49 [Settings]Fix description property type for checkbox controls (#18796) 2022-06-23 16:21:44 +01:00
Zetaspace
22f9629174 [FZEditor]UI minor fixes (#18749)
* Fix UI

* Maybe Trim is better?
2022-06-23 16:09:02 +01:00
Davide Giacometti
301f26aca1 [AOT] Low level keyboard hook (#18643)
* low level keyboard hook for always on top

* fix for message loop

* fix spellcheck

* refactoring and cleanup

* spellcheck
2022-06-23 15:29:53 +01:00
Stefan Markovic
2159e2722e [FileExplorer][SVG preview] Swap order of default and svg namespace if default comes first (#18825)
* [FileExplorer Add-ons][SVG preview] Swap order of default and svg namespace if default comes first

Inkscape v1.1 swapped order of default and svg namespaces in svg file (default first, svg after).
That resulted in parser being unable to parse it correctly and instead of svg, text was previewed.
MS Edge and Firefox also couldn't preview svg files with mentioned order of namespaces definitions.

* expect.txt

* Update comment

* Minor fixes

* Use full namespace definition instead of prefix
2022-06-19 11:21:51 +01:00
lncubus
759ea40b22 [OOBE]Hide "x64 ARM64 Installer Hash" lines in "What's New" (#18835) 2022-06-19 11:16:40 +01:00
Clint Rutkas
35c1438514 Update pull_request_template.md (#17891)
* Update pull_request_template.md

* Update .github/pull_request_template.md

Co-authored-by: Aaron Junker <aaron.junker@outlook.com>

* Update pull_request_template.md

Co-authored-by: Aaron Junker <aaron.junker@outlook.com>
2022-06-17 12:06:22 -07:00
Jaime Bernardo
d9e8b3e9c3 [ci]Fix PTRun OneNote plugin signing (#18906) 2022-06-17 15:10:27 +01:00
Stefan Markovic
18cb5639a8 [FileExplorer Add-ons][SVGthumbnails] Dispose WebView resources (#18904) 2022-06-17 15:01:13 +02:00
Union Palenshus
9b7a7f93b7 Adding OneNote plugin for PowerToys Run (#18558)
* Adding OneNote plugin for PowerToys Run

* Updating to 3.0.1 dependency, updating md, spellcheck, ready for PR

* Updating spelling and using localized string

* Adding OneNote link to readme

* Adding OneNote requirement to description

* removing 'open' from description

* Updating interop version, PR feedback
2022-06-15 19:15:58 +02:00
Clint Rutkas
b6ff870549 Update package-submissions.yml 2022-06-15 09:59:44 -07:00
Clint Rutkas
8be1c86223 Update README.md 2022-06-15 09:52:06 -07:00
Jaime Bernardo
43e658f388 [WinUI]Upgrade Windows App SDK to 1.1.1 (#18842) 2022-06-15 01:13:14 +01:00
Jaime Bernardo
fdc813a5ca [Test]Fix flaky markdown preview test (#18840) 2022-06-15 00:30:33 +01:00
Jaime Bernardo
244394865f [PTRun]Add logs to check Web Browser detection (#18831)
* [PTRun]Add logs to check Web Browser detection

* Use proper initial value

* Add punctuation to the end of the log message
2022-06-14 13:04:30 -07:00
Seraphima Zykova
f5f8861eac [FancyZones] Update windows positions after changing the layout fix (#18805)
* removed IWorkArea interface

* split work area initialization

* changed rect type in zoneset

* tests


upd work area tests
removed obsolete, update others
updated work area tests

* get current vd windows

* update windows positions

* removed unused flag

* moved update window positions to work area

* check monitor

* refactoring
2022-06-14 15:45:45 +01:00
lncubus
e8bb2de8b6 [OOBE] Get "What's New" behind authenticated proxy and strict firewall. (#18695)
* Attempt to get username and password for proxy authentication. We should not use it.

* Using default credentials for system proxy authentication.
2022-06-14 11:44:07 +01:00
Seraphima Zykova
b5531a1f6b [FancyZones][Tool]Monitor id tool (#18589)
* tool

* log ccd and wmi/cimv2

* rename

* spell

* clean up

* spellcheck
2022-06-13 15:37:52 +01:00
Alexandre Zollinger Chohfi
55f38016d7 [CI]Added Arm64 support on the store submission task. (#18655)
* Added Arm64 support on the store submission task.

* Apply suggestions from code review

Co-authored-by: Clint Rutkas <clint@rutkas.com>
2022-06-12 14:13:23 +01:00
Jaime Bernardo
1490fb300c [PTRun]Add setting to disable input delay (#18724)
* [PTRun]Add setting to disable input delay

* Address feedback and allow configuring delay

* Address PR feedback
2022-06-12 14:12:10 +01:00
Davide Giacometti
b33bc2ecd0 [NetAnalyzers]CA1031 suppressions cleanup (#18706) 2022-06-12 14:11:52 +01:00
Stefan Markovic
33072c7ee3 [Tests][MD preview] Don't target image on the internet in helper file (#18731) 2022-06-12 13:21:58 +01:00
Stefan Markovic
db881ceeb0 [FileExplorer-Add-ons][SVG] Preprocess svg thumbnail before previewing (#18685)
* [FileExplorer-Add-ons][SVG Thumbnail] Preprocess svg thumbnail before previewing

same logic is usedas for preview handler

* Fix build
2022-06-12 13:20:23 +01:00
Stefan Markovic
9335705389 [OOBE]Make OOBE window resizable (#18727) 2022-06-12 13:19:32 +01:00
Davide Giacometti
04b37fffd5 [PT Run][Program] Search linked programs by real executable name (#18601) 2022-06-12 13:18:10 +01:00
Andrey Nekrasov
e5c3b15a45 [Updater]Handle up-to-date from PowerToys.Update.exe (#18684) 2022-06-09 13:36:22 +01:00
Seraphima Zykova
5c8742e557 [FancyZones] Process windows with "Show windows from this app on all desktops" option fix (#18675)
* changed current vd check

* removed include
2022-06-09 13:34:22 +01:00
Jaime Bernardo
a11f9ab4c9 0.59 changelog (#18575)
* 0.59 changelog

* Fix spellcheck

* Update README.md

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

* Update README.md

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

* Update README.md

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

* Update README.md

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

* Fix spellcheck

* Fix spellcheck

* Address PR feedback

* Add recently merged fixes

* Fix spellcheck

* Address feedback

* Update README.md

Co-authored-by: Jay <65828559+Jay-o-Way@users.noreply.github.com>

* Update README.md

Co-authored-by: Jay <65828559+Jay-o-Way@users.noreply.github.com>

* Update README.md

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

* Update README.md

Co-authored-by: Jay <65828559+Jay-o-Way@users.noreply.github.com>

* Update README.md

Co-authored-by: Jay <65828559+Jay-o-Way@users.noreply.github.com>

* Update README.md

Co-authored-by: Jay <65828559+Jay-o-Way@users.noreply.github.com>

* Mention Windows App SDK upgrade

* Reword

* Update README.md

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

* Add self-contained winappsdk changes

* Remove mention to doing self-contained next release

* Update README.md

Co-authored-by: Heiko <61519853+htcfreek@users.noreply.github.com>
Co-authored-by: Clint Rutkas <clint@rutkas.com>
Co-authored-by: Jay <65828559+Jay-o-Way@users.noreply.github.com>
2022-06-07 09:39:21 -07:00
Jaime Bernardo
65df14036c [Installer]Ship Windows App SDK runtime self contained (#18644)
* [Installer]Ship Windows App SDK as self-contained

* Include windows app sdk localization files

* fix spellcheck

* Upgrade Win3.14 version

* Add RunWixToolsOutOfProc to try fixing wix hang

* fix spellcheck

* Try to get more information from wix build

* Remove unneeded flags

* Fix spellchecker

* Add version check exception for dll with 1.0.0.0
2022-06-07 09:58:32 +01:00
Stefan Markovic
97be8dbd14 [Installer]Upgrade to Windows App SDK 1.1.0 (#18603)
* Move to WinAppSDK-1.1.0

* expect.txt

* Revert "[Settings]Don't launch if explorer is running elevated"

This reverts commit c485da2816.

* Make copyright header analyze suppression module scope
2022-06-04 23:31:27 +01:00
Stefan Markovic
7a7d025956 [Installer]Upgrade to Windows App SDK 1.1.0 (#18603)
* Move to WinAppSDK-1.1.0

* expect.txt

* Revert "[Settings]Don't launch if explorer is running elevated"

This reverts commit c485da2816.

* Make copyright header analyze suppression module scope
2022-06-04 23:30:34 +01:00
Davide Giacometti
29f0ae0395 [Settings][PTRun]Fix plugin disabled error with search (#18534) 2022-06-02 10:47:53 +01:00
Davide Giacometti
6f306e1259 [PT Run][Folder]Support for paths with / (#18520) 2022-06-02 10:44:52 +01:00
Heiko
465df35d27 [PT Run] Calculator plugin: Various improvements (#18159)
* crash fixes and error result

* small changes and test fixes

* improve exceptions and message

* double array crash fix

* overflowexception

* improve error handling

* varous improvements

* varous improvements

* fix spelling

* fix spelling

* Revert #16980

* add description

* error improvemenet

* Update tests

* spelling fixes

* small changes

* add settings

* last changes

* fix description

* update dev docs

* spell check
2022-06-02 10:44:12 +01:00
lncubus
9e4a58ee95 [Settings][KBM] Fix re-reading loop on non-existing file (#18374)
* [KBM]

* [KBM] Keyboard Manager profile loading should not expect the profile to exist
2022-06-02 10:42:10 +01:00
Lara Maia
6f0e2f9994 Typo (#18538) 2022-06-01 09:21:47 -07:00
Jaime Bernardo
368c7756ef [installer]Add version to the winappsdk filename (#18543) 2022-05-30 11:53:28 +01:00
Seraphima Zykova
3cf6685eeb [FancyZones]Fix not shown layout on window dragging(#18542)
* log

* check if current vd id null
2022-05-30 11:16:33 +01:00
Andrey Nekrasov
ba4b9cf549 [ARM64][Installer]Install vcredist and upgrade wix to 3.14(#18500)
* [ARM64] Install VCRedist using bootstrapper and fix autoupdate

* [ARM64] Use system-wide WiX toolset instead of a nuget package

* [CI] Install WiX 3.14

* [CI] add wix install script for release.yml

* [Doc] Update WiX install steps

* [CI]Fix Wix path

* Double quotes for full wix path

* fixup: verify wix hashes

* ignore sha256s

* spellcheck

* updated vcredist name

* norestart for vcredist
2022-05-30 10:38:36 +01:00
Clint Rutkas
25cfd07ae1 readmeWithArm64BuildStatus (#18509) 2022-05-27 15:47:40 -07:00
Jaime Bernardo
1c3bc1ee20 [KBM]Fix concurrent shortcut remap locking key (#18499) 2022-05-27 14:01:26 +01:00
Jaime Bernardo
a9181a0184 [PTRun][WebSearch]Fix empty browser pattern crash (#18480) 2022-05-25 16:46:55 +01:00
Stefan Markovic
f9e967973e [File Explorer Add-ons] Hide scrollbar when previewing svg thumbnails (#18436) 2022-05-24 18:49:43 +02:00
Alexandre Zollinger Chohfi
ce9cba1af2 Added automatic Microsoft Store integration (#18456) 2022-05-24 10:59:16 -05:00
Stefan Markovic
93dcf71fc7 [File Explorer Add-ons] Add viewBox attribute to svgs that don't have one (#18434)
This alows svg previewer to show full svg, not just a part of it
2022-05-24 17:55:10 +02:00
Adam Childers
61805aada2 [ImageResizer]Don't update metadata if image wasn't changed (#17880)
* Update ResizeOperation.cs

Add a new boolean to check if the image was resized, skip modifying the metadata if the image was not modified.

* Simplify code to prevent un-needed metadata work when the image isn't changed

Simplify code to prevent un-needed metadata work when the image isn't changed. Thanks Crutkas for the guidance.
2022-05-24 15:58:38 +01:00
Seraphima Zykova
251ea6ded9 [FancyZones] Popup behavior fix (#18270)
* virtual desktop check

* refactoring

* unified check
2022-05-20 09:51:15 +01:00
Jason Shands
be1ed8c0d4 Add small delay to the search query before displaying results (#18290)
* Add small delay to the search query before displaying results

* Reduce user input throttle to 150ms and fix issue with autocomplete text updating

* Add System.Reactive.dll to Launcher installer
2022-05-19 11:23:24 -07:00
Davide Giacometti
dda0aa237c [Settings][FancyZones] Rounded corners settings only on Windows 11 (#18151)
* rounded corners settings only on windows 11

* disable setting on win10
2022-05-19 17:07:18 +01:00
Stefan Markovic
1552e75df2 If markdown file > 1.5MB write it to file and navigate to file instead of string (#18382)
Reason: WebView2.NavigateToString() limitation
2022-05-19 16:57:07 +02:00
Seraphima Zykova
3751642782 [AlwaysOnTop]Fix borders staying after Win+D (#18313) 2022-05-19 14:35:47 +01:00
Stefan Markovic
871b456be3 Fix regression: Open PowerRename on current monitor (#18311)
Add missing reference to Version proj
Minor cleanup
2022-05-19 14:17:29 +01:00
Stefan Markovic
88e79ac669 Hide main settings window instead of closing (#17960)
* Hide main settings window instead of closing

* Proper closing

* Create Settings window hidden if opening OOBE/SCOOBE
2022-05-19 15:12:59 +02:00
Niels Laute
ab4328310c [Settings] Minor UI fixes (#18227)
* Fix wrapping

* Fix margin

* Fix IsEnabled

* Update ShortcutGuidePage.xaml
2022-05-19 14:07:45 +01:00
Jaime Bernardo
ffa20c0073 [KBM] Allow 4 modifier keys in shortcuts (#18365)
* [KBM] Allow 4 modifier keys for shortcuts

* Update tests
2022-05-19 14:06:03 +01:00
Jaime Bernardo
13750188fd [ARM64]CI and build pipelines (#18337)
* [ARM64]Build pipelines

* Fix localization in pipelines (no arm64 al.exe)

* Use lowercase arm64 for CI

* Build installer to arm64 folder and arm64 name

* Don't run arm64 tests, as there's no agent for it

* Fix pipeline conditions

* Divide symbol files by platform
2022-05-19 14:02:08 +01:00
harvastum
a5be152b87 [PTRun][VSCode]case insensitive binary detection (#18308)
* make instance finding case insensitive

* remove trailing whitespace
2022-05-18 15:28:35 +01:00
Heiko
181b1e45da [PTRun][TimeDate] Change global query setting to ignore number input too (#18157)
* add new setting

* fix spelling

* update/fix setting

* fixes

* make setting default true and update tests

* fix spelling

* change settings/behavior

* docs and tests

* fix condition
2022-05-18 15:27:02 +01:00
Robert C. Maehl
260b55eebc Fix grammar issue (#18320) 2022-05-17 22:44:33 -07:00
Jaime Bernardo
6e6f474df7 [KBM][Telemetry]Remove garrulous events (#18261) 2022-05-16 10:10:56 +01:00
Stefan Markovic
3548e6820e [FileExplorer Add-ons] If SVG file is bigger than 2MB save it as html page and preview the page (#18186)
* If SVG file is bigger than 2MB save it as html page and navigate WebView2 to it

Reason: WebView2.NavigateToString() has 2MB string limitation

* Cleanup and add limitation link to comment

* Lower the limit after testing it
2022-05-15 21:35:15 +01:00
Andrey Nekrasov
3443c73d0e [ARM64] Installer Bootstrapper (#18241)
* [ARM64] Cleanup PowerToys solution configuration

* [ARM64] Add Bootstrapper support

known issues:
- wix doesn't have arm platform -> using x86 instead, resulting in wrong default installation dir and inability to detect 605
- current winappsdk 1.0.3 installer is corrupted -> contains x64 packages
- we're still using hardcoded vcredist for some modules

* Remove duplicate Stylecop PackageReference

* [ARM64] Cleanup StylesReportTool configuration

* [ARM64] fix configurations for bootstrapper

* fixes

* [ARM64] VCM fix

* [ARM64] Fix LinkIncremental conditional in StylesReportTool

* fix #2

* perfect forwarding

* [ARM64] Switch to call vformat to compile with later MSVC toolkits

* Updated expect

Co-authored-by: Jeremy Sinclair <4016293+snickler@users.noreply.github.com>
2022-05-13 16:55:39 +01:00
Seraphima Zykova
5f4a26ebba [FancyZones] Open window in a zone fix (#18193)
* removed background thread monitoring virtual desktops

* removed virtual desktop callbacks

* centralize work with virtual desktops

* updated virtual desktops sync

* app zone history logs

* logs

* get uwp process path

* spell
2022-05-13 14:06:11 +01:00
Ikko Ashimine
d15ff6da8d [spelling]Fix typo in EventHandler.cs (#18216)
occurence -> occurrence
2022-05-13 13:26:00 +01:00
Jaime Bernardo
2555203da8 [ARM64] Preview pane changes (#18222)
* [ARM64] Fix Preview Handlers

* Publish power preview at release pipelines

* Add ARM64 to the solution

* Fix preview pane paths for pipelines
2022-05-11 16:49:28 +01:00
Stefan Markovic
90ecd5e10f [PowerRename] Move to WinAppSDK WinUI3 Unpackaged & ARM64 Support (#18171)
* Migrate PowerRename to Unpackaged WinUI3

* [ARM64] PowerRename (#18002)

* Migrate PowerRename to Unpackaged WinUI3

* Removed Project Config and update PlatformToolset to v143

* Updated solution config

* Migrate PowerRename to Unpackaged WinUI3

* Fixed configs changed from ARM64 build

* Left one project out of fix

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

* Minor fixes

* Remove PowerRenameUILib from signing list - doesn't exist anymore

* Remove PowerRenameUILib from move_uwp_resources.ps1

* Bring back old dir name to see if localization is preserved
Remove move_uwp_resources.ps1 - not needed anymore

* Remove UWP localization docs part

* Fix minor UI quirk

Co-authored-by: Jeremy Sinclair <4016293+snickler@users.noreply.github.com>
2022-05-11 16:38:12 +02:00
Andrey Nekrasov
6a2d9e4e39 Arm64 pending modules (#17972)
* [ARM64] Add arm64 configurations to tools projects

* [ARM64] Add arm64 configurations to FZ projects

* [ARM64] Add arm64 configurations to Awake project

* [ARM64] Add arm64 configurations to PowerRename projects

* [ARM64] Add arm64 configurations to update-related projects

* [ARM64] Add arm64 configurations to VCM projects

* [ARM64] Add arm64 configurations to ShortcutGuide project

* [ARM64] Add arm64 configurations to PreviewPane projects

* [ARM64] Add arm64 configurations to FindMyMouse projects

* [ARM64] Add arm64 configurations to KBM projects

* Project cleanup

Co-authored-by: Jeremy Sinclair <4016293+snickler@users.noreply.github.com>
2022-05-11 11:35:18 +01:00
Davide Giacometti
336de6a7db [PTRun][TimeZone]Removed fxcop (#18146) 2022-05-10 17:15:41 +01:00
Andrey Nekrasov
c485da2816 [Settings]Don't launch if explorer is running elevated (#18124) 2022-05-10 17:13:56 +01:00
Heiko
741457ffa5 [PT Run] Services plugin: Various improvements (#17985)
* search for contains too

* fix startup types & new filter

* fix spelling

* small fixes

* fix spacing

* Improve order and layout

* clean up

* switch to nullable int32
2022-05-10 17:07:39 +01:00
Jay
0d2c0fd5da [Settings]adjust preview page text (#17886)
* Move Preview strings

Use as short (yet descriptive) a text as possible - at least for the Headers. The rest should be in Descriptions.

* Rewrite pointers for thumbnails

I made them `...ToggleSwitch_Thumbnail_extension` to be consistent with the `_Preview` pointers, and to represent UI hierarchy.

* sloppy typo

* Added a few example extensions

And a few tiny things.

* dots

* G-code spelling

* Update expect.txt

* Fix misplaced tag + icons

e914 = "Printer3D"

* Fixing error

Must've been line 634

* fix

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

* etc to ellipsis

Small thing, but I see the translation value

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

Co-authored-by: Heiko <61519853+htcfreek@users.noreply.github.com>
2022-05-06 13:58:41 +01:00
Davide Giacometti
affe40a206 [Settings][FindMyMouse]disable excluded apps UI (#17940) 2022-05-06 13:57:48 +01:00
Seraphima Zykova
22786a6bdc [FancyZones]Fix reapplying default layout (#18106) 2022-05-06 13:55:25 +01:00
Niels Laute
7d62a17882 Added additional WAS 1.0.3 instruactions (#17937) 2022-05-03 17:44:27 -07:00
Clint Rutkas
c224a2ca61 Update package-submissions.yml 2022-05-03 11:55:25 -07:00
Clint Rutkas
f10390ee2f Update package-submissions.yml 2022-05-03 11:52:01 -07:00
Clint Rutkas
3d40314953 Update README.md 2022-05-03 10:46:42 -07:00
Clint Rutkas
a97b77b187 Update package-submissions.yml 2022-05-03 10:30:18 -07:00
Jaime Bernardo
292954743f 0.58 changelog (#17997)
* 0.58 changelog

* Add new names for spell check

* Update README.md

* Update README.md

* Mention added file types

* Add file types to correct place

* Fix spellchecker

Co-authored-by: Clint Rutkas <clint@rutkas.com>
2022-05-03 10:14:14 -07:00
Clint Rutkas
104ac50a95 Update package-submissions.yml 2022-05-02 10:50:35 -07:00
Clint Rutkas
06840f466b Update package-submissions.yml 2022-05-02 10:42:44 -07:00
Clint Rutkas
7cbdfa7bf1 Update package-submissions.yml 2022-05-02 10:38:15 -07:00
Clint Rutkas
73b09ffd9f Update package-submissions.yml 2022-05-02 10:26:54 -07:00
Clint Rutkas
cf0c8a2149 Update package-submissions.yml 2022-05-02 10:24:41 -07:00
Clint Rutkas
f85e59c20c Update package-submissions.yml 2022-05-02 09:55:11 -07:00
Clint Rutkas
69c62677f3 Create package-submissions.yml 2022-05-02 09:37:30 -07:00
Stefan Markovic
ae0bf84431 [OOBE][WinUI3]Scale OOBE window correctly (#17962)
* Scale OOBE window

* [oobe]React to dpi changes (#17967)

Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>
2022-04-29 10:06:50 +01:00
Stefan Markovic
63d2a5dd71 [OOBE]Show only OOBE at first run on WinUI3 (#17957) 2022-04-28 17:31:23 +01:00
Andrey Nekrasov
3da341fb1b [Setup] Fix PowerRename files for x64 (#17953) 2022-04-28 14:25:24 +01:00
Jaime Bernardo
f42409cb17 [ci]Rename WindowStylesReportTool to StylesReportTool (#17950) 2022-04-28 12:20:05 +01:00
Seraphima Zykova
e703551b4a [Tools]Add a tool to get window styles (#17824)
* window styles tool

* removed window name

* new line delimiter

* spell

* rename tool

* add tool to installer

* added info

* app name

* clean up

* spell check

* Update tools/WindowStylesReportTool/WindowStylesReportTool.cpp

* class name

* spell check

* PROCESS_QUERY_LIMITED_INFORMATION

* updated installer docs

* pipeline

* added release dependency

* signing

* pipeline

* removed font

* timestamp

* Update tools/WindowStylesReportTool/WindowStylesReportTool.cpp

Co-authored-by: Heiko <61519853+htcfreek@users.noreply.github.com>
2022-04-27 21:21:00 +01:00
Davide Giacometti
d74386acd1 [Runner] Updates dir cleanup (#17893)
* updates dir cleanup

* improved code

* improved

* tweak comments
2022-04-27 20:24:03 +01:00
Jaime Bernardo
7816c430a5 [Installer]Update .net framework to 6.0.4 (#17936) 2022-04-27 18:00:26 +01:00
Davide Giacometti
0549b02315 [PT Run] Retry on unavailable desktop (#17864)
* retry on unavailable desktop

* improved code
2022-04-27 17:10:08 +01:00
Josh Soref
2a7afa38d0 Fix check-spelling (#17939)
GitHub apparently changed the behavior of raw.githubusercontent.com.

Previously, https://raw.githubusercontent.com/:org/:repo/HEAD/:path worked.
It no longer works.

Instead, we will use the master branch.

Co-authored-by: Josh Soref <jsoref@users.noreply.github.com>
2022-04-27 09:00:20 -07:00
lncubus
44fb9caf6b [ColorPicker] CIEXYZ values should be labeled in upper case (#17926)
* CIEXYZ values should be labeled in upper case "XYZ" instead of "xyz"

* CIEXYZ values should be labeled in upper case "XYZ" instead of "xyz"
Updated example in settings UI
2022-04-27 12:47:28 +01:00
Clint Rutkas
4384074283 Update README.md 2022-04-21 15:36:05 -07:00
Andrey Nekrasov
7cd061be6d [ARM64] Add Awake module (#17857) 2022-04-21 17:51:55 +02:00
Andrey Nekrasov
31c54c9609 [ARM64] Add support for .msi assembly (#17861)
# Conflicts:
#	installer/PowerToysSetupCustomActions/PowerToysSetupCustomActions.vcxproj
2022-04-21 15:55:02 +01:00
Andrey Nekrasov
658f85b85a [ARM64] add arm64 configurations to FZE project (#17860) 2022-04-21 15:53:07 +01:00
Andrey Nekrasov
52e9fe077f [ARM64] add arm64 configurations to BugReportTool sln (#17859) 2022-04-21 15:52:50 +01:00
Andrey Nekrasov
a1b0a941ae [ARM64] Add arm64 configurations to WebcamReportTool sln (#17858) 2022-04-21 15:52:28 +01:00
Jaime Bernardo
d683ab0afd [runner]Fix non-elevated restart loop (#17853) 2022-04-21 14:59:29 +01:00
Jeremy Sinclair
b463cb11aa [ARM64] AlwaysOnTop (#17847)
* AlwaysOnTop project cleanup

* Updated PowerToys solution config
2022-04-21 10:00:13 +01:00
Jeremy Sinclair
5bcd767d49 [ARM64] ImageResizer (#17846)
* ImageResizer project cleanup

* Updated PowerToys solution

* Added Platforms and PlatformTarget
2022-04-21 10:00:04 +01:00
Jeremy Sinclair
2de1a51b78 [ARM64] ColorPicker (#17844)
* ColorPicker normalization

* Updated PowerToys solution

* Fixed OutputPath in UnitTest
2022-04-21 09:59:55 +01:00
Jeremy Sinclair
3e6a297b34 [ARM64] PTRun and Plugins (#17841)
* Removed x64 specific config from Launcher project

* Microsoft.Plugin.Program normalization

* UnitConverter projects

* VSCodeWorkspaces project normalization

* Websearch plugin project normalization

* Folder plugin normalization

* Indexer plugin project normalization

* Plugin Program UnitTest project normalization

* Shell plugin project normalization

* Uri Plugin projects normalization

* WindowWalker plugin projects normalization

* Calculator plugin projects normalization

* Registry plugin projects normalization

* Service plugin project normalization

* System plugin projects normalization

* TimeDate and TimeZone plugin projects normalization

* Windows Settings plugin project normalization

* Windows Terminal plugin projects normalization

* PowerLauncher and PowerLauncher.Telemetry project normalization

* Wox projects normalization

* Updated PowerToys solution config

* Added Platforms/PlatformTarget and updated RID

* Remove merge text

* Remove SolutionDir from path

* Adding Platform and PlatformTarget back into Unit Tests

* Update PowerLauncher.csproj

Set RID back to win-

* Fixed OutputPath in Plugins
2022-04-21 09:59:43 +01:00
Stefan Markovic
310c010c19 Remove .Net3 from installer & CI (#17825) 2022-04-20 22:29:06 +02:00
Jaime Bernardo
f803fed026 [Settings][build]Fix settings local publish (#17839)
* [settings][build]fix output path for building

* [Settings]Include native dlls after proper publish

* Add comment for weird Output Path
2022-04-20 21:24:36 +01:00
harvastum
b5aa55d172 [PTRun][VSCode]Detect portable installations of VS Code (#17749)
* Make launcher detect portable installations of VS Code in system PATH

This should fix #13362

* Move closing parenthesis

* remove trailing whitespace characters
2022-04-20 17:28:15 +01:00
Seraphima Zykova
032c917493 [FancyZones] Apply default on switching virtual desktop (#17823) 2022-04-20 16:23:49 +01:00
Jeremy Sinclair
9f4e19ef41 [ARM64] Settings-UI (#17820)
* Settings.UI Library and Unit Test projects normalization

* Settings UI project normalization

* PowerToys solution update

* Add Targets conditionally

* Revert "[Settings]Include native dlls after proper publish"

This reverts commit d022fd4fc0.

* Simplify the platform conditions
2022-04-20 16:21:46 +01:00
Stefan Markovic
b3c520ed54 [settings] Fix OOBE size and make it non-resizable & Bring back Settings window placement preserve logic (#17822)
* Fix OOBE size and make it non-resizable
Bring back Settings window placement preserve logic

* Disable OOBE maximize&minimize

* expect.txt

* Remove uneeded line

* Remove uneeded check

* Add brackets
2022-04-20 17:08:25 +02:00
Jaime Bernardo
40300c1e4f [Settings]Fix WinUI3 publish issues (#17817)
* [Settings]Upgrade to WinAppSdk 1.0.3

* [Settings]Use the correct runtime identifier

* [Settings]Include native dlls after proper publish

* Update docs as well
2022-04-20 09:55:01 +02:00
Jeremy Sinclair
665839637f [ARM64] Common Projects configuration cleanup (#17813)
* Removed x64 specific conditions

* Added RuntimeIdentifiers and ensured Platforms aligned

* Removed x64 specific configuration and normalized PropertyGroup configuration

* Removed Platform conditions from ItemDefinition and Property Group

* Adding Project Configurations to PowerToys.Interop

* Updated solution config for common projects
2022-04-19 23:24:58 +01:00
Stefan Markovic
27c4b1be0e [settings-ui] Settings WinUI3 (#17797)
* Add Settings.WinUI3 project

* New namespace

* Activation and Services

* Assets and Behaviors

* Converters and Helpers

* Controls

* View and ViewModels

* Styles and Themes

* OOBE

* Strings

* Small App moves

* [check] Project files - publish profiles and launchSettings.json

* [using:Microsoft.UI.Xaml.Automation]AutomationProperties.Name workaround

* [WIP] Workarounds to make it work

* Fix suppressed warnings - naming

* Add code analysis

* Fix KBMPage and App dispatcher
Fix MessageBox - replace with MessageDialog

* Fix ImageResizerPage & mark ColorPickerButton with TODO

* Add icon to windows
Cleanup MainWindow.xaml.cs and OobeWindow.xaml.cs
MainWindows and OobeWindow management

* App Icon
No framework and runtime subdirs

* Remove PowerToys.Settings and Settings.UI from solution
Update output paths

* Installer work & publish.cmd

* Fix dispatcher crashes

* Fix crashes

* Add all dlls to installer
Cleanup installer
Add OpenOOBE and OpenScoobe logic
Fix minor issues
Fix update scenario - REINSTALLMODE

* Rename back namespaces, project name and project dir

* [wip] move to winappsdk 1.1

* Fix propagating isElevated & installer runtimes dlls

* Remove obsolete dir/file

* PowerToys.Interop to netstandard2.0

* Move everything to .Net6

* [Settings] Always launch settings process non-elevated (#17791)

* Move back to WinAppSdk 1.0.1

* Add Settings.WinUI3 project

* New namespace

* Activation and Services

* Assets and Behaviors

* Converters and Helpers

* Controls

* View and ViewModels

* Styles and Themes

* OOBE

* Strings

* Small App moves

* [check] Project files - publish profiles and launchSettings.json

* [using:Microsoft.UI.Xaml.Automation]AutomationProperties.Name workaround

* [WIP] Workarounds to make it work

* Fix suppressed warnings - naming

* Add code analysis

* Fix KBMPage and App dispatcher
Fix MessageBox - replace with MessageDialog

* Fix ImageResizerPage & mark ColorPickerButton with TODO

* Add icon to windows
Cleanup MainWindow.xaml.cs and OobeWindow.xaml.cs
MainWindows and OobeWindow management

* App Icon
No framework and runtime subdirs

* Remove PowerToys.Settings and Settings.UI from solution
Update output paths

* Installer work & publish.cmd

* Fix dispatcher crashes

* Fix crashes

* Add all dlls to installer
Cleanup installer
Add OpenOOBE and OpenScoobe logic
Fix minor issues
Fix update scenario - REINSTALLMODE

* Rename back namespaces, project name and project dir

* [wip] move to winappsdk 1.1

* Fix propagating isElevated & installer runtimes dlls

* Remove obsolete dir/file

* PowerToys.Interop to netstandard2.0

* Move everything to .Net6

* [Settings] Always launch settings process non-elevated (#17791)

* Move back to WinAppSdk 1.0.1

* Revert merge conflict ARM64 removal

* Fix KBM Browse overlay image button

* Bring back settings publish profile

* Update release.yml

* Change target frameworkd windows version

* [Setup] Add Windows Application Runtime SDK (#17809)

* Update requirements doc

* Update compiling docs

* Fix signing

* Fix Settings exe and dll versions

* Add exception for dlls that have version 1.0.0.0

* Fix powershell condition

Co-authored-by: Andrey Nekrasov <yuyoyuppe@users.noreply.github.com>
2022-04-19 21:00:28 +01:00
Davide Giacometti
42afc4f4fc [PowerPreview]Dark mode for markdown preview (#17777) 2022-04-19 11:40:33 +01:00
lncubus
da0aac2a18 [PTRun][UnitConverter]Increase float number precision (#17758)
* [PT Run]  UnitConverter float number precision is not enough
Introduced rounding to significant digits, not to digits after decimal separator
Added conversion to string to fix last digit errors

* [PT Run]  UnitConverter float number precision is not enough
spell check fixes

* [PT Run]  UnitConverter float number precision is not enough
renamed test method to HandleNanometerToKilometer

* [PT Run]  UnitConverter float number precision is not enough
result copied to clipboard will not have unit, just a number
2022-04-19 11:20:12 +01:00
NostalgiaCyan
38c538b0c5 fix 'GitHub' case (#17771) 2022-04-18 13:29:35 -07:00
Jacob Deuchert
9a77bcadb2 [PTRun][VsCode] fix no results showing for latest insider build (#17557)
* [PTRun][VsCode] fix no results showing for latest insider build

* [PTRun][VsCode] improved sql error handling

Co-authored-by: Jacob Carl Deuchert <j.deuchert@narz.net>
2022-04-18 10:42:58 +01:00
Clint Rutkas
2a15a068b8 Update COMMUNITY.md (#17735)
* Update COMMUNITY.md

* Update names.txt

* Update COMMUNITY.md

* Update COMMUNITY.md

Co-authored-by: Aaron Junker <aaron.junker@outlook.com>

Co-authored-by: Aaron Junker <aaron.junker@outlook.com>
2022-04-14 11:25:43 -07:00
Stefan Markovic
88517bfdf7 [FileExplorerPreview] Move everything from WebBrowser to WebView2 (#17588)
* Move MarkdownPreviewHandler from WebBrowser to WebView2

* Disable context menu
Open links in default browser

* Update expect.txt

* Move SvgPreviewHandler from WebBrowser to WebView2

* Migrate SvgThumbnailProvider from WebBrowser to WebView2

* Migrate CustomControlTest to WebView2
Remove WebBrowser related stuff

* Update tests

* Revert GetThumbnail return value
Disable javascript dialogs in WebView2 for Svg thumbnail and preview

* expect.txt

* Increase timeout for Markdown tests

* Add sleeps

* Add zero check
2022-04-14 16:27:22 +01:00
Aaron Junker
cbd362cef1 [DeveloperPreview]Fix case issue and file in use issue (#17732) 2022-04-14 15:11:51 +01:00
Aaron Junker
d9c8d8d4e2 [Preview]Adding new filetypes for developer file preview (#17183)
* push

* push

* push

* Adressed comments and adjusted a thing

* Added xslt

* push

* push. Ready to review

* Spellcheck adjustments

* Add installer stuff

* Changed reg and removed xsl

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

* Fixed tab

* Updated monaco_languages.json

Co-authored-by: Stefan Markovic <stefan@janeasystems.com>
Co-authored-by: htcfreek <61519853+htcfreek@users.noreply.github.com>
2022-04-14 15:09:49 +01:00
Seraphima Zykova
038e8e1510 [FancyZones Editor] Scale canvas layout on editing (#17668)
* canvas scaling

* zero check
2022-04-14 15:08:15 +01:00
Jaime Bernardo
1727f2b813 [MouseUtils]Fix for breaking Windows shortcuts (#17681) 2022-04-14 13:21:02 +01:00
Davide Giacometti
e530968a9a [PTRun][Terminal]Array settings parsing (#17707) 2022-04-13 15:24:02 +01:00
Davide Giacometti
a5323b75d9 [PTRun][Service]Fix service name with spaces (#17708) 2022-04-13 10:44:51 +01:00
Josh Soref
52709ddc4a [spellchecker] Spelling fixes (#17655)
* spelling: microphone

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: position

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: property

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: serialization

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: settings

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: testprocess

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* Ignore rotating

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

Co-authored-by: Josh Soref <jsoref@users.noreply.github.com>
2022-04-12 16:13:22 +01:00
lncubus
86783e9815 [PT Run] Web search should use user's default browser (#17304)
* Web search does not use my default browser #16549
updated DefaultBrowserInfo logic to get program location from shell open command not icon location

* Refactored DefaultBrowserInfo to start default browser with arguments specified in shell/open/command value for the browser.
Added fallback to Microsoft Edge if no browser information available.
#16549 Web search does not use my default browser

* fixed comment
#16549 Web search does not use my default browser
2022-04-12 16:10:05 +01:00
Jeremy Sinclair
f778d010e5 [ARM64] UnhandledExceptionHandler ARM64 support (#17587)
* Rename UnhandledExceptionHandler_x64.h and InitUnhandledExceptionHandler_x64

* Added ARM64 registers to UnhandledExceptionHandler

* Added ARM64 registers to unhandled_exception_handler.cpp
2022-04-08 10:19:42 +01:00
Davide Giacometti
5dd9049810 [PTRun][Terminal] additional logging (#17570) 2022-04-07 11:22:34 +01:00
Seraphima Zykova
98268cc10a [FancyZones] Remove resolution from "device-id" (#17412)
* removed resolution from device id

* update applied layouts device id

* app zone history device id updated

* moved old device id parsing

* updated tests

* remove resolution in the editor

* remove resolution from device id generation

* update editor params
2022-04-07 10:48:29 +01:00
Jeremy Sinclair
529bccc0bf [ARM64] Main PT Solution configuration and props addition (#17563)
* Added ARM64 Platform to Directory.Build.props

* Added ARM64 project configuration for Cpp.Build.props

* Added ARM64 configuration to solution. Keeping at x64 for now
2022-04-07 10:48:05 +01:00
Seraphima Zykova
75e966ce19 [FancyZones] Restore window size fix (#17553) 2022-04-06 17:33:02 +01:00
Jaime Bernardo
a09d8bf14b [FancyZones]Fix rounded corners optimized bug (#17560)
* [FancyZones]Fix rounded corners optimized bug

* Use proper flags

* Use WideChar version of functions
2022-04-06 15:54:11 +01:00
Jaime Bernardo
d5a5f858c0 [DevFilesPreview]Fix not created settings crash (#17541) 2022-04-05 16:47:41 +01:00
Jaime Bernardo
2cf354ff28 [Installer]Upgrade .net framework to 3.1.23 (#17537) 2022-04-05 15:03:10 +01:00
Jaime Bernardo
3ea0a10c73 [FZEditor] Improve narrator support on Grid Editor (#17532)
* [FZEditor]Add narrator info to thumb buttons

* [FZEditor]Narrator information about the zones

* [FZEditor]Allow text to be focused for narrator

* Address PR feedback
2022-04-05 13:22:17 +01:00
Jaime Bernardo
6f50a38e5f [PTRun][Program]List special empty shortcuts (#17517) 2022-04-05 11:17:48 +01:00
Dustin L. Howett
1fc7a59b7c Make sure the final WiX bundle contains a *signed* MSI (#17446)
* Make sure the *signed* MSI makes it into the bundle

* And don't let Bootstrapper force-build MSI

* Revert "And don't let Bootstrapper force-build MSI"

This reverts commit 77cea11008.

* try this wacky hacky sacky thing

* Revert "Revert "And don't let Bootstrapper force-build MSI""

This reverts commit 7d25009932.

* Revert "try this wacky hacky sacky thing"

This reverts commit 0fea6df635.

* ah the things i hate
2022-04-05 09:58:03 +01:00
Seraphima Zykova
c7e0850b7b [FancyZones]Remove check if window already snapped (#17512) 2022-04-04 16:24:52 +01:00
Heiko
fd01ee391b [PTRun][System]Fix delay on many net interfaces (#17490)
* code changes

* small text fixes

* update docs

* comment improvements

* update tests

* fix typo

* change

* fix typo

* fix error msg

* fix bug

* second fix
2022-04-04 12:47:58 +01:00
ricardosantos9521
44165621f0 [PTRun][VSCode] Workspaces not showing up after update or first installation (#17279) 2022-04-04 12:06:45 +01:00
Heiko
686a48a29b [PTRun][WindowWalker]fix handle not existing registry path (#17471) 2022-04-04 10:40:04 +01:00
Heiko
e444881320 [PT Run] Run as user feature (#17283)
* run as different user

* fix tests

* Update src/modules/launcher/Plugins/Microsoft.Plugin.Shell/Main.cs

* fix typo
2022-04-04 10:37:08 +01:00
Jaime Bernardo
12282a8dc7 [Updater]Use sensible default time between checks (#17318) 2022-04-01 17:44:49 +01:00
Seraphima Zykova
95dcbb1891 [FancyZones] Restore original corners and setting(#17425)
* fix corners

* save corner preference

* added fz setting

* add option to settings

* return original preference despite the setting

* removed reset to default corner preference
2022-04-01 17:28:19 +01:00
Jaime Bernardo
04588bc7e0 [PTRun][Settings][Program] Fix 100% CPU load issue (#17414)
* [PTRun][Program]Don't reload on settings change

* [PTRun][Settings] Don't trigger saves on visual property changes

* [PTRun][Settings] Fix manipulation of searched plugins

* [PTRun][Settings] Don't reload settings if we wrote recently

* fix PR comments nit
2022-04-01 14:50:16 +01:00
Seraphima Zykova
172c63f1e2 [AOT] Fix for topmost resetting (#17392) 2022-04-01 13:15:47 +01:00
Jaime Bernardo
b5622cd07a 0.57 changelog (#17342)
* 0.57 changelog

* fix spellchecker

* fix spellchecker

* fix new line

* Update README.md

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

* Apply suggestions from code review

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

* Address review comments

* Add mention to docs update

* Address PR comments

* Update README.md

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

* Update README.md

Co-authored-by: Franky Chen <franky@frankychen.net>

* Update README.md

Co-authored-by: Franky Chen <franky@frankychen.net>

* Update README.md

Co-authored-by: Franky Chen <franky@frankychen.net>

* Update README.md

Co-authored-by: Jay <65828559+Jay-o-Way@users.noreply.github.com>

* Update README.md

Co-authored-by: Jay <65828559+Jay-o-Way@users.noreply.github.com>

* Update README.md

Co-authored-by: Jay <65828559+Jay-o-Way@users.noreply.github.com>

* Update README.md

Co-authored-by: Jay <65828559+Jay-o-Way@users.noreply.github.com>

* Update README.md

Co-authored-by: Jay <65828559+Jay-o-Way@users.noreply.github.com>

* Update README.md

Co-authored-by: Jay <65828559+Jay-o-Way@users.noreply.github.com>

* Address feedback.

Co-authored-by: Heiko <61519853+htcfreek@users.noreply.github.com>
Co-authored-by: Franky Chen <franky@frankychen.net>
Co-authored-by: Jay <65828559+Jay-o-Way@users.noreply.github.com>
2022-03-30 10:56:41 -07:00
Jaime Bernardo
ba73bc7d50 [Installer]Don't enable pdf preview by default (#17274)
* [Installer]Don't enable pdf preview by default

* Change settings UI when there's no settings as well

* clear analyzer errors
2022-03-25 21:01:09 +00:00
Jaime Bernardo
bdbf0b8c14 [FileExplorer]Add warnings for incompatibilities (#17273) 2022-03-25 20:16:11 +00:00
Aaron Junker
79227b9db6 [Dev file preview]Add wrap text setting (#16486)
* Push (not working)

* Add Context menu

* push

* Adress feedback

* Update installer

* Fix build

* Fix warnings
2022-03-25 17:29:33 +00:00
Seraphima Zykova
4aadaf9bf1 [FancyZones] Fix canvas layout with scaling reset issue (#17186)
* canvas scaling

* predef layout check

* return false on custom layout error

* clean up

* update unit tests

* spelling

* floating point convert

* fix build
2022-03-25 16:09:59 +00:00
Jaime Bernardo
403969587e [PTRun][Program]Add logs on launch failure (#17270) 2022-03-25 15:30:06 +00:00
Jaime Bernardo
1be880438a [ColorPicker]Use Hotkey when started from runner (#17265)
* [ColorPicker]Use Hotkey when started from runner

* fix spellchecker
2022-03-25 13:40:33 +00:00
Jaime Bernardo
80e9fc0c43 [PTRun][Program]Fix bug when renaming url shortcut (#17184)
* [PTRun][Program]Fix bug when renaming url shortcut

* Try to use the old full path for old app removal

* Guard against links to nowhere

* Fix test to have link point to existing location

* Update src/modules/launcher/Plugins/Microsoft.Plugin.Program/Programs/Win32Program.cs

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

* Fix nit.

Co-authored-by: Heiko <61519853+htcfreek@users.noreply.github.com>
2022-03-25 10:08:10 +00:00
Jaime Bernardo
559a0442d8 [SvgThumbnail]Register as a picture kind (#17080) 2022-03-25 10:05:37 +00:00
Andrey Nekrasov
724620a24e [Runner]Fix elevation issues due to syncing settings with scheduler state (#17254) 2022-03-25 10:04:29 +00:00
Jaime Bernardo
75f2be1891 [PTRun][Calculator]Fix trailing zeroes on hexadecimal numbers (#17248)
* [PTRun][Calculator]Fix hexadecimal trailing 0s

* Add tests
2022-03-24 16:59:27 +00:00
Jaime Bernardo
aba4e462a8 [Updater]Pass flag to not restart automatically (#17255) 2022-03-24 16:53:31 +00:00
CleanCodeDeveloper
58aa274b21 [Launcher Plugins] Move shared keys into central props file (#17214)
* [Launcher Plugins] Move shared keys into central props file

* fixes

* TreatWarningsAsErrors is set to true now. This caused a few errors to pop up
2022-03-23 16:35:52 +00:00
CleanCodeDeveloper
d9c054b1f5 [Settings] Move shared keys into central props file (#17188) 2022-03-23 16:32:34 +00:00
CleanCodeDeveloper
53a92215fc [preview pane] Move shared keys into central props file (#17212)
* [preview pane] Move shared keys into central props file

* left overs
2022-03-23 16:31:51 +00:00
Den Delimarsky
d7617a47d3 [Awake] Context menu bug fixes (#16903)
* Fix the path to the icon

* Need the reverse when not working in isolation

* Updating some tray behaviors

* Making sure we have constants separately, and a filter

* Update tray logic

* Remove unnecessary menus

* Cleaning up how exit is done.

* Adding handling for tray commands

* Update with settings for dynamic times

* Proper reaction to timed keep-awake from the tray

* Proper handling for timed keep-awake from the tray

* Making sure that code analysis works correctly

* Making sure that errors are set in native calls

* Making sure the right icon path is used after testing

* Proper disposal of the context menu

* Fix tray designation

* Update with latest information on changes to the builds

* Update with guidance on files

* Update changelog doc

* Fix project file

* Remove `VTABLE`
2022-03-23 14:46:37 +00:00
CleanCodeDeveloper
ada3a9ad88 [Wox] Move shared keys into central props file (#17193) 2022-03-22 16:31:40 +00:00
CleanCodeDeveloper
c22a3fbcb7 [Awake] Move shared keys into central props file (#17189) 2022-03-22 16:31:07 +00:00
CleanCodeDeveloper
9c9b5d9dca [Color picker] Move shared keys into central props file (#17190) 2022-03-22 16:30:45 +00:00
CleanCodeDeveloper
dd03d1ee63 [Fancy zones] Move shared keys into central props file (#17191) 2022-03-22 16:30:07 +00:00
CleanCodeDeveloper
ae196fd592 [PowerLauncher] Move shared keys into central props file (#17192) 2022-03-22 16:29:42 +00:00
Heiko
b3a0bf7919 [PTRun][Settings] Additional settings (#17170) 2022-03-22 12:12:21 +00:00
Heiko
58b219f671 [PTRun][Settings]explain ip/mac setting in description(#17195) 2022-03-22 11:40:23 +00:00
Heiko
889bc1e514 [PT Run] Folder plugin: Improvements for the results (#16867)
* Improvements

* fix spelling

* text improvement

* fix build

* update tipp text
2022-03-22 11:07:09 +00:00
Jaime Bernardo
fcc1d46b63 [PTRun]Fix focus glitch on first time run (#17128) 2022-03-21 16:18:45 +00:00
CleanCodeDeveloper
1d15070698 [Common] Move shared keys into central props file (#17131)
* [Common] Move shared keys into central props file

* Add PackageTags prop
2022-03-21 12:48:52 +00:00
Heiko
380add882c [Settings] Run Plugin additional options: description (#17108)
* last changes

* update ww settings

* feedbvack and TimeDate plugin

* Add property description
2022-03-21 12:47:09 +00:00
Heiko
4c067bb728 [PT Run] System plugin: Add IP and MAC (#17023)
* first test and changes

* last changes

* last changes

* last changes

* improve exception

* fix spellings

* spell fixes

* search improvements, installer, tests, code cleanup

* remove left-over

* update dev docs

* fix spelling

* update namings

* improve scoring

* spell checker

* dev docs

* update images

* update expect.txt for this pr
2022-03-21 12:37:51 +00:00
Star Brilliant
42ba008323 [ColorPicker] Increase precision of CIEXYZ format (#17041)
* Increase precision of CIEXYZ conversion matrix

The output has 4 decimal places, so the conversion matrix should be more than 6 digits to avoid round-off errors.

* Match unit tests and docs with new CIEXYZ conversion matrix

* Remove negative sign from zeros

I generated the unit test results from other color-management systems.
It seems that they sometimes output negative zeros for very small values.
Let's just remove the negative signs for aesthetic.

* Fix spelling mistakes in ColorConverterTest.cs

* Explain how to obtain CIEXYZ unit test reference values

* Explain the CIELAB output is D65 adapted version

* Add words related to CIEXYZ conversion to spellcheck bypass list
2022-03-21 12:15:48 +00:00
Jaime Bernardo
b7d528b6e8 [MouseCrosshairs]Fix odd thickness offset (#17091) 2022-03-21 11:37:24 +00:00
Andrey Nekrasov
176f2c2870 [VCM] Track newly added microphones (#16199)
* [VCM] Track newly added microphones when [All] is selected in the settings

* [VCM] handle case when no mics are left

* fixup: fix crashes onNotify

* fixup: fix build
2022-03-21 09:48:11 +00:00
CleanCodeDeveloper
2e3a2b3f96 [meta]common csproj/vcxproj settings to Directory.Build.props (#17067)
* Add common csproj/vcxproj settings to Directory.Build.props

* Set TreatWarningsAsErrors to true for all c# projects

* Minor fixes in unit test projects where Analyzers where not enabled before

* Clean up Directory.Build.props

* Remove properties from ImageResizer csprojs files
2022-03-18 16:47:18 +00:00
Stefan Markovic
f4f8a1bd69 Fix Checking for Updates - running indefinitely (#17084) 2022-03-18 10:26:29 +01:00
Heiko
34e4e7e5bd [PT Run] TimeDate plugin (#16662)
* create plugin

* Update plugin code

* fix deps

* last changes

* unix

* new results and small changes

* Update settings name

* make spellcheck happy

* new time/date formats

* add comment

* code cleanup, installer, signing pipeline

* fix unix result

* UnitTests

* spell fix

* Update tests, Timestamp query feature

* new formats

* last changes

* last changes

* unit tests and fixes

* cjhanges and fixes

* fix installer

* fix settings class init

* context menu

* fix tests

* add settings tests

* update/fix DateTimeResult tests

* small improvements

* update pipeline

* enable analyzer

* fixes and improvements

* spell fix

* dev docs

* doc fixes

* spell fix

* last changes

* changes and fixes

* fixes and test updates

* improvements

* last changes

* try to fix tests

* remove obsolete code

* add info to test log

* fix search

* tag fix

* tests

* change tests

* update dev docs

* fix spelling

* fix culture for ui strings

* improvements based on feedback

* improve global search

* improve text

* docs improvement

* add settings note

* fix and update tests

* fix spelling
2022-03-17 19:33:05 +00:00
Jaime Bernardo
5914fc1ffd [MouseUtils]Workaround taskbar transparency glitch (#17085) 2022-03-17 17:25:15 +00:00
Josh Soref
bad435bb26 [spellcheck]Spelling cleanup (#17099)
Co-authored-by: Josh Soref <jsoref@users.noreply.github.com>
2022-03-17 17:19:16 +00:00
Andrey Nekrasov
41f4d971dd [Setup] Use custom prefix for WiX bootstrapper logs and collect them via BugReportTool (#17062) 2022-03-16 11:39:00 +00:00
Stefan Markovic
79d4782b23 [runner]Open settings only on tray icon double click (#17061) 2022-03-16 11:36:30 +00:00
Jaime Bernardo
cfdaea4363 [Installer]Upgrade .net framework to 6.0.3 (#17051)
* Revert "[PTRun]Workaround fix tooltip crash on .net 6 (#16629)"

This reverts commit b4250c1235.

* Upgrade .net framework to 6.0.3
2022-03-16 10:54:01 +00:00
CleanCodeDeveloper
d66fac3c3c [Run.Plugin.UnitConverter] Enable analyzer and fix warnings (#17002)
* [Run.Plugin.UnitConverter] Enable analyzer and fix warnings
2022-03-14 17:08:23 +00:00
CleanCodeDeveloper
66619ca059 [Plugin.Program] Enable analyzer and fix warnings (#17000) 2022-03-14 15:46:34 +00:00
CleanCodeDeveloper
79b2cdca7b [Run.Plugin.Calculator] Enable analyzer and fix warnings (#16998) 2022-03-14 15:46:08 +00:00
CleanCodeDeveloper
3e9c7f83c8 [Plugin.Folder] Enable analyzer and fix warnings (#16997) 2022-03-14 15:45:40 +00:00
CleanCodeDeveloper
561882c2f1 [Wox.Infrastructure] Enable analyzer and fix warnings (#16996) 2022-03-14 15:44:17 +00:00
CleanCodeDeveloper
7365ba14d0 [PreviewPane] Enable analyzer and fix warnings (#16995) 2022-03-14 15:42:32 +00:00
Heiko
bf3e427017 [PTRun][WindowWalker] Fixes and small improvements (#16959)
* fixes and changes

* fix spelling

* add os version check

* Improve speed of virtual desktop helper

* speed improvement two
2022-03-14 15:40:27 +00:00
lncubus
50169f9271 #16693 Unit Converter should recognize metre (#16984) 2022-03-14 10:17:09 +00:00
Jaime Bernardo
1f64c1cf83 [PTRun][Calculator]Always accept decimal point (#16980) 2022-03-11 17:26:29 +00:00
Franky Chen
6648402ddb [AOT] Change sound (#16865)
Co-authored-by: Hsuan-Li, Chen <franky@workspace.frankychen.net>
2022-03-11 16:45:44 +00:00
Seraphima Zykova
0816714782 [FancyZones]Additional logs (#16927) 2022-03-10 17:59:31 +00:00
Andrey Nekrasov
a8fb9e0804 [Settings] Do not try to apply profile settings if there was a timeout (#16933) 2022-03-10 17:31:16 +00:00
Jaime Bernardo
309a0661c3 [Installer]Enable Unit Converter plugin loc (#16960) 2022-03-10 17:23:01 +00:00
CleanCodeDeveloper
0d3aa3a187 [PTRun][WindowsSettings] Enable analyzer and fix warnings (#16942) 2022-03-10 16:00:28 +00:00
CleanCodeDeveloper
94391775c8 [PTRun][Registry] Enable analyzer and fix warnings (#16941) 2022-03-10 15:59:04 +00:00
Jaime Bernardo
b1b1f1ba21 [installer]Enable Web Search plugin localization (#16894) 2022-03-10 11:15:59 +00:00
CleanCodeDeveloper
ba525f068b [PTRun][VSCodeWorkspaces] Enable analyzer and fix warning (#16897)
* [Community.PowerToys.Run.Plugin.VSCodeWorkspaces] Enable analyzer and fix warnings

* fix CA1824: Mark assemblies with NeutralResourcesLanguageAttribute
2022-03-10 10:37:14 +00:00
CleanCodeDeveloper
ffdb5d44d7 [PTRun][WebSearch] Enable analyzer and fix warnings (#16938) 2022-03-10 10:35:49 +00:00
CleanCodeDeveloper
3b04cfd267 [PTRun][Uri] Enable analyzer and fix warnings (#16940) 2022-03-10 10:35:13 +00:00
Yifan Kang
462b48edae [PTRun][UnitConverter]Fix "feet" and "gal" (#16618)
* Update InputInterpreter.cs

* Update InputInterpreter.cs
2022-03-10 10:21:08 +00:00
skycommand
05d5649c9c [MonacoPreviewHandler][Settings] Resolve preview handler race (#16180)
* Register .markdown with the correct handler

* Fix spelling

* Move file name extensions from "expect.txt" to "excludes.txt"

* Revert "Move file name extensions from "expect.txt" to "excludes.txt""

This reverts commit 710d5a4968.
I must have misunderstood the instructions.

* Revert "Register .markdown with the correct handler"

This reverts commit 5c37b009f3.

* Work in progress

* Code ready for testing

* Update excludes.txt

* Update excludes.txt

* Update modulesRegistry.h

* Update modulesRegistry.h

For the want of an exclamation mark, a kingdom is lost!

* Update modulesRegistry.h

* Work on modulesRegistry.h per code review in 16180

Removed all previous exclusions from Monaco preview handler. Added a new exclusion: SVGZ. It's a binary file that Monaco cannot, in any meaningful way, read.

* Update expect.txt

* Update accessory files

* Disable machine-wide checks for performance reasons
2022-03-09 14:06:00 +00:00
Josh Soref
b415e79ef5 [spellcheck]Ignore .pipelines/ESRPSigning_core.json (#16907)
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

Co-authored-by: Josh Soref <jsoref@users.noreply.github.com>
2022-03-09 12:52:53 +00:00
Josh Soref
477041a884 [spellcheck]Add Hash to patterns (#16906)
Co-authored-by: Josh Soref <jsoref@users.noreply.github.com>
2022-03-09 12:34:07 +00:00
CleanCodeDeveloper
425346b1f2 [Awake] Enable analyzer and fix warnings (#16899)
* [Awake] Enable analyzer and fix warnings

* Suppress "CA1051:Do not declare visible instance fields" for structs

* Revert "Suppress "CA1051:Do not declare visible instance fields" for structs"

This reverts commit bea215bffa.

* Suppress "CA1051:Do not declare visible instance fields" for structs

* spellchecker
2022-03-09 12:09:17 +00:00
CleanCodeDeveloper
46684966a1 [PowerLauncher] Enable analyzer and fix warnings (#16900) 2022-03-09 12:08:12 +00:00
Jaime Bernardo
eb961ee052 [PTRun][WindowWalker]Fix analyzer errors (#16887) 2022-03-08 18:23:45 +00:00
CleanCodeDeveloper
0a5bdf6734 [Microsoft.Plugin.WindowWalker] Enable analyzer and fix warnings (#16555) 2022-03-08 16:47:10 +00:00
CleanCodeDeveloper
ec3ea5c4ae [Wox.Plugin] Enable analyzer and fix warnings (#16547) 2022-03-08 16:46:36 +00:00
Niels Laute
9cf39654d9 [OOBE] Refactor UI code, minor UI tweaks (#16578)
* Move content to dedicated XAML

* Select modules enum

* Remove redundant code, UI fixes

* Markdown rendering tweaks

* Address feedback
2022-03-08 15:27:17 +00:00
Clint Rutkas
139c6c2c8d Update README.md 2022-03-07 10:16:43 -08:00
Tore Lervik
b20e991a35 [FancyZones] Set correct corner preference when snapping windows on Windows 11 (#16542)
* [FancyZones] Set correct corner preference when snapping windows on Windows 11

* Changed magic numbers to use enum values.

* Added missing words to spell check list.

* Changed note: to todo: for future visibility

* Changed note: to todo: for future visibility
2022-03-07 11:50:37 +00:00
mshtang
81f61630cb [Color Picker] remove and export multiple colors from history (#16475)
* Allow to export and delete multiple colors

* Allow to export and delete multiple colors
2022-03-07 11:47:42 +00:00
Heiko
e8363a3be1 [PT Run] VirtualDesktopHelper & WindowWalker improvements (#16325)
* Import vdh from poc

* last changes

* push changes

* small change

* add error handling to vdh

* last changes

* make spellchecker happy

* last changes

* last changes

* spell check

* fix settings defaults

* Improve WindowWalkerSettings class

* add comment

* New settings and improvements

* new features

* subtitle and tool tip

* spell fixes

* small fixes

* fixes

* Explorer info

* spell fixes

* fixes and CloseWindow feature

* last changes

* first part of implementing KillProcess

* killProcess Part 2 & Fixes

* text fix and installer

* update access modifiers

* some fixes

* update dev docs

* fix dev docs

* dev doc change

* dev docs: add missed infos

* dev docs: add link

* Update src/modules/launcher/Plugins/Microsoft.Plugin.WindowWalker/Components/WindowWalkerSettings.cs

* fix build

* resolve feedback

* fix settings

* add tests
2022-03-07 11:45:29 +00:00
Jaime Bernardo
27611593bd [ci]fix windows terminal loc build (#16788) 2022-03-04 20:24:20 +00:00
Jaime Bernardo
6b6ba2205c [Installer]Include PTRun WindowsTerminal loc (#16777)
* [Installer]Include PTRun WindowsTerminal loc

* Add languages folder reference
2022-03-04 16:56:11 +00:00
CleanCodeDeveloper
aa2c9390ef [ColorPicker] Enable analyzer and fix warnings (#16543)
* ColorPicker: Enable analyzer and fix warnings

* Suppress CA1711:Identifiers should not have incorrect suffix

Renaming everything would be a lot of work. It does not do any harm if an EventHandler delegate ends with the suffix EventHandler.
Besides this, the Rule causes some false postives

* CA1838:Avoid 'StringBuilder' parameters for P/Invokes

We are not concerned about the performance impact of marshaling a StringBuilder

* resolve pr comments
2022-03-04 15:06:51 +00:00
Jaime Bernardo
45f121b8bc [FindMyMouse]setting for minimum shake distance (#16756)
* [FindMyMouse]setting for minimum shake distance

* Group inside Activation method
2022-03-04 12:28:11 +00:00
Jaime Bernardo
400cd7ea45 [build]Fix PowerRename flaky build errors (#16728) 2022-03-04 12:17:05 +00:00
Aaron Junker
62c2f9479b Fixed file in use issue (#16748) 2022-03-04 10:16:43 +01:00
Seraphima Zykova
3a8218be44 [FancyZones] Template layout settings reset fix (#16628) 2022-03-04 08:12:25 +03:00
Franky Chen
5881469855 [Installer]Install dotnet with /norestart (#16691)
* Add norestart for dotnet

* Add norestart to spell-check

* Add quite back for dotnet
2022-03-03 10:09:47 +00:00
CleanCodeDeveloper
4e662f61c3 [Telemetry] fix analyzer warnings (#16545) 2022-03-02 19:24:04 +00:00
CleanCodeDeveloper
efd14d8611 [Microsoft.Plugin.Indexer] Enable analyzer and fix warnings (#16544) 2022-03-02 19:19:49 +00:00
Clint Rutkas
57bc924d8d Update ci.yml 2022-03-02 10:47:05 -08:00
Clint Rutkas
3715b0c378 Update ci.yml 2022-03-02 10:37:35 -08:00
Clint Rutkas
2783342f33 Update ci.yml 2022-03-02 10:31:49 -08:00
Clint Rutkas
1920a1f3de Update ci.yml 2022-03-02 10:28:31 -08:00
Clint Rutkas
29a25454d8 removing nowarn's (#16590) 2022-03-01 06:33:27 -08:00
Clint Rutkas
47920f50f3 supressing warning (#16594) 2022-03-01 06:32:23 -08:00
Clint Rutkas
cc8d8074bb 0.56 change log. (#16591)
* activate to shake

* updating requirement / download exe name

* spellings oops

* Update names.txt

* Update names.txt

* adjusting word for spelling

* adjusting langauge to match highlight

* properly casing nVidia

* adjusting spelling files

* Apply suggestions from code review

Co-authored-by: Jay <65828559+Jay-o-Way@users.noreply.github.com>

* Create README.md

* Update README.md

* Update README.md

Co-authored-by: Aaron Junker <aaron.junker@outlook.com>

* Update README.md

Co-authored-by: Aaron Junker <aaron.junker@outlook.com>

* Update README.md

Co-authored-by: Aaron Junker <aaron.junker@outlook.com>

* Update README.md

* Update README.md

* Update README.md

* Update README.md

Co-authored-by: Jay <65828559+Jay-o-Way@users.noreply.github.com>
Co-authored-by: Aaron Junker <aaron.junker@outlook.com>
2022-02-28 11:50:28 -08:00
Jaime Bernardo
b4250c1235 [PTRun]Workaround fix tooltip crash on .net 6 (#16629) 2022-02-28 15:24:24 +00:00
Clint Rutkas
c428f0787d Add symbols back in (#16572)
* Update release.yml

* Update release.yml

* Update release.yml

* Update release.yml

* Update release.yml

* Update release.yml

* Update release.yml

* Update release.yml

* Update release.yml

* Update release.yml

* Update release.yml

* Update release.yml

* Update release.yml

* Update release.yml

* trying different approach by flattening

* Update release.yml

* Update release.yml

* Update release.yml

* Update release.yml

* Update release.yml

* Update release.yml

* Update release.yml

* Update expect.txt

* Update expect.txt

* Update release.yml

* Update release.yml

* Update release.yml
2022-02-25 08:42:39 -08:00
Jaime Bernardo
c3b378101c [OOBE]Fix welcome page after install (#16561) 2022-02-24 14:42:29 +00:00
Jaime Bernardo
489335e4d0 [MouseCrosshairs] Fix wrong initial position (#16559) 2022-02-24 13:39:47 +00:00
Jaime Bernardo
ddc075d24c [MouseCrosshairs]Fix odd thickness anti-aliasing (#16533) 2022-02-23 15:54:54 +00:00
Jaime Bernardo
50a73965d9 [Oobe]Fix close button style (#16530) 2022-02-23 15:17:44 +00:00
Jaime Bernardo
d5fc4547a2 [oobe] fix scoobe page threading issues (#16532) 2022-02-23 15:01:49 +00:00
Tobias Sekan
84e142631e [PT Run][New Plugin] Time zone plugin (#11431)
* Initial commit - simple idea for a time zone plugin

* Translations, better search results, copy to clipboard, cleanup

* fix typo

* Add shortcut search and prepare JSON for later usage

* Fix typo

* Use timezone Data only from JSON

* Exclude json file from spell checker

* fix wrong dst

* Improved results (title, subtitle, tooltip) and fix namespace/class problem

* Always show full offset (-##:## and +##:##)

* Add and show timezone names (first pass)

* Fix typos

* fix build

* JSON: fix wrong minus sign and put extra country info the end

* Improved Subtitle for many matched countries and allow full offset search (+ and -)

* Allow more than one names for time zones and remove leftover

* Add military time zone names, and fix name result

* Only use one JSON entry for one time zone

* Use TimeSpan for offset, use build-in calculation for time in time zone

* add descriptions for JSON schema

* Fix typos

* Split out names in separate properties

* Add many time names, time zone names and shortcuts

* Add additional options and most code documentation

* Fix unreadable TimeSpans in JSON and rename helper class

* Fix not allowed commas in JSON file

* Cut to long time and time zone names in title

* Fix missing results for names and offsets

* Better result and show only one result when offset are identical (respect daylight saving time)

* Show generic name fot time zones without names

* Typo fixes

* Fix not working serach by shortcuts

* Fix german resx file -> english resx file

* Translate all names and countires

* Fix not working context menu

* Typo fixes, fix wrong shortcut in names, comments, few better variable names

* New symbols - thx to niels9001

* Search by shortcuts for time names

* update schema

* Add more time zone names and shortcuts (second pass), make spell checker happy

* Reduce matching checks

* Show shortcuts in tool-tips, avoid string converting

* Show only names that match the query

* Make all translatable (Part 1)

* Make all translatable (part 2 of 2)

* XML Doc

* Fix plugin name (type)

* Fix Typos

* Add TimeZone Plugint to WXS

* Add TimeZone plugin to sign pipeline

* Add Documentation

* Remove double spell entries

* Remove TODO leftovers

* Fix for results with no countries

* Fix typos

* fix typos

* Fix broken siolution after rebase

* Update target framework to make build happy

* fix wrong guid count in WXS

* fix wrong output folder (setup wasn’t found files)

* Address feedback from @jsoref - fix spell check

* typo fix - one leftover in expect.txt

* Switch to .NET6 and update dokumentation

* Address feedbacks, and fix search bug

* fix installer build error

* fix spellchecker

* Address feedback from @htcfreek

Co-authored-by: Sekan, Tobias <tobias.sekan@axp-consulting.de>
2022-02-23 14:26:48 +00:00
Seraphima Zykova
8edfb8fe80 [FancyZones] Child windows support (#16507) 2022-02-23 17:25:28 +03:00
Jaime Bernardo
d9c98bbc29 [Oobe]Update file explorer add-ons description (#16510) 2022-02-23 09:53:43 +00:00
Seraphima Zykova
4ff7e4150f [AlwaysOnTop] Added error description to logs (#16514) 2022-02-23 10:20:21 +03:00
CleanCodeDeveloper
f4044ffd51 [Settings] Enable analyzer and fix warnings (#16515) 2022-02-22 22:02:45 +00:00
CleanCodeDeveloper
2b747d02d3 [ImageResizer] Enable analyzer and fix warnings (#16512) 2022-02-22 22:01:48 +00:00
CleanCodeDeveloper
6a722e2961 Fix analyzer warning (#16442) 2022-02-22 22:52:34 +03:00
Stefan Markovic
230c199ee5 [runner] Add logging (#16503) 2022-02-22 12:50:20 +01:00
Jaime Bernardo
87bb89ab15 [OOBE]Add What's New page - SCOOBE (#16478)
* [Oobe]Add a What's New page

* Show What's New when version changes

* Add link to GitHub

* Use generic icon for now

* Get only the latest 5 releases

* fix spellchecker

* rename last_version_run.json

* Remove UserControl_Loaded

* Remove installer hash from the release notes

* constexpr some strings

* Add check your internet connection message
2022-02-22 11:02:08 +00:00
Stefan Markovic
e9dccf82ab [ColorPicker] Unify HEX color to lower case (#16492) 2022-02-22 09:28:05 +01:00
Aaron Junker
4cc74602c1 [Developer Preview] Bug fixes (#16108)
* Renamed languages.json to monaco_languages.json

* Update excludes.txt

* Fixed encoding issue

* Reverted accidently removed file

* push

* push

* push

* Fixing path to monaco_languages.json

* Removing unused file

* Fixing NullReferenceException bug

* Minor fixes

Co-authored-by: Stefan Markovic <stefan@janeasystems.com>
2022-02-21 16:10:55 +01:00
Jaime Bernardo
6b2cde7eb0 [installer]update installed .net to 6.0.2 (#16472) 2022-02-21 14:44:49 +00:00
Jaime Bernardo
af65d79573 [ci]fix vcm proxy filter build (#16471) 2022-02-21 14:44:35 +00:00
Andrey Nekrasov
dabf657761 [Setup] Update wix Guids (#16425)
* [Setup] Update wix Guids

* Update expect.txt

* add documentation links

* fix spellchecker
2022-02-18 15:11:31 +00:00
CleanCodeDeveloper
4572f62ce5 [meta]Update nuget packages (#16379)
* Update nuget packages

* try to fix build (Microsoft.UI.Xaml)

* Removed dlls because there are not needed anymore

* Add binaries System.Text.Json.dll (5x) to wxs file

* Downgrade System.IO.Abstractions.* due to breaking changes

* Update Microsoft.NET.Test.Sdk

* Revert MSTest.* to 2.2.3
2022-02-18 14:19:40 +00:00
makeProjectGreatAgain
f2093ec423 [PTRun][VSCode]Support for VSCodium (#16380) 2022-02-18 14:17:21 +00:00
Andrey Nekrasov
51aba915f0 [VCM] add details for the proxy filter .dlls (#16427) 2022-02-18 13:33:12 +03:00
Michael Panitz (at Cascadia College)
9fff2b535f Fix broken link (#16382) 2022-02-17 11:43:47 -08:00
Aaron Junker
3ede2a6467 [meta]Change copyright date to 2022 (#16279) 2022-02-17 18:41:30 +00:00
Jeremy Sinclair
35bfb0f83e [PT Run] Replace tblimp-Microsoft.Search.Interop package with source implementation (#16363)
* Removed Search Interop tlb package. Added minimal Search API Com implementation

* Added CSearchManagerImp

* Updated Main with proper reference to CSearchManagerImp. Switched WindowsIndexerTest to use Indexer.Interop classes

* Updated with proper SearchAPI Interop implementation

* Deleted initial CSearchManager file that didn't work

* Updated namespaces to match folder structure

* Removed the interfaces and classes not being used from SearchAPI. Added suppressions

* Updated spell check. Renamed CSearch call back to original

* Fix spell check

* Switched back to original class name for Search Manager in tests

* Removed Microsoft.Search.Interop.dll from setup

* Removed Microsoft.Search.Interop package from PowerLauncher and signing scripts
2022-02-16 16:06:10 +00:00
CleanCodeDeveloper
832f580aa8 [meta]Remove 10.0.17134 platform SDK from vsconfig file (#16290)
* remove unnecessary sdk

* add .vsconfig to sln, remove dead link

* spell check

* Update WindowsTargetPlatformMinVersion to 18362 (Minimum required version in README.md)
2022-02-16 15:22:33 +00:00
Seraphima Zykova
03b7cb4690 [AlwaysOnTop] fix remaining border after window closing (#16268) 2022-02-16 17:00:05 +03:00
Clint Rutkas
d744ca33b6 Remove build server warning (#16284)
* Update BugReportTool.sln

* Update release.yml
2022-02-14 11:41:10 -08:00
Jaime Bernardo
05728a6dc2 [FindMyMouse] Add setting for excluded apps (#16308)
* refactor find_app_name_in_path

* Add a setting for excluded apps

* Restore game_mode.h
2022-02-14 18:22:05 +00:00
Jaime Bernardo
10a5629fe8 [spellchecker]Fix Awake spellchecker errors (#16356) 2022-02-14 18:20:41 +00:00
CleanCodeDeveloper
38e401007a Add Microsoft.CodeAnalysis.NetAnalyzers were it was missing (#16285) 2022-02-14 09:53:15 -08:00
Stefan Markovic
3508301f06 Add fallback resource search path (#16265) 2022-02-14 09:59:08 +01:00
Den Delimarsky
3df2c5fe6a PowerToys Awake - Improved Logging/Minor Bug Fixes (#15875)
* Some code cleanup

* Making sure that the native wrapper lives in Awake.Core

* Adding power state logging, as well as termination entries.

* Better logging.

* Typos and logging improvements

* Remove dependency
2022-02-12 10:42:14 -08:00
infinitepower18
dc15a6cecc Correct typo (#16291) 2022-02-11 23:24:13 -08:00
Jaime Bernardo
f6a292d47f [FindMyMouse] Add setting to activate by shaking mouse (#16244)
* [FindMyMouse]Initial shaking activation implementation

* Add setting to change activation method

* Update Mouse Snooping on settings change

* fix spellchecker

* Place activation method setting outside the expander

* Address PR Comments
2022-02-11 22:52:57 +00:00
CleanCodeDeveloper
f0d084c59c [meta]replace FxCopAnalyzers by Microsoft.CodeAnalysis.NetAnalyzers (#16210)
* Replace Microsoft.CodeAnalysis.FxCopAnalyzers by Microsoft.CodeAnalysis.NetAnalyzers

* fix error CA2101: Specify marshaling for P/Invoke string arguments

Microsoft.CodeAnalysis.NetAnalyzers treats CA2101 as an error

* Removed obsolete Analyzer Microsoft.NetCore.Analyzers

* Removed obsolete Analyzer Microsoft.NetFramework.Analyzers

* Removed obsolete Analyzer Microsoft.CodeQuality.Analyzers

* Removed obsolete Analyzer Microsoft.CodeAnalysis.VersionCheckAnalyzer

* fix error CA2101: Specify marshaling for P/Invoke string arguments

Microsoft.CodeAnalysis.NetAnalyzers treats CA2101 as an error
2022-02-11 16:42:17 +00:00
Clint Rutkas
9fc3727709 removing anycpu (#16184) 2022-02-11 07:57:20 -08:00
Andrey Nekrasov
218e9cfcb9 [VCM] Do not unmute mics on disabling the module (#16196) 2022-02-11 17:30:52 +03:00
Andrey Nekrasov
9e029c0867 [VCM] Fix crash with NVIDIA broadcaster (#16202) 2022-02-11 17:29:13 +03:00
Clint Rutkas
01a3106450 Remove qps test lang (#16213)
* commenting out qps

* Update release.yml
2022-02-10 13:52:28 -08:00
cyberrex5
416419ffde [PT Run] Refactoring: combined all NativeMethods.cs files for plugins… (#15807)
* [PT Run] Refactoring: combined all NativeMethods.cs files for plugins into Wox.Plugin/Common/Win32/

* Fixed spell check

* [PT Run] Changed NativeMethods.Helpers to Win32Helpers (seperate class) to not conflict with Microsoft.PowerToys.Settings.UI.Library.Helpers

* [PT Run] Renamed Constants.cs to ConstantsAndStructs.cs and moved all of them from NativeMethods.cs

* [PT Run] Merged ConstantsAndStructs.cs into NativeMethods.cs and renamed Constants to Win32Constants to avoid conflicting

* [PT Run] Added missing summaries + fixed missed refactored method

* [PT Run] Use using directive instead of alias + updated method call for .Net 6

* [PT Run] Fixed missed using alias + spell check
2022-02-10 13:44:19 -08:00
Clint Rutkas
57a8d505c0 reducing verbosity on string (#16214) 2022-02-10 11:48:32 -08:00
Seraphima Zykova
ddcb065b22 [AlwaysOnTop] Inaccurate border position fix (#16206) 2022-02-10 20:24:29 +03:00
Andrey Nekrasov
8c64a0b6f8 [Setup] Ignore exit code 1638 (#16228) 2022-02-10 16:18:05 +00:00
Clint Rutkas
cc68133ddc correcting verbage (#16185) 2022-02-09 08:06:27 -08:00
Davide Giacometti
692817e382 updated .NET nugets to 6.x (#16154) 2022-02-08 16:18:05 -08:00
Clint Rutkas
651e823c30 adding in hybrid shutdown for fast startup (#16151)
https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/shutdown
2022-02-08 08:20:01 -08:00
Stefan Markovic
11bb7ccf60 Fallback to run as admin after install, if running PT as user not possible (#16089)
* Fallback to run as admin, if running PT as user not possible

* Update condition - address PR comment

Co-authored-by: Andrey Nekrasov <yuyoyuppe@users.noreply.github.com>

* Update condition #2 - address PR comment

Co-authored-by: Andrey Nekrasov <yuyoyuppe@users.noreply.github.com>

* Update condition #3 - address PR comment

Co-authored-by: Andrey Nekrasov <yuyoyuppe@users.noreply.github.com>

* Revert method name & unify var namings

Co-authored-by: Andrey Nekrasov <yuyoyuppe@users.noreply.github.com>
2022-02-08 11:18:12 +01:00
Stefan Markovic
c3dda238e9 [PowerRename] Fix . instead of \. regex info (#16145)
* [PowerRename] Fix . instead of \. regex info

* Several -> One or more
2022-02-08 11:16:55 +01:00
Clint Rutkas
ff95257e5f adding in attribution in settings (#16044)
* adding in attribution stuff for pedro and aaron

* Update PowerPreviewPage.xaml

* Update AwakePage.xaml
2022-02-07 15:36:11 -08:00
Davide Giacometti
e284b07da7 [Common]fix fancy zones exclusion (#16041)
replace WS_POPUP with WS_EX_TOOLWINDOW
2022-02-07 19:16:36 +00:00
Seraphima Zykova
49a2218358 [AlwaysOnTop] Non-selectable border (#16085) 2022-02-07 17:28:26 +03:00
Clint Rutkas
c46ccce373 [build]Update to .net 6 framework and VS 2022 (#15741)
* Update release.yml

* Update ColorPickerUI.csproj

* Update release.yml

adding in .net6 sdk and moving stuff sooner

* Update release.yml

* Update release.yml

* fixing test

* Forcing vs17 and adding in .net 6 sdk

* forcing pool

* fixing issues in each pipeline

* moving release .net up

* fixing diff on agent version for nuget installer

* Removing system.text.json.dll as included now

* getting unit tests it looks like to work

* updating everythign to .net 6 minus wxs for runtime

* unit test still have

* getting 6.0 stuff up and going.  Terminal Unit tests have file max length issue ....

* found i think the last .net 5 issue

* looks like i wasn't aggressive enough with the 6.0 upgrade

* Getting stuff .net 6 buildable again

* tweaking with new stuff for installer

* Update newly added merged projects to .net 6

* Fix HeatDirectory bug on VS 2022

* Settings still needs JSON dependency

* Revert "getting 6.0 stuff up and going.  Terminal Unit tests have file max length issue ...."

This reverts commit b9cb4586dc.

* Update sln version

* supress obsolete warning, since this is not a new development

* Partially Revert "Getting stuff .net 6 buildable again"

This reverts commit 42b4201c6b.

* supress another obsolete warning, since this is not a new development

* Reduce the unit test project name to avoid MAX PATH in CI

* Upgrade project's toolset in the main solution

* Some TODOs to review HttpClient usage

* Upgrade project toolsets from other solutions

* Install .net 6 instead of .net 5

* Fix issue when disabling PowerToys Run on .net framework 6

* Update docs for Visual Studio 2022

* PR comments: manually upgrade missing VS 2019 references

* Discard no discard values to solve compiler warnings

Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>
2022-02-07 14:08:30 +00:00
Tyler
2cdf6f9cc0 Fix typo in README (#16111) 2022-02-05 13:35:27 -08:00
CleanCodeDeveloper
8bb0772ae5 [ImageResizer] Fix bug "Operation caused an invalid state" (#15852)
* Add metadata check to ensure valid metadata

* Thank you Mister Spellbot
2022-02-04 16:59:33 +00:00
Heiko
2a34cf740b [PowerToys Run] Windows Terminal plugin: Improve query speed (#15836)
* Change code to query aumid

* update comment

* update aumid on package update

* fix tetx position

* Write AUMID as static values in code

* code style
2022-02-04 16:57:37 +00:00
Heiko
314425e32e [PT Run] System commands plugin: Update dev docs and UnitTests (#15832)
* update UnitTests

* dev docs

* fix plugin name

* fix spelling

* fix path

* improvement

* fix table
2022-02-04 16:56:31 +00:00
Stefan Markovic
26e3eb9350 [MouseCrosshairs] Update initial cursor position before drawing (#16077) 2022-02-04 16:28:25 +01:00
Seraphima Zykova
a3dbb55404 [FancyZones] Increase the number of zones limit to 128 (#15976) 2022-02-04 15:09:11 +00:00
Chanakya
f62dd6933c ignore .gcode files for github linguist (#16029) 2022-02-03 09:32:34 -08:00
Andrey Nekrasov
3e7b04891d [AlwaysOnTop] Improve performance and power consumption (#15993) 2022-02-03 20:30:05 +03:00
Stefan Markovic
ddf96e28b8 [PowerRename] Set RegEx engine default flags to 0 (#15865) 2022-02-02 17:46:22 +01:00
Jaime Bernardo
567cc50fb7 [Runner]remove hotkeyEx when disabling a module (#15944) 2022-02-02 12:17:37 +00:00
Heiko
79c13aec6e [PTRun]WindowWalker: remove IsCloaked check (#15943) 2022-02-02 11:07:43 +00:00
Jaime Bernardo
26f01431ff [MouseUtils]check queue dispatcher initialization (#15948) 2022-02-02 11:06:32 +00:00
Jaime Bernardo
55e3a94da3 [PTRun]Remove Wox plugin install dead code/deps (#15869) 2022-02-02 10:58:13 +00:00
Stefan Markovic
0fc69ca222 If process elevated and --dont-elevate arg - run non elevated (#15920) 2022-02-02 11:23:40 +01:00
Stefan Markovic
51a43d58de [runner] Save settings on closing only when PT was actually running (#15926)
i.e. Don't save if PT was only scheduling a restart
2022-02-02 10:54:03 +01:00
Niels Laute
b27a7261be Custom AutoSuggestBox style (#15847) 2022-02-01 14:50:33 +01:00
Niels Laute
8144f5cedd [Settings] UX bugfixes (#15848)
* Update AlwaysOnTopPage.xaml

* Update VideoConference.xaml
2022-02-01 14:48:48 +01:00
Clint Rutkas
f67ae38aba Update README.md 2022-01-31 16:48:04 -08:00
Clint Rutkas
6b5fd308cb Preview pane support is already in Windows.
Pedro dropped a knowledge bomb on me.
2022-01-31 16:46:07 -08:00
Clint Rutkas
fb4ab87fdd Update README.md for .55 release (#15825)
update for .055 readme.
2022-01-31 11:04:11 -08:00
Stefan Markovic
d302c761d7 Bundle WebView2 installer into PT installer (#15814) 2022-01-28 18:22:12 +01:00
Seraphima Zykova
814c8e382c [FZEditor]don't return error on empty files (#15819) 2022-01-28 15:24:00 +00:00
Stefan Markovic
b98be49bfa [runner]fix disabling module as admin (#15818) 2022-01-28 15:22:40 +00:00
Seraphima Zykova
91d36b4b47 [AlwaysOnTop] Show borders only for AOT-pinned windows (#15801)
* set prop on aot-pinned window

* address pr comments
2022-01-27 16:53:05 +00:00
Seraphima Zykova
03c36b4f65 [FancyZones] Split zones-settings: devices -> applied layouts (#15779) 2022-01-27 12:21:15 +00:00
Jaime Bernardo
792a04cf48 [MouseUtils]rename "crosshair"->"crosshairs" (#15761)
* [MouseUtils]rename "crosshair"->"crosshairs"

* Fix crosshairss isnstances in logs
2022-01-26 14:01:24 +00:00
Seraphima Zykova
a1bb281386 [AlwaysOnTop] Release/recreate borders instead of hiding/showing (#15733) 2022-01-26 06:54:54 +00:00
Jaime Bernardo
941ff0a5a6 [meta]git ignore monaco generated installer file (#15763) 2022-01-25 22:57:01 +00:00
Aaron Junker
39b98dab3b Preview Handler for developer files (#15138)
* Create Readme.md

* Update Readme.md

* Rebased to master

* started integrating

* Resolve merge conflict

* Fixed merge conflict

* Edited expect.txt

* Tried implementig interfaces

* Push

* Push

* push

* push

* Deleted no longer used files

* push

* push

* Thanks @jaimecbernando for helping

* can load via url

* getting stuff semi stubbed out

* full render without passing vars

* making sure we clearly label the file was us

* push

* push

* push (does not work)

* Push

* push

* Added file size limit of 3 Kilobyte in standalone App (MoncaoPreview)

* Added monacosrc to excludes.txt (spell checker)

* Fixed XAMLHost loading issue and changed namespace of Settings.cs

* push

* Restructred some code in MonacoPreviewHandler  (not functional)

* MonacoPreview changes:

Added maximal file size and error message as values in Settings.cs
Increased maxFileSize to 10 KB
Renamed variables and formed code according to style guidelines
Added many comments
Deleted usused code
Added unimplemented(?) NavigationStarted method to prevent navigation in WebView
Fixed scrollbar issues (Not beautiful, but still better)
Removed never seen laoding window
Added some debug information as well as some Exceptions.

MonacoPreviewHandler Changes:

Changed order of code executions (still not usable)

* Push

* Push

* Push

* push

* Oh my god, it works

* Added loading screen and resize

* Added some comments, changed variable names and integrated some stuff from MonacoPreview to MonacoPreviewHandler;

* Monaco Preview Handler:
* Removed accessibilityhelpurl
* Made background of loading screen like theme selected
* dev tools open now in Debug mode automatically
* Fixed error message for too big file size

* push

* Fixed a tiny bug

* Updated a NuGet Pasckage

* Removed some to-do points in FileHandler.cs and added them to #14957

* Removed some to-do points in FileHandler.cs and added them to #14957.

Supressed a warning and styled a function better in PrebiewHandlerCommon

* Fixed 2 comment typos and a font that didn't load. (Sadly his required enable CORS again :( )

* Removed old standalone project

* Removed old unused files & rebase to master #1

* Deleted everything from the monaco source code expect the minified version

* Push

* Added summary of all functions. Restructred/simplified/clarified some code.

* Added resources

* Update bug_report.yml

* Update translation_issue.yml

* Update expect.txt

* Update ProofOfConcept/MonacoPreview/monacoPreviewHandler/index.html

Co-authored-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* Update ProofOfConcept/MonacoPreview/monacoPreviewHandler/MonacoPreviewHandlerControl.cs

Co-authored-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* Update ProofOfConcept/MonacoPreview/monacoPreviewHandler/Resources.resx

Co-authored-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* Added some additional file types

* Added additional file types

* Moved to a json file for the available languages and some other changes

* Added error message when WebView2 is not installed

* Remoing throw error

* Update expect.txt

* Update excludes.txt

* Update excludes.txt

* Integrate Monaco preview handler into PowerToys

* Update excludes.txt

* Ignore .svg extension

* Update signing list

* Update signing list #2

* Changed monaco string

* fix

* Fixed wrong JSON field and changed date of Copyright

* Added check if WebView is installed

* Added error when webview2 is not installed

* Increased file size limit to 50kb

* Added new file generator for languages.json

* Remove unvisible symbol at the beggining of the file

* Regenerate resx file

* Update MonacoPreviewHandler.csproj

* tweaking script to ignore 1.0 check on theme dll

* Update src/modules/previewpane/MonacoPreviewHandler/Properties/Resources.resx

Co-authored-by: Franky Chen <franky920920+gpg@gmail.com>

* Update src/modules/previewpane/MonacoPreviewHandler/MonacoPreviewHandlerControl.cs

Co-authored-by: Franky Chen <franky920920+gpg@gmail.com>

* Update src/modules/previewpane/MonacoPreviewHandler/MonacoPreviewHandlerControl.cs

Co-authored-by: Franky Chen <franky920920+gpg@gmail.com>

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

Co-authored-by: Franky Chen <franky920920+gpg@gmail.com>

* Update excludes.txt

* Update src/modules/previewpane/powerpreview/Resources.resx

Co-authored-by: Franky Chen <franky920920+gpg@gmail.com>

* Check and install WebView2 if needed

* Run spellcheck script

* Update ESRPSigning_core.json

adding font

* Update versionAndSignCheck.ps1

adding fonts to verify

* Adding in Monaco usage

* Update NOTICE.md

* Update ESRPSigning_core.json

* expect.txt update

* Use Common.UI/ThemeManager.cs

* No user facing strings should reference Monaco

* Fix build error

* monaco devdocs (#15691)

* Create update-monaco-editor.md

* Update and rename update-monaco-editor.md to readme.md

* Update doc/devdocs/modules/powerpreview/monaco/readme.md

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

* Update doc/devdocs/modules/powerpreview/monaco/readme.md

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

* Update doc/devdocs/modules/powerpreview/monaco/readme.md

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

* Update readme.md

* Update readme.md

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

* Fix WebView installer condition

* Using system.text.json

* Update ESRPSigning_core.json

* Remove Newtonsoft.Json.dll from installer

* Revert "WinUI bump (#15707)"

This reverts commit b6a207c4b6.

* Revert "Update Settings.UI.csproj (#15704)"

This reverts commit 1a25dacc73.

Co-authored-by: Clint Rutkas <clint@rutkas.com>
Co-authored-by: Aaron Junker <aaron.junker@sus.schulen-stadtsh.ch>
Co-authored-by: Clint Rutkas <crutkas@microsoft.com>
Co-authored-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
Co-authored-by: Stefan Markovic <stefan@janeasystems.com>
Co-authored-by: Franky Chen <franky920920+gpg@gmail.com>
Co-authored-by: Heiko <61519853+htcfreek@users.noreply.github.com>
2022-01-25 21:02:10 +01:00
cyberrex5
f9434ac812 [PT Run] Uri/Web search plugin crash fix (#15472)
* [PT Run] Browser path bug fix

* [PT Run][URI/Web Search] Refactoring

* [PT Run][URI] Small change

* [PT Run] Small modifications

* [PT Run] Refactoring: moved common files to Plugins\Common and added references to plugins that use them

* Fixed spelling

* [PT Run][URI] Small adjustment

* [PT Run] Fixed refactoring error

* [PT Run] Reversed refactoring NativeMethods.cs into single file

* Fixed PR changed files list (unchanged files appeared modified because of different encodings)

* [PT Run] Moved BrowserInfo.cs to Wox.Plugin/SharedCommands and removed Plugins/Common

* [PT Run] Renamed BrowserInfo to DefaultBrowserInfo and made it static

* Minor modifications

* [PT Run] Fixed refactoring error

* Minor modifications

* [PT Run] Renamed Wox.Plugin.SharedCommands to Wox.Plugin.Common + small change
2022-01-25 10:31:57 -08:00
Davide Giacometti
022ed601ec accent color border fixes (#15735) 2022-01-25 09:41:55 -08:00
Niels Laute
e131d0ff4b [Settings] Icon visual improvements (#15756) 2022-01-25 17:29:12 +00:00
Heiko
f6f8e4c4eb [PT Run] System plugin: Add UEFI command (#15629)
* Add uefi command

* small fixes

* spell check

* spell check

* fixes

* text improvement

* fix typo

* add icon

* unit tests

* fix icon

* restore changes in UnitTests
2022-01-25 17:20:04 +00:00
Niels Laute
5880f3855b [Settings] Crosshair icon (#15750)
* Added MouseCrosshair to Settings, layout tweaks

* Adding image to docs folder

* Update Product.wxs
2022-01-25 14:16:49 +00:00
Niels Laute
1a25dacc73 Update Settings.UI.csproj (#15704) 2022-01-25 13:54:42 +01:00
Niels Laute
b6a207c4b6 WinUI bump (#15707) 2022-01-25 13:53:40 +01:00
Pedro Lamas
cccadec44c [FileExplorer] StlThumbnailProvider (#15568)
* Adds StlThumbnailProvider

* Spell checker fixes

* Adds missing changes

* Attempts to fix alpha background issue

* Adds missing dependency references

* Upgrades .NET Core 3.1 to .NET 5

* Updates Helix Toolkit to fix .net5 compatibility

* Return null bitmap If STL model is empty
2022-01-25 11:51:37 +00:00
Heiko
edc43e39ca [PT Run] WindowWalker: Refactor code, fix some bugs, hide UWP non-windows, prepare code for new features (#15441)
* Import files from old PR #15329

* Improvements

* hide uwp non-windows (#13637)

* update debug tool tip

* fix spelling and comments

* disable tool tip

* fix doc links

* remove obsolete using

* Update docs

* fix spelling

* rename elevation property and test method

* Add property <DoesExist> to WindowProcess class

* Close process handles correctly if not used anymore

* cleanup coed

* fix bug with sticky notes process

* add window class to tool tip

* small change

* make nativeMethods static class

* fix broken uwpApp property of WindowProcess class

* rename method

* Revert making NativeMethods class static. It contains instance members.

* improve loggign

* fix merge mistakes

* fixes

* remove obsolete delegate

* Improve SearchController to speed up search (#15561)

* add <IsShellProcess> property to <WindowProcess> class

* reorder code

* disable debug tool tip

* Update devdocs

* remove obsolete event handler

* update var name
2022-01-25 01:33:40 -08:00
Pedro Lamas
5eaf60e8a2 [GcodePreview]Keep thumbnails transparency (#15575)
* Makes Gcode thumbnails transparent

* Don't dispose MemoryStream used in Bitmap

Follows up on the remarks shown here:
https://docs.microsoft.com/en-us/dotnet/api/system.drawing.bitmap.-ctor?view=dotnet-plat-ext-6.0#system-drawing-bitmap-ctor(system-io-stream)
2022-01-24 18:12:48 +00:00
Davide Giacometti
2182aabe35 always on top accent color borders (#15709) 2022-01-24 09:02:09 -08:00
CleanCodeDeveloper
2ccf492707 [ImageResizer]Fix regression: Too much metadata (#15548) 2022-01-24 13:37:25 +00:00
Josh Soref
0506f06a18 [Check-spelling]Fix comments (#15715)
Co-authored-by: Josh Soref <jsoref@users.noreply.github.com>
2022-01-24 13:31:29 +00:00
Jaime Bernardo
2e8dfa73d2 Mouse Utils - Mouse Pointer Crosshair (#15633)
* Apply PowerToys template

* Add CppWinRt package

* Add Settings reference

* Use proper output dir

* Proper WindowsTargetPlatformVersion

* Add filters to vcxproj

* Proper resource file generation

* Remove boilerplate code

* Initial implementation of the mouse crosshair

* Add enable module to settings page

* Change hotkey in settings

* Add color, opacity, thickness settings

* Add telemetry

* Add Oobe entry

* Add installer instructions

* Add dll to pipelines

* Add crosshair borders

* Fix settings case

* Tweak defaults to make it look like the specs

* fix spellchecker

* Fix resources and binary info

* Correct composition tree comment typo

* Reduce argument copy

* Start disabled by default

* Add maximum to crosshair thickness and border size

* Set minimum border size of 0

* Fix comment

* Add maximum to radius

* Add comment for non-localizable strings

* Rename "Inclusive Mouse"-"Mouse Pointer Crosshair"
2022-01-24 13:29:16 +00:00
Seraphima Zykova
453bb613af [FancyZones] Split zones-settings: app zone history (#15690) 2022-01-24 11:54:17 +00:00
Niels Laute
7833ace553 Update MainWindow.xaml (#15708) 2022-01-24 10:16:45 +01:00
Andrey Nekrasov
6a01be2c38 [VCM] Do not unmute devices on exit (#15414) 2022-01-21 17:43:43 +00:00
CleanCodeDeveloper
ac4f725433 [ImageRsizer] Add support for blanks in height/width fields (#15368) 2022-01-21 17:42:50 +00:00
Jaime Bernardo
a1f319afa7 [MouseUtils]fix dll file info (#15673) 2022-01-21 17:41:44 +00:00
Seraphima Zykova
714ca349ff [FancyZones] Split zones-settings: custom layouts (#15642) 2022-01-20 11:02:38 +00:00
Jaime Bernardo
dec1aca97f [ci]fix sqlite3 signing (#15645)
* [ci]fix sqlite3 signing

* Add to bottom set
2022-01-19 17:48:08 +00:00
Seraphima Zykova
409f58e55a [CI] main PT project pch.h build fix (#15624) 2022-01-19 01:01:41 +00:00
Stefan Markovic
f721c1f226 Remove FancyZonesEditor_DPI_netcore_test & FancyZones_DPI_test (#15617) 2022-01-18 16:55:09 +01:00
Stefan Markovic
a1643b0a2e Upgrade .NET Core 3.1 to .NET 5 (#15591)
* Common.UI

* ColorPicker

* PT Run

* File Explorer Add-ons

* Awake

* FZ Editor

* ImageResizer

* Interop

* Docs

* Installer

* Fix test not being run - Downgrade MSTest.TestAdapter & MSTest.TestFramework

* Update expect.txt

* Test run fix
2022-01-18 15:52:22 +01:00
Seraphima Zykova
f6576e01f3 [FancyZones] Split zones-settings: layout templates (#15588) 2022-01-18 13:13:32 +00:00
ricardosantos9521
758a21a22f Powertoys Run | VSCodeWorkspaces- add support for vscode 1.64 - bug fix #15247 (#15259)
* #15247 Powertoys Run | VSCodeWorkspaces- add support for vscode 1.64 new workspace.json file

* Get previous open workspaces for sqlite file

* check-spelling-bot Report fix

* add dlls to installer and set SqliteConnection to readonly
2022-01-18 12:44:32 +01:00
Andrey Nekrasov
167ec5a3a8 [VCM] Initialize out method arguments in all erroneous cases (#15599) 2022-01-18 02:19:00 +03:00
Heiko
8c24d7e942 [PT Run] Fix crash in EnvHelper if no machine path var exists (#15540)
* addig if condition

* fix spelling
2022-01-17 22:56:39 +00:00
Davide Giacometti
5035dc6754 [PTRun][Program]Fix FileSystemWatcher Crash (#15480)
* fix FileSystemWatcher crash

* catch general exception
2022-01-17 22:56:04 +00:00
Seraphima Zykova
ba431c5bfd [FancyZones] Split zones-settings: layout hotkeys (#15514) 2022-01-17 08:50:24 +00:00
Clint Rutkas
a96187bd04 Update README.md 2022-01-12 09:59:36 -08:00
Stefan Markovic
127cf4e412 [Unify dll/exe naming] Tools (#15254) 2022-01-12 13:00:23 +01:00
Stefan Markovic
aa876838d4 [PowerRename] Remove PowerRenameUWPUI project (#15252)
* [PowerRename] Remove PowerRenameUWPUI project

* Run spellcheck script
2022-01-12 11:03:36 +01:00
Jaime Bernardo
1a9473c896 [PTRun]Fix crash when plugins have the same name (#15456) 2022-01-11 23:12:00 +00:00
Franky Chen
d52037fd5e [PT Run] Add scheme verification for application URI (#15324)
* [PT Run] Add scheme verfication for application URI

* Add test
2022-01-11 12:13:41 +00:00
Jaime Bernardo
bcba63e4b2 Revert "[PT Run] Smooth scrolling of the results list" (#15420)
This reverts commit 3ada3c20a2.
2022-01-11 11:00:29 +00:00
Clint Rutkas
f303c29d4c Forcing build to validate signing and versioning (#15432)
* ps script for validation

* intentionally breaking for testing

* including script in release

* fixing script

* removing old ignore

* Fixing unit tests to be versioned

* fixing version path

* Authenticode

* Update release.yml

* Update versionAndSignCheck.ps1

* Update release.yml

* Update versionAndSignCheck.ps1

* Update release.yml

* Update versionAndSignCheck.ps1

* Update versionAndSignCheck.ps1

* Update versionAndSignCheck.ps1

* Update versionAndSignCheck.ps1

* Update versionAndSignCheck.ps1

* Update release.yml

* Update versionAndSignCheck.ps1

* Update versionAndSignCheck.ps1

* Update release.yml

* Update versionAndSignCheck.ps1

* Update ESRPSigning_core.json

* Update versionAndSignCheck.ps1

* Update versionAndSignCheck.ps1

* Update versionAndSignCheck.ps1

* Update release.yml
2022-01-10 18:26:27 -08:00
Davide Giacometti
cf0c45a319 [Window Walker] Path for elevated process (#15186) 2022-01-10 18:15:39 +03:00
Stefan Markovic
67933a8470 [PowerRename] Sort files alphabetically as in file explorer (#15269)
* [PowerRename] Sort files

* Run spellcheck
2022-01-07 17:56:12 +00:00
Clint Rutkas
a0dca4f401 0.53 release work (#15181)
* Update translation_issue.yml

* Update bug_report.yml

* Update translation_issue.yml

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* adding in user names

* Update README.md

* Update expect.txt

* Update expect.txt

* Update expect.txt

* Update expect.txt

* Update README.md

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

* Update README.md

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

* Update COMMUNITY.md

* Update README.md

* Update COMMUNITY.md

* Update README.md

* Update expect.txt

* adding AoT

adding AoT

* Update README.md

* Update COMMUNITY.md

Co-authored-by: Aaron Junker <vl5ktlnki@relay.firefox.com>

* Update COMMUNITY.md

Co-authored-by: Jay <65828559+Jay-o-Way@users.noreply.github.com>

* Update README.md

* Update README.md

Co-authored-by: Jay <65828559+Jay-o-Way@users.noreply.github.com>

* Update README.md

Co-authored-by: Franky Chen <franky@frankychen.net>

* Update README.md

Co-authored-by: Franky Chen <franky@frankychen.net>

* Update README.md

Co-authored-by: Franky Chen <franky@frankychen.net>

* Update README.md

* Update README.md

Co-authored-by: Heiko <61519853+htcfreek@users.noreply.github.com>
Co-authored-by: Aaron Junker <vl5ktlnki@relay.firefox.com>
Co-authored-by: Jay <65828559+Jay-o-Way@users.noreply.github.com>
Co-authored-by: Franky Chen <franky@frankychen.net>
2022-01-06 09:27:31 -08:00
Jaime Bernardo
2bf2dfe685 [ci]sign always on top (#15278) 2022-01-06 08:02:03 -08:00
Andrey Nekrasov
3d59c797f9 [Setup] Use WiX bootstrapper instead of a custom one (#15050)
@dhowett gave approval on teams.  Squash merging
2022-01-05 10:28:09 -08:00
Franky Chen
244a3b936e Fix the spellcheck for #15242 (#15246) 2022-01-04 13:36:59 -06:00
Dustin L. Howett
4484727c69 Remove all vestiges of the old CDPx pipeline and old loc data (#15242)
This pull request removes build steps and localization files that we no longer need.

Related: #15243
2022-01-03 17:51:56 -06:00
Clint Rutkas
5ddfbc1f9a KBM language adjustment (#15204)
* adjusting langauge to help clarify

* spelling adjustment

* Update Resources.resx
2022-01-03 12:14:47 -08:00
Clint Rutkas
740230c870 [PTRun][Calculator]fix copy/paste culture bug (#15207)
* changing culture info

* Update ResultHelper.cs

Remove comment
2022-01-03 17:44:32 +00:00
Andrey Nekrasov
f63d389d26 [VCM] Change default mute cam&mics hotkey from Win+N to Win+Shift+Q (#15222) 2022-01-03 17:17:01 +00:00
Seraphima Zykova
fa81968dbb [AlwaysOnTop] Proof of concept (#14360)
Co-authored-by: Niels Laute <niels.laute@live.nl>
2021-12-29 17:33:20 +00:00
CleanCodeDeveloper
d39c4121a9 fix regression #14715 by adding an additional check for the newly build metadata object (#15198) 2021-12-29 09:01:31 -08:00
Stefan Markovic
b6affde530 [FZ Editor] Include template name in edit template dialog title + don't resize dialog when typing to long name (#15187)
* Edit layout dialog title fix

* Added TextBlock in the contentdialog title to enable TextTrimming

* Fix text trimming and wrapping

* Too long name doesn't affect dialog width

Co-authored-by: niels9001 <niels.laute@live.nl>
2021-12-29 10:46:20 +01:00
Niels Laute
54a3e67eed [Settings] Added units to strings (#15185)
* Added units to strings

* Update Resources.resw
2021-12-28 17:00:16 +01:00
Clint Rutkas
f6daf0b1f6 mage has log as ln and then has log10. (#15176) 2021-12-28 04:59:31 -08:00
Clint Rutkas
939e8db692 Update to include submodule note for dev docs (#15178)
* Update readme.md

* Update readme.md
2021-12-28 04:59:00 -08:00
Heiko
c1a80a2001 [PT Run] Web-search plugin: Fix strings and improve log msg (#15144)
* string fixes

* fix msg ending

* improve log

* Move failed message dot
2021-12-27 12:20:11 -08:00
Franky Chen
bee877fe41 [meta]Add mouse utilities to translation issue template (#15157) 2021-12-27 10:19:57 -08:00
Heiko
5460b00c8b [PT Run] Settings plugin: Update naming of remove program results (#15119)
* update remove program names

* fix dup alt name
2021-12-27 10:19:07 -08:00
Heiko
92aba94e78 [ColorPicker Editor] Adjust color menu: Hex input improvements (#15074)
* adding max length to hex textbox

* support hex code without hashtag

* new method

* Only user typed hashtag in text box

* code change

* set hex box casing to upper

* improve hashtag handling

* fix spelling and add comment

* spell fix

* fix condition and switch hex to lower case
2021-12-27 10:17:54 -08:00
ricardosantos9521
5f9cf69a24 #14931 Show previous opened VSCode workspaces (#15108) 2021-12-27 10:17:20 -08:00
ricardosantos9521
7b280ebde1 [PT RUN] [VSCodeWorkspaces] no remote ssh machines are appearing in the result list #15106 (#15107) 2021-12-27 10:16:43 -08:00
Heiko
979d3c6011 [PT Run] Results only for plugin with longest matching activation phrase (#15132)
* first try to fix with new idea

* small changes

* [PT Run] Updated QuryBuilder unit tests

* [PT Run] Updated QueryBuilder test

* [PT Run] Updated QueryBuilder test name

* Improvements

* Improve readability of test

* Improve Query-Tests for spellcheck

* clean expect.txt

Co-authored-by: cyberrex5 <ghassanjad2004@gmail.com>
2021-12-27 17:00:07 +01:00
Niels Laute
7ac7e48e66 [Settings] Added disabled state to FZ preview control (#15166)
* Added Disabled state

* Added wallpaper image to installer file
2021-12-27 14:29:31 +01:00
Niels Laute
226b04e014 Adding secondary style for IsEnabledTextBlock (#15160) 2021-12-27 14:29:01 +01:00
Stefan Markovic
a8c62c2d78 [FZ Editor] Clear keyboard focus on opening Edit layout dialog (#15133) 2021-12-27 09:59:01 +01:00
Niels Laute
4066243c6f [Settings/OOBE] Updated images (#15164)
* Updated docs images

* Updates thumbnails in Settings

* Added image
2021-12-26 18:30:45 +01:00
Franky Chen
c25a5a821f [PT Run]Align subtitles for web search plugin (#15129)
* Align subtitles, #15126

* Apply suggestions from code review

* Add comment to the resource file

* Remove unused resource
2021-12-24 08:06:02 -08:00
Stefan Markovic
09e188621c [PT Run - Calculator plugin] Normalize input before processing (#15131) 2021-12-24 15:59:45 +01:00
tameemzabalawi
81e0e14008 [PowerToys Run] Fix Previous query not erased when closing (#15121) 2021-12-24 13:56:46 +03:00
cyberrex5
bb88aff663 [PT Run][New Plugin] Web Search (#14882)
* [PT Run][New Plugin] Web Search

* [PT Run][Web Search] Added plugin files to WXS and YML

* [PT Run][Web Search] Added docs

* [PT Run][Web Search] Added new option + minor modifications

* [PT Run][Web Search] Fixed a bug + minor refactoring

* [PT Run][Web Search] Updated docs and changed icons

* [PT Run][Web Search] Fixed capitalization for spell check + fixed icons

* [PT Run][Web Search] Fixed renaming

* adding cyberrex to name

* [PT Run][Web Search] Fixed typo in doc screenshot

* [PT Run][Web Search] Fixed plugin not working with Opera browser + minor modifications

* Fixed merge and typo

* [PT Run][Web Search] Removed globalization error suppression + changed action word

* [PT Run][Web Search] Added LocProject.json + minor modifications

* [PT Run][Web Search] Using plugin icon to not confuse with uri plugin + changed action word because another plugin uses it

* Added Firefox to spell-check expect.txt

* [PT Run][Web Search] Fixed bug with opera + changed default setting's value to false

* Added sourceid to spell-check expect.txt

* [PT Run][WebSearch] Changed action word

* Making Web plugin a dependency for launcher like other plugins

* [PT Run][Web Search] Now using JsonDocument + better way of getting browser name

* [PT Run][Web Search] Fixed bug

* adding in DLL to signing for release.yml build

Co-authored-by: Clint Rutkas <clint@rutkas.com>
2021-12-23 18:56:44 -08:00
Seraphima Zykova
7d0304fd06 [FancyZones] Do not snap child windows via the "Win+Arrow" shortcut (#15102) 2021-12-22 20:34:18 +00:00
Stefan Markovic
f280170021 [ColorPicker] Adjust window positioning in bottom & right corners of … (#15097)
* [ColorPicker] Adjust window positioning in bottom & right corners of the screens

* Make it window height dependent

* Right side dead zone dependent on window width
2021-12-22 19:35:15 +01:00
Davide Giacometti
57cdae724a [PT Run/FancyZones] Exclude Launcher from zonable windows improvement (#9071)
* excluding launcher from fancy zones setting GWL_STYLE WS_POPUP 


fix WS_POPUP type

* Migrate spelling-0.0.19 changes from main

* rebase fix

* fix spellcheck

Co-authored-by: Dustin L. Howett <duhowett@microsoft.com>
2021-12-21 14:18:36 +00:00
Jaime Bernardo
dc08987a60 [PTRun][Program]detect UWP trust level accurately (#14888) 2021-12-21 11:21:08 +01:00
Davide Giacometti
288e0487a0 [FancyZones] Zone Number Settings (#14910) 2021-12-20 16:50:51 +00:00
Niels Laute
3805348afd [Settings] String fixes (#15072)
* Fix ToggleSwitch

* Numberbox label fix
2021-12-20 13:15:08 +01:00
Stefan Markovic
a16a11df81 [FancyZones] Align max negative spacing with limit in FZ Editor (#15035) 2021-12-20 12:55:20 +01:00
Niels Laute
d724f6de70 Update Setting.xaml (#15046) 2021-12-19 14:28:09 +01:00
Clint Rutkas
6d2730d15f new badge (#15062) 2021-12-17 22:46:30 -08:00
Clint Rutkas
d5a2bf16d9 Add a new YAML release pipeline to replace the old CDPx one (#15039)
* lets move unneeded stuff out

* adding in direct installer yml

* forcing internal

* Create release.yml

* Update release.yml

* Try to use the right feed, scrub

* What if we don't do package ES...

* Update release.yml

* Update release.yml

* Update release.yml for Azure Pipelines

* Update release.yml

* Update release.yml

* seeing where we are in the world

* adjustment

* fixed a copy/paste

* think we're in root, having a dir command just to verify

* start copying over core files

* adding in tools + setup

* fixing telem

* ci: fix could not lock config file flakiness

* forcing root dir

* attempting to copy files again

* adding notes

* lets try this again

* trying a quicker way to figure out root

* maybe it is the slash not being there looking at docs deeper

* playing with slashes

* signing

* tewak

* fixing file path for signing.  suprise, app driver and PT have different paths :)

* getting my sign on

* tweaking json

* Adjusting files and getting output from build

* fixing yml copy and paste oops

* fixing spacing ...

* getting bootstrapper added

* moving file and seeing if we can't get this pipeline goodness working

* trying my next oops at powershell ...

* shift in version location i bet this will fail, doing a parallel build to verify

* trying again for powershell passing in arg

* Dustin showed me the error

* forcing as string

* fdsfasd

* forcing as string

* getting sad panda

* trying to force array

* lets try this on single line ....

* i made a major oops

* Sync'ing naming, adding in signing for msi & boot

* breaking up signing into smaller bits

* grr, not everything committed

* Added a lot of comments

* fixing installer signing path

* fixing paths

* seeing if this fixes some of the signing quirks

* removing 3rd party double, removing the pipeline call

* centeralizing again

* more consolidation

* Going a bit more wide

* going very wide

* seeing if i can't do a dual but more targetted list

* think having leading slash caused a failure

* looks like the esrp  does not verify paths don't exist

* fixing 3rd party

* reseting old stuff so old pipeline still works

* resetting version setting

* [PR INTO CRUTKAS BR] Fix the localization pipeline (#15026)

* Fix localization

This commit makes a few changes:
1. It introduces a couple scripts for moving localization files
   around based on Touchdown's output shape. They are well-documented.
2. It rewrites portions of the RESX->RC converter to avoid resgen and
   handle the new touchdown language types.

* I forgot the cardinal rule of using YAML: Don't

* Fix duplicate keys in Keyboard Editor!

* Up the timeout

* Update the language list in the wxs

* Use IsPipeline

* Special case SvgPreviewHandler >:{

* Push this down to Clint's branch: fix the publish profile

* Reinstate the call to publish.cmd

* Document it

* build the publishing rules

* Remove the GitSubmodules hack

* Restore CDPx move_uwp_resources

* Don't need this any more! spelling.

* adding spelling

* sorting alphabetical

* fix spelling

* shifint to new dll naming

* Move GcodePreviewHandler's Resources to follow the preferred C# format

* Revert "Move GcodePreviewHandler's Resources to follow the preferred C# format"

This reverts commit daf4c7ef3a.

* remove SVG workaround - requires #15054!

* cleaning up commented code dustin said i could delete :)

* fixing tab vs space

* Update release.yml

Fixing Dustin comments

Co-authored-by: Clint Rutkas <crutkas@microsoft.com>
Co-authored-by: Dustin Howett <duhowett@microsoft.com>
Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>
Co-authored-by: Dustin L. Howett <dustin@howett.net>
2021-12-17 18:15:31 -08:00
Dustin L. Howett
239610f1cd Add a Touchdown localization pipeline (#15054)
This commit introduces a localization pipeline that submits our
localizable content to Touchdown, the modern localization service we
should have been using the whole time.

The pipeline is scheduled to run after the end of the workday around 6-7
PM Pacific (depending on daylight saving time) if there have been any
code changes on main.

Some of our localizable files were out of spec, so I moved them into the
right places and the right format.
2021-12-17 17:35:05 -06:00
ChaseKnowlden
f4b0e6372a Remove Unused Package in PT Run (#15023) 2021-12-17 11:47:00 -08:00
Stefan Markovic
cc5d33606b [Build Fix] Fix SettingsUI loc paths (#15043) 2021-12-17 13:40:07 -06:00
Stefan Markovic
3ada3c20a2 [PT Run] Smooth scrolling of the results list (#15033)
This fixes scrolling when using touchpad
2021-12-17 10:22:25 +01:00
Stefan Markovic
073caffef4 [Settings, Common.UI, runner exe] Unify exe/dll naming (#15005)
* Unify exe/dll naming - PowerToys.Runner

Align naming with other exes - PowerToys Runner -> PowerToys.Runner

* Unify exe/dll naming - Microsoft.PowerToys.Common.UI

Project name - Microsoft.PowerToys.Common.UI -> Common.UI
dll name - Microsoft.PowerToys.Common.UI.dll -> PowerToys.Common.UI.dll

* Unify exe/dll naming - Settings

Project names - Microsoft.PowerToys.Settings* -> Settings*
Dll names - Microsoft.PowerToys.Settings*.dll -> PowerToys.Settings*.dll

* Revert file autoformat

* [Docs] Update paths to settings projects/files

* Fix tests - Update path
2021-12-15 12:56:52 +01:00
Stefan Markovic
d359b3adc8 [PowerRename] Don't treat extensions for folders (#14908)
* Dont treat extensions for folders

* Simplify fix and add test

* Add try/catch

* Update test to avoid updating spellcheck
2021-12-14 14:42:37 +01:00
Graham Sutherland
f5d2f86c23 Add support for hex/binary numbers to calculator (#14948)
This minor expression validation tweak allows hexadecimal and binary numbers to be entered into expressions.
2021-12-13 20:01:12 +03:00
Franky Chen
a612ba845e Cleanup spell-checking expect.txt (#14985) 2021-12-13 16:29:09 +03:00
Stefan Markovic
dfba79313f [PowerRename] Fix AltGr input (#14927) 2021-12-13 13:47:45 +01:00
Josh Soref
02de31b7c0 Update check-spelling (#14873)
* Updating advice

Copying 18764e6cbb/.github/actions/spelling/advice.md

* Update exclusions

* sort exclusions
* exclude .filters files based on updated engine suggestions
* exclude src/modules/previewpane/UnitTests-MarkdownPreviewHandler/HelperFiles/MarkdownWithHTMLImageTag.txt based on updated engine suggestions

* Upgrade check-spelling to v0.0.20-alpha3

Updates patterns to better handle guids
closes #14854

Adds a couple of other patterns:
* publicKeyToken
* @sha256:
* std::wregex

Co-authored-by: Josh Soref <jsoref@users.noreply.github.com>
Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>
2021-12-12 11:42:04 -08:00
Franky Chen
b93095a9c0 Update wix vs extension link (#14959) 2021-12-11 09:21:42 -08:00
Franky Chen
950711c836 Fix grammar in PR template (#14960) 2021-12-11 07:55:38 -08:00
Jaime Bernardo
c48f8f75d4 [GCodePreview]Fix locproject (#14955) 2021-12-10 17:43:11 -08:00
CleanCodeDeveloper
9152ea8f1c [Image Resizer]Try to recover metadata even when the metadata data structure is invalid (#14914)
* metadata.Clone() fails also for situations where we still can recover metadata

metadata.Clone() is also an expensive operation (deep copy) and it is not necessary anymore as we build up the metadata object from scratch anyway

* If an exception is throw here something is seriously wrong with the metadata structure

We take all metadata we have read so far an write it to the resized image

* add log statement

* Adjust test written for #2447 as we are able to copy the metadata now

* Improve documentation
2021-12-10 13:54:05 +00:00
Pedro Lamas
1e0033166f [FileExplorer]GcodeThumbnailProvider and GcodePreviewHandler (#14827)
* Adds the GcodeThumbnailProvider

* Registers the GcodeThumbnailProvider

* Adds Settings support

* Reverts solution changes back to original

* Corrects "Gcode" text with "G-code"

* Adds gcode thumbnail setting description

* Follow up on PR review comments

* Adds GcodePreviewHandler

* Follow up on PR review comments

* Renames assemblies following #14903
2021-12-10 11:53:01 +00:00
Stefan Markovic
dfe9169e39 [modules] Unify exe & dll naming (#14903)
* Unify exe/dll naming - AwakeModuleInterface

* Unify exe/dll naming - ColorPicker.dll & ColorPickerUI.exe

* Unify exe/dll naming - FancyZones, FancyZonesEditor & FancyZonesModuleInterface

* Unify exe/dll naming - ImageResizerExt & ImageResizer.exe

* Unify exe/dll naming - KeyboardManager.dll

* Unify exe/dll naming - FindMyMouse & MouseHighlighter

* Unify exe/dll naming - PowerRename.dll, PowerRenameUIHost & PowerRenameUILib

* Unify exe/dll naming - File Explorer add-ons

* Unify exe/dll naming - ShortcutGuide

* Unify exe/dll naming - VCM

* Unify exe/dll naming - PT Run

* Unify exe/dll naming - *.resources.dll

* [Fix] Unify exe/dll naming - VideoConferenceProxyFilter_x86
2021-12-10 10:50:46 +01:00
Aaron Junker
c140185ee0 Update config.yml (#14933) 2021-12-09 10:27:46 -08:00
Jaime Bernardo
c681988892 [MouseUtils]Add PowerToys to window names (#14892) 2021-12-09 11:08:53 +00:00
Jaime Bernardo
2ba1dcf03a [PTRun]Avoid starting two instances from runner (#14868)
* [PTRun]Avoid starting two instances from runner

* Set m_enabled later
2021-12-09 11:05:31 +00:00
kurema
dfa139b72f Update Resources.resw (#14921) 2021-12-09 11:57:47 +01:00
Franky Chen
6559d1a520 Remove wrong spelling from expect.txt (#14922) 2021-12-09 11:57:24 +01:00
Franky Chen
b9c1ec2eed Update Traige-Needed to Needs-Triage as recent label upddates (#14907) 2021-12-08 08:26:33 -08:00
Niels Laute
8ce3a5524a Updated HighContrastMode (#14887) 2021-12-07 18:22:27 +01:00
Clint Rutkas
71380d6fb1 [VCM]disable by default and admin warning (#14686)
* Adding in InfoBar warning when not running as admin

* small newline text shift

* rolling out a text fix i didn't mean to commit

* defaulting to off, there are other spots is seems like

* [Runner] introduce is_enabled_by_default method and keep VCM disabled by default

* getting file back in good state

Co-authored-by: yuyoyuppe <a.yuyoyuppe@gmail.com>
2021-12-07 13:50:04 +00:00
ChaseKnowlden
aa376a2c0d Description and Company name Fixed (#14785)
* Description and Company name Fixed

* PowerToys Run fix
2021-12-06 22:04:11 -08:00
Niels Laute
52a237c355 [Chore] Minor icon fixes and adding missing files to installer file (#14846)
* Updated docs images

* Updated docs images

* Updated icon files

* Update Product.wxs
2021-12-06 22:05:34 +01:00
CleanCodeDeveloper
e6428da21f [ImageResizer]fix colorspace metadata regression (#14867) 2021-12-06 19:28:57 +00:00
Davide Giacometti
3b89e6f5a4 [PTRun]update icons and author on startup (#14828) 2021-12-06 19:28:04 +00:00
Davide Giacometti
d7e36079fc [PTRun][Window]PowerLauncher removed from results (#14786) 2021-12-06 19:27:10 +00:00
Stefan Markovic
88ec74d81e Unify dll/exe naming - interop (#14795) 2021-12-06 16:27:54 +01:00
Stefan Markovic
c9e8ba4955 [ManagedCommon.dll & ManagedTelemetry.dll] Unify exe/dll naming (#14807)
* Unify exe/dll naming - ManagedCommon.dll

* Unify exe/dll naming - ManagedTelemetry.dll
2021-12-06 14:40:41 +01:00
Stefan Markovic
d8f2946ba6 Unify dll/exe naming - BackgroundActivatorDLL (#14797) 2021-12-06 13:02:09 +01:00
Deondre Davis
fc303c2c38 [PowerRename]Fix "Learn more about RegEx" link (#14706) 2021-12-06 11:44:18 +00:00
Clint Rutkas
8b59e6e626 small verb change to 0.51.1 (#14810) 2021-12-03 14:01:58 -08:00
Clint Rutkas
de42a90a34 remove legacy settings docs (#14709)
* Delete settings-web.md

* Update readme.md

* Delete settings-reference.md

* Delete settings.md

* Update readme.md

* removing settings images for v1
2021-12-03 07:12:35 -08:00
Clint Rutkas
35d328964f Update Resources.resx (#14707) 2021-12-03 06:53:57 -08:00
Seraphima Zykova
9d10426295 [FancyZones][Hotfix] Fix VirtualDesktopManager init (#14793) 2021-12-03 09:59:05 +00:00
Niels Laute
287bc99a0f [Run] Removing unused icons (#14631)
* Removing unused icons

* Update Product.wxs

* Update Product.wxs

* Update PowerLauncher.csproj

* Update PowerLauncher.csproj

* Revert "Update PowerLauncher.csproj"

This reverts commit 45011bd1e0.

* Revert "Update PowerLauncher.csproj"

This reverts commit c6d6298034.

* Update PowerLauncher.csproj

* Revert "Update PowerLauncher.csproj"

This reverts commit 60d30f30df.

* Update PowerLauncher.csproj
2021-12-03 00:02:56 +01:00
Jaime Bernardo
f92bfc62f1 [PTRun][Hotfix]Don't load duplicate plugins (#14776) 2021-12-02 16:41:15 +00:00
Stefan Markovic
82ad79dd1f Open PowerRename on current active monitor (#14774) 2021-12-02 15:09:33 +01:00
Stefan Markovic
c95fb78cf4 [PT Run - Calculator plugin] Allow single-digit factorial (#14736) 2021-12-02 15:07:47 +01:00
Niels Laute
a018e0493b [PowerRename] Add row highlighting (#14746)
* Add Highlight property to ExplorerItem

* Change property type

* Initialize property

* Update MainWindow.xaml

* Update MainWindow.xaml

* Update MainWindow.xaml

* Updated brush

Co-authored-by: Stefan Markovic <stefan@janeasystems.com>
2021-12-02 13:02:12 +01:00
Stefan Markovic
0e61f41e31 Sync run on startup with actual task scheduler (#14723) 2021-12-02 09:09:16 +01:00
Stefan Markovic
87f6278bf9 Standardize Image Resizer naming (#14694)
* Standardize Image Resizer naming

* Use no-throw methods

* Do not move if new dir already exist

* Update test files paths
2021-12-02 09:08:43 +01:00
Clint Rutkas
22f8390ef9 0.51 readme prep (#14635)
* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update expect.txt

* Update README.md

* Update README.md

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

* Update README.md

Co-authored-by: Franky Chen <franky920920+gpg@gmail.com>

* Update README.md

Co-authored-by: Franky Chen <franky920920+gpg@gmail.com>

* Update README.md

* Update README.md

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

* Update README.md

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

* Update README.md

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

* Update README.md

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

* Update README.md

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

* Update README.md

remove stable reference and few other small tweaks

* adding netlify

Co-authored-by: Deondre Davis <dedavis@microsoft.com>
Co-authored-by: Heiko <61519853+htcfreek@users.noreply.github.com>
Co-authored-by: Franky Chen <franky920920+gpg@gmail.com>
2021-11-30 10:35:34 -08:00
Davide Giacometti
ec11abbc52 [PT Run] [Program] Fix FileSystemWatcher Crash (#14649) 2021-11-30 14:41:09 +00:00
Niels Laute
974bf4708c [Settings] a11y fixes (#14667)
* Update FancyZonesPreviewControl.xaml

* Update ImageResizerPage.xaml

* Uid updates

* Update GeneralPage.xaml

* Correct IsTabStop

* Setting focus to page
2021-11-30 14:43:04 +01:00
Niels Laute
319d722a59 [Settings] Add SettingsGroup Description property and VCM message (#14658)
* Adding ItemsPanel description

* Move PowerPreview textblock to description

* VCM description

* Update ShellPage.xaml

* Update Resources.resw
2021-11-30 14:42:13 +01:00
Jaime Bernardo
bf2c5d9ec0 [PTRun][Program]Avoid loops due to symlinks (#14676) 2021-11-30 11:25:01 +00:00
Niels Laute
7974a9f43b [Settings] Various bugfixes (#14611)
* Set maxwidth

* Correct shortcut

* Update GeneralPage.xaml
2021-11-29 12:59:38 +01:00
Clint Rutkas
72ea4ff8b3 Hero tweak (#14645)
* Update README.md

* Update README.md

* tweaking path
2021-11-26 12:26:32 -08:00
Deondre Davis
991124c9e4 Preview pane toggle instructions (#14595)
* Added informative text about toggling preview pane in settings

* Update Resources.resw

* Changed infobar to textblock

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

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

Co-authored-by: Heiko <61519853+htcfreek@users.noreply.github.com>
2021-11-26 15:00:28 +01:00
Jaime Bernardo
47b5386c0c [ci][PTRun]Fix signing for new plugins folders (#14646) 2021-11-25 18:40:02 +00:00
FLOAT4
5381486c25 [FancyZones] Rename ZoneWindowDrawing -> ZonesDrawing (#14464)
* [FancyZones] Rename ZoneWindowDrawing -> ZonesOverlay

* [FancyZones] Rename ZoneWindowDrawing -> ZonesOverlay in tools and docs

Co-authored-by: float4 <float4-unspecified-mail>
2021-11-25 16:39:03 +01:00
Jaime Bernardo
375ce4c798 [ci][binskim]skip cppwinrt.exe binary checks (#14628) 2021-11-24 12:05:54 -08:00
Niels Laute
d2c6148662 [PowerRename] Resolve UI focus issue (#14605)
* UI tweaks

* Fixed 0 margins

* Fixed height for button

* Update MainWindow.xaml
2021-11-24 18:45:31 +00:00
Jaime Bernardo
84101ab821 [ci][powerpreview]Add include to fix build error (#14624) 2021-11-24 11:09:06 +00:00
Seraphima Zykova
bd0db76e31 [FancyZones] Crash on launch: fix exception handler (#14609)
* fix stacktrace logging

* init logger before exception handler

* wchar check
2021-11-23 18:41:10 +00:00
Clint Rutkas
8743c2329e Show color as a float and as a decimal value (#14548)
* #14020 and #12630 - Show color as a float and as a decimal value

* getting stuff up-to-par

* changing RGB Float to VEC4

* Getting Decimal to display correct.

* tweaking VEC4 output.  What would be better is if these actually pulled from a real output ...

* Shifting to force decimal

Co-authored-by: Clint Rutkas <crutkas@microsoft.com>
2021-11-23 09:08:01 -08:00
Jaime Bernardo
46244e8e84 [FindMyMouse]Add additional settings (#14590)
* [FindMyMouse]Add additional settings

* Add setting for Spotlight Initial Zoom

* PR feedback: lowercase settings names

* PR feedback: settings descriptions

* PR feedback: change opacity to percentage

* PR feedback: increase maximum zoom factor

* PR feedback: group spotlight settings

* PR feedback: Expanders start collapsed initially

* Remove extra settings file save in dllmain

* PR feedback: change initial zoom description

* PR feedback: Add warning for photo sensitive users

* PR feedback: remove warning and add description instead

* PR feedback: size->factor in initial zoom description

* Feedback PR: remove opacity description

* PR feedback: remove photo sensitivity warning
2021-11-23 16:52:17 +00:00
Stefan Markovic
8afac77841 [ColorPicker] Accept lower-case hex code in AdjustColor window HEX text block (#14602) 2021-11-23 16:40:12 +01:00
CleanCodeDeveloper
6452369351 [Image Resizer] Fix image resizer unexpected property type or value (#14475)
* fixes issue #9885, image 2 and 3

* fixes issue #9885, image 1

* fixes issue #9885, image 2 and 3 (refactoring)

* try to get past the spell checker

* Loop over all metadata and try to read the actual value. Remove metadata item if exception is thrown on reading the value.

* Add debug utils which will help to troubleshoot further metadata bugs

* Revert "try to get past the spell checker"

This reverts commit 34aa0728b5.

* I gave up on fiddling with individual metadata decided to  build up the metadata object from the scratch

* Improved log messages, add comments, renamed variables
2021-11-23 11:19:09 +00:00
Jaime Bernardo
641d838140 [FindMyMouse]Fix duplicated settings path (#14584) 2021-11-23 10:19:26 +00:00
Jaime Bernardo
2d5276f742 Mouse Utils - Mouse Highlighter (#14496)
* New PowerToys template

* Add CppWinRt to empty PowerToy

* Add Settings reference to empty PowerToy

* Use proper output dir

* Proper WindowsTargetPlatformVersion

* Add filters to vcxproj

* Proper resource file generation

* Add MouseHighlighter proof of concept code

* Abstract implementation into a struct

* Enable module

* Disable module

* Add enable module to settings page

* Can change the hotkey in settings

* Remove remaining boilerplate code

* Add logging

* Add telemetry

* Add Oobe entry

* Add installer instructions

* Add dll to pipelines

* fix spellchecker

* Add more configurability

* Make settings a bit prettier

* Fix spellchecker

* Fix wrong default fade timers

* Fix user facing strings

* Tweak default duration values

* Fix to appear in every virtual desktop

* [Mouse Highlighter] Show highlight on mouse drag (#14529)

* [Mouse Highlighter]show pointer on mouse drag

* fix spellchecker

* [MU] UI tweaks (#14544)

* UI tweaks

* Update Resources.resw

* Updated text strings

* fix spellcheck

Co-authored-by: Laute <Niels.Laute@philips.com>

* tweak default values

* PR feedback: use wstring_view

* PR feedback: Log error on json error

* PR feedback: don't throw 1

* PR feedback: fix copy-pasta leftColor->rightColor

* PR feedback:Add another error message on exception

* PR feedback: add todo to use commons/utils/json.h

Co-authored-by: Niels Laute <niels.laute@live.nl>
Co-authored-by: Laute <Niels.Laute@philips.com>
2021-11-22 13:31:31 +00:00
Clint Rutkas
0dae5d0402 Revert "#14020 and #12630 - Show color as a float and as a decimal value"
This reverts commit 022dde4754.
2021-11-19 14:11:32 -08:00
Clint Rutkas
022dde4754 #14020 and #12630 - Show color as a float and as a decimal value 2021-11-19 14:08:14 -08:00
Clint Rutkas
0aaf00dc5e Getting it sync'ed with settings but this needs to be localized / pulled from a common spot w/ settings (#14537)
Co-authored-by: Clint Rutkas <crutkas@microsoft.com>
2021-11-19 09:43:45 -08:00
Niels Laute
dfb5736ac0 [Settings] Add visual preview of appearance settings for FZ (#14499)
* Adding visual preview

* UI tweaks

* Update FancyZonesPage.xaml

* Update FancyZonesPage.xaml

* Tweaked margins

* UI tweaks

* show desktop wallpaper

* fix spellcheck

Co-authored-by: Laute <Niels.Laute@philips.com>
Co-authored-by: Davide <davide.giacometti@outlook.it>
2021-11-18 20:35:07 +01:00
Jaime Bernardo
04a72ed947 [FindMyMouse]show on all virtual desktops (#14504) 2021-11-18 11:43:54 +00:00
Davide Giacometti
105f94690d [Settings]bring up maximized window fix (#14510) 2021-11-18 11:38:16 +00:00
Niels Laute
36bbce78d7 Update VideoConference.xaml (#14502)
Co-authored-by: Laute <Niels.Laute@philips.com>
2021-11-18 11:15:50 +00:00
FLOAT4
5a9f52fb11 [FancyZones] Bypass restriction on SetForegroundWindow (#14383)
Co-authored-by: float4 <float4-unspecified-mail>
2021-11-18 09:16:04 +00:00
Stefan Markovic
5a4822f89e [PowerRename] Tweak UI and fix performance issues (#14365)
* Init

* Update MainWindow.xaml

* Add identation

* Remove template selector

* Vertical UI

* Update PowerRenameUILib.vcxproj

* Revert "Vertical UI"

This reverts commit d0b3d264fb.

* Revert "Update PowerRenameUILib.vcxproj"

This reverts commit ba18503db2.

* Tweaks to margins

* Updated tweaks

* Update MainWindow.xaml

* Wire counters

* Improve perf: Constant O(1) find-item-by-id time instead of O(n)

Co-authored-by: Laute <Niels.Laute@philips.com>
2021-11-17 10:57:22 +01:00
Franky Chen
c934127d84 [PT Run] Support for application URI (#14391)
* [RUN] Add support for uri with scheme only

* Fix typo

* Add full support for application URI

* Apply suggestions from code review and add tests

* [PT Run] Add support for application uri

* Update error message

* Adapt the icon if the result is web URI

* Update icons for application URI

* Update icons for application URI (dark mode)

* Update icon
2021-11-16 22:06:45 +00:00
Stefan Markovic
2128b88571 [PowerRename] Add PowerRename.exe metadata (#14465)
* Add PowerRename.exe metadata

* Remove unneeded stuff
2021-11-16 17:15:18 +01:00
Stefan Markovic
84d361e8a9 [Settings]TabStop in General page only if element is opened (#14480) 2021-11-16 16:10:43 +00:00
Davide Giacometti
c7381cf1d5 PT Run plugins directories alignment (#14462) 2021-11-16 16:09:18 +00:00
gyro永不抽风
11354a45ce [doc]Rename master -> main in the link (#14445) 2021-11-15 16:33:12 +00:00
Franky Chen
7703991f4c Fix spellcheck typos (#14426) 2021-11-15 16:32:34 +00:00
FLOAT4
9bb6d57515 [FancyZones] Cleanup (#14274)
* [FancyZones] Remove obsolete code

The field `m_zoneSets` is unused, and may be removed.

* [FancyZones] Remove obsolete code

The field `m_windows` is unused, and may be removed.

* [FancyZones] Move adjustment of `RECT` to utils.cpp

By doing so, also fix a bug where a non-`WS_SIZEBOX` window (a window that should not be resized) was resized (and not properly resized) if it was zoned into more than one zone.

* [FancyZones] Complete rename `ZoneWindow` -> `WorkArea`

Fix leftovers from "[FancyZones] Rename ZoneWindow -> WorkArea (#12223)"

* [FancyZones] Refer to the move/size action as dragging

* [FancyZones] Rename `ActiveZoneSet` -> `ZoneSet`

There is only one zone set used by a work area.

* [FancyZones] Rename `zoneUuid` -> `layoutUuid`

The variable holds the UUID of the layout (not of a zone).

Co-authored-by: float4 <float4-unspecified-mail>
2021-11-11 17:23:22 +00:00
Jacob Deuchert
0aa213a31d [PT Run][VSCode] Add DevContainer workspaces to search results (#14313)
* [PT Run] (VSCode Workspaces Plugin)  Added devcontainers

* [PT Run] (VSCode Workspaces Plugin)  Added localization for dev container workspace type

* [PT Run] (VSCode Workspaces Plugin)  Streamlined result title for different workspace types
2021-11-11 14:06:59 +00:00
yuyoyuppe
bef119b03b [Setup] Add logging for registry changes + add logger for powerpreview
- cleanup logger project + remove SettingsAPI dependency
2021-11-11 15:00:43 +03:00
yuyoyuppe
d036740c8b [BugReportTool] Fix notification activator registry path 2021-11-11 15:00:43 +03:00
Heiko
2c9b86d873 [PT Run] [Settings plugin] Add new settings (#13746)
* Add entries for settings tools (#13741)

* Add UAC entry (#13743)

* fix typo

* Add entries for environment vars (#13734)

* fix typos

* fixes

* Improvements

* fix resource strings

* Fix merge conflicts

* update system env vars command

* fix json schema

* Update settings

* fix typo

* add firstResultScore

* fix typos
2021-11-10 16:38:27 +00:00
Heiko
fb97ce040b [PT Run] Improvements on EnvironmentHelper and deletion of old env vars (#13363)
* Improve log message

* New method

* changes made so far

* code cleanup and new method

* fix method name

* final changes so far

* Code cleanup and typo fixes

* fix bugs and code cleanup

* fix typo

* rename Method

* fix cast exception

* fix type casting

* exception handling for testing

* Update path var name#

* make collections case insensitive

* fix spelling

* add code to update names

* improve comments

* exception handling and logging

* update comments

* final changes

* fix typo

* Update comments

* add summary to IsRunningAsSystem method

* update var and fix typos

* Update code

* add log warning for protected vars

* add comment

* fix bugs

* small change

* Update log text

* Skipp logging for USERNAME
2021-11-10 16:38:03 +00:00
Jaime Bernardo
c2adab0716 [ImageResizer]Sanitize target file name (#14040)
* [ImageResizer] Sanitize target file name

* Add a test

* Avoid not recommended file names
2021-11-08 16:43:50 +00:00
AnonymousWP
06882b4fbd [VCM]Fixed typo of string regarding feature (#14309) 2021-11-08 12:46:56 +00:00
Stefan Markovic
079a3b49de Add logging for PowerRename (#14249)
* Add logging for PowerRename

Move call tracer to common/utils/logger
Add logging to both PowerRename dll and PowerRenameUIHost
Add PowerRename to BugReportTool event viewer collection

* Log more errors and exceptions
2021-11-08 13:02:56 +01:00
Jaime Bernardo
c9dca6802e [FindMyMouse]Account for low double click settings (#14291) 2021-11-08 11:36:38 +00:00
Niels Laute
019c05c8e4 [Shortcut Guide] UI tweaks (#14215)
* New SVGs

* Updated tooltips

* Tweaks

* Portrait mode updates

Co-authored-by: Laute <Niels.Laute@philips.com>
2021-11-05 19:30:30 +01:00
Stefan Markovic
159629372d Unify processes list in BugReportTool source (#14269) 2021-11-05 16:44:39 +01:00
Jaime Bernardo
3a6dd45741 [Telemetry] Add basic interaction events to FZ (#12793)
* [Telemetry] Add basic interaction events to FZ

Adds some basic interaction events to FancyZones, such as:
- Starting the drag Window movement.
- A newly created window snapping to a zone.
- Using the Keyboard to snap or extend to a zone.

* Update src/modules/fancyzones/FancyZonesLib/FancyZones.cpp

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

* Update trace.cpp

* Rename EventSnapNewWindowIntoZone

* Adjust event names according to PR feedback

Co-authored-by: Seraphima Zykova <zykovas91@gmail.com>
2021-11-04 16:53:36 +00:00
Davide Giacometti
e19ecd2ba1 [FancyZones] Use accent color and theme (#14158)
* use accent color and theme

* typo

* Updated FZ color UX (#14171)

Co-authored-by: Laute <Niels.Laute@philips.com>

* fix resources

* rebase fix

* label updated

Co-authored-by: Niels Laute <niels.laute@live.nl>
Co-authored-by: Laute <Niels.Laute@philips.com>
2021-11-04 14:30:06 +00:00
Seraphima Zykova
3ead98a770 [Settings.UI.UnitTests][FancyZones] Uncomment test in CI (#14230)
* uncomment test

* fix typo
2021-11-03 18:06:29 +00:00
CleanCodeDeveloper
9ca32aa3ea [Image Resizer] Add option to remove metadata (#14176)
* Implements option to remove metadata (see #1928)

* Add unit test

* renamed settings switch, update ui text

* Fix exception type, add justification for swallowing exception

* Add unit test to check handling if no metadata is there in targetfile

* Reordered the checkboxes as suggested by @htcfreek

* Reduced size of test image
2021-11-03 18:05:35 +00:00
FLOAT4
9d9df949ef Add keyboard shortcuts (without GUI) for switching windows in the same zone (tabs) (#13973)
Authored-by: float4 <float4-unspecified-mail>
2021-11-03 16:11:42 +01:00
Franky Chen
cd5c22aaa1 Resolved #14236 (#14243) 2021-11-03 14:01:08 +01:00
Clint Rutkas
39a03d876e Update config.yml 2021-11-02 17:04:41 -07:00
yuyoyuppe
992833bdc9 [Setup] Update dotnet to 3.1.20 2021-11-02 19:18:57 +03:00
Niels Laute
e2c8880363 [PowerRename] Added KeyboardAccelerator + set default width/height (#14157)
* Added acceleratorkey (enter) and fixed width/height

* Update PowerRenameUIHost.cpp

* Added additional modifier

Co-authored-by: Laute <Niels.Laute@philips.com>
2021-11-02 15:08:50 +01:00
Stefan Markovic
e6a7f9193b [PT Run] If only delayed results available, select first (#14209) 2021-11-02 14:04:17 +01:00
Stefan Markovic
3dc85595b1 Installer - Add PowerRename Runtime dependency (#14183) 2021-11-02 11:47:34 +01:00
Davide Giacometti
cb4f4ff89c [Chore] Fix preview pane build warnings (#14049) 2021-11-02 10:16:38 +00:00
Davide Giacometti
fe85ee5307 [Settings] Fix default settings window size with zoom (#14199) 2021-11-02 10:16:03 +00:00
Dustin L. Howett
fa3a5f80a1 Prepare for renaming master -> main (#13235)
This commit replaces all references to PowerToys' master branch
with "main" in documentation, code and build rules.

- [x] **Linked issue:** #5433
- [x] **Communication:** I've discussed this with core contributors in
  the issue. 
- [ ] **Tests:** Added/updated and all pass (not applicable)
- [ ] **Installer:** Added/updated and all pass (not applicable)
- [ ] **Localization:** All end user facing strings can be localized
  (not applicable)
- [x] **Docs:** Updated
- [x] **Binaries:** Any new files are added to WXS / YML
   - [x] No new binaries
2021-11-01 12:21:47 -05:00
Stefan Markovic
a881e6b3d5 Put UpdateResultsListViewAfterQuery calls logic with inside addResultLock blocks (#14078) 2021-11-01 17:16:57 +01:00
R. de Veen
e62df46c61 Update image of file explorer settings page with pdf settings (#14051) 2021-10-30 07:49:02 -07:00
yuyoyuppe
24d853966f [Settings] Fix localization resource include path 2021-10-29 20:06:57 +03:00
Franky Chen
b87e51567e [meta]Add Video Conference Mute to the issue template and remove link to 6246 (#14059) 2021-10-29 14:27:53 +01:00
Franky Chen
3a48fa03a5 [Settings] Capitalize English word (#14060) 2021-10-29 14:16:43 +01:00
Jaime Bernardo
ebad5364b9 [FindMyMouse]Minimum delay and left ctrl exit (#14045)
* [FindMyMouse]Minimum delay and left ctrl exit

* Update mouse snooping as well.
2021-10-29 12:45:04 +01:00
Stefan Markovic
3720d559a3 Fix ColorPickerEditor keyboard navigation (#14033) 2021-10-29 10:52:41 +02:00
Aaron Junker
522e6b8001 Fixed typo in readme (#14062) 2021-10-28 22:32:18 -07:00
Deondre Davis
32a8936fc6 V0.49 Readme update (#14025)
* V0.49 Readme update

v0.49 Update

* Minor updates

* Update README.md

* Update README.md

* Update README.md

Co-authored-by: Franky Chen <franky920920+gpg@gmail.com>

* Update README.md

Co-authored-by: Franky Chen <franky920920+gpg@gmail.com>

* Update README.md

Co-authored-by: Franky Chen <franky920920+gpg@gmail.com>

* Update README.md

Co-authored-by: Jay <65828559+Jay-o-Way@users.noreply.github.com>

* Update README.md

* Update README.md

Co-authored-by: Jay <65828559+Jay-o-Way@users.noreply.github.com>

* Update README.md

Co-authored-by: Franky Chen <franky920920+gpg@gmail.com>
Co-authored-by: Jay <65828559+Jay-o-Way@users.noreply.github.com>
Co-authored-by: Clint Rutkas <clint@rutkas.com>
2021-10-28 12:14:39 -07:00
Jaime Bernardo
fe8dfc7da3 [meta]Add mouse utilities to issue template (#14046) 2021-10-28 19:40:03 +01:00
Franky Chen
4dc0a4c8c6 [Logs]Fix typo found by bot (#14009) 2021-10-27 10:39:25 +01:00
Jaime Bernardo
df8aa42ee4 [OOBE] Link to VCM settings page (#14006) 2021-10-27 09:05:23 +01:00
Jaime Bernardo
c4951dc605 [File Explorer] Fix restart as admin notification (#14004) 2021-10-27 09:05:09 +01:00
Stefan Markovic
a5edc29be7 Announce delete dialog (#13994) 2021-10-27 09:42:17 +02:00
Niels Laute
2c608c5a92 Update ImageResizerPage.xaml (#13995)
Co-authored-by: Laute <Niels.Laute@philips.com>
2021-10-26 11:34:04 +02:00
Niels Laute
8e0af3fc27 [ColorPicker] HEX format tweak (#13989)
* Added HEX2

* Revert "Added HEX2"

This reverts commit 6d7b23fd74.

* Lowercase HEX without hash

* Update ColorRepresentationHelper.cs

* Update expect.txt

Co-authored-by: Laute <Niels.Laute@philips.com>
2021-10-26 10:30:31 +02:00
Jaime Bernardo
af8366f0fe [FindMyMouse]Do not activate on game mode (#13990)
* [FindMyMouse] Do not activate on game mode

* Add settings scaffolding

* fix spellchecker

* Address PR comments

* Adress UI feedback
2021-10-25 19:39:48 +01:00
Davide Giacometti
db90802e6e [Settings]restore window size and position (#13912) 2021-10-25 19:23:36 +01:00
yuyoyuppe
59108365f1 [Setup] Always elevate bootstrapper to avoid multiple UAC prompts on upgrade 2021-10-25 19:59:19 +03:00
yuyoyuppe
092ee49139 [PowerPreview] simplify and use modulesRegistry API 2021-10-25 19:59:19 +03:00
yuyoyuppe
c324cd5953 [Setup] Implement modulesRegistry API 2021-10-25 19:59:19 +03:00
Stefan Markovic
5cfbd72fa8 [PowerRename] Fluent UX (#13678)
* PowerRename new UI

* Add scrollviewer

* Don't deploy PowerRenameUI_new

* Visual updates

* Visual updates

* Updates

* Update Resources.resw

* Added docs button

* Update MainWindow.xaml

* Wire Docs button

* RegEx -> regular expressions

* Update Show only renamed list on search/replace text changed

* Update Show only renamed list on search/replace text changed - proper fix
Set searchTerm to NULL when cleared - fix Show only renamed files on clear searchTerm

* Files/folders input error handling

* Fix renaming with keeping UI window opened

After renaming folder, all of it's children need path update.
Without path update, further renaming of children items would
fail.

* Update only children, not all items with greater depth

* Fix dictionary false positives

* Remove .NET dep

* Rename PowerRenameUI_new to PowerRenameUILib
Rename executable PowerRenameUIHost to PowerRename

Co-authored-by: Laute <Niels.Laute@philips.com>
2021-10-25 14:40:19 +01:00
Seraphima Zykova
ce942b0585 [FancyZones Editor] Crash fix (#13930) 2021-10-25 11:05:44 +01:00
Seraphima Zykova
91ed50d993 [FancyZones Editor] Logger (#13928) 2021-10-25 08:56:00 +01:00
Stefan Markovic
a93dc423f0 Announce opening Edit Layout dialog (#13963) 2021-10-22 17:29:02 +02:00
Niels Laute
399df8ab68 [Settings] Fixing ColorPickerButton a11y bugs (#13961)
* Added ColorPickerButton control

* Updated styles

* Narrator support

* Update IsEnabledTextBlock.xaml

Co-authored-by: Laute <Niels.Laute@philips.com>
2021-10-22 17:15:17 +02:00
Jaime Bernardo
8d383cba9d Mouse Utils - Find My Mouse (#13916)
* Initial FindMyMouse implementation

* Proper enable/disable code

* Settings page

* Change FindMyMouse window name

* Add Oobe page.

* Add icons

* Change settings preview

* Fix mouse utilities aka.ms link spelling

* Remove right control exit behavior

* Remove dllmain boilerplate comments and code

* Add filters to vcxproj

* Add logging

* Add telemetry

* Add installer instructions

* Add dll to pipelines

* Fix Task Manager name for runner changing

* Add a description in dllmain

* Proper resource file creation

* Add reference of link to the docs

* Fix spellchecker errors

* Call DestroyWindow on correct thread

* Add attribution

* Proper ordering of module in Settings and Oobe

* Update Target Platform Version to 18362

* Fix project filters

* Add attribution to Community.md

* Lowercase "utilities"

* [Mouse utils] Adding icon (#13933)

* Adding images to docs folder

* Updated imagery

Co-authored-by: Laute <Niels.Laute@philips.com>

* Add settings deeplink

Co-authored-by: Niels Laute <niels.laute@live.nl>
Co-authored-by: Laute <Niels.Laute@philips.com>
2021-10-22 13:30:18 +01:00
Clint Rutkas
dadb12a6e5 Update README.md (#13946) 2021-10-21 16:11:11 -07:00
Deondre Davis
d7cecc1d8c Update README.md (#13914)
* Update README.md

* Apply suggestions from code review

Co-authored-by: Franky Chen <franky920920+gpg@gmail.com>

Co-authored-by: Clint Rutkas <clint@rutkas.com>
Co-authored-by: Franky Chen <franky920920+gpg@gmail.com>
2021-10-21 09:46:28 -07:00
Stefan Markovic
5b76668cbe Screen reader announces role and state for Awake tray menu items (#13904) 2021-10-21 17:08:58 +02:00
Davide Giacometti
64cc6b7af7 [PT Run] [Folder Plugin] Environment Variables With Autocomplete (#13811)
* search environment variables folders with autocomplete

* refactoring and tests

* fix
2021-10-20 14:27:15 +01:00
Andrey Nekrasov
15f3c2ff66 [CI] sign VideoConferenceProxyFilter_x86.dll artifact (#13926) 2021-10-20 13:59:34 +03:00
Niels Laute
0e5c654d5b [Settings] Reduce ambiguity of some settings (#13882)
* Improved FancyZones setting

* Image Resizer update

* PowerRename

* Update Resources.resw

Co-authored-by: Laute <Niels.Laute@philips.com>
2021-10-19 15:54:44 +02:00
Stefan Markovic
de446c4240 Don't focus InfoBar if not open (#13895) 2021-10-19 15:09:34 +02:00
Niels Laute
4f335b9471 [Settings][Chore] Add CheckBoxWithDescriptionControl (#13866)
* Added new control

* Update Microsoft.PowerToys.Settings.UI.csproj

* Added styling

* Add enableableTextBlock

* Update EnableableTextBlock.xaml

* Updated styles

* Updates styles

* Updated margins

* Name change and typo fix

* Update App.xaml

* Control name change

* Update expect.txt

* More name changes

* Even more name changes

Co-authored-by: Laute <Niels.Laute@philips.com>
2021-10-19 13:44:13 +02:00
pritu
6269aa6398 [docs]Made keys looks like an actual keys (#13799)
* Update README.md

* Apply suggestions from code review

Co-authored-by: Franky Chen <franky@frankychen.net>

* Update README.md

Co-authored-by: Clint Rutkas <clint@rutkas.com>
Co-authored-by: Franky Chen <franky@frankychen.net>
2021-10-14 15:27:10 +01:00
Tobias Sekan
da0b96a5ad [WindowsSettings] DevDocs + JSON schema (#13510)
* #10997 - Added JSON schema and extra shell class

* #13510 - Address feedback and fix wrong typo for a member

* #13510 - Add DevDoc (first version)

* #13510 - make spellcheck happy

* #13510 Address feedback, add scores, replace todos

* Make build server happy

* #13510 - Address feedback - Extra table for keys

* #13510 - Address feedback

* #13510 -Address feedback, add language specified

Co-authored-by: Sekan, Tobias <tobias.sekan@axp-consulting.de>
2021-10-14 15:17:41 +01:00
Franky Chen
db1318fed1 [PTRun][URI]Add test case for #13760 (#13795) 2021-10-13 22:16:56 +01:00
Clint Rutkas
a0cacb5553 Update README.md 2021-10-12 10:41:35 -07:00
Stefan Markovic
6cc8da120f [PT Run] Align SelectedIndex and SelectedItem (#13702)
* Set SelectedIndex to 0 after delayed execution of plugins

* Revert "Set SelectedIndex to 0 after delayed execution of plugins"

This reverts commit 5397d0f1fa.

* Align hovered and selected item
2021-10-12 18:10:52 +02:00
csigs
35ca90b8f2 LEGO: check in for master to temporary branch. (#13739) 2021-10-12 15:33:27 +01:00
Stefan Markovic
65e5b40223 Use modules relative path (#13774) 2021-10-12 14:03:36 +02:00
Niels Laute
4803180bcf [Image Resizer] Add settings button (#13773)
* Add deeplink

* Update InputPage.xaml

Co-authored-by: Laute <Niels.Laute@philips.com>
2021-10-12 13:23:06 +02:00
Stefan Markovic
7e8e954de7 Move Settings deep link logic to Microsoft.PowerToys.Common.UI (#13749)
* Move Settings deep link logic to Microsoft.PowerToys.Common.UI

* Spellcheck

* Introduce enum

* Remove PT path arg
2021-10-12 10:35:52 +02:00
Niels Laute
0ca9b1be48 [Color Picker] Open settings (#13747)
* Add settings

* Added try catch and icon update

Co-authored-by: Laute <Niels.Laute@philips.com>
2021-10-11 18:03:40 +02:00
Niels Laute
85eddfc536 [FZ Editor] Open settings (#13727)
* Deeplink support

* Fixes

* Typo fix

* Update MainWindow.xaml.cs

Co-authored-by: Laute <Niels.Laute@philips.com>
2021-10-11 17:39:01 +02:00
Seraphima Zykova
0ab0fb5dd4 [FancyZones] Reset layouts after screen locking fix (#13703) 2021-10-11 11:33:09 +01:00
Jaime Bernardo
6705fb453e [PTRun][Program] Avoid looping on folder cycles (#13685) 2021-10-11 10:43:56 +01:00
Deondre Davis
2c58475d61 SCOOBE Spec (#13138)
* Create SCOOBE.md

* Spec & expect update

* Update SCOOBE.md

* Added images
2021-10-07 09:57:29 -07:00
Andrey Nekrasov
a381a64b31 [VCM] Activate the module (#13662) 2021-10-07 16:48:45 +03:00
Jaime Bernardo
68c199aa64 [KBM Editor] Catch UpdateLayout exceptions (#13635) 2021-10-06 15:54:15 +01:00
Davide Giacometti
805d8d81c5 Fix ColorPicker editor and OOBE FancyZones snap (#13598) 2021-10-06 14:37:33 +01:00
Stefan Markovic
063beddb01 [PT Run] Check for invalid plugin additional option (#13632)
* Check for dictionary null key value

* Combine condition in a single if statement
2021-10-05 15:18:45 +02:00
Seraphima Zykova
59aa9c5474 [FancyZones] Change layout using a shortcut (#13616) 2021-10-05 12:11:45 +01:00
Jaime Bernardo
a32206a6fb [ci] fix build - no PTRun Terminal loc files (#13630) 2021-10-05 11:38:58 +01:00
Seraphima Zykova
bec0dc3c0b [FancyZones Editor] Prevent opening content dialog twice (#13621) 2021-10-05 10:55:23 +01:00
Davide Giacometti
cf2ec690db [PT Run] Windows Terminal Plugin (#13367)
* run windows terminal plugin

* fixes
2021-10-04 23:45:41 +01:00
Franky Chen
7daf35d898 Https scheme fix, merging #12790 (#13606)
* HTTPS by default, HTTP only if specified

* Added/Updated unit tests;Added FTPS

* Added confirmation to system messages such as shutdown, reboot, and lock

* Corrected Typo

* Added confirmation to system messages such as shutdown, reboot, and lock

* Corrected Typo

* Made changes requested by @mykhailopylyp

* Further changes per review by mykhailopylyp

* Fixes per code review

* Changes per Mykhailopylyp

* Fix all schemes being replaced with HTTPS

Added new tests

* Merging conflicts

* Add ftp to fix spell-check

* Fix unit tests

Co-authored-by: chrisharris333 <60838650+chrisharris333@users.noreply.github.com>
Co-authored-by: Chris Harris <chris.harris@mytinycloud.com>
2021-10-04 18:56:27 +01:00
csigs
9d3c5e50d6 LEGO: check in for master to temporary branch. (#13610) 2021-10-04 18:16:09 +01:00
Davide Giacometti
9cc0c4f874 preserve msi name (#13597) 2021-10-04 16:01:40 +03:00
Niels Laute
fe1ee08df4 [Settings] A11y fixes (2) (#13534)
* Replace radiobuttons with combobox

* Update Resources.resw

* Replaced radiobuttons with ComboBox

* Update ColorPickerPage.xaml

* Updates

* Typo fixes

* PR feedback

Co-authored-by: Laute <Niels.Laute@philips.com>
2021-10-03 16:48:50 +02:00
Jaime Bernardo
84b2ae3e8f [PT Run] Add setting to use centralized keyboard hook (#13557)
* [PT Run] Add setting to use centralized hook

* Add UI separator
2021-10-01 14:59:52 +01:00
Andrey Nekrasov
55054f1fa6 [ColorPicker] Accessibility: announce color format for "Copy to clipboard" button (#13558) 2021-10-01 16:53:56 +03:00
Jaime Bernardo
8aae821e59 [Shortcut Guide] Suppress Windows Menu appearing (#13553)
* Get the new settings values

* Suppress windows menu appearing

* Send new settings telemetry

* Address PR comments
2021-10-01 14:46:55 +01:00
Niels Laute
d646edee08 [Settings] A11y fixes (#13533)
* Added support for headers narrator announcement

* Added name to info button

* Added tabstop support to Infobars

* Adding TabStop

* Added headinglevels

* Replace radiobuttons with combobox

* Revert "Replace radiobuttons with combobox"

This reverts commit 4e57795409.

Co-authored-by: Laute <Niels.Laute@philips.com>
2021-10-01 15:11:09 +02:00
Jaime Bernardo
b0d35f5ef8 Fix for WPF DPI issue on .net 3.1.19 (#13551) 2021-10-01 14:03:04 +01:00
Andrey Nekrasov
34e81fdf87 [Docs] Add msix embedding instructions (#13489) 2021-09-30 14:29:05 +03:00
Deondre Davis
5696f22951 v0.47 Updates (#13496)
* Update README.md

* Typos

* Update README.md

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

* Update README.md

* Update README.md

* Update README.md

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

* Update README.md

* Update expect.txt

Checking what's causing the build error.

Co-authored-by: Heiko <61519853+htcfreek@users.noreply.github.com>
2021-09-29 10:07:55 -07:00
Stefan Markovic
8853adda62 [runner] Enable opening specific settings page (#13476)
* [runner] Enable opening specific settings page

* Error handling

* Spellcheck

* Address PR comments
2021-09-29 12:54:05 +02:00
Jaime Bernardo
1984b3747e [PTRun][Services] Search for result full title (#13492) 2021-09-29 11:50:40 +01:00
Jaime Bernardo
c85fa98bcc [PT Run] Fix some keyboard issues on plugin (#13490)
* Don't use enter for accelerator keys in results

Enter is already used to select commands in the context menu in the
result entries.

* Don't crash when trying to show a tooltip

* Clear hanging tooltips when keyboard navigating

* Starting/stopping service on Enter
2021-09-28 15:30:44 +01:00
Clint Rutkas
7874b77104 Add how to using PT links in readme and support (#13426)
* Update README.md

* Update README.md

* Update SUPPORT.md
2021-09-27 09:55:43 -07:00
Niels Laute
bc7d1bc7b2 [ColorPicker] Fix contrast issue (#13450)
* Update ColorFormatControl.xaml

* Update ColorFormatControl.xaml
2021-09-27 16:03:14 +01:00
Jaime Bernardo
26e8d0d976 [OOBE] Fix starting PowerToys Run (#13455) 2021-09-27 15:55:00 +01:00
Seraphima Zykova
acadd069e8 [FancyZones Editor] Fix the editor crash (#13463) 2021-09-27 15:35:33 +01:00
csigs
6e4a5a4bb6 LEGO: check in for master to temporary branch. (#13461) 2021-09-27 15:20:23 +01:00
Jaime Bernardo
6212c1bb80 [Color Picker] Increase width of editor window (#13420) 2021-09-24 16:54:58 +01:00
Ruben Fricke
3358fd9b02 [Color Picker] Feature/lab color representation (#12935)
* Created logic to convrt RGB to CIELAB (with intermediate step to CIEXYZ)

* Added CIELAB to the available color representation types

* Created tests for the color conversion from RGB to LAB (and for RGB to XYZ)

* Update ColorPickerViewModel to keep the L*a*b* format the same

* Improved variable names & comment

* Remove url from color converting website to avoid unnecessary license issues

* Removed typo of the wrong variable

* Added expected words into dictionary

* Added links to explain used formulas

* Added CIE XYZ color space

* Added 'SRGB' to the dictionary

* Updated the range for the X and Z value in the CIE XYZ color space comments

* Fixed XYZ to LAB calculations

* Changed output format for CIELAb

Changed L*a*b*(L,a,b) to CIELab(L,a,b)

* Changed output in tests

* Fixed tests

* Added extra accuracy

* Add decimal places to cielab and ciexyz formats

Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>
2021-09-24 16:54:44 +01:00
Andrey Nekrasov
88e24263cf [Setup] Don't force default installer location when it wasn't specified (#13397) 2021-09-23 18:09:52 +01:00
Jaime Bernardo
d7098e87ee [PTRun] Fix crash when shutting Windows down (#13401) 2021-09-23 18:09:38 +01:00
Seraphima Zykova
64ecb553e4 [CI] fix build for include sstream (#13400) 2021-09-23 18:09:24 +01:00
Seraphima Zykova
2130cef3a9 [FancyZones Editor] Fix crash on closing after deleting a custom layout. (#13394) 2021-09-23 16:24:24 +01:00
Jaime Bernardo
f647223e94 [Shortcut Guide] Activate with Windows key press (#13342)
* [Shortcut Guide] Activate with Windows key press

* fix spellchecker

* pr comments: fix search and add lock

* Add activation method combo box

* fix spellchecker issue for customized

* Standardize centralized hotkeys file names

* Add warning when using the long win key method

* Address PR feedback on text

* More PR feedback
2021-09-23 14:23:22 +01:00
Heiko
a0ebe5ed54 [Code refactoring] Make code comment and NullOrEmpty check more clear (#13352)
* Clarify code

* grammar fix

* comment change
2021-09-22 22:43:28 +01:00
Seraphima Zykova
b05378cdf7 [FancyZones] Reset zone settings after restart fix. (#13322)
* updated virtual desktop retrieving

* save with null-guid

* moved guid utils

* moved DeviceIdData related functions

* replaced strings with data structs

* default value

* clean up

* save app zone history with zones settings

* compare with null guid

* updated tests

* refactoring

* logs

* sync vd ids

* logs

* refactoring

* check virtual desktop id

* OnDisplayChange call

* compare device ids in editor
2021-09-22 22:39:48 +01:00
Seraphima Zykova
423faf7af1 [FZ Editor] "Save" and "Cancel" buttons are hidden in the grid layout editor (#13337)
Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>
2021-09-22 14:38:46 +01:00
Heiko
f9bb7ba270 [ImageResizer] Default values for new size (#13285)
* Code changes

* small fix in unittests

* Add new Unit Test

* Fix tests

* fix typo

* remove unused code from unit test

* Update resource string name

* Add name counter

* comment update

* Update tests
2021-09-21 23:55:42 +01:00
Clint Rutkas
4bc2de7b7b Store readme update (#13267)
* Update README.md

* Update README.md

* Update README.md

* Update akaLinks.md

* Update excludes.txt

ignoring aka link page

* Update README.md

* Update README.md

* Update README.md

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

Co-authored-by: Heiko <61519853+htcfreek@users.noreply.github.com>
2021-09-21 10:07:01 -07:00
Niels Laute
d199b41937 [Image Resizer] ComboBox UI (#13321)
* UI updates

* Added combobox

* Updated UI

* Updated UI

Co-authored-by: Niels Laute <niels9001@hotmail.com>
2021-09-21 18:44:48 +02:00
Andrey Nekrasov
7fe63cdb50 [Setup] add support for embedded MSIX packages (#13263) 2021-09-21 15:15:59 +03:00
csigs
f4531130b6 LEGO: check in for master to temporary branch. (#13317) 2021-09-20 21:50:10 +01:00
Davide Giacometti
c6a24b3907 [PT Run][Registry] handle invalid base keys (#13284) 2021-09-20 11:35:39 +01:00
Niels Laute
2c44cc9cd2 [Settings] UI bugfixes (#13260)
* Fixed HyperlinkButton style

* Bugfixes to NavView

* Update ShellPage.xaml

* Replaced Windows 10 with Windows

* Updated strings

* Tweaks

* Reducing gif file sizes

* Add InfoBadge

* Updated ImageResizer UI

* Updated strings

* Updated string

* Update KBM.gif

* Updated icons

* Update KeyVisual.xaml

Co-authored-by: Niels Laute <niels9001@hotmail.com>
2021-09-19 16:22:39 +02:00
Jaime Bernardo
739737dc2b Adding in Heiko to community.md (#13251)
* Adding in Heiko to community.md

* fix spellchecker
2021-09-17 15:50:21 +01:00
Jaime Bernardo
6bd0840863 [PT Run][Registry] show no results on query fail (#13244) 2021-09-17 15:49:40 +01:00
Jaime Bernardo
323f41d14b [ci] Fix pdf thumbnail unit tests flakiness (#13248)
* [ci] reduce pdf preview and thumbnail flakiness

* [ci] run pdf thumbnail tests

* [meta] add pdf modules to new issue template
2021-09-16 18:02:50 +01:00
Jaime Bernardo
8115a709e9 [Settings] Upgrade WinUI to 2.7.0 (#13226) 2021-09-16 17:16:01 +01:00
Heiko
b0344f1426 [PT Run][Installer] Add loc files for settings plugin (#13241) 2021-09-16 15:31:30 +01:00
Heiko
9fb663210d [PT Run] EnvironmentHelper: Adding logging and error handling (#13205)
* Add error handling and logging

* improvements

* fix typos

* comment updates

* fix typos
2021-09-16 11:17:33 +01:00
Dustin L. Howett
881b1da6a7 Move away from the legacy windevbuildagents pool (#13218)
There is an internal requirement that we move to build agents that we
don't run ourselves. This discharges us of that requirement!

We're switching between the WinDevPool pool and the WinDevPoolOSS pool
based on whether this code is being built in the open-source tenant or
the internal/private one.
2021-09-15 18:30:01 -05:00
Heiko
8e350ca4a7 [PT Run] Settings plugin: Settings path filter and bug fixes (#13151)
* Create filter method

* adding call of new method

* solve bug #13150

* fixes and comment updates

* fix typos

* Update filter method

* Improve performance on empty queries

* fix typos
2021-09-15 18:37:36 +01:00
Deondre Davis
a0a355c3a7 Update README.md for v0.46 release (#13210)
* Update README.md

* Update README.md
2021-09-14 10:00:28 -07:00
R. de Veen
7ac1e00d01 [FileExplorer] Add PDF Thumbnail Provider for Windows Explorer (#13058)
* Add PdfPreviewHandler to build dependency of runner

* PDF Thumbnail Provider

* Remove using brackets

* Pdf Thumbnail - Settings and Unit Tests

* Removed resx

* Add PDF Thumbnail Provider binary

* Install Pdf Thumbnail Provider

* Fix pagee spelling error.

* Update Windows dependency to version 10.0.18362.0 because that is the minimal required version of the PowerToys.

* Add Pdf Preview Handler and Pdf Thumbnail Provider
2021-09-14 17:01:45 +01:00
csigs
7e22f26b52 LEGO: check in for master to temporary branch. (#13193) 2021-09-14 11:17:16 +01:00
csigs
4f02795c60 LEGO: check in for master to temporary branch. (#13192) 2021-09-14 11:17:07 +01:00
csigs
f430aff4af LEGO: check in for master to temporary branch. (#13191) 2021-09-14 11:16:56 +01:00
csigs
f05d64b01e LEGO: check in for master to temporary branch. (#13190) 2021-09-14 11:16:47 +01:00
csigs
cae6bdf437 LEGO: check in for master to temporary branch. (#13189) 2021-09-14 11:16:34 +01:00
csigs
7d8f7aafdd LEGO: check in for master to temporary branch. (#13188) 2021-09-14 11:16:17 +01:00
Jaime Bernardo
5d279ed22c [ci] restore bootstrapper nuget packages (#13201) 2021-09-14 11:11:22 +01:00
csigs
1edd52014e LEGO: check in for master to temporary branch. (#13183) 2021-09-13 14:22:43 +01:00
Davide Giacometti
1f2f247c1d Consolidate nuget packages (#13122)
* consolidate nuget packages

* updated wil nuget
2021-09-13 13:00:44 +01:00
Andrey Nekrasov
7c2a807278 [VCM] add comment how to enable the corresponding OOBE page (#13145) 2021-09-10 14:15:16 +03:00
Franky Chen
21c7374177 Fix typo #13117 (#13128)
* Fix typo #13117

* Fix typo in comments
2021-09-09 14:34:19 +01:00
lcjh
1495285a6a fix typo (#13116) 2021-09-09 14:32:54 +01:00
Andrey Nekrasov
bdeb96d0a7 [CI] Sign VCM x86 module dll (#13129) 2021-09-09 14:32:08 +01:00
Jaime Bernardo
5963294b04 [PowerToys Run] Use global HotKey instead of low level keyboard hook (#13114)
* [PowerToys Run] Register global HotKey

Using low level keyboard hooks caused focus issues when invoking
PowerToys Run. Using a global HotKey solves this issue.

* Properly unregister hotkey on dispose

* fix spellchecker errors
2021-09-08 18:39:51 +01:00
csigs
2c58bdbfb2 LEGO: check in for master to temporary branch. (#13073) 2021-09-08 17:27:48 +01:00
Davide Giacometti
f00bf7cf19 [Settings] update additional options for launcher plugins (#12920) 2021-09-06 23:19:00 +01:00
Davide Giacometti
2fe6282157 [PT Run] Option for system commands localization (#12939) 2021-09-06 23:18:14 +01:00
Niels Laute
a6cca7cfb0 [Settings] Shortcut UX redesign (#12977)
* Added dialog

* Added virtualkey logic

* Key logic in place

* Styling

* Updated layout

* Updated foreground

* Refactor

* Catching error handling

* Hotkey UI handling

* Spell check

* Adding shortcut visuals to OOBE

* INtroducing shortcutcontrol for OOBE

* Removed unneccasry comments

* OOBE fixes

* Fix

* Visual updates

* Update Product.wxs

* Updated UI

* Update Product.wxs

* Changes

* Changed installer file

* Fixed warner banner height

* Added visual key to KBR

* Updated margin

* pr 12977: fix installer issue (#13075)

Co-authored-by: Niels Laute <niels9001@hotmail.com>
Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>
2021-09-06 20:21:18 +02:00
Heiko
2bfc62d9a5 [PT Run] [WindowsSettings plugin] Translation improvements and LocProject.json (#13078)
* TranslationHelper: Update/add if conditions

* Resource strings: Update <ControlPanel>

* Creating <LocProject.json>
2021-09-06 18:17:20 +01:00
Heiko
dcc4563c8c [WindowsSettings Plugin] Improve subtitle and area naming (#12915)
* Update WindowsSettings clas

* Update TranslationHelper

* Adding ToDos to code

* Adding ToDo notes

* Introduce AreaPathHelper

* Small improvement

* Improve helper class

* Update ResultHelper

* Fix spelling

* adding todo marker

* Improve calling of <WindowsSettingsPathHelper>: Update class <WindowsSetting>

* Improve calling of <WindowsSettingsPathHelper>: Update helper class

* Improve calling of <WindowsSettingsPathHelper>: Implement method call

* TranslationHelper: Small fixes

* Fix scoring for areas property

* Fix search filters for area property

* small fixes

* Update WindowsSettings.json

* adding todos

* Code cleanup, improvements and fixes

* Small changes

* Update resource strings

* Fix msitakes

* Update settings

* resolve review feedback
2021-09-06 11:46:14 +01:00
Mykhailo Pylyp
a4f84844bc [Keyboard Manager] Alt+Tab navigation with arrow keys i (#12986)
* Draft

# Conflicts:
#	src/modules/keyboardmanager/KeyboardManagerEngineLibrary/KeyboardEventHandlers.cpp

* Handle key case

* Fix key count

* Remember if win key was pressed

* Don't search twice, remove redundant assignment

* spelling
2021-09-04 08:49:13 +03:00
Niels Laute
941221cba9 Added images (#13032)
Co-authored-by: Niels Laute <niels9001@hotmail.com>
2021-09-03 15:14:55 -07:00
Davide Giacometti
0b6d654ec8 Thumbnail handlers reload (#12996) 2021-09-03 21:24:23 +01:00
Jaime Bernardo
b8236d55e2 [KBM Editor] fix crash when mapping left and right modifier to the combined key. (#12999)
* [KBM Editor] Don't combine keys to same key

* Avoid crashes when flyouts can't be shown yet

* Disallow mapping of left or right key to combined

* Refactor remap to combined key check

* Add log message when flyout fails to load
2021-09-03 16:19:16 +01:00
Jaime Bernardo
4a1e21ac83 [KBM Editor] Remove UpdateLayout calls from shortcut UI (#12857)
* [KBM Editor] Remove updatelayout from shortcut UI

* Restore some UpdateLayout
2021-09-03 14:19:38 +01:00
csigs
ee69dc5e44 LEGO: check in for master to temporary branch. (#12952) 2021-09-03 10:56:44 +01:00
Deondre Davis
fd06c52dec v0.45 Updates (#12987)
* Update README.md

* Updated Readme and expect.text

* Update expect.txt

* Update README.md

* Update README.md

* Update README.md

Co-authored-by: Aaron Junker <vl5ktlnki@relay.firefox.com>

* Update README.md

* Update README.md

Co-authored-by: Clint Rutkas <clint@rutkas.com>
Co-authored-by: Aaron Junker <vl5ktlnki@relay.firefox.com>
2021-09-02 11:52:06 -07:00
Tamás Hegedűs
91910b4606 [Common] Removed outdated comment (#12994)
The retry loop has been removed as of https://github.com/microsoft/PowerToys/pull/12860 , but the comment stayed.
2021-09-02 15:00:43 +01:00
Andrey Nekrasov
f10faf004e [FancyZonesEditor]: Grid Editor keyboard control (#12969)
- Ctrl+Tab to switch between zones and layout overlay window
- Tab to focus between grid zones and resizers
- While resizer is focused: arrows to move it; Del to remove it
- While zone is focused: (Shift)+S to split it horizontally/vertically
2021-09-01 21:23:10 +03:00
Mykhailo Pylyp
f0750997de [Bug Report Tool] Zip folder can not be created (#12966) 2021-09-01 18:12:28 +03:00
Seraphima Zykova
f7333c89bb [FancyZones][Settings] "Allow zones to span across monitors" prerequisites description. (#12913) 2021-08-31 16:23:00 +01:00
Mykhailo Pylyp
19fb3fd56c Remove subset case as it is automaticly handled by more generic one (#12902) 2021-08-31 12:43:04 +03:00
Davide Giacometti
d197ddeb15 handling malformed json (#12942) 2021-08-30 20:37:04 +02:00
martinchrzan
46bfd2cdac Fixing the issue with HEX textbox not being updated with the correct RGB values (#12936)
* Fixing the issue with hex textbox not being updated with the correct values from RGB boxes #12931

* Update current color immediately when typing in RGB boxes #11108

* added expected words into dictionary
2021-08-30 09:44:21 +02:00
Seraphima Zykova
45b5545cf7 [OOBE] Updated KBM preview gif (#12932) 2021-08-27 18:41:09 +01:00
Niels Laute
e881043787 Updated strings for powerrename (#12927)
Co-authored-by: Niels Laute <niels9001@hotmail.com>
2021-08-27 16:40:53 +02:00
Seraphima Zykova
2b95eba51b check desktop id (#12930) 2021-08-27 14:59:04 +01:00
R. de Veen
4177708e49 Enable PDF files in preview pane (#9088)
## Summary of the Pull Request
This PR enables user to preview PDF files in the Explorer preview pane
and in Outlook. 

**What is this about:**
Windows does not support out of the box experience for previewing PDF
files in the preview pane. Users need to install third-party software
like Adobe Acrobat reader. The PdfPreviewHandler module enbales the user
to preview PDF files.

**How does someone test / validate:** 
Run the installer, open Explorer and select a PDF file, enable the
preview pane. Maybe need to remove third-party PDF software.

## Quality Checklist

- [X] **Linked issue:** #3548
- [ ] **Communication:** I've discussed this with core contributors in the issue. 
- [X] **Tests:** Added/updated and all pass
- [X] **Installer:** Added/updated and all pass
- [X] **Localization:** All end user facing strings can be localized
- [ ] **Docs:** Added/ updated
- [x] **Binaries:** Any new files are added to WXS / YML
   - [ ] No new binaries
   - [x] YML for signing
   - [x] WXS for installer
2021-08-26 16:43:26 -05:00
Niels Laute
da46b90457 [Settings] Settings UX enhancements (#12912)
* Update Colors.xaml

* Added warning icon to Run plugin

* Removed redundant name

* Added border

* Removed unused converter

* Update GeneralPage.xaml

Co-authored-by: Niels Laute <niels9001@hotmail.com>
2021-08-26 19:53:25 +02:00
Seraphima Zykova
e35568f63d [Fancy Zones] Restore Console Applications (#12905) 2021-08-26 20:47:27 +03:00
Jaime Bernardo
078cf2c22f [PowerToys Run] Fix register notifications crash (#12911) 2021-08-26 17:35:28 +01:00
Niels Laute
c1127b3667 [Docs/Settings] Updated images (#12903)
* KBM img updates

* Awake image updates

Co-authored-by: Niels Laute <niels9001@hotmail.com>
2021-08-26 13:28:38 +02:00
Niels Laute
7f2c6aa3d3 [FZ Editor] Fix SizeToContent (#12888)
* Fix SizeToContent

* WPF window bugfix

Co-authored-by: Niels Laute <niels9001@hotmail.com>
2021-08-26 13:27:48 +02:00
Jaime Bernardo
39d46074d6 [Image Resizer] Add warning for gif files (#12892) 2021-08-25 16:50:35 +01:00
Mykhailo Pylyp
0f55256262 Remove retries (#12860) 2021-08-25 18:21:54 +03:00
Seraphima Zykova
0440a89292 [FancyZones Editor] memory leaks crash fix (#12876) 2021-08-25 12:26:55 +01:00
Niels Laute
fce3864784 Remove ModuleImageLink (#12873)
Co-authored-by: Niels Laute <niels9001@hotmail.com>
2021-08-25 09:22:12 +02:00
Jay
99ec79fe6b Update PowerRenamePage.xaml (#12870)
One image was incorrect
2021-08-24 19:25:09 +02:00
Jay
44fd8aa8a8 Update KeyboardManagerPage.xaml (#12866)
1 incorrect link (missed a letter) and two icons because of #10331
2021-08-24 19:21:48 +02:00
Jay
0c81d5afc4 Update VideoConference.xaml (#12868)
* Update VideoConference.xaml

Changed one incorrect icon (color picker was used) and two MDL2 icons because of #10331.

* Update VideoConference.xaml

fixed typo
2021-08-24 17:51:09 +01:00
Niels Laute
eb2ef7070b [Settings] New UX (#12470)
* Removed hardcoded background

* Background

* Updated pages

* Added OOBE to shellpage

* Margin fixes

* Fix

* Resource update

* Resource string update

* Removed reference from installer file

* Updated UI fixes and remove conflicts

* Adding new settings control

* PowerRename

* Sidepanel updates

* Shortcut Guide

* Updates screeens

* General page updates

* Awake UX update

* Changed order for power preview note

* Fixes

* UI fixes

* KBM

* IsEnabled state support

* Added new controls

* Update

* Updated nugest packages

* Replaced itemscontrol

* Introducing setting button style

* FancyZones page

* Plugin page

* Switch case

* Fixed typo

* Plugin manager update

* Introducing SettingExpander

* Setting automation properties

* Accesibility improvements

* VCM and cleanup

* Refactoring OOBE pages part 1

* OOBE XAML refactoring

* Added MinWidth to actioncontent controls

* Updates to various settings

* Spell update

* Update to author label

* Clean up

* Removing redunant files

* Move file

* Updated files

* Revert "Updated files"

This reverts commit 1a5c887eae.

* Revert "Move file"

This reverts commit 2b06c75c1f.

* Revert "Removing redunant files"

This reverts commit fe79ec1701.

* Revert "Clean up"

This reverts commit 028e15fab6.

* Removed redundant styles

* Revert "Removed redundant styles"

This reverts commit dfdfd65021.

* Files cleanup

* Removing converter, updating background and paddings

* Styling updates

* Unit test updates

* Fixes

* Installer fixes

* Update Resources.resw

* Shell page updates

* Updated pagelinks

* Styles re-ordering

* Updated converter

* Updated ToggleSwitch style

* Bugfixes

* Typo fix

* [Settings] New UX - installer dll fixes (#12818)

* [Settings] New UX - Fix some failing tests (#12822)

* Bugfixes

* Typo fix

* Hiding VCM

* Bugfixes

* Download button fix

* Remove Newtonsoft.Json from installer file

* Updated visuals

* Bugfixes

* Syntax fix

* Updated installer file

* Bugfixes

* New label

* Theming support for OOBE

* Put back in Documentation hyperlink

* Right uid

Co-authored-by: Niels Laute <niels9001@hotmail.com>
Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>
2021-08-23 19:48:52 +02:00
Aaron Junker
c125cc281d Add PowerToys awake to translation issue template. (#12160) 2021-08-23 17:53:38 +01:00
Seraphima Zykova
e70994f121 [FancyZones Editor] Crash when changing between zone layouts: refactoring (#12815) 2021-08-23 16:20:04 +01:00
Andrey Nekrasov
cea9b35319 [FancyZones] Focus layout type instead of activating it on enter press (#12823) 2021-08-23 14:29:00 +03:00
Roy
ea25bd91b0 Standardize .NET JSON on System.Text.Json (#12805)
* Implement System.Text.Json for Community.PowerToys.Run.Plugin.VSCodeWorkspaces (#11697)

* Implement System.Text.Json for Community.PowerToys.Run.Plugin.VSCodeWorkspaces

* Cleanup property names

* Implement System.Text.Json for Microsoft.PowerToys.Settings.UI (#11702)

* Implement System.Text.Json for Powerlauncher (#11699)

* Implement System.Text.Json for Wox.Infrastructure

* Implement System.Text.Json for Powerlauncher

* Implement System.Text.Json for Microsoft.Plugin.Folder

* Implement System.Text.Json for Wox.Plugin

* Remove Newtonsoft.Json from launcherInstallComponent

* Update properties with private setter
Format JSON output

* Serialize Get with private set property

* Implement System.Text.Json for ImageResizerUI (#11847)

* Implement System.Text.Json for ImageRezierUI

* Change Newtonsoft.Json.dll to System.Text.Json in ImageResizer

* Add  writefile to spelling whitelist

* Fix installer

* Fix bad merge

Co-authored-by: mykhailopylyp <17161067+mykhailopylyp@users.noreply.github.com>
2021-08-20 14:36:29 +01:00
Ben Constable
44ef29ca39 Add documentation links (#12598)
* Add documentation links

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

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

* Update src/runner/Resources.resx

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

* Swap order of repo and documentation

* Fix potential security issue

* Add seperator

* Fix failing test and build

Co-authored-by: Heiko <61519853+htcfreek@users.noreply.github.com>
2021-08-19 15:32:03 +01:00
Derek Christensen
e87e06bae6 Update environment variables changed (#12689) 2021-08-18 16:43:24 +01:00
Ian O'Neill
31a5d49246 Fix race-condition in PowerRename progress UI (#12771) 2021-08-18 12:20:51 +01:00
Seraphima Zykova
ec08a1d44a [FancyZones] Windows resize on switching layout. (#12792) 2021-08-18 12:00:28 +01:00
Jaime Bernardo
8639740e6c [Telemetry] Fix show hide events on PT Run cold boot (#12796)
* [Telemetry] fix show hide events on PT Run boot

* Fix spellchecker error
2021-08-18 11:20:48 +01:00
Niels Laute
784a4641f1 [FZ Editor] Accessibility fixes (#12651)
* Added Name to unicodes and fixed labels in dialog buttons

* Fixed dialog padding

* Update MainWindow.xaml

* Update MainWindow.xaml

Co-authored-by: Niels Laute <niels9001@hotmail.com>
2021-08-16 20:03:07 +02:00
Davide Giacometti
e96c0da265 Test frameworks consolidated (#12672) 2021-08-16 14:25:06 +01:00
csigs
c3a51f9227 LEGO: check in for master to temporary branch. (#12785) 2021-08-16 14:19:55 +01:00
Ben Constable
2df4b987ce Check return is not null and if so get directory info (#12763) 2021-08-16 16:19:22 +03:00
Jaime Bernardo
7f7ab5f5b1 FZE: Fix dialog number box input automation name (#12718) 2021-08-12 14:17:44 +01:00
Jaime Bernardo
d704aad162 [PowerToys Run] Keyboard shows command tooltips (#12720)
* [PowerToys Run] Keyboard shows command tooltips

* Fix spellchecker error

* Another try at fixing the spellcheck error
2021-08-12 14:17:27 +01:00
Davide Giacometti
29d3f47d47 plugin manager search (#12560) 2021-08-12 13:53:12 +01:00
Andrey Nekrasov
05f12dcdf1 [Updating] Add versioning to UpdateState.json (#12744)
- fix "Check for updates" hang if UpdateState.json was deleted while the page is open
2021-08-12 14:53:51 +03:00
csigs
0b509a2d0b LEGO: check in for master to temporary branch. (#12743) 2021-08-12 12:34:35 +01:00
csigs
93fb487fd5 LEGO: check in for master to temporary branch. (#12742) 2021-08-12 12:34:21 +01:00
csigs
f02b89700b LEGO: check in for master to temporary branch. (#12741) 2021-08-12 12:34:05 +01:00
csigs
c1d3faa267 LEGO: check in for master to temporary branch. (#12740) 2021-08-12 12:33:31 +01:00
csigs
b13936f989 LEGO: check in for master to temporary branch. (#12739) 2021-08-12 12:33:10 +01:00
csigs
20215197c5 LEGO: check in for master to temporary branch. (#12738) 2021-08-12 12:32:50 +01:00
csigs
521c70a27a LEGO: check in for master to temporary branch. (#12736) 2021-08-12 12:32:32 +01:00
csigs
9427d90573 LEGO: check in for master to temporary branch. (#12735) 2021-08-12 12:32:15 +01:00
csigs
59f74e93fc LEGO: check in for master to temporary branch. (#12734) 2021-08-12 12:31:58 +01:00
csigs
1deb664ee4 LEGO: check in for master to temporary branch. (#12733) 2021-08-12 12:31:19 +01:00
csigs
da66188148 LEGO: check in for master to temporary branch. (#12732) 2021-08-12 12:30:56 +01:00
csigs
cdc0322a6c LEGO: check in for master to temporary branch. (#12737) 2021-08-12 12:30:00 +01:00
csigs
3116cb073c LEGO: check in for master to temporary branch. (#12700) 2021-08-12 12:28:34 +01:00
Jaime Bernardo
a925d9e6e1 [Build] Sign PowerToysSetupCustomActions.dll (#12746) 2021-08-12 12:26:49 +01:00
Jake Oeding
c1b16cfbed remove unused namespace alias (#12683) 2021-08-11 16:58:24 +01:00
Davide Giacometti
1791246a79 [PowerToys Run] Plugins StyleCop and warnings fix (#12623) 2021-08-11 16:22:30 +01:00
Seraphima Zykova
7ea1f26209 [FancyZones] Zone indexes type change (#12724) 2021-08-11 15:05:03 +01:00
Jaime Bernardo
7278d62307 [Settings] Announces open/close navigation pane (#12648)
* [Settings] Announces open/close navigation pane

* Add localization support
2021-08-10 15:03:04 +01:00
Andrey Nekrasov
f6645b04ed [FZE][Accessibility] Announce custom layout creation (#12702) 2021-08-10 14:40:08 +03:00
Seraphima Zykova
35c8130060 [FancyZones Editor] Reset layout shortcut key after canceling changes (#12613)
* don't update backup layout quick keys
* cancel changes on closing
2021-08-05 17:29:54 +01:00
Davide Giacometti
cc6a8d30b3 [Runner] Open settings when runner is elevated (#12597) 2021-08-04 18:54:09 +01:00
Jaime Bernardo
37e130a1a8 [FZE] Fix crash when double clicking edit layout (#12609) 2021-08-04 15:23:28 +01:00
Stefan Markovic
7751fed39e Place cursor in the end of the name on textbox focus (#12607) 2021-08-04 14:50:32 +02:00
Jaime Bernardo
d106db8061 [File Explorer] fix enabling all modules at start (#12599) 2021-08-04 13:42:19 +01:00
Deondre Davis
b84f9c93bf v0.43 Updates (#12596)
* Update README.md

* Update expect.txt

* Update README.md
2021-08-03 16:35:12 -07:00
Stefan Markovic
e762bfa348 Raise notification event on delete key/shortcut button click (#12546) 2021-07-29 10:37:09 +02:00
Andrey Nekrasov
5a97db8992 [CDPX] Fix build: move dll imports to NativeMethods (#12544) 2021-07-28 17:26:06 +03:00
Chris
04636339ce [Powertoys Run] Add setting to confirm system commands (#12427)
* HTTPS by default, HTTP only if specified

* Added/Updated unit tests;Added FTPS

* Added confirmation to system messages such as shutdown, reboot, and lock

* Corrected Typo

* Added confirmation to system messages such as shutdown, reboot, and lock

* Corrected Typo

* Made changes requested by @mykhailopylyp

* Further changes per review by mykhailopylyp

* Fixes per code review
2021-07-28 14:37:30 +01:00
Mykhailo Pylyp
9731cdee67 Revert "[PowerToys Run] Update to net5 (#12434)" (#12543)
This reverts commit c651a4b36e.
2021-07-28 12:15:47 +01:00
Niels Laute
0c02a9acd7 [Settings] Accessibility improvements (#12504)
* Leaving out unicode char from automationproperties.name

* Colorpicker page accesbility fixes

* Fix for toggleswitch

* Remove heading level 1 from navview items

* Fixes for redunant narrator announcements

* Added automationproperties.name to images in oobe

* Fix

Co-authored-by: Niels Laute <niels9001@hotmail.com>
2021-07-28 12:07:43 +02:00
Niels Laute
6077fa3530 [ColorPicker] Accessibility improvements (#12476)
* Set name to listview

* More fixes

* Narrator improvements

* Tab order

* Color order

* Color label fix

Co-authored-by: Niels Laute <niels9001@hotmail.com>
2021-07-28 12:04:47 +02:00
csigs
1a4d97ef28 LEGO: check in for master to temporary branch. (#12509) 2021-07-28 10:36:53 +01:00
Seraphima Zykova
88513cf38a [FZEditor] stop event waiter (#12529) 2021-07-28 09:28:01 +01:00
Andrey Nekrasov
7c0cc145eb [FZE] Fix missed dependency dll (#12530) 2021-07-27 21:01:45 +03:00
Jaime Bernardo
398dcc4a44 [Settings] Downgrade Microsoft.UI.Xaml to 2.6.0 (#12523) 2021-07-27 13:37:39 +01:00
Jaime Bernardo
823d641087 [Bug Report Tool] Get Settings event viewer data (#12521)
Adds the event viewer events of PowerToys.Settings.exe to bug reports.
2021-07-27 12:10:23 +01:00
Jaime Bernardo
65618ffa9c [ColorPicker] Close only flyout with escape key (#12441)
When the escape key is pressed in the Color Picker editor, only the
adjust color flyout should be closed instead of the whole window.
2021-07-27 10:31:43 +01:00
Andrey Nekrasov
5e4f50fa45 [Setup] Better prevent FileInUse errors during install (#12512) 2021-07-27 01:23:34 +03:00
Niels Laute
b2a86db6de [Settings/ImageResizer] New UI for sizes listview (#12269)
* Flyout for ImageResizer sizes

* Narrator support

* Improved spaces

* Fixed icons and added a confirmation dialog

* Add updatesourcetrigger

* Spellcheck fix

* Fixed missing strings

* Added messagedialog

* Fixes

* Focus fix

* Accesibility fix

Co-authored-by: Niels Laute <niels9001@hotmail.com>
2021-07-26 19:00:53 +02:00
Andrey Nekrasov
d2e04d46f4 [FZE] Send close signal to Editor when the main app closes (#12510) 2021-07-26 17:02:44 +03:00
Stefan Markovic
6dfaf6a21c [FZ Editor] Custom button with automation event on click (#12338)
* Custom button with automation event on click

* Rename MyButton to ClickAutomationEventButton

* Rename property to OnClickAutomationValue

* Remove unneeded line
2021-07-26 14:24:15 +02:00
Jaime Bernardo
9af08d9842 [Settings] Fix PowerToys run plugin toggle boxes (#12488) 2021-07-25 18:03:16 +02:00
Andrey Nekrasov
d57773e8ef [VCM] Fix issues on certain systems (#12481)
- Don't depend on System.Windows.Forms in the Settings -> use callback instead
- Fix overlay image setting saving
- Use dynamic DLL loading in Interop
- Load VCM only when mf.dll is available
2021-07-23 16:59:22 +03:00
Tony Xia
24a80de2ec Fixed a minor typo (#12482) 2021-07-23 11:48:12 +01:00
Jaime Bernardo
ec544b0907 [Settings] Fix VCM page converters (#12459)
Convert the uses of ModuleEnabledToForegroundConverter to
ModuleEnabledToOpacityConverter in line with the rest of the settings
pages.
2021-07-21 20:55:24 +03:00
csigs
d87a325529 LEGO: Pull request to master with localized lcls (#12422) 2021-07-21 11:38:06 -05:00
Mykhailo Pylyp
c651a4b36e [PowerToys Run] Update to net5 (#12434)
* [Setup] Add support for installing both dotnet 3 and 5 (#12306)

* [PowerToys Run] Update to net5 (#12286)

* Change targets of projects

* Update Microsoft.Toolkit.Uwp.Notifications,

changed TargetFramework for PowerLauncher project in order to resolve an issue with ModernWpf

* Specify windows version in order to fix build errors

* Fixed suppressed warnings

* Updated sdk

* Removed usage of obsolete GlobalAssemblyCache

* Removed obsolete DesktopNotificationManagerCompat

* Update nuget versions

* Update installer

* [PowerToys Run] Obsolete APIs and warnings introduced in .net5 (#12423)

* Change targets of projects

* Update Microsoft.Toolkit.Uwp.Notifications,

changed TargetFramework for PowerLauncher project in order to resolve an issue with ModernWpf

* Fixed suppressed warnings

* Removed obsolete DesktopNotificationManagerCompat

* Get rid of binary formatter

* Update tests

* Don't include new image cache file to the report

* There's no need to call IsOwner as it doesn't make sense

* Fix different nullability exception

* Exclude extra dlls from tests

Co-authored-by: Andrey Nekrasov <yuyoyuppe@users.noreply.github.com>
2021-07-21 19:02:45 +03:00
Stefan Markovic
37132c91e6 Set Color Picker window AutomatedProperty.Name property (#12379) 2021-07-21 11:09:02 +02:00
csigs
9727d56864 LEGO: Pull request to master with localized lcls (#12334) 2021-07-20 17:10:16 -05:00
csigs
03b5a0f283 LEGO: Pull request to master with localized lcls (#12225) 2021-07-20 16:57:41 -05:00
Mykhailo Pylyp
91797669ee [Bug Report Tool] Report installation folder structure (#12425)
* Report installation folder structure

* Hanlde case when GetModuleFileName fails

* spelling

* PR comments
2021-07-20 10:33:00 +03:00
Niels Laute
e6ffbcf315 Update Resources.resw (#12405)
Co-authored-by: Niels Laute <niels9001@hotmail.com>
2021-07-19 20:52:15 +02:00
Jaime Bernardo
e12e707704 [PowerToys Run] Fix corrupt/outdated plugins load crash (#12424)
* [PowerToys Run] Add type error catch and details

* [PowerToys Run] don't load outdated config plugins

Don't load plugins which don't have the new IcoPathDark and
IcoPathLight fields.
2021-07-19 16:13:05 +01:00
Niels Laute
f4a54b667e [Settings] Accessibility fixes (#12302)
* Added name to image

* Adding a warning sign to warnings

* Revert "Adding a warning sign to warnings"

This reverts commit 283be62bf6.

* Added * for warnings

* Remove obsolete read more button

Co-authored-by: Niels Laute <niels9001@hotmail.com>
2021-07-16 21:21:06 +02:00
Chris
a084ea24b3 HTTPS by default, HTTP only if specified (#12394)
* HTTPS by default, HTTP only if specified

* Added/Updated unit tests;Added FTPS
2021-07-16 14:38:26 +03:00
Jaime Bernardo
c05e33cae3 [devdocs] webcam reporting tool build instructions (#12395) 2021-07-16 11:56:09 +01:00
Davide Giacometti
55923f2790 [Run] ViewModels Cleanup (#12209)
* view models cleanup

* removed unused commands
2021-07-15 17:34:27 +03:00
Andrey Nekrasov
cdfb566137 [VCM] Tweak toolbar top right vertical offset to allow closing apps (#12372) 2021-07-15 15:52:20 +03:00
Stefan Markovic
39f0db8cb4 Announce automatically corrected HotKey (#12362) 2021-07-15 13:22:23 +02:00
Stefan Markovic
1bd702340b Bump Microsoft.UI.Xaml version (#12377)
* Bump Microsoft.UI.Xaml version

* Use Version1 control resources
2021-07-15 13:20:31 +02:00
Davide Giacometti
3c04111483 improve first PT Run call performance (#12352) 2021-07-15 11:51:41 +03:00
Andrey Nekrasov
e965fcb690 [Color Picker - Editor] Accessibility: Screen Reader announces 'Copied to Clipboard' (#12373) 2021-07-15 10:25:39 +03:00
Andrey Nekrasov
d583b083d1 [ColorPicker] Accessibility: Narrator announces color changes in main… (#12369)
* [ColorPicker] Accessibility: Narrator announces color changes in main view

* fixup: Announce color friendly name instead of numbers
2021-07-14 22:53:42 +03:00
Andrey Nekrasov
25a7bf9ab0 [ColorPicker] Accessibility: announce which color will be copied to clipboard (#12367) 2021-07-14 20:55:55 +03:00
Jaime Bernardo
4d8c18a557 [spell checker] add IObservable term (#12363) 2021-07-14 17:10:56 +03:00
Den Delimarsky
579881002e Fixes for PowerToys Awake (#12215)
* Change how background threads operate
This should reduce CPU usage.

* Well there is just no need for the console here

* Need to keep the full name sanitized

* Update the changes to console handling

* Updating how we handle constants

* Fix process termination logic

* Making some tweaks to the termination logic

* Update how the process is tracked

* Updating how application closing is done for Awake.

* Update with explicit types

* Fix high CPU usage for timed keep awake.

* Logging typo fix.

* Update some of the timer logic.

* Fix variable naming for consistency

* Cleanup the C++ interface

* Cleanup the code a bit
This change introduces support for:

- Proper event handling across the two apps (Awake and runner).
- Removal of unnecessary functions.

* Cleaning up the code even further

* Remove unnecessary functions
2021-07-13 18:39:46 +01:00
Josh Soref
5027a55e7f Upgrade check-spelling to v0.0.19 (#12348)
What is this about:

This updates check-spelling to 0.0.19 for https://github.com/check-spelling/check-spelling/security/advisories/GHSA-g86g-chm8-7r2p

What is included in the PR:

The expect.txt changes are just churn from when the action was disabled.
2021-07-13 11:23:12 -05:00
Niels Laute
d3cd7bec5f [Settings] Saving Excluded Apps on text changed (#12318)
* Updated source trigger property

* Update ShortcutGuidePage.xaml

Co-authored-by: Niels Laute <niels9001@hotmail.com>
2021-07-12 09:13:37 -07:00
Andrey Nekrasov
323a12a44a [Runner] Place tooltip text for tray icon on a single line (#12308) 2021-07-12 13:36:27 +03:00
Andrey Nekrasov
8c955ce9d6 [Build] Disable compilation warnings for external projects (#12309) 2021-07-12 13:35:57 +03:00
Seraphima Zykova
9d597faabc [FancyZones] Window opening on the last zone (#12284) 2021-07-09 18:18:21 +01:00
Seraphima Zykova
d85c3f8cc9 [FancyZones] Revisit mutexes (#12240)
* [FancyZones] Clean up (#11893)

* [FancyZones] Virtual desktop utils refactoring (#11925)

* [FancyZones] IFancyZonesCallback refactoring (#11932)

* [FancyZones] IZoneWindowHost refactoring (#12091)

* [FancyZones] Rename ZoneWindow -> WorkArea (#12223)

* [FancyZones] Clean up mutexes (#12228)
2021-07-07 13:18:52 +03:00
Davide Giacometti
3f70c8c889 handle numeric input (#11885) 2021-07-05 17:26:31 +03:00
Niels Laute
370e8c8574 [Settings] Aligning XAML across all pages (#12212)
* Updating settings

* OOBE button

* Removed unused namespaces

Co-authored-by: Niels Laute <niels9001@hotmail.com>
2021-07-05 16:25:23 +02:00
Mykhailo Pylyp
25ab4afe78 [Color Picker] Logs (#12157)
* - Fixed module interface logs

- Added logs to correlate logs between the runner and color picker process

* Fix logs
2021-07-02 19:54:44 +03:00
Niels Laute
6ad6ff7fb6 Changed from brush to opacity (#11843)
Co-authored-by: Niels Laute <niels9001@hotmail.com>
2021-07-02 11:24:49 +01:00
Jaime Bernardo
0d5f97d8bf Fix merged process names in bug report tool (#12123) 2021-07-02 11:11:11 +01:00
Seraphima Zykova
71f2561eb1 [FancyZones] Unit tests fix (#12018) 2021-07-02 10:29:32 +01:00
Mykhailo Pylyp
b42eb08ec6 Start PowerToys Run through the ActionRunner (#12043) 2021-07-01 10:26:58 +01:00
Seraphima Zykova
086394d455 [Hotfix][FancyZones] Unable to start correctly (#12038)
* fix event

* close handle on destroy
2021-07-01 10:26:22 +01:00
Clint Rutkas
03eb9c3f5c checking for NaN, not just zero (#12058) 2021-06-30 17:16:45 -07:00
Clint Rutkas
9c248cdcd2 Update bug_report.yml 2021-06-30 11:20:59 -07:00
Jaime Bernardo
2ddab2549e [Hotfix] PowerToys Awake - Show full name on tray (#12015) 2021-06-30 12:38:02 +01:00
Den Delimarsky
4c323ab71a [Hotfix] PowerToys Awake - fixing CPU usage (#11978)
* Change how background threads operate
This should reduce CPU usage.

* Well there is just no need for the console here

* Need to keep the full name sanitized
2021-06-30 12:04:31 +01:00
Mykhailo Pylyp
a90c738c10 Fix clicking on text (#11968) 2021-06-30 13:05:12 +03:00
Andrey Nekrasov
4e23832d52 Add new VideoConference module for muting mic/cam (#11798)
* add new VideoConference module for muting mic/cam

Co-authored-by: PrzemyslawTusinski <61138537+PrzemyslawTusinski@users.noreply.github.com>
Co-authored-by: Niels Laute <niels.laute@live.nl>
2021-06-29 13:06:12 +03:00
csigs
e450669663 LEGO: check in for master to temporary branch. (#11891) 2021-06-28 14:12:07 -07:00
Clint Rutkas
d8f0f7aca4 Update pipeline.user.windows.yml (#11897) 2021-06-28 13:29:07 -07:00
Deondre Davis
e5cb07729f readme 0.41 release (#11861)
* Update README.md

* Update README.md

* Update README.md

* Create usernames.txt

* Rename usernames.txt to names.txt

* Delete names.txt

* Update expect.txt

* Update README.md

* Update README.md

* Update README.md

Co-authored-by: Clint Rutkas <clint@rutkas.com>
2021-06-28 10:37:54 -07:00
Mykhailo Pylyp
d7e09e83c2 Register the hotkey after PT Run is initialized (#11858) 2021-06-24 17:50:34 +03:00
Seraphima Zykova
0f32e99d88 [FancyZones] Fixed monitor id for unified work areas (#11857) 2021-06-24 14:30:36 +01:00
Andrey Nekrasov
4aa1e43bac [Setup] Fix default log dir path (#11856) 2021-06-24 15:30:19 +03:00
Seraphima Zykova
8fcfcd6790 [FancyZones] "Match not found" fix update for the single layout for all monitors (#11846) 2021-06-23 20:46:02 +03:00
Seraphima Zykova
da1cdd7ca4 [FancyZones] Add an icon to the FZ process (#11841) 2021-06-23 16:48:16 +01:00
Mykhailo Pylyp
f0b94453f2 Log to appdata folder from the bootstrapper and the msi (#11828) 2021-06-23 18:46:17 +03:00
Seraphima Zykova
2dc82f31b3 [FancyZones] "Match not found" error fix (#11840) 2021-06-23 16:28:23 +01:00
Andrey Nekrasov
eeea6b3bae [FancyZones] Do not try to zone minimized windows (#11776) 2021-06-23 17:05:55 +03:00
Seraphima Zykova
c93eb92cd0 [FancyZones] Move FancyZones out of the runner process (#11818)
* rename dll -> FancyZonesModuleInterface (#11488)

* [FancyZones] Rename "fancyzones/tests" -> "fancyzones/FancyZonesTests" (#11492)

* [FancyZones] Rename "fancyzones/lib" -> "fancyzones/FancyZonesLib" (#11489)

* [FancyZones] New FancyZones project. (#11544)

* [FancyZones] Allow single instance of "PowerToys.FancyZones.exe" (#11558)

* [FancyZones] Updated bug reports (#11571)

* [FancyZones] Updated installer (#11572)

* [FancyZones] Update string resources (#11596)

* [FancyZones] Terminate FancyZones with runner (#11696)

* [FancyZones] Drop support for the module interface API to save settings (#11661)

* Settings telemetry for FancyZones (#11766)

* commented out test

* enable dpi awareness for the process
2021-06-23 13:48:54 +01:00
Clint Rutkas
bdf85989fc adding in mod support via % (#11821)
Co-authored-by: Clint Rutkas <crutkas@microsoft.com>
2021-06-22 08:54:28 -07:00
Mykhailo Pylyp
cf9f0ce6a9 [PowerToys Run] Issues with elevation (#11775)
* Delegate creation of non elevated process

* Error handling

* nits

* Fix potential race condition

* Fix spelling

* Fix spelling

* Fix build
2021-06-22 15:24:03 +03:00
Seraphima Zykova
7e79654ee0 [FancyZones] Avoid unnecessary calculations when selecting a zone (#11815) 2021-06-22 11:34:27 +03:00
csigs
4c3fbad9ee LEGO: check in for master to temporary branch. (#11816) 2021-06-21 14:20:07 -07:00
Manuel Serra
5679d48073 Fix CurrentVirtualDesktop fetching from registry (#11760)
* fix(#11125): fallback to canonical regkey session unaware

* chore(#11125): use wil::unique_hkey instead of HKEY for fallback CurrentVirtualDesktop

* refactor: extract new explorer current virtual desktop behavior into a separate method
2021-06-18 07:53:23 -07:00
Mykhailo Pylyp
f662c062d2 [Run-Plugin][Program] Fix null reference exception on Dispose (#11785) 2021-06-18 13:40:10 +03:00
Mykhailo Pylyp
c953f10c21 Don't crash if UserSelectedRecord.json can not be updated (#11789) 2021-06-18 13:38:23 +03:00
Mykhailo Pylyp
735accc1a8 Don't crash if URI can't be parsed (#11788) 2021-06-18 13:01:40 +03:00
Clint Rutkas
70b9c0f879 Dev/crutkas/updating contributing (#11682)
* Update CONTRIBUTING.md

* updating contribute

* Update CONTRIBUTING.md

Co-authored-by: Aaron Junker <vl5ktlnki@relay.firefox.com>

* Update CONTRIBUTING.md

* Update feature_request.yml

* Update feature_request.yml

Co-authored-by: Clint Rutkas <crutkas@microsoft.com>
Co-authored-by: Aaron Junker <vl5ktlnki@relay.firefox.com>
2021-06-17 11:16:27 -07:00
ulazy1
482163daf7 [FanzyZones] Zone activation based on zone center (#11361)
* Started work on algorithm to select the zone with the center closest to the cursor.

* Fixed algorithm to compute center of rectangle

* Revert to taking the smallest area when the centers are too close (75 pixels).
Temporary turned off buffer of window selection to better see how the algorithm is working.

* Remove change to sensitivity radius.

* Changes in response to SeraphimaZ's comments.

* spelling fix

Co-authored-by: ulazy1 <ulazy198@gmail.com>
2021-06-16 07:49:29 -07:00
Clint Rutkas
3f00aa0981 Fix signing of Unit Converter (#11771)
* Update pipeline.user.windows.yml

* Update pipeline.user.windows.yml

* Update Product.wxs

making folders all match including YML
2021-06-16 05:54:44 -07:00
csigs
4e5c85ec03 LEGO: check in for master to temporary branch. (#11749) 2021-06-14 15:16:32 -07:00
Niels Laute
74a1715d6e [Awake] Updated images + settings menu fix (#11728)
* Alphabetical module order in Settings navview menu

* Updated images

* Updated menu order in OOBE

Co-authored-by: Niels Laute <niels9001@hotmail.com>
2021-06-14 10:34:32 -07:00
Andrey Nekrasov
cdd06d7e98 Dev/yuyoyuppe/autoupdate polishing (#11693)
* [Updating] Create a dedicated executable project for updating procedures

* [Updating] Use PowerToys.Update for update procedures (#11495)

* [Updating] Use PowerToys.Update for update procedures

* [Setup] Remove toast notifications and other dependencies from bootstrapper

* [Installer] Remove Winstore, redundant strings

* [Settings] Remove deprecated 'packaged' setting
2021-06-14 12:55:59 +03:00
Roy
5b804a1ff6 [PT Run] Improve the UWP Program Indexing speed (#11683)
* Improve UWP Indexing speed

* Optimize Linq usage
Added static readonly vars

* Optimzie GetAppsFromManifest

* LogoUriFromManifest uses logoUri which is also an instance variable

* Add IsPackageDotInstallationPathAvailable

* Dispose FileStream

* Fix InstalledPath after testing in build 1903

* Fix typo
2021-06-14 01:19:05 -07:00
Roy
b2cff5cbd3 UpdateUWPIconPath can only be called after all UWP apps are initialzied (#11686) 2021-06-10 06:55:54 -07:00
Roy
9eae6cc6f2 Update mages to V2 (.NET Standard 2.0) (#11681) 2021-06-10 06:40:20 -07:00
Mykhailo Pylyp
8d5f52c718 Don't disable PT Run if it fails to start(running elevated) (#11684) 2021-06-10 14:08:56 +03:00
Clint Rutkas
94a6947cd6 fixing merge oops that doesn't seem to trigger on VS (#11680)
Co-authored-by: Clint Rutkas <crutkas@microsoft.com>
2021-06-09 11:51:14 -07:00
Den Delimarsky
c5e464a704 🧼 PowerToys Awake (#11593)
* Scrubbing name conventions

* Fix naming for projects

* Fix folder naming

* More folder cleanup

* More left-over file changes

* Reverting LCL files, because these will be handled by the loc team

* Remove legacy file that is no longer used.

* Update latest
2021-06-09 09:13:58 -07:00
Mykhailo Pylyp
c9c54b7780 [Run-Plugin] Settings plugin (#11663)
* Current settings plugin state on fresh master

* typo fixes

* Add to YML

* Add to WXS

* Address feedback - highlight the note in the tool-tip a little bit

* Address feedback add extra note for "Manage known networks"

* Address feedback - Show type of settings in sub-line and remove extra ControlPanel prefix in json

* Add "WiFi" as alternative name for each Wi-Fi setting

* Add a few more alternative names

* Make RESX happy

* exclude WindowsSettings.json from spell checker because all entries are placeholders  for the translation

* Translate all alternative names

* Translate all notes

* fix for not find "wifi"

* fix typo

* typo fixes and remove debug

* Address feedback - correct author

* Address feedback - settings entries

* Address feedback - code changes

* Address feedback - RESX changes and tool-tip

* fix typo

* Address feedback - remove superfluous interface

* Address feedback - Update RESX

* Address feedback - simplification

* Address feedback - remove enumeration

* Address feedback - move big function in extra helper classes

* Address feedback - move big function in extra helper class

* Address feedback - correct namespace

* Address feedback - move translation to translation helper and make translation more robust

* fix typo

* Update src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.WindowsSettings/Main.cs

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

* Update src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.WindowsSettings/Helper/ResultHelper.cs

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

* Update src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.WindowsSettings/Main.cs

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

* fix build

* Address feedback

* ups

* Address feedback - Correct windows update settings name

* Update src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.WindowsSettings/WindowsSettings.json

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

* adding in dependencies so when you build Launcher, all plugins are included

* Address feedback - add optional updates

* Address feedback - use build numebr instaed of Windows version

* Address feedback - Log difference between registry values + fix wrong ValueType (ushort -> uint)

* Address feebdback - improved warning message on different registry values

* fix typo

* removed not need using

* Update src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.WindowsSettings/Helper/UnsupportedSettingsHelper.cs

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

* Update src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.WindowsSettings/Helper/UnsupportedSettingsHelper.cs

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

* Update src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.WindowsSettings/Helper/UnsupportedSettingsHelper.cs

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

* Addrress feedback, don't copy embed file

* Address feedback - Remove duplicated or not available settings

* Address feedback - Improve scoring

* Address feedback - Add extra filter

* Address feedback - replace the are filter sign with a better one

* Address feedback - fix unwanted behavior

* Address feedback - Change class name

* Address feedback - Rename settings type

* typo fix

* Fix installer

* Comment out localization support

Co-authored-by: Sekan, Tobias <tobias.sekan@startmail.com>
Co-authored-by: Heiko <61519853+htcfreek@users.noreply.github.com>
Co-authored-by: crutkas <crutkas@microsoft.com>
2021-06-09 18:04:03 +03:00
ThiefZero
fc9d7e4f1b [PT Run][New Plugin] Unit Converter (#9800) (#11406) 2021-06-09 12:30:57 +01:00
Jaime Bernardo
27e609f6eb Revert "[PT Run][New Plugin] Unit Converter (#9800) (#11406)"
This reverts commit 1dabd761e1,
to give proper attribution to the author.
2021-06-09 12:30:57 +01:00
Clint Rutkas
203f8b2eb4 Update pipeline.user.windows.yml (#11669) 2021-06-09 00:50:48 -07:00
Clint Rutkas
80b07f749f Update pipeline.user.windows.yml (#11649) 2021-06-08 13:53:11 -07:00
Mykhailo Pylyp
3e5c757b9b fix internal build (#11668) 2021-06-08 13:50:41 -07:00
Niels Laute
884a313f3c [Run] Highlight search text (#11635)
* Add bolded type

* Inline get set

* Fix

* Update expect.txt

IMulti

Co-authored-by: Niels Laute <niels9001@hotmail.com>
Co-authored-by: Clint Rutkas <clint@rutkas.com>
2021-06-08 11:23:27 -07:00
Mykhailo Pylyp
55b6fb8da6 Fix internal build (#11664) 2021-06-08 11:14:14 -07:00
Niels Laute
f0d68211a3 [Settings] RadioButton header fixes + updated colorpicker GIF for OOBE (#11531) 2021-06-08 10:56:38 -07:00
Clint Rutkas
0f19d675f5 moving apps to 0.9.4 that were not. (#11604)
Co-authored-by: Clint Rutkas <crutkas@microsoft.com>
2021-06-08 10:16:04 -07:00
Enrico Giordani
1dabd761e1 [PT Run][New Plugin] Unit Converter (#9800) (#11406) 2021-06-08 18:53:11 +03:00
Mykhailo Pylyp
a6458823b1 Revert changes to submodule as it doesn't build for 16.10 (#11642) 2021-06-08 17:29:38 +03:00
Clint Rutkas
17f9ee84b3 null checking the callbacks (#11592)
Co-authored-by: Clint Rutkas <crutkas@microsoft.com>
2021-06-04 10:13:56 -07:00
Enrico Giordani
367b3df705 [runner] removed outdated MSIX code (#11450) 2021-06-04 00:20:11 +03:00
Clint Rutkas
e69cd8a057 Update README.md (#11590) 2021-06-03 13:19:18 -07:00
Roy
266aafb700 [PT Run] Improve the Win32 Program Indexing speed (#11364) 2021-06-03 17:11:09 +03:00
csigs
9a1034e122 LEGO: check in for master to temporary branch. (#11539) 2021-06-02 11:21:56 -07:00
Davide Giacometti
a8ff1c856c open minimized settings from oobe (#11546) 2021-06-02 09:51:01 -07:00
Mykhailo Pylyp
3b32116d36 Fix build for VS 16.10 (#11557) 2021-06-01 19:15:16 +03:00
Roy
8e24e07e81 Update Logger library to support VS2019 16.10 (#11549) 2021-06-01 11:56:37 +03:00
Mykhailo Pylyp
cecf6fb089 Save relative path to settings (#11543) 2021-06-01 10:57:53 +03:00
Mykhailo Pylyp
3807673574 [PowerToys Run] Crash on exit, logs (#11509) 2021-05-31 13:00:06 +03:00
Mykhailo Pylyp
338b7b8a29 Program plugin logs (#11497) 2021-05-27 19:15:22 +03:00
Mykhailo Pylyp
36fb2a434f [Bug Report Tool] Fix internal build (#11487) 2021-05-27 11:53:58 +03:00
Chris Davis
3262d6deff CPowerRenameManager::s_fileOpWorkerThread should initialize COM as STA instead of MTA. Also, CPowerRenameManager::_PerformFileOperation should return S_OK instead of 0. (#11476) 2021-05-26 14:12:50 -07:00
Mykhailo Pylyp
aecabc0372 [PowerToys Run] Settings watcher logging (#11469) 2021-05-26 18:07:32 +03:00
Enrico Giordani
fa3567d95d [spell checker] add rule (#11468) 2021-05-26 16:31:12 +02:00
Mykhailo Pylyp
0b13c4d6a5 [Bug Report Tool] Report event viewer logs (#11458) 2021-05-26 16:23:49 +03:00
Clint Rutkas
208e1701d0 Update README.md 2021-05-25 10:17:42 -07:00
Clint Rutkas
894f469de6 Espresso (#11303)
* Update README.md

* Espresso (#11245)

* Revert "Merge branch 'microsoft:master' into master"

This reverts commit b080908712, reversing
changes made to 8463c95a43.

* Fix conversion of settings in the UX

* Update terminology

* Updating logging configuration

* Set up how tray and setting configuration works

* Adding hero images

* Fix how binding works

* Update OOBE string

* Fix spelling error

* fixing dep to include espresso, adding in yml

* Update API components and fix display keep-awake bug

* Adding words that the spell check is yelling about

* tweak wsx

* Change default setting for Espresso

Co-authored-by: Niels Laute <niels9001@hotmail.com>
Co-authored-by: crutkas <crutkas@microsoft.com>

* Update Product.wxs

* Update Shortcut.cpp

* Update with more logging (#11332)

* Revert "Merge branch 'microsoft:master' into master"

This reverts commit b080908712, reversing
changes made to 8463c95a43.

* Fix conversion of settings in the UX

* Update terminology

* Updating logging configuration

* Set up how tray and setting configuration works

* Adding hero images

* Fix how binding works

* Update OOBE string

* Fix spelling error

* fixing dep to include espresso, adding in yml

* Update API components and fix display keep-awake bug

* Adding words that the spell check is yelling about

* tweak wsx

* Change default setting for Espresso

* Adding some extra logging

* Update Shortcut.cpp

Co-authored-by: Niels Laute <niels9001@hotmail.com>
Co-authored-by: crutkas <crutkas@microsoft.com>

* Fix minor issue in the module branch (#11340)

* Revert "Merge branch 'microsoft:master' into master"

This reverts commit b080908712, reversing
changes made to 8463c95a43.

* Fix conversion of settings in the UX

* Update terminology

* Updating logging configuration

* Set up how tray and setting configuration works

* Adding hero images

* Fix how binding works

* Update OOBE string

* Fix spelling error

* fixing dep to include espresso, adding in yml

* Update API components and fix display keep-awake bug

* Adding words that the spell check is yelling about

* tweak wsx

* Change default setting for Espresso

* Adding some extra logging

* Update Shortcut.cpp

* Fix log location coming from the runner

* More chatty logging for console allocation

* Installer config to add the missing assets

Co-authored-by: Niels Laute <niels9001@hotmail.com>
Co-authored-by: crutkas <crutkas@microsoft.com>

* Update Product.wxs

* Update Program.cs

* fixing typo

* removing a unneeded removal

* [Espresso] More minor tweaks to logging (#11341)

* Revert "Merge branch 'microsoft:master' into master"

This reverts commit b080908712, reversing
changes made to 8463c95a43.

* Fix conversion of settings in the UX

* Update terminology

* Updating logging configuration

* Set up how tray and setting configuration works

* Adding hero images

* Fix how binding works

* Update OOBE string

* Fix spelling error

* fixing dep to include espresso, adding in yml

* Update API components and fix display keep-awake bug

* Adding words that the spell check is yelling about

* tweak wsx

* Change default setting for Espresso

* Adding some extra logging

* Update Shortcut.cpp

* Fix log location coming from the runner

* More chatty logging for console allocation

* Installer config to add the missing assets

* Remove unused handle codes

* Update log file name for the Espresso C++ code.

* Update the project configuration to fix build issue

Co-authored-by: Niels Laute <niels9001@hotmail.com>
Co-authored-by: crutkas <crutkas@microsoft.com>

* Update patterns.txt

* Fix binding issues (#11368)

* Revert "Merge branch 'microsoft:master' into master"

This reverts commit b080908712, reversing
changes made to 8463c95a43.

* Fix conversion of settings in the UX

* Update terminology

* Updating logging configuration

* Set up how tray and setting configuration works

* Adding hero images

* Fix how binding works

* Update OOBE string

* Fix spelling error

* fixing dep to include espresso, adding in yml

* Update API components and fix display keep-awake bug

* Adding words that the spell check is yelling about

* tweak wsx

* Change default setting for Espresso

* Adding some extra logging

* Update Shortcut.cpp

* Fix log location coming from the runner

* More chatty logging for console allocation

* Installer config to add the missing assets

* Remove unused handle codes

* Update log file name for the Espresso C++ code.

* Update the project configuration to fix build issue

* Fix binding issue with the time settings

Co-authored-by: Niels Laute <niels9001@hotmail.com>
Co-authored-by: crutkas <crutkas@microsoft.com>

* Introduce the off mode and fix binding issues (#11385)

* Revert "Merge branch 'microsoft:master' into master"

This reverts commit b080908712, reversing
changes made to 8463c95a43.

* Fix conversion of settings in the UX

* Update terminology

* Updating logging configuration

* Set up how tray and setting configuration works

* Adding hero images

* Fix how binding works

* Update OOBE string

* Fix spelling error

* fixing dep to include espresso, adding in yml

* Update API components and fix display keep-awake bug

* Adding words that the spell check is yelling about

* tweak wsx

* Change default setting for Espresso

* Adding some extra logging

* Update Shortcut.cpp

* Fix log location coming from the runner

* More chatty logging for console allocation

* Installer config to add the missing assets

* Remove unused handle codes

* Update log file name for the Espresso C++ code.

* Update the project configuration to fix build issue

* Fix binding issue with the time settings

* Proper Espresso behavior for binding

* Fix settings UI

Co-authored-by: Niels Laute <niels9001@hotmail.com>
Co-authored-by: crutkas <crutkas@microsoft.com>

* Update with missing strings. (#11386)

* Revert "Merge branch 'microsoft:master' into master"

This reverts commit b080908712, reversing
changes made to 8463c95a43.

* Fix conversion of settings in the UX

* Update terminology

* Updating logging configuration

* Set up how tray and setting configuration works

* Adding hero images

* Fix how binding works

* Update OOBE string

* Fix spelling error

* fixing dep to include espresso, adding in yml

* Update API components and fix display keep-awake bug

* Adding words that the spell check is yelling about

* tweak wsx

* Change default setting for Espresso

* Adding some extra logging

* Update Shortcut.cpp

* Fix log location coming from the runner

* More chatty logging for console allocation

* Installer config to add the missing assets

* Remove unused handle codes

* Update log file name for the Espresso C++ code.

* Update the project configuration to fix build issue

* Fix binding issue with the time settings

* Proper Espresso behavior for binding

* Fix settings UI

* Re-add missing strings

Co-authored-by: Niels Laute <niels9001@hotmail.com>
Co-authored-by: crutkas <crutkas@microsoft.com>

* Fix whitespace issue (#11387)

* Revert "Merge branch 'microsoft:master' into master"

This reverts commit b080908712, reversing
changes made to 8463c95a43.

* Fix conversion of settings in the UX

* Update terminology

* Updating logging configuration

* Set up how tray and setting configuration works

* Adding hero images

* Fix how binding works

* Update OOBE string

* Fix spelling error

* fixing dep to include espresso, adding in yml

* Update API components and fix display keep-awake bug

* Adding words that the spell check is yelling about

* tweak wsx

* Change default setting for Espresso

* Adding some extra logging

* Update Shortcut.cpp

* Fix log location coming from the runner

* More chatty logging for console allocation

* Installer config to add the missing assets

* Remove unused handle codes

* Update log file name for the Espresso C++ code.

* Update the project configuration to fix build issue

* Fix binding issue with the time settings

* Proper Espresso behavior for binding

* Fix settings UI

* Re-add missing strings

* Fix whitespace issue

Co-authored-by: Niels Laute <niels9001@hotmail.com>
Co-authored-by: crutkas <crutkas@microsoft.com>

* Fix default (#11388)

* Revert "Merge branch 'microsoft:master' into master"

This reverts commit b080908712, reversing
changes made to 8463c95a43.

* Fix conversion of settings in the UX

* Update terminology

* Updating logging configuration

* Set up how tray and setting configuration works

* Adding hero images

* Fix how binding works

* Update OOBE string

* Fix spelling error

* fixing dep to include espresso, adding in yml

* Update API components and fix display keep-awake bug

* Adding words that the spell check is yelling about

* tweak wsx

* Change default setting for Espresso

* Adding some extra logging

* Update Shortcut.cpp

* Fix log location coming from the runner

* More chatty logging for console allocation

* Installer config to add the missing assets

* Remove unused handle codes

* Update log file name for the Espresso C++ code.

* Update the project configuration to fix build issue

* Fix binding issue with the time settings

* Proper Espresso behavior for binding

* Fix settings UI

* Re-add missing strings

* Fix whitespace issue

* Fix the default mode of operation

Co-authored-by: Niels Laute <niels9001@hotmail.com>
Co-authored-by: crutkas <crutkas@microsoft.com>

* Update Microsoft.PowerToys.Settings.UI.csproj

* Localization improvements

* Replaced a computer with your pc

* Updated Espresso imagery

* Fixed inconsistent string

* Margin fix and updated images

* Removed unused code

Co-authored-by: Den Delimarsky <1389609+dend@users.noreply.github.com>
Co-authored-by: Niels Laute <niels9001@hotmail.com>
Co-authored-by: crutkas <crutkas@microsoft.com>
Co-authored-by: Enrico Giordani <enrico.giordani@gmail.com>
2021-05-25 10:13:04 -07:00
Seraphima Zykova
6821c50ffe [FZ Editor] Switch between zone and dialog with Ctrl + Tab (#11435)
* focus zone by ctrl + tab
* focus back
2021-05-25 07:59:34 +03:00
yuyoyuppe
b79ab9cd5d [Updating] Fix localization path 2021-05-24 19:59:30 +03:00
csigs
516c96a8b7 LEGO: check in for master to temporary branch. (#11432) 2021-05-24 18:40:55 +02:00
Seraphima Zykova
7180278c33 [FZ Editor] Turn off magnetic snapping when moving/resizing a zone with the keyboard (#11430) 2021-05-24 15:04:28 +01:00
Mykhailo Pylyp
9f6e1966ae [Issue-Docs] Update new-plugin-checklist.md (#11428)
* Update new-plugin-checklist.md

* Update doc/devdocs/modules/launcher/new-plugin-checklist.md

Co-authored-by: Enrico Giordani <enricogior@users.noreply.github.com>
2021-05-24 12:07:30 +02:00
Mykhailo Pylyp
d537280454 Kill PowerToys Run process if it is already running (#11407) 2021-05-24 12:05:17 +03:00
Enrico Giordani
0be526bd7e [spell checker] add terms (#11404) 2021-05-21 17:19:44 +02:00
Doğan Çelik
17fbe40b40 [PT Run] Fix Program Plugin launching issue in Turkish locale (#10981)
* [Launcher] Fix Program Plugin launching issue in Turkish locale

* [Launcher] Add test for Turkish localized path

* Update expect.txt

* Update .github/actions/spell-check/expect.txt

Co-authored-by: Clint Rutkas <clint@rutkas.com>
Co-authored-by: Enrico Giordani <enricogior@users.noreply.github.com>
2021-05-21 16:51:53 +02:00
Mykhailo Pylyp
50c6a1de8a [PowerToys Run] Logging (#11378) 2021-05-21 17:24:33 +03:00
Davide Giacometti
4a65aa3d0e minimum size width and height (#11380) 2021-05-21 15:58:57 +02:00
Niels Laute
b84e9da005 [ColorPicker] Improving keyboard navigation (#11384)
* Fix keyboard navigation

* Fix button

* HIerarchy

* Place flyout at the bottom

Co-authored-by: Niels Laute <niels9001@hotmail.com>
2021-05-21 15:57:57 +02:00
Andrey Nekrasov
756c9ff935 [Updating] Set dotnet version to 3.1.15 (#11403) 2021-05-21 15:55:16 +02:00
Seraphima Zykova
4026b9e9ae [Auto-update][Settings] Bolden update ready/available info line (#11401) 2021-05-21 14:03:18 +01:00
Seraphima Zykova
2dd079dd51 [Auto-update][Settings] Show error text with error brush (#11397) 2021-05-21 13:15:36 +01:00
Seraphima Zykova
b96b4fcb0f [Auto-update] Auto-update improvements (#11356)
* [Updating] Refactor autoupdate mechanism to use Settings window buttons

* [Updating] Don't use underscores in update_state (#11029)

* [Updating] Rename action_runner to be consisent with accepted format

* [Updating] Make UpdateState values explicit

* [Setup] Set default bootstrapper log severity to debug

* [BugReport] Include all found bootstrapper logs

* [Setup] Use capital letter for ActionRunner

* [Updating] Simple UI to test UpdateState

* [Action Runner]  cleanup and coding style

* [BugReportTool] fix coding convension

* [Auto-update][PT Settings] Updated general page in the Settings (#11227)

* [Auto-update][PT Settings] File watcher monitoring UpdateState.json (#11282)

* Handle button clicks (#11288)

* [Updating] Document ActionRunner cmd flags

* [Auto-update][PT Settings] Updated UI (#11335)

* [Updating] Do not reset update state when msi cancellation detected

* [Updating] Directly launch update_now PT action instead of using custom URI scheme

* Checking for updates UI (#11354)

* [Updating] Fix cannotDownload state in action runner

* [Updating] Reset update state to CannotDownload if action runner encountered an error

* [Updating][PT Settings] downloading label, disable button in error state

* Changed error message

* [Updating rename CannotDownload to ErrorDownloading

* [Updating] Add trace logging for Check for updates callback

* [Updating][PT Settings] simplify downloading checks

* [Updating][PT Settings] Updated text labels

* [Updating][PT Settings] Retry to load settings if failed

* [Updating][PT Settings] Text fix

* [Updating][PT Settings] Installed version links removed

* [Updating][PT Settings] Error text updated

* [Updating][PT Settings] Show label after version checked

* [Updating][PT Settings] Text foreground fix

* [Updating][PT Settings] Clean up

* [Updating] Do not reset releasePageUrl in case of error/cancellation

* [Updating][PT Settings] fixed missing string

* [Updating][PT Settings] checked for updates state fix

Co-authored-by: yuyoyuppe <a.yuyoyuppe@gmail.com>
Co-authored-by: Andrey Nekrasov <yuyoyuppe@users.noreply.github.com>
Co-authored-by: Enrico Giordani <enrico.giordani@gmail.com>
2021-05-21 12:32:34 +02:00
Mykhailo Pylyp
d55badf14a [BugReportTool] Report compatibility tabs (#11375) 2021-05-20 18:41:12 +03:00
Mykhailo Pylyp
601da71f15 [Shortcut Guide] Move into separate process (#11359) 2021-05-20 15:07:34 +03:00
Clint Rutkas
c948c1fca8 Change markdown files to treat soft endings as hard (#11271) 2021-05-18 05:07:55 -07:00
Clint Rutkas
f29b8dc50c fx cop for Fz Editor part2 (#11293)
* disposable not being disposed

* CA1305 fixes

Co-authored-by: crutkas <crutkas@microsoft.com>
2021-05-18 13:39:38 +02:00
Josh Soref
58d41d40e5 check-spelling: Remove stray field (#11339)
This feature isn't ready yet and wasn't meant to be included
2021-05-18 13:38:52 +02:00
Clint Rutkas
f86a2f1ed3 Update COMMUNITY.md 2021-05-17 12:51:26 -07:00
Lee Won Jun
de9b7772e1 [PT Run] Implement quick browser open in PT-run (#11260)
* Implement quick broswer open in PT-run

* Update src/modules/launcher/Plugins/Microsoft.Plugin.Uri/Properties/Resources.resx

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

Co-authored-by: Heiko <61519853+htcfreek@users.noreply.github.com>
2021-05-14 09:55:57 -07:00
Clint Rutkas
319adcbd62 fx cop & FZ editor part 1 of many (#11241)
* fixing first set of host of bugs

* objects are already set to defaults

* shifting to string.is null / empty

* setters

* fixing stylecop oops

* checking in the FxCop dep but commenting it out for easier coming back
2021-05-14 09:54:34 -07:00
Niels Laute
19952ef634 [FZ Editor] Keyboard support for canvas editor (#11211)
* Canvas zone keyboard accesible

* Keyboard interaction

* Update

* Updated styles

* Update src/modules/fancyzones/editor/FancyZonesEditor/CanvasZone.xaml

* Update src/modules/fancyzones/editor/FancyZonesEditor/CanvasZone.xaml

Co-authored-by: Niels Laute <niels9001@hotmail.com>
Co-authored-by: Enrico Giordani <enricogior@users.noreply.github.com>
2021-05-12 20:44:26 -07:00
Enrico Giordani
15d49776b3 [CDPx] fix for build break (#11234) 2021-05-12 21:06:26 +02:00
Clint Rutkas
48f2376aaa Revert "Espresso" (#11235) 2021-05-12 11:22:34 -07:00
Clint Rutkas
803522ac7a Merge branch 'master' into master 2021-05-12 10:08:51 -07:00
Mahi Taher
daa775c215 Fix ColourPicker HowToUse Text in Resources.resw (#11212)
Fixes #11199
2021-05-12 09:58:26 -07:00
Enrico Giordani
e1942b8058 [spell checker] add terms (#11224)
* [spell checker] add terms

* [spell checker] more terms
2021-05-12 16:23:23 +02:00
Den Delimarsky
d566d0bdf0 Simplify settings handling to not rely on complex properties 2021-05-11 21:41:07 -07:00
Den Delimarsky
65ecfd2424 Set correct minimum for minutes 2021-05-11 21:12:59 -07:00
Den Delimarsky
fcae21bb5f Code cleanup 2021-05-11 20:57:40 -07:00
Den Delimarsky
a23279f3de Remove redundancy 2021-05-11 20:53:26 -07:00
Den Delimarsky
ff486e5a61 Making sure the app can run well without a console window
Only applicable when a PID is specified.
2021-05-11 20:50:02 -07:00
Den Delimarsky
95bac54c0e Update how tray is handled 2021-05-11 19:40:02 -07:00
Den Delimarsky
3d8ed3905e Proper threading support for all parts of the keep-awake process 2021-05-11 19:10:15 -07:00
Clint Rutkas
2e7ca62291 Update README.md 2021-05-11 16:46:33 -07:00
Clint Rutkas
10c6172a29 Update COMMUNITY.md 2021-05-11 16:32:36 -07:00
Clint Rutkas
e7ecad6c14 Update COMMUNITY.md 2021-05-11 16:28:33 -07:00
Den Delimarsky
a78da90282 Merge remote-tracking branch 'origin/master' 2021-05-11 14:44:52 -07:00
Den Delimarsky
3196de2e29 Update loops 2021-05-11 14:42:42 -07:00
Niels Laute
9c6b96fa37 Added aka.ms link for Espresso 2021-05-11 23:41:04 +02:00
Niels Laute
f3414c16dc Added OOBE 2021-05-11 22:44:36 +02:00
Clint Rutkas
f1b4081257 Create akaLinks.md 2021-05-11 12:52:05 -07:00
Clint Rutkas
4a9797797d Merge branch 'master' of https://github.com/dend/PowerToys 2021-05-11 11:01:55 -07:00
Clint Rutkas
465d850e89 correcting versioning numbering 2021-05-11 10:51:30 -07:00
Clint Rutkas
e195c42f17 StyleCop enabled. 2021-05-11 10:22:29 -07:00
Den Delimarsky
b22e409d91 Add visual assets 2021-05-11 09:21:40 -07:00
Niels Laute
7cf1c64575 Tweaked settings UX 2021-05-11 17:52:58 +02:00
Den Delimarsky
6617444f14 Fixing the margin 2021-05-11 08:22:00 -07:00
Josh Soref
eb106650f6 Upgrade check-spelling to v0.0.18 (#11114)
* spelling: sent

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* Upgrade check-spelling to v0.0.18

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

Co-authored-by: Josh Soref <jsoref@users.noreply.github.com>
2021-05-11 09:39:14 +02:00
Den Delimarsky
e366e8e878 Fixing how cancellation token is handled. 2021-05-10 22:07:03 -07:00
Den Delimarsky
0931d23fc5 Add contextual comments. 2021-05-10 21:06:03 -07:00
Den Delimarsky
c2f1cbf867 Code cleanup 2021-05-10 20:58:34 -07:00
Clint Rutkas
4a46619857 adding wsx, think this is everything needed 2021-05-10 20:33:19 -07:00
Den Delimarsky
61a787844b Proper use of serialization routines 2021-05-10 18:46:39 -07:00
Den Delimarsky
8013664eef Updating how the tray works 2021-05-10 18:25:40 -07:00
Den Delimarsky
bd8decdfc8 Update the logic for Espresso launches 2021-05-10 17:58:36 -07:00
Den Delimarsky
79c70b3998 Modify how settings are handled by Espresso 2021-05-10 17:55:11 -07:00
Clint Rutkas
f0e5be9982 changing settings order 2021-05-10 14:35:27 -07:00
Clint Rutkas
f20e3fffe4 Adjusting locations 2021-05-10 13:59:17 -07:00
Clint Rutkas
d8762a8ed8 removing AnyCPU 2021-05-10 11:56:01 -07:00
Enrico Giordani
863b2541a0 [build] stop building PowerRenameUWPUI (#11185)
this project was needed when PowerToys supported the MSIX installer
2021-05-10 17:58:58 +02:00
Enrico Giordani
1fa174c184 [Run] remove Python class (#11186)
Run deosn't support Python plugins
2021-05-10 17:48:41 +02:00
csigs
c33bc31c89 LEGO: check in for master to temporary branch. (#11187) 2021-05-10 14:58:21 +02:00
Enrico Giordani
617b7adb09 [KBM] Fix for handle leak (#11182) 2021-05-10 10:39:54 +02:00
Den Delimarsky
af4ec9ad8b Change how settings and tray are handled. 2021-05-09 22:25:52 -07:00
Den Delimarsky
1347223707 Update expected words 2021-05-09 18:55:56 -07:00
Den Delimarsky
64bc9cb771 Fix project issue that prevented the launch of the console window for testing 2021-05-09 18:21:51 -07:00
Den Delimarsky
a4d429c5de Merge remote-tracking branch 'origin/master' 2021-05-09 17:58:00 -07:00
Den Delimarsky
c6c19e3824 Update with reference to missing string 2021-05-09 17:57:04 -07:00
Den Delimarsky
6e16f5c918 Merge branch 'microsoft:master' into master 2021-05-09 17:54:24 -07:00
Den Delimarsky
6b2b066696 Add more words to expected collection 2021-05-09 17:50:15 -07:00
Den Delimarsky
924057cf41 Add expected spelling 2021-05-09 17:23:49 -07:00
Den Delimarsky
f0ea815427 More naming fixes 2021-05-09 17:17:51 -07:00
Den Delimarsky
fd3c55866e Fix naming 2021-05-09 17:14:48 -07:00
Den Delimarsky
7b6762609e Cleanup and set correct assembly name 2021-05-09 16:27:59 -07:00
Den Delimarsky
5cf82d7000 Fix typo and minor resource changes 2021-05-09 15:53:43 -07:00
Enrico Giordani
489ff37bf4 [msi] add localized resources for "System" plugin (#11137)
* [msi] add System plugin localization resources

* [msi] add missing resource folder
2021-05-07 11:26:29 +02:00
Enrico Giordani
f6ed5fd7b3 [devdocs] new plugin localization steps (#11138) 2021-05-07 11:26:08 +02:00
Mykhailo Pylyp
8785fca309 [KBM] decoupling editor and engine (#11133) 2021-05-07 11:16:31 +03:00
DoctorNefario
9461909321 [ColorPicker] Change zoom animation behavior (#11057)
* [ColorPicker] Change zoom animation behavior
Makes the main window large enough to accommodate all zoom levels.

* [ColorPicker] Change zoom window position logic
Use PointFromScreen to calculate mouse position relative to window
This requires a "visible" window, so use opacity to fake-hide window
Window is still fully hidden when color picker closes

* [ColorPicker] Extract and modify resize behavior
Allows easier editing of animation easing/duration

* Update expect.txt

IAnimatable
IEasing

Co-authored-by: Clint Rutkas <clint@rutkas.com>
2021-05-07 09:28:20 +02:00
Andrey Nekrasov
21247c0bb0 [BugReportTool] Add windows settings (user language and locale) (#11129) 2021-05-06 16:17:57 +03:00
yuyoyuppe
b07966ba26 [Setup] Update .net core to 3.1.14 2021-05-06 15:46:42 +03:00
Enrico Giordani
0a232cd3e2 [bootstrapper] Allow msi extraction on 1809 and older (#11117) 2021-05-06 08:17:06 +02:00
Clint Rutkas
0baf2cb9da Update config.yml 2021-05-05 10:58:31 -07:00
Den Delimarsky
3f5f83ae1c Adding the ability to have a tray icon 2021-05-05 07:52:08 -07:00
Chris Davis
bf6dcf40ef Ensure the lifetime of CPowerRenameProcessUI on the worker thread (#11106)
* Ensure the lifetime of CPowerRenameProcessUI on the worker thread to prevent AV during shutdown

* Ensure worker thread progress dialog pointer is valid.  Also add a call to StopProgressDialog from the worker thread as the progress dialog can be particular about thread affinity for that method call.

Co-authored-by: Chris Davis (EDGE) <chrdavis@microsoft.com>
2021-05-05 11:46:13 +02:00
Clint Rutkas
9d59709c6c Update feature_request.yml 2021-05-04 15:55:56 -07:00
Clint Rutkas
3fc864d846 Update feature_request.yml 2021-05-04 15:55:05 -07:00
Clint Rutkas
404f9125ed Update feature_request.yml 2021-05-04 15:54:49 -07:00
DoctorNefario
e53b4346d7 [ColorPicker] Prevent creation of duplicate colors in history (#10705)
If color already exists in history, move it to position 0.
This prevents new duplicate colors, but ignores existing duplicates.
2021-05-04 13:16:32 -07:00
ricardosantos9521
4dab056d28 improve sorting vscodeworkspaces plugin (#10861)
* improve sorting vscodeworkspaces

* String.empty to string.empty. use ToLowerInvariant() instead of ToLower().

* more String.empty to string.empty. use ToLowerInvariant() instead of ToLower().
2021-05-04 08:51:44 -07:00
Den Delimarsky
077f3b79c1 Minor cleanup 2021-05-04 08:28:35 -07:00
Den Delimarsky
40478bee75 Merge remote-tracking branch 'origin/master' 2021-05-04 08:22:26 -07:00
Den Delimarsky
ff1ca4dac1 Working on putting together tray capabilities. 2021-05-04 08:21:58 -07:00
Niels Laute
86e4a9120d Double click to close editor (#11098)
Co-authored-by: Niels Laute <niels9001@hotmail.com>
2021-05-04 16:18:06 +02:00
Niels Laute
4ef667dc83 [FZ Editor] Accessibility fixes (#11097)
* Added tabindex to editor windows

* Hide icons

* Keyboard accesibile dialog

Co-authored-by: Niels Laute <niels9001@hotmail.com>
2021-05-04 15:36:03 +02:00
Niels Laute
d586814308 [FZ Editor] Replace ItemsControls with GridViews (#11066)
* LayoutItemsControl to GridView

* ContextMenu

* Added contextmenu items

* Context menu keyboard support

Co-authored-by: Niels Laute <niels9001@hotmail.com>
2021-05-04 13:49:38 +02:00
Den Delimarsky
dda2472487 Merge pull request #6 from microsoft/master
Sync latest changes
2021-05-03 08:08:44 -07:00
Den Delimarsky
33a81416fc Proper handling for PID binding
Now Espresso can be connected directly to the PowerToys PID.
2021-05-03 08:04:53 -07:00
csigs
f4f481c498 LEGO: check in for master to temporary branch. (#11081) 2021-05-03 15:15:08 +02:00
csigs
088b23f09a LEGO: check in for master to temporary branch. (#11039) 2021-05-03 06:28:40 +02:00
Den Delimarsky
31ca8ff2ce Fix binding 2021-05-02 11:14:59 -07:00
Den Delimarsky
15df1a2f1d Update settings config. 2021-05-02 10:29:50 -07:00
Den Delimarsky
485c15e981 Fixing settings issue to make sure configuration can propagate. 2021-05-02 09:30:26 -07:00
Den Delimarsky
9a009d63eb Update binding 2021-05-01 13:15:06 -07:00
Den Delimarsky
a458aba2d3 Update launch settings 2021-05-01 11:25:06 -07:00
Den Delimarsky
7f5558bd8a Update project configuration 2021-05-01 11:04:47 -07:00
Den Delimarsky
75ed9c7b12 Adding code to launch Espresso 2021-05-01 10:32:36 -07:00
Den Delimarsky
a13a5fde84 Fix logging for background thread 2021-05-01 09:41:22 -07:00
Den Delimarsky
45e24a2605 Remove redundant assignment 2021-05-01 09:36:24 -07:00
Enrico Giordani
0c3ce81c94 [KBM Editor] Support WM_DPICHANGED event (#11015)
* [KBM Editor] Support WM_DPICHANGED event

* [spell checker] add term

* [KBM editor] properly cast new DPI value
2021-04-30 16:04:53 +02:00
Enrico Giordani
fa0cfeccb9 [spell checker] add terms (#11016) 2021-04-30 13:35:41 +02:00
Clint Rutkas
6d72c4eff2 Update README.md 2021-04-29 12:26:58 -07:00
Clint Rutkas
ffa4bf50c3 Update README.md 2021-04-29 12:26:07 -07:00
Clint Rutkas
16d5a3efed Update README.md 2021-04-29 12:07:38 -07:00
Enrico Giordani
5efb3d3a61 [KBM] scale editor window size based on DPI (#11006) 2021-04-29 17:39:12 +02:00
Den Delimarsky
d3face8664 Improved logging for better diagnostics 2021-04-29 08:18:35 -07:00
Den Delimarsky
8496b1dc09 Updating how we handle logging.
Instead of using Console.WriteLine for everything, I decided that it's time to switch to a more mature logging platform. This will enable me to better track any kinds of issues, and make sure that there is an actual log file that lives outside the console that I can use for diagnostics.
2021-04-29 08:02:24 -07:00
Den Delimarsky
994af18770 Remove unnecessary using 2021-04-28 20:03:18 -07:00
Den Delimarsky
3651c66d5b Fix project state 2021-04-28 19:43:03 -07:00
Den Delimarsky
1e46c770b2 Merge pull request #5 from dend/microsoft-master
Merge latest changes
2021-04-28 18:41:46 -07:00
Den Delimarsky
b01b878b47 Merge branch 'master' of https://github.com/microsoft/PowerToys into microsoft-master 2021-04-28 18:39:26 -07:00
Den Delimarsky
c2d54b0733 Update how file changes are handled
Instead of relying on MemoryCache, I am using Rx, per a suggestion from Twitter, which enables me to automatically de-dupe things on the fly instead of using a polling method for a temporary cache.
2021-04-28 18:27:42 -07:00
Enrico Giordani
d2ec89a0ca [OOBE] New FZ Editor hotkey (#10988) 2021-04-28 13:09:08 +02:00
Enrico Giordani
4279d6c067 [KBM] supress warning (#10983) 2021-04-27 20:13:30 +02:00
Enrico Giordani
2c2cd3fde2 [msi] missing dlls (#10982) 2021-04-27 19:58:35 +02:00
Mykhailo Pylyp
5426e7bc30 [KBM Engine] Remove global usings (#10976) 2021-04-27 17:56:59 +02:00
Mykhailo Pylyp
4c6191d7c0 [KBM] fix for build error C2872 (#10970) 2021-04-27 15:19:18 +02:00
Enrico Giordani
0aee35df0c [KBM] fix build error C2079 (#10959)
* [KBM] fix build error C2079

* [KBM] one more <sstream> fix
2021-04-27 09:37:44 +02:00
Enrico Giordani
aa51f81bb8 [KBM] move interop methods to dedicated class (#10958) 2021-04-27 01:14:59 +02:00
Mykhailo Pylyp
a8c99e9513 [KBM] Migrate Engine and Editor into separate processes (#10774)
* Move KBM engine into separate process (#10672)

* [KBM] Migrate KBM UI out of the runner (#10709)

* Clean up keyboard hook handles (#10817)

* [C++ common] Unhandled exception handler (#10821)

* [KBM] Use icon in the KeyboardManagerEditor (#10845)

* [KBM] Move resources from the Common project to the Editor. (#10844)

* KBM Editor tests (#10858)

* Rename engine executable (#10868)

* clean up (#10870)

* [KBM] Changed Editor and libraries output folders (#10871)

* [KBM] New logs structure (#10872)

* Add unhandled exception handling to the editor (#10874)

* [KBM] Trace for edit keyboard window

* Logging for XamlBridge message loop

* [KBM] Added Editor and Engine to the installer (#10876)

* Fix spelling

* Interprocess communication logs, remove unnecessary windows message logs

* [KBM] Separated telemetry for the engine and editor. (#10889)

* [KBM] Editor test project (#10891)

* Versions for the engine and the editor (#10897)

* Add the editor's and the engine's executables to signing process (#10900)

* [KBM editor] Run only one instance, exit when parent process exits (#10890)

* [KBM] Force kill editor process to avoid XAML crash (#10907)

* [KBM] Force kill editor process to avoid XAML crash

* Fix event releasing

Co-authored-by: mykhailopylyp <17161067+mykhailopylyp@users.noreply.github.com>

* Make the editor dpi aware (#10908)

* [KBM] KeyboardManagerCommon refactoring (#10909)

* Do not start the process if it is already started (#10910)

* logs

* Update src/modules/keyboardmanager/KeyboardManagerEditorLibrary/EditKeyboardWindow.cpp

* Update src/modules/keyboardmanager/KeyboardManagerEditorLibrary/EditKeyboardWindow.cpp

* [KBM] Rename InitUnhandledExceptionHandler
to make it explicit that is for x64 only.
We will fix it properly when adding support for ARM64 and add a header with
the proper conditional building.

* [KBM] rename file/class/variables using camel case

* [KBM] Rename "event_locker" -> "EventLocker"

* [KBM] rename process_waiter
Add a TODO comment

* [KBM] rename methods
Add TODO comment

* [KBM] use uppercase for function names

* [KBM] use uppercase for methos, lowercase for properties

* [KBM] rename method, make methods private, formatting

* [KBM] rename private variables

* [KBM] use uppercase for function names

* [KBM] Added support to run the editor stand-alone when built in debug mode

* Update src/modules/keyboardmanager/KeyboardManagerEditor/KeyboardManagerEditor.cpp

* Check success of event creation, comment (#10947)

* [KBM] code formatting (#10951)

* [KBM] code formatting

* Update src/modules/keyboardmanager/KeyboardManagerEditorLibrary/BufferValidationHelpers.cpp

* [KBM] tracing

* [KBM] Remappings not showing fix. (#10954)

* removed mutex

* retry loop for reading

* retry on reading config once

* log error

Co-authored-by: Enrico Giordani <enricogior@users.noreply.github.com>

Co-authored-by: Enrico Giordani <enricogior@users.noreply.github.com>

Co-authored-by: Seraphima Zykova <zykovas91@gmail.com>
Co-authored-by: Enrico Giordani <enricogior@users.noreply.github.com>
Co-authored-by: Enrico Giordani <enrico.giordani@gmail.com>
2021-04-26 21:01:38 +02:00
Seraphima Zykova
e9a0b58796 [FancyZones Editor] Fix FZ Editor crash on opening custom layout for editing (#10911) 2021-04-26 14:32:18 +01:00
csigs
b2f47b9073 LEGO: check in for master to temporary branch. (#10949) 2021-04-26 14:27:29 +02:00
Den Delimarsky
7d71e8828c Cache tweaks 2021-04-24 12:37:28 -07:00
Den Delimarsky
395309c67c Update with proper event caching 2021-04-24 11:06:13 -07:00
Den Delimarsky
798667d0e5 More thread fine-tuning. 2021-04-24 10:07:42 -07:00
Den Delimarsky
f277832188 Updating the threading model for timed keep-awake 2021-04-24 09:59:52 -07:00
Clint Rutkas
6729da3a1b https://grammarist.com/usage/up-to-date/ correcting verbage (#10914) 2021-04-23 11:49:00 -07:00
Clint Rutkas
e098581688 change in user string (#10912) 2021-04-23 10:22:50 -07:00
Den Delimarsky
5e897a546a Update minor details 2021-04-23 08:47:18 -07:00
Den Delimarsky
c0757b74e8 Cleanup the code 2021-04-23 08:11:32 -07:00
Den Delimarsky
3d35f2cb0a Merge pull request #3 from microsoft/master
Sync latest changes
2021-04-23 08:01:23 -07:00
Den Delimarsky
849c376fb8 Update settings configuration 2021-04-23 08:00:22 -07:00
Den Delimarsky
919f7bacfe Update file handling logic 2021-04-22 08:14:07 -07:00
Clint Rutkas
3f3494a3c3 Update feature_request.yml 2021-04-21 17:21:13 -07:00
Clint Rutkas
f561b25d9d Delete feature_request.md 2021-04-21 17:20:06 -07:00
Clint Rutkas
61739453c2 Update feature_request.yml 2021-04-21 17:19:40 -07:00
Clint Rutkas
75d8443e3e Update feature_request.yml 2021-04-21 17:18:44 -07:00
Clint Rutkas
94c2115bf4 Create feature_request.yml 2021-04-21 17:18:05 -07:00
Enrico Giordani
150ffe6013 [File Explorer Add-ons] remove old settings support (#10857) 2021-04-21 12:16:01 +02:00
Den Delimarsky
a0c5f8cc59 File watcher with keep-awake state binding 2021-04-20 08:31:18 -07:00
Den Delimarsky
aa46bf6076 Can currently watch the file system. 2021-04-20 07:54:03 -07:00
Den Delimarsky
c13840b114 Merge pull request #2 from microsoft/master
Update with latest changes
2021-04-20 07:28:00 -07:00
Enrico Giordani
6ec30e2186 [Image Resizer] remove old in app settings (#10837)
* [Image Resizer] Remove old settings

* [Image Resizer] Removed unused code

* [common interop] remove "ShouldNewSettingsBeUsed()"
2021-04-20 15:11:59 +02:00
Niels Laute
0e64071051 [FZ Editor] Edit dialog UX fixes (#10734)
* Updates to UI

* Handle enter key

* Focus visual fix

* Fix

Co-authored-by: Niels Laute <niels9001@hotmail.com>
2021-04-20 14:56:18 +02:00
Andrey Nekrasov
9b8970fd9c [Setup] Introduce a flag to always start PowerToys after install (#10838) 2021-04-20 14:47:59 +03:00
Clint Rutkas
78943dc19b Delete documentation-issue.md 2021-04-19 20:21:27 -07:00
Clint Rutkas
7aad6d8f95 Update and rename documentation-issue1.md to documentation-issue.md 2021-04-19 20:21:00 -07:00
Clint Rutkas
7bf2114ece Rename documentation-issue.md to documentation-issue1.md 2021-04-19 20:20:42 -07:00
Clint Rutkas
3dd1487a13 Create documentation-issue.yml 2021-04-19 20:19:51 -07:00
Clint Rutkas
04e9635f66 Update bug_report.yml 2021-04-19 20:15:54 -07:00
Clint Rutkas
10b3011757 Update translation_issue.yml 2021-04-19 20:15:12 -07:00
Clint Rutkas
ac3b2bb14d Update translation_issue.yml 2021-04-19 20:14:05 -07:00
Clint Rutkas
9adbfdf270 Update translation_issue.yml 2021-04-19 20:09:14 -07:00
Clint Rutkas
bf05f97cfe Update bug_report.yml 2021-04-19 15:27:53 -07:00
Clint Rutkas
05c083bb54 Update bug_report.yml 2021-04-19 15:26:35 -07:00
Clint Rutkas
5a37991d44 Update bug_report.yml 2021-04-19 15:25:45 -07:00
csigs
34f371aeae LEGO: check in for master to temporary branch. (#10819) 2021-04-19 13:07:20 -07:00
Niels Laute
21d68c7998 [OOBE] Accessibility fixes (#10799)
* Narrator support for all Settings buttons

* Shortened welcome title

* Fixes

* Removed unused string

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

Co-authored-by: Niels Laute <niels9001@hotmail.com>
Co-authored-by: Enrico Giordani <enricogior@users.noreply.github.com>
2021-04-19 12:42:36 +02:00
Mykhailo Pylyp
a92c18f80c Log a warning if a plugin search takes more than 50 milliseconds (#10772) 2021-04-19 11:43:24 +03:00
Mykhailo Pylyp
6e65f9cbd5 Make delete_other_versions_log_folders more reliable (#10760) 2021-04-16 15:21:21 +03:00
Niels Laute
71cf94b330 [Image Resizer] Visual updates + NumberBox (#10596)
* Input page visual updates + NumberBox

* Update UI

* Update to NumberBoxes

* Update src/modules/imageresizer/ui/Views/InputPage.xaml

* Update src/modules/imageresizer/ui/Views/InputPage.xaml

* Formatting

Co-authored-by: Niels Laute <niels9001@hotmail.com>
Co-authored-by: Enrico Giordani <enricogior@users.noreply.github.com>
Co-authored-by: Enrico Giordani <enrico.giordani@gmail.com>
2021-04-16 10:15:50 +02:00
Clint Rutkas
43a73065af Update README.md 2021-04-15 18:32:12 -07:00
Clint Rutkas
e762859d1b Update README.md 2021-04-15 12:56:56 -07:00
Clint Rutkas
501d3b9a35 Update README.md 2021-04-15 12:13:59 -07:00
Clint Rutkas
9ff63b486e updating system.text.json (#10762) 2021-04-15 11:41:11 -07:00
yuyoyuppe
d4e5418f07 [Auto-update] Remove special case logic for autoupdate disabling 2021-04-15 16:17:43 +03:00
yuyoyuppe
3c3859e840 [Setup] Update WIX to require at least build 18362 2021-04-15 16:16:50 +03:00
yuyoyuppe
f3915043dd [VCM] do not cleanup settings during installation 2021-04-15 16:16:28 +03:00
Clint Rutkas
e9ce9ab87a Changing default key for FanzyZones (#10751)
* Changing default key

* Update Settings.h
2021-04-15 11:11:08 +02:00
Niels Laute
b585aef166 [OOBE] Updated GIFs (#10745)
* Updated GIFs

* Updated PowerRename image

* Update PowerRename image

* Updated imageresizer

Co-authored-by: Niels Laute <niels9001@hotmail.com>
2021-04-14 11:11:55 -07:00
Clint Rutkas
b13388a138 Delete preview-monaco.md
moved to wiki
2021-04-14 10:40:24 -07:00
Aaron Junker
2f5458ab5f monaco preview specification (#10136)
* Create preview-monaco.md

* Update preview-monaco.md

* Update preview-monaco.md

* Update preview-monaco.md

* Update expect.txt

* Update preview-monaco.md

* Update preview-monaco.md

added a bit more information up front. Added in new requirement at the bottom that i think we should discuss.

* Update preview-monaco.md

Co-authored-by: Clint Rutkas <clint@rutkas.com>
2021-04-14 10:32:41 -07:00
Mykhailo Pylyp
0f89acea96 [docs] New plugin checklist (#10511)
* new plugin checklist

* Fix paths

* spellings, paths

* fix pattern

* make checklist items more specific

* Make check boxes, enforce existence of .NET 5 dependency
2021-04-14 09:12:38 -07:00
DoctorNefario
28e9f168d4 Disable forwarding the Escape event (#10697) 2021-04-13 11:16:48 +02:00
Mykhailo Pylyp
04101d23e7 Added missed dlls (#10706) 2021-04-12 19:24:42 +03:00
Clare DuVal
0a6de4561f [PowerRename] Add option for Capitalization (#10213)
* Add camelcase instances + helper translation

* Add camel case testing

* Update Helpers.cpp

* Update PowerRenameUI.cpp

* Update src/modules/powerrename/ui/PowerRenameUI.cpp

Co-authored-by: Enrico Giordani <enricogior@users.noreply.github.com>

* Change camel case to capitalized, move ui

* Update PowerRenameManagerTests.cpp

* Update PowerRenameUI.base.rc

* Update PowerRenameUI.base.rc

Co-authored-by: Enrico Giordani <enricogior@users.noreply.github.com>
2021-04-09 14:24:06 +02:00
Den Delimarsky
cd647eb352 Adding the option to have timed keep-awake 2021-04-08 16:30:56 -07:00
Den Delimarsky
18f94fc0e6 Adding functionality to not sleep 2021-04-08 16:09:59 -07:00
Den Delimarsky
c141e4eec3 Update Espresso managed application with proper command line parsing 2021-04-08 15:12:09 -07:00
Den Delimarsky
a178ad7524 Settings work properly now 2021-04-08 14:00:07 -07:00
Den Delimarsky
162f7498a4 Update project so that it finally compiles. 2021-04-08 13:39:13 -07:00
Den Delimarsky
d74f2406b7 Setting compiler flag
Without this change, the project is throwing WinRT errors.
2021-04-08 10:56:20 -07:00
Den Delimarsky
afbddfc23b Updating proper references. 2021-04-08 10:47:28 -07:00
Ivan Stošić
c08be14919 Use local mutexes (#10651)
* Update file config mutex code in KeyboardManager

* Update runner instance mutex names and logic

* Update Launcher mutex

* Update a mutex in the Runner

* Restored a mutex used in the installer

* Update src/modules/launcher/PowerLauncher/App.xaml.cs

Co-authored-by: Enrico Giordani <enricogior@users.noreply.github.com>
2021-04-08 19:42:46 +02:00
Den Delimarsky
59b4e29be9 Cleanup of old content
The old EspressoUI project was misplaced and is no longer necessary.
2021-04-08 08:22:35 -07:00
Enrico Giordani
aa5ff65b54 [runner, color picker, run] remove os dection (#10648) 2021-04-08 16:10:05 +02:00
Mykhailo Pylyp
97fdf10cea Divide load and initialize of plugins into two stages (#10650) 2021-04-08 16:07:26 +03:00
Den Delimarsky
2afa653eff Latest round of changes
Now that I figured out why the settings were not propagated, I started working on integrating the proper modules in the stack.
2021-04-07 20:58:53 -07:00
Den Delimarsky
9cb333f7b5 Merge branch 'microsoft-master' 2021-04-07 17:13:45 -07:00
Den Delimarsky
4cec34d014 Merge branch 'master' of https://github.com/microsoft/PowerToys into microsoft-master 2021-04-07 17:12:51 -07:00
Den Delimarsky
15677cef4a Update settings 2021-04-07 17:05:45 -07:00
Den Delimarsky
0e0bae0198 Update settings configuration
There is a non-zero amount of settings that I need to set up for Espresso to work properly. This change is all about updating the view model and its binding to the UI.
2021-04-07 10:38:17 -07:00
Seraphima Zykova
55a851e5f2 [FancyZones] Place log files in subfolders with the version number. (#10549) 2021-04-07 14:43:35 +01:00
Ivan Stošić
675ae91c29 [ColorPicker] Ensure that the hotkey always works (#10542)
* Fix multiple instances running

* Make ColorPicker invokable from the runner

* Use a local mutex

* Enable running ColorPicker as standalone as well as a in PT

* Add some logging

* Remove newline

This will happen sooner or later and is not needed in the PR

* Update mutex name

* Update names

* Add logging
2021-04-07 11:59:41 +02:00
Clint Rutkas
353ca842ad Shift to detect nullable (#10627) 2021-04-07 02:54:15 -07:00
Clint Rutkas
304ba8c6bb file explorer comments (#10628) 2021-04-07 02:53:45 -07:00
Ivan Stošić
bb5d4dfbf0 Fixed an issue with zone sizes (#10609) 2021-04-07 09:30:35 +02:00
Aaron Junker
29ed73ba92 Dev/aaron junker/localisation GitHub template (#10443)
* Create translation_issue.yml

* Update translation_issue.yml

* Update translation_issue.yml

* Update translation_issue.yml

* Update translation_issue.yml

* Update translation_issue.yml

* Update translation_issue.yml

* Update translation_issue.yml

* Update translation_issue.yml

* Update translation_issue.yml

* Update translation_issue.yml

* Update translation_issue.yml

* Update translation_issue.yml

* Update translation_issue.yml

* Create test.yml

* Update test.yml

* Update test.yml

* Update test.yml

* Update test.yml

* Delete test.yml

* Delete translation_issue.md

* Update translation_issue.yml

* Update translation_issue.yml

* Update translation_issue.yml

Co-authored-by: Clint Rutkas <clint@rutkas.com>
2021-04-05 16:36:11 -07:00
Clint Rutkas
e36f08db3a More targetted links (#10604) 2021-04-05 12:48:02 -07:00
Clint Rutkas
fc2189fe0a Update bug_report.yml 2021-04-05 10:47:28 -07:00
Clint Rutkas
bb5deffdd4 Update bug_report.yml 2021-04-05 10:45:54 -07:00
Clint Rutkas
68e00ed208 Tweaking bug report template (#10558)
* Tweaking bug report template

Tracking #10450

* Update bug_report.yml

* Update bug_report.yml
2021-04-05 10:44:16 -07:00
Mykhailo Pylyp
1c8b7a5ae5 Do not load plugin when it is disabled (#10515) 2021-04-05 17:57:22 +03:00
Niels Laute
ed21dba8f0 Removed manual cleartype (#10568)
Co-authored-by: Niels Laute <niels9001@hotmail.com>
2021-04-05 16:26:24 +02:00
csigs
8e78892712 LEGO: check in for master to temporary branch. (#10588) 2021-04-05 15:23:18 +02:00
Niels Laute
38bc0bab3d [FZ Editor] Added resolution to monitor (#10567)
* Added resolution

* Added resolution

* Fontsize fix

Co-authored-by: Niels Laute <niels9001@hotmail.com>
2021-04-05 11:35:33 +02:00
Enrico Giordani
927e947385 [old settings] deprecate old settings (#10548)
* [old settings] deprecate old settings

* removed old settings from the pipeline signing process
2021-04-05 11:32:48 +02:00
Niels Laute
b0465bb500 [OOBE] UX fixes (#10583)
* Updated OOBE

* String fix

Co-authored-by: Niels Laute <niels9001@hotmail.com>
2021-04-05 11:15:08 +02:00
Niels Laute
0ee034a084 [OOBE] Bolded shortcuts / instructions (#10574)
* Colorpicker keys

* Key visuals added

* Added highlighted text

* Undo comment

Co-authored-by: Niels Laute <niels9001@hotmail.com>
2021-04-05 10:52:44 +02:00
Enrico Giordani
fa92f2e581 [msi] remove old settings from installer (#10546) 2021-04-02 16:44:12 +02:00
Davide Giacometti
bc28a3f5e3 disable apps for shortcut guide (#10123) 2021-04-02 16:29:48 +02:00
Enrico Giordani
6561290bde [spell checker] Add expected terms (#10544) 2021-04-02 15:58:43 +02:00
ricardosantos9521
2b9ecf75b6 fix workspaces not showing in vscode plugin #10530 (#10533) 2021-04-02 15:06:14 +02:00
Chris Davis
d128939227 Show progress dialog during startup (#9255)
* Show progress dialog during startup for selection enumeration that can take a long time.

* Updated with better code organization and a timer to ensure the progress dialog does not appear in most cases.

* Update based on PR feedback

* Change progress dialog delay from 1500ms to 2500ms

* Move progress dialog invocation off the main UI thread

Co-authored-by: Chris Davis (EDGE) <chrdavis@microsoft.com>
2021-04-02 12:07:12 +02:00
Clint Rutkas
6613522e53 Readme 0.35 (#10504)
* Update README.md

* Update README.md

shifting to WinGet

* Update expect.txt

* Update README.md

* Update README.md

* Update README.md

* Update expect.txt

* Update README.md

* Update README.md

* Update expect.txt

addrum

* Update README.md

* Update README.md

* Update README.md

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

* Update README.md

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

* Update README.md

Co-authored-by: Deondre Davis <dedavis@microsoft.com>
Co-authored-by: htcfreek <61519853+htcfreek@users.noreply.github.com>
2021-04-01 09:52:13 -07:00
Enrico Giordani
5de2c3dc22 [msi] add FancyZonesEditor.deps.json (#10519) 2021-03-31 21:45:23 +02:00
Mykhailo Pylyp
a91f74d648 fix glitch (#10517) 2021-03-31 21:54:10 +03:00
Ivan Stošić
9cf3b9f91d Disable forwarding the scroll event (#10513) 2021-03-31 14:54:32 +02:00
dependabot[bot]
667e38fea0 Bump y18n from 4.0.0 to 4.0.1 in /src/settings-web (#10508)
Bumps [y18n](https://github.com/yargs/y18n) from 4.0.0 to 4.0.1.
- [Release notes](https://github.com/yargs/y18n/releases)
- [Changelog](https://github.com/yargs/y18n/blob/master/CHANGELOG.md)
- [Commits](https://github.com/yargs/y18n/commits)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-03-31 09:58:38 +02:00
Enrico Giordani
1728857ca1 [CI build] exclude WebcamReportTool from build (#10510) 2021-03-31 09:37:18 +02:00
Seraphima Zykova
38b9ce3aa2 [FZ Editor] Crash with malformed layout data fix. (#10500)
* check values on json parsing

* comments

* invalidate malformed canvas layouts

* changed error message

* simplify error message

* removed exception message
2021-03-30 20:42:10 +02:00
Clint Rutkas
fba4fd91a1 Updating nugets (#10493)
* Update System.Text.Json and Newtsoft.json

* update newtson.json

* Updating testing only items.
2021-03-30 09:52:00 -07:00
Andrey Nekrasov
ffda6a51bb [Tools] Add DShow webcam report tool (#10502) 2021-03-30 18:27:42 +03:00
csigs
49fb838175 LEGO: check in for master to temporary branch. (#10480) 2021-03-29 15:46:38 +02:00
Ivan Stošić
31fa9475da [FancyZones] Fix deadlocks in ZoneWindowDrawing (#10461)
* Fixed deadlocks in ZoneWindowDrawing

Moved all possibly reentrant or blocking calls to ShowWindow out of critical sections.

* Initialize bools

* Tune flashing visuals

* Address PR comments

* Use  = true; to initialize bools
* Remove tracing from GetAnimationAlpha
* Use member initialization when constructing AnimationInfo

* Refactor rendering

* Whitespace

* Hide window on render failure
2021-03-29 13:39:16 +02:00
Enrico Giordani
ccc380f11c [telemetry][ColorPicker] add event name support (#10476)
Allow to set a custom name for the event instead of just using the
class name.
2021-03-29 11:20:49 +02:00
Mykhailo Pylyp
9a3896f48a logs (#10462) 2021-03-26 19:17:26 +02:00
Ivan Stošić
5baf11dada Fix a vector<bool> subscript out of range crash (#10458) 2021-03-26 14:44:03 +01:00
Mykhailo Pylyp
1c46e6b72b Added more logging (#10445) 2021-03-26 14:21:29 +02:00
Clint Rutkas
ccaa98513c Update bug_report.yml 2021-03-25 13:16:57 -07:00
Andrey Nekrasov
aac479f58c [Log] Remove log_settings.json during installation and set default level to trace (#10438) 2021-03-25 17:28:29 +03:00
Mykhailo Pylyp
718289c115 Settings telemetry for ColorPicker (#10417) 2021-03-25 16:04:56 +02:00
Seraphima Zykova
13c4c188fa [FancyZones Editor] Quick layout switch hotkeys (#10437)
Co-authored-by: Ivan Stošić <ivan100sic@gmail.com>
2021-03-25 15:44:55 +03:00
Mykhailo Pylyp
7ba03ed24f Add telemetry to ColorPicker (#10413) 2021-03-25 13:11:36 +02:00
Andrey Nekrasov
6229ea4559 [Runner] verify the existence of Launcher assets (#10416) 2021-03-25 12:26:11 +03:00
Seraphima Zykova
fd55026fba [ColorPicker] Order colors with up/down buttons. (#10392) 2021-03-24 19:36:25 +03:00
Clint Rutkas
3ae5135f67 GitHub issue template (#10401)
* Create bug_report.yml

adding in yml version for bug report

* Update bug_report.yml

* Update bug_report.yml

* Delete bug_report.md

* Update .github/ISSUE_TEMPLATE/bug_report.yml

Co-authored-by: Enrico Giordani <enricogior@users.noreply.github.com>

* Update .github/ISSUE_TEMPLATE/bug_report.yml

Co-authored-by: Enrico Giordani <enricogior@users.noreply.github.com>

* Update .github/ISSUE_TEMPLATE/bug_report.yml

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

Co-authored-by: Enrico Giordani <enricogior@users.noreply.github.com>
Co-authored-by: htcfreek <61519853+htcfreek@users.noreply.github.com>
2021-03-24 09:03:30 -07:00
Den Delimarsky
ee932450df Update to settings logic.
Also making sure that the proper headers are set, and that all extraneous content is removed where not necessary. This should get the foundation going for the initial set of settings, and enables me to connect the view model to the settings UI.
2021-03-24 08:10:37 -07:00
Den Delimarsky
32984dc126 Add property storage capabilities 2021-03-24 07:42:15 -07:00
Mykhailo Pylyp
aba97a419c Don't update view if settings were not changed (#10407) 2021-03-24 16:13:33 +02:00
Andrey Nekrasov
3601492ce1 [PowerLauncher] Immediately releases AppxManifest stream objects (#10394) 2021-03-23 18:32:33 +03:00
Den Delimarsky
2304eff3ca Fiddling with settings to make sure I can connect them to the app 2021-03-23 08:11:49 -07:00
ricardosantos9521
55cfaaf929 add tooltips to vscode workspaces plugin (#10348) 2021-03-23 10:32:55 +01:00
Mykhailo Pylyp
730e5f299f fix null reference exception (#10372) 2021-03-22 17:47:23 +02:00
csigs
2698585018 LEGO: check in for master to temporary branch. (#10374) 2021-03-22 16:45:56 +01:00
Mykhailo Pylyp
acbabbe13d Color picker logs path (#10375) 2021-03-22 17:23:39 +02:00
Ben Constable
77d67f3599 [Color Picker] Use escape key to exit colour editor UI (#10325)
* Use escape key to exit color editor UI

* Logic handling formatting
2021-03-22 10:15:47 +01:00
Mykhailo Pylyp
612e9f8b99 Settings telemetry for PT Run (#10328) 2021-03-19 19:03:12 +02:00
Andrey Nekrasov
057e92afb8 [Old Settings] Warn the user on Windows < 1903 that next version won't be supported (#10313) 2021-03-19 12:39:18 +03:00
Mykhailo Pylyp
3a15276668 "Clear the previous query on launch" has a flicker (#10291) 2021-03-18 20:04:04 +02:00
Mykhailo Pylyp
5e9a31eaa7 fix versions for registry and vscode workspaces plugins (#10314) 2021-03-18 18:19:09 +02:00
Enrico Giordani
69d293790a [msi] add version number in telemetry events (#10312) 2021-03-18 16:55:01 +01:00
Andrey Nekrasov
7c28459673 [Settings] Fix HTML settings build (#10307) 2021-03-18 17:14:37 +03:00
Enrico Giordani
fa5ce634e1 [msi] enable telemetry on build farm (#10309) 2021-03-18 14:24:48 +01:00
Clint Rutkas
cc38d42bf9 Adjustments for editor to make langauge more clear for how to interact with editor. (#10298) 2021-03-17 15:45:12 -07:00
Josh Soref
72d92413a2 Upgrade check-spelling to 0.0.17-alpha (#10173)
* spelling: snapped

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: split

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* ci: update to Spell check to 0.0.17a

In the past, plurals `foo`+`s` and past tenses `foo`+`ed` were
automatically tolerated. This turned out to be a bad design choice on my
part.

The basic example is that `potatos` would sometimes be treated as a
mistake and sometimes not (depending on the presence of `potato`).

You can see in this PR, that this logic resulted in `SNAPED` being
accepted as a word along with `actioned` -- there's nothing
intrinsically wrong w/ the latter, but unfortunately in order to screen
out the former, my shortcut just couldn't stick around. This means that
the `expect` files will grow perhaps by a tiny bit, but as
you can see, not really by much.

When GitHub initially introduced GitHub Actions, the event for
`pull_request` was created without enough permission for a tool like
this to work properly. I worked around that by using the `schedule`
event. In 2020, they introduced a replacement event
`pull_request_target` which has enough permission. This means that I can
stop relying on the `schedule` event.
2021-03-17 19:27:30 +01:00
Andrey Nekrasov
535cd1f9ac [Auto-update] Turn off on Windows < 1903 (#10240) 2021-03-17 16:49:07 +03:00
Andrey Nekrasov
7c8ed9e2bb [MSI installer] fix WIX build warnings (#10241) 2021-03-17 12:16:47 +03:00
Clint Rutkas
013be4bbb8 adding vsconfig to main solution (#10169)
* adding vsconfig

* Update readme.md

Tweaking instructions to remove script

* docs tweak

docs tweak

* Update .vsconfig

My machine was in a weird state because of this

Co-authored-by: Deondre Davis <dedavis@microsoft.com>
2021-03-16 14:28:55 -07:00
Andrey Nekrasov
81c19b4749 [MSI] Do not use advertised icon (#10246) 2021-03-16 19:40:57 +03:00
Mykhailo Pylyp
1d2aeaf147 Tests on pipeline (#10244) 2021-03-16 17:29:20 +02:00
Niels Laute
0413fe944f Updated accent color (#10257)
Co-authored-by: Niels Laute <niels9001@hotmail.com>
2021-03-16 15:32:43 +01:00
Niels Laute
79eafee59a [Docs] Remove unused images (#10251)
* Removed images

* Added aka.ms redirect

* Revert "Added aka.ms redirect"

This reverts commit f176d6ffa5.

* Added image and updated readme

Co-authored-by: Niels Laute <niels9001@hotmail.com>
2021-03-16 15:18:27 +01:00
Niels Laute
6e14e86e4b [ColorPicker] UX fixes (#10220)
* Added tooltip

* Added edit icon

* NumberBoxes

* [spelling] add terms

* Update ColorPickerControl.xaml

* use variable to reduce casting

Co-authored-by: Niels Laute <niels9001@hotmail.com>
Co-authored-by: Enrico Giordani <enrico.giordani@gmail.com>
2021-03-15 21:32:54 +01:00
csigs
885c7c4e50 LEGO: check in for master to temporary branch. (#10252) 2021-03-15 18:49:55 +01:00
Ivan Stošić
7377ef5606 [FancyZones] Trace various function calls (#10183)
* Implement CallTracer

* Add CallTracer to various places

* Newline

* Fix unit tests not compiling for some reason

* Add macro
remove some trace calls

* Add indentation

* Add semicolon

* Update src/modules/fancyzones/lib/CallTracer.cpp

Co-authored-by: Enrico Giordani <enricogior@users.noreply.github.com>

* Actually indent/unindent output

* Fix initial indent level

Co-authored-by: Enrico Giordani <enrico.giordani@gmail.com>
Co-authored-by: Enrico Giordani <enricogior@users.noreply.github.com>
2021-03-15 13:58:25 +01:00
Mykhailo Pylyp
9a061d74b3 Update PowerToys Run page on settings.json change (#10204) 2021-03-15 14:52:03 +02:00
Andrey Nekrasov
d872be4310 [Updating] Install dotnet 3.1.13 and bump min required version (#10180) 2021-03-11 14:43:26 +03:00
Ivan Stošić
acb8595a50 [FancyZones] Fix taskbar size issues (#9856)
* Fix taskbar size issues

* Fix issue with DPI unaware apps
2021-03-11 12:31:29 +01:00
Ivan Stošić
488ee19f93 [FancyZones editor] Fix CanvasRect not being initialized (#10163)
* Fix CanvasRect not being initialized

* No need to use workArea height if it's set in CanvasLayoutModel
2021-03-11 10:50:53 +01:00
Den Delimarsky
b4b4b3f95f Fix icon 2021-03-10 08:30:02 -08:00
Den Delimarsky
1840cc9b62 Getting the settings UI to show Espresso. 2021-03-10 08:16:34 -08:00
Ivan Stošić
72da703f0e [FancyZones] Use a window pool for zone windows (#9625)
* Implemented and tested WindowPool

* Added mutex

* Add logs to WindowPool

* Fix a potential thread safety bug
2021-03-10 14:50:40 +01:00
Ivan Stošić
e586a7ad64 [FancyZones] Rework grid editor (#10116)
* Started rewriting

* Making progress

* Fix resizers not moving around

* Implemented splitting, fixed some bugs

* Removed more code, renamed methods

* Merging zones works

* Fix Shift key behavior

* Added spacing (has bugs)

* Implement minimum size restriction

* Match preview and editor visuals

* Snapping works

* Show when splitting is not possible

* Fix spell checker complaining

* Tweak FZ Lib function computing grid zones

* Fix potential crash when loading old zone layouts

* Fix dead objects talking

* Fix splitters being shown when they shouldn't be

* Fix index numbering

* Fix small glitch with the shift key

* Do not snap to borders outside the zone
2021-03-10 13:22:19 +01:00
Enrico Giordani
9a2c195f5f [chore] cleanup 'using' statements (#10144)
fix typo in comment
2021-03-10 13:16:46 +01:00
Mykhailo Pylyp
b9397157ab initialize logger (#10152) 2021-03-10 13:57:06 +02:00
Enrico Giordani
2e3473bbfd [FZ Editor] Light & Dark colors adjustments (#10115)
* [FZ Editor] Light & Dark colors adjustments

* Reduce dark theme background transparency
2021-03-09 19:39:01 +01:00
Adam Short
5c45f2c7b8 [PT Run] Run dialog now has monitor positioning options (#9492)
* Run dialog now has monitor positioning options

* add monitor index validation in window position calculation

* correct path in page

* change how radio buttons are declared to resolve them not being set based on setting

* Change "follow mouse" wording

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

* PowerLauncher -> PowerToysRun for new variables/resources

* correct header label id and update wording to PowerToys Run

* only enable custom index if BOTH custom position radio checked and Run is enabled

* retrieve list count of detected monitors to limit selection of MonitorToDisplayOn

* add a link to Windows Display settings

* fix display settings link

* change how we get the number of connected monitors so we're not relying on presentation core, windowsbase etc which seem to fail the build

* combine position and appearance headers

* change references for custom position to "focus"

* restore accidentally removed files

* remove unused directives

* hook up "active window" position with the launcher window

* remove left overs

* remove uneeded itemgroup

* make resource prefixes consistent; using "Run_"

* add etcoreapp to spell check

* undo change to file not modified in the end

* remove unused checkbox post rebase

* remove change to reduce diff size

* changes according to review

* revert whitespace changes post rebase

* revert resources

* add changes back

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

Add comment

Co-authored-by: Enrico Giordani <enricogior@users.noreply.github.com>

* remove unneeded resource string

Co-authored-by: htcfreek <61519853+htcfreek@users.noreply.github.com>
Co-authored-by: Enrico Giordani <enricogior@users.noreply.github.com>
2021-03-09 18:20:49 +01:00
Mykhailo Pylyp
964286ab99 Makes AllPlugins single tone thread safe (#10121) 2021-03-09 18:31:30 +02:00
Den Delimarsky
d9a29e1da5 Initial changes to enable Espresso 2021-03-09 08:13:52 -08:00
csigs
38eb6ad062 LEGO: check in for master to temporary branch. (#10125) 2021-03-09 10:06:21 +01:00
Mykhailo Pylyp
34882073c9 change directory name to the name used in build farm (#10117) 2021-03-08 18:03:50 +01:00
Mykhailo Pylyp
c36b202fe7 VSCode to full name, disable Visual Studio Code plugin by default (#10071) 2021-03-08 13:57:32 +02:00
Niels Laute
5214df42a6 FZ disabled fix (#10100)
Co-authored-by: Niels Laute <niels9001@hotmail.com>
2021-03-08 12:34:31 +01:00
Mykhailo Pylyp
0c3f8af4d9 update plugins settings with changes (#10064) 2021-03-05 15:43:08 +02:00
Mykhailo Pylyp
e66db5cc10 fix path to resources.resx file (#10059) 2021-03-05 14:51:44 +02:00
Niels Laute
f09b3e2dae [Run] Add Fluent icon for PT Run (#9962)
* Add run ico

* Updated ico

* Add icon as resource and also as asset

Co-authored-by: Niels Laute <niels9001@hotmail.com>
Co-authored-by: Enrico Giordani <enrico.giordani@gmail.com>
2021-03-05 12:01:36 +01:00
Seraphima Zykova
11c622afca PowerToys Settings and OOBE title localization (#10054) 2021-03-05 13:51:34 +03:00
Enrico Giordani
22429b2407 [chore] remove unused functions (#10051) 2021-03-05 11:48:19 +01:00
Enrico Giordani
026630df74 [chore] remove reference to non existant file (#10029) 2021-03-04 20:31:51 +01:00
Enrico Giordani
4ce0c91ea7 [chore] remove unused telemetry events (#10030) 2021-03-04 20:31:23 +01:00
Seraphima Zykova
0dfc9b540f [PT Settings] Rename the OOBE opening button and 'File Explorer' section (#10023) 2021-03-04 21:33:14 +03:00
Clint Rutkas
28bbc8089e Readme 0.33 (#9979)
* Update README.md

* Update README.md

* Update README.md

* Update expect.txt

* Update README.md

adding in HTC and jay for helping out a ton as well, gotta figure out a better way to scan on top of just who opened something

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

Co-authored-by: Enrico Giordani <enricogior@users.noreply.github.com>
2021-03-04 09:31:05 -08:00
ricardosantos9521
7e5fb876bb [Run][New Plugin] VSCode Workspaces/Remote machines (#9050)
* vscode workspaces plugin for Powertoys Run

* reduce score

* make vscode workspaces dynamic instead of string to prevent exceptions

* change icons again

* remove unused images and PreserveNewest during build

* code refactoring

* show vscode ssh remote machines

* update score workspaces

* vscode workspaces plugin for Powertoys Run

* remove unused images and PreserveNewest during build

* code refactoring

* remove unused packages

* get ExecutablePath from AppData and use shell to vscode process

* ' instead of \"

* try using ((char)34) instead of '

* add comments

* translate windows paths

* remove unused code

* add vscodeworkspace to installer

* use the new naming convention for plugins

* sign VSCodeWorkspaces.dll

* reimplement ssh-config parser

* update spell-check

* use the new naming convention for community plugins

* minor adjustments

* add actionKeyword {

* prevent copyright

* add localization

* add github link

* bug fix after localization

* --new-window --enable-proposed-api ms-vscode-remote.remote-ssh

* change order by

* Update src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.Calculator/Properties/Resources.Designer.cs

* Update src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.Calculator/Properties/Resources.Designer.cs

* Update src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.Calculator/Properties/Resources.Designer.cs

* Update src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.Calculator/Properties/Resources.Designer.cs

* Update src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.Calculator/Properties/Resources.Designer.cs

* Update src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.Calculator/Properties/Resources.Designer.cs

* Update src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.Calculator/Properties/Resources.Designer.cs

* Update src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.Calculator/Properties/Resources.Designer.cs

* Update src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.Calculator/Properties/Resources.Designer.cs

* Update src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.Calculator/Properties/Resources.Designer.cs

* Update src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.Calculator/Properties/Resources.Designer.cs

* Update src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.VSCodeWorkspaces/Properties/Resources.resx

* Update src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.VSCodeWorkspaces/Properties/Resources.resx

* Update src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.VSCodeWorkspaces/Properties/Resources.resx

* Update src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.VSCodeWorkspaces/Properties/Resources.resx

* Update src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.VSCodeWorkspaces/Properties/Resources.resx

* fix powertoys run settings not working

* update plugin description

Co-authored-by: ricar <ricar@ASUS>
Co-authored-by: Enrico Giordani <enricogior@users.noreply.github.com>
2021-03-04 18:15:49 +01:00
Sean Lin
f648ac44b2 Save raw command instead of resolved command in shell history (#10000) 2021-03-04 18:04:31 +01:00
Enrico Giordani
8f3e0517ca [Settings, OOBE] set location to center screen (#10022)
and ensure the window is inside the screen work area
2021-03-04 17:58:01 +01:00
Enrico Giordani
f7e2fa5263 [FZ Editor] hide tool windows from alt-tab (#10011) 2021-03-04 13:49:29 +01:00
Seraphima Zykova
b5ca691e69 [OOBE] Changed modules order (#10020) 2021-03-04 15:33:50 +03:00
Enrico Giordani
283d0a352e [OOBE] add PT hero image (#10016)
* [OOBE] add PT hero image

* spell checker
2021-03-03 22:48:36 +01:00
Clint Rutkas
0446c27df1 making the image not be based on a URL but on actual local image for instant loading (#10014) 2021-03-03 21:44:49 +01:00
Seraphima Zykova
de7f8c4a3a [PT Settings] Crash on restart with OOBE window opened fix (#10005) 2021-03-03 14:03:37 +03:00
Andrey Nekrasov
571e7f2c2c [ShortcutGuide] make SCG launching behavior a bit more deterministic (#10007) 2021-03-03 13:53:41 +03:00
Niels Laute
a2fcc14e8b Updated assets and margins (#9998)
Co-authored-by: Niels Laute <niels9001@hotmail.com>
2021-03-02 16:24:05 -08:00
Seraphima Zykova
078aa3d89b [OOBE] Out of box experience window (#9973) 2021-03-02 20:56:37 +03:00
Clint Rutkas
a12350274b Goign t from OOBE to this, this Additional Options was null and crashed. (#9975) 2021-03-02 08:04:08 -08:00
csigs
b9ee317ab9 LEGO: check in for master to temporary branch. (#9965) 2021-03-01 14:59:05 +01:00
Niels Laute
bb228c73ab [Settings] UI fixes (#9949)
* Adding period to warnings

* Increased font size to default

* Fixes

* PowerLauncher display setting fix

* Added the correct brush

Co-authored-by: Niels Laute <niels9001@hotmail.com>
2021-03-01 14:56:30 +01:00
Mykhailo Pylyp
4a9e920a1c [PowerToys Run] Plugin manager (#9872) 2021-02-26 13:21:58 +02:00
Ivan Stošić
f839a408de [FancyZones] Overlapping zones selection algorithm - settings (#9874)
* Started work

* Removed bools in favor of an enum, renamed some

* Done something but it still doesn't work

* Settings are now correctly saved

* I'm getting a crash, I need to rebuild from scratch

* Settings page looks alright

* Completed work. Unit tests?

* Use ComboBox instead

* Add telemetry

* Update text
2021-02-25 16:23:05 +01:00
Clint Rutkas
889360b5e4 Update README.md 2021-02-24 14:29:52 -08:00
Davide Giacometti
571bceb386 common helper for execute shell process from run plugins (#9538) 2021-02-23 09:53:08 +01:00
Enrico Giordani
20a922ce21 [KBM] Rewording for completion dialog warning (#9851) 2021-02-23 09:38:41 +01:00
Enrico Giordani
060fff6d2f [FZ Editor] Update description for 'merge zones' (#9850) 2021-02-23 09:37:55 +01:00
Clint Rutkas
e27d892d74 remove highlight keyword (#9845) 2021-02-23 06:15:04 +01:00
Drakula44
2b0e32916d Svg image preview is displayed unscaled and uncentered (#8996)
* Fixed screen centering and scaling problem with SVG files

* Little shorter code.

* Improved exception caching

* typo

* fixed upscaling problem

* add CSS that IE6 can support it

* typo

* adding in spelling

Co-authored-by: Clint Rutkas <clint@rutkas.com>
2021-02-22 09:35:41 -08:00
csigs
a786fd308a LEGO: check in for master to temporary branch. (#9835) 2021-02-22 18:20:25 +01:00
Niels Laute
ed25ae64e5 [FZ Editor] Updated (preview) zone colors (#9799)
* Updated colors

* Updated border colors

* Updated borderbrush

* Updated background colors

* Added DropShadow
2021-02-22 10:50:33 +01:00
Niels Laute
072638ab73 [Docs] Adding file explorer preview icon to docs (#9812)
* Added FEP icon

* Removed image

* Added new image
2021-02-21 00:11:05 +01:00
Aaron Junker
6580eb4bef Updated link for .calng-format (#9816) 2021-02-21 00:09:02 +01:00
Davide Giacometti
ff4a78a7f9 PT Run Service notification improvements (#9772) 2021-02-19 18:17:52 +01:00
Niels Laute
a29b3aa500 [FZ editor] UX update for edit dialog (#9709)
* Layout title label fix

* Updated formatting for resolution textlabel

* Updated UX

* Added tooltip to layout title textblock

* Updated icon button styles

* Moved buttons around

* Updated margin

* Updated strings

* Revert "Updated strings"

This reverts commit cc4e1764b7.

* [spell checker] add terms

Co-authored-by: Niels Laute <niels9001@hotmail.com>
Co-authored-by: Enrico Giordani <enrico.giordani@gmail.com>
2021-02-19 14:17:13 +01:00
Niels Laute
5dae51e12e Adding icons (#9785)
Co-authored-by: Niels Laute <niels9001@hotmail.com>
2021-02-19 14:12:35 +01:00
Seraphima Zykova
7fcf2bbdb3 [Settings] Settings window arguments revision (#9760) 2021-02-18 16:11:57 +03:00
csigs
7f15755edc LEGO: check in for master to temporary branch. (#9773) 2021-02-18 12:46:20 +01:00
csigs
bb1681e40c LEGO: check in for master to temporary branch. (#9751) 2021-02-18 12:45:47 +01:00
Andrey Nekrasov
5e75c0fc6e [Bootstrapper] improve logging (#9765) 2021-02-18 09:54:24 +03:00
Ivan Stošić
ee45c39d65 Fix Runner stealing shortcuts on older Win10 (#9744) 2021-02-17 11:36:39 +01:00
csigs
666b4e5964 LEGO: check in for master to temporary branch. (#9701) 2021-02-16 20:07:53 +01:00
Niels Laute
df5f5ba1b5 [Run] Fix context menu (#9712)
* Added modern context menu

* Context menu fix

Co-authored-by: Niels Laute <niels9001@hotmail.com>
2021-02-15 20:27:39 +01:00
csigs
2d39bb8cd2 LEGO: check in for master to temporary branch. (#9697) 2021-02-13 09:43:23 +01:00
csigs
d740ac57c7 LEGO: Pull request from lego/hb_a13bbffa-1136-4930-9ebe-33895240f846_20210212115256196 to master (#9682)
* LEGO: check in for master to temporary branch.

* [spell checker] add new terms

Co-authored-by: Enrico Giordani <enrico.giordani@gmail.com>
2021-02-12 22:48:15 +01:00
csigs
204beaca11 LEGO: Pull request from lego/hb_a13bbffa-1136-4930-9ebe-33895240f846_20210211235251698 to master (#9666)
* LEGO: check in for master to temporary branch.

* [spell checker] add new terms

Co-authored-by: Enrico Giordani <enrico.giordani@gmail.com>
2021-02-12 18:38:11 +01:00
Enrico Giordani
8fcb9e2b63 [bootstrapper] change newer version detected action (#9679)
* [bootstrapper] change new version detected action
when a new version is detected, don't run the new version MSI
instead show an error dialog and exit
improve the error dialog logic
add more logging

* [spell checker] add new terms
2021-02-12 16:56:15 +01:00
Ivan Stošić
419a143bf2 [Installer] Remove NGen step for ImageResizer (#9651)
* Removed NGen step in installer for ImageResizer

* Removed unused extension
2021-02-12 13:59:29 +01:00
Mykhailo Pylyp
916ff4a3ad documented changes to PT Run (#9683) 2021-02-12 14:49:54 +02:00
Seraphima Zykova
15dab02e75 [PT Settings] Rename "Microsoft.PowerToys.Setting.UI.Runner" to "PowerToys.Settings" (#9637) 2021-02-11 19:29:56 +03:00
Enrico Giordani
687b281b47 [bootstrapper] progress bar UI polishing (#9644)
* Formatting, coding style, variable & function name

* Progress dialog: label position and background
2021-02-11 17:18:19 +01:00
Enrico Giordani
d190e33313 [msi] PowerToysSetupCustomActions intermediate dir (#9641) 2021-02-11 17:12:31 +01:00
Davide Giacometti
3715b8c5f2 [Runner] Open settings when restarted as admin (#9463)
* open settings from runner

* Update src/runner/main.cpp

* Update src/runner/main.cpp

Co-authored-by: Enrico Giordani <enricogior@users.noreply.github.com>
2021-02-10 14:48:43 +01:00
Mykhailo Pylyp
d92ff6d45d tweak plugin settings (#9522) 2021-02-10 15:12:42 +02:00
Davide Giacometti
ec6b9acad9 [FanzyZones] Common ThemeManager (#9576)
* common ThemeManager in FancyZones editor

* fix high contrast theme
2021-02-10 14:10:42 +01:00
Davide Giacometti
d2902440d2 PT Run tile as user home (#9579) 2021-02-10 14:02:29 +01:00
Niels Laute
6793f74b3b Updated FZ images for docs (#9593)
Co-authored-by: Niels Laute <niels9001@hotmail.com>
2021-02-10 13:50:05 +01:00
Niels Laute
34e2a86f1a Updated FZ image (#9596)
Co-authored-by: Niels Laute <niels9001@hotmail.com>
2021-02-10 09:58:52 +01:00
Clint Rutkas
068027e23b Update pipeline.user.windows.yml (#9616) 2021-02-10 00:55:37 -08:00
csigs
c20f501175 LEGO: check in for master to temporary branch. (#9611) 2021-02-10 09:35:41 +01:00
Ivan Stošić
c8f0492353 [PT Run] Improve logs (#9518)
* Improved some aspects, more work left

* Fix Log being called instead of building a string

* Address PR comments

* Okay, spell checker
2021-02-09 14:54:39 +01:00
csigs
9c6dfd493c LEGO: check in for master to temporary branch. (#9594) 2021-02-09 13:20:02 +01:00
Seraphima Zykova
21abb6fd09 [PT Settings] Opening windows color settings from inside PT (#9589) 2021-02-09 14:11:51 +03:00
Devagya Awasthi
6213e0a116 Update runner.md (#9586)
remove broken link, general_settings.cpp already defined on line 22
2021-02-09 10:39:59 +01:00
csigs
006ba60071 LEGO: check in for master to temporary branch. (#9581) 2021-02-09 10:32:19 +01:00
csigs
531a502c53 LEGO: check in for master to temporary branch. (#9562) 2021-02-09 10:31:43 +01:00
Ivan Stošić
47e288da4c [FancyZones] Improve zone selection (#9447)
* Improve zone selection algorithm

* Thanks, spell checker

* Fix failing test case

* Add error logging

* Added support for different zone selection algorithms

* Revert "Fix failing test case"

This reverts commit 9f31a8a7e6.
2021-02-08 10:48:11 +01:00
csigs
1899d017dc LEGO: check in for master to temporary branch. (#9555) 2021-02-08 09:40:55 +01:00
csigs
1be227b07b LEGO: check in for master to temporary branch. (#9546) 2021-02-08 09:40:07 +01:00
csigs
4195fa481b LEGO: check in for master to temporary branch. (#9542) 2021-02-07 10:41:45 +01:00
csigs
2e3345d2ce LEGO: check in for master to temporary branch. (#9528) 2021-02-07 10:40:50 +01:00
Clint Rutkas
8f14226ab4 Update README.md
tweaking installer version
2021-02-05 09:32:19 -08:00
Enrico Giordani
77d84982c2 [FanzyZones] app history and zone settings granular saving (#9489) (#9494)
move DeleteFancyZonesRegistryData to proper place
add logging
2021-02-04 21:02:24 +01:00
Enrico Giordani
e0e53fcf69 [FZ Editor][loc] remove duplicated id(s) (#9498) 2021-02-04 20:32:01 +01:00
Clint Rutkas
fffb26f558 small tweak but helps boost build time locally. https://github.com/mrlacey/DontCopyAlways/blob/main/explanation.md (#9475) 2021-02-04 04:18:50 -08:00
Clint Rutkas
2b449e0850 Consolidate nuget packages (#9458)
* TestFramework to 2.1.2

* TestAdapter to 2.1.2

* ModernUI to 0.9.3 which is used by FancyZones
2021-02-04 04:18:24 -08:00
Clint Rutkas
2caee2a0dc Update README.md 2021-02-03 13:32:14 -08:00
Deondre Davis
75116b43b4 Moving OOBE to wiki (#9459) 2021-02-03 11:08:16 -08:00
Deondre Davis
f0e887ca33 Adding OOBE Dialog spec for review (#9225)
* Adding OOBE Dialog spec for review

* Typo

* Update OOBE-Dialog.md

* Updating OOBE spec

* Update OOBE-Dialog.md

* Update expect.txt

* Update OOBE spec

* Update OOBE-Dialog.md

Co-authored-by: Clint Rutkas <clint@rutkas.com>
2021-02-03 10:22:58 -08:00
Seraphima Zykova
c7b6e51eba [FZ Editor] Show zone size below the zone index (#9449) 2021-02-03 20:15:16 +03:00
Seraphima Zykova
4bba8bc173 [FZEditor] Create new custom layout with one zone by default (#9440) 2021-02-03 15:56:08 +03:00
csigs
f4f12b7dcb LEGO: check in for master to temporary branch. (#9424) 2021-02-03 12:20:48 +01:00
Seraphima Zykova
32d164a786 [FZ Settings] replaced checkbox with radiobuttons (#9438) 2021-02-03 14:12:53 +03:00
Clint Rutkas
4cffc825c8 0.31 release notes (#9306)
* Update README.md

* Update expect.txt

* Update README.md

* adding EOF

adding EOF

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Apply suggestions from code review

Co-authored-by: htcfreek <61519853+htcfreek@users.noreply.github.com>
Co-authored-by: Deondre Davis <dedavis@microsoft.com>

* Apply suggestions from code review

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

* Update README.md

* Update README.md

Co-authored-by: htcfreek <61519853+htcfreek@users.noreply.github.com>
Co-authored-by: Deondre Davis <dedavis@microsoft.com>
2021-02-02 09:40:01 -08:00
Mykhailo Pylyp
700e1a1c6f Deleted unused resources (#9392) 2021-02-02 17:20:28 +02:00
csigs
3f6bc35ec6 LEGO: check in for master to temporary branch. (#9411) 2021-02-02 13:35:36 +01:00
Seraphima Zykova
e4963d65ff [FZ Editor] Editor window size overflow (#9389) 2021-02-02 11:16:03 +03:00
Seraphima Zykova
612f3e20ac [FZ Editor] Update the small layout preview after canceling zone editing. (#9391) 2021-02-02 11:15:05 +03:00
Enrico Giordani
f309f48ae2 LEGO: check in for master to temporary branch. (#9401) (#9405)
Co-authored-by: csigs <csigs@users.noreply.github.com>
2021-02-02 08:54:43 +01:00
csigs
d5764fd387 LEGO: check in for master to temporary branch. (#9374) 2021-02-02 08:20:06 +01:00
Enrico Giordani
6fe36c9d1c Revert "LEGO: check in for master to temporary branch. (#9401)" (#9402)
This reverts commit 245bd302d7.
2021-02-02 08:18:55 +01:00
csigs
245bd302d7 LEGO: check in for master to temporary branch. (#9401) 2021-02-02 06:38:30 +01:00
Enrico Giordani
3d35aed95b [FZ Editor] Hack to workaround crash (#9398) 2021-02-01 20:54:29 +01:00
Andrey Nekrasov
8556ccb810 [Setup] require dotnet >= 3.1.11 (#9386) 2021-02-01 15:05:13 +03:00
csigs
0273fbffb9 LEGO: check in for master to temporary branch. (#9384) 2021-01-31 14:09:59 +01:00
csigs
6d0677f84f LEGO: check in for master to temporary branch. (#9370) 2021-01-30 07:36:46 +01:00
Clint Rutkas
8f22c142b7 Update readme.md (#9369)
Removing current modules, heavily out of date
2021-01-29 11:32:54 -08:00
csigs
a56141e0e8 LEGO: check in for master to temporary branch. (#9367) 2021-01-29 14:10:44 +01:00
Seraphima Zykova
53c239f052 [FZ Editor] Limit zones number for custom layouts. (#9364)
* disable add zone button

* unify zone adding
2021-01-29 15:10:37 +03:00
csigs
b38da96933 LEGO: check in for master to temporary branch. (#9362) 2021-01-29 05:53:55 +01:00
Clint Rutkas
067ea274bd removing plugin spec (#9358) 2021-01-28 16:15:55 -08:00
csigs
ffa660832f LEGO: check in for master to temporary branch. (#9350) 2021-01-28 15:23:32 +01:00
csigs
399812b40e LEGO: check in for master to temporary branch. (#9349) 2021-01-28 13:19:25 +01:00
csigs
f109a6e544 LEGO: check in for master to temporary branch. (#9340) 2021-01-28 13:17:48 +01:00
Clint Rutkas
6c149b47a3 Fix installer pipeline (#9342)
* Update pipeline.user.windows.yml

* Update pipeline.user.windows.yml

* Update pipeline.user.windows.yml

* Update pipeline.user.windows.yml

* Update pipeline.user.windows.yml

* Update expect.txt
2021-01-27 17:02:34 -08:00
Seraphima Zykova
646d61bd4d [FancyZones Editor] New UX for the FZ editor. (#9325)
* Removed MetroWindow, added theming support and modernWPF

* Rmoved MahApps refs

* Removed MahApps

* Updated canvas zones

* Updated GridEditor

* Fixes

* UI updates

* New layout type selection dialog

* New editor UI

* Updates

* Fix

* UI enhancements

* Updated UI

* Added styles to layoutpreview

* Accesibility improvements

* Accesibility and styling improvements

* Fix

* Cleaned up brushes

* Updated UX

* Updated UI

* Added no layouts description

* Fix

* UI fixes

* [FZ Editor] Serialize/deserialize settings (#8615)

* conflicts fix

* [FZ Editor] Parse json file instead of command line args (#8649)

* [FZ Editor] Serialize/deserialize settings fix (#8707)

* [FZ Editor] Hide unsupported settings in custom layouts flyouts (#8716)

* [FZ Editor] Duplicate custom layouts (#8718)

* [FZ Editor] Duplicate layout behavior (#8720)

* New UX proposal

* Updated spacing

* Switching to toggleswitches

* Revert toggleswitch

* Updated colorbrush

* Updated string for saving label

* Updated UI

* Dark theme color fixes

* Removed space

* [FZ Editor] Bind dialog properties (#9199)

* Resize editor window to fit the content in single-monitor mode (#9203)

* Editor opening fix (#9207)

* Disable "Create" button if the Name textbox is empty (#9212)

* [FZ Editor] Changed edit dialog for template layouts. (#9233)

* [FZ Editor] Small fixes and refactoring. (#9236)

* new layout creation refactoring
* "Save and apply" applies the layout
* number of zones header hide

* [FZ Editor] Empty layout template. (#9237)

* [FZ Editor] Move "Duplicate" and "Delete" buttons to the Edit dialog. (#9272)

* [FZ Editor] Preview the applied layout after editing another layout. (#9278)

* Fixed "Save and apply" button behavior (#9286)

* [FZ Editor] Save template layouts in the settings. (#9283)

* Added default custom layout name (#9291)

* close dialog before opening zones editor (#9302)

* Pressing Esc closes dialogs (#9301)

* [FZ Editor] Reset applied layout to "No layout" if it was deleted. (#9315)

* [FZ Editor] Dark theme colors (#9317)

* "Number of zones" buttons colors. (#9321)

* rebase fix

* added ModernWpf.dll

* address PR comments: updated colors

* added comments, replaced magic numbers

* refactoring

* merge zones crash fix

* removed redundant using directive

Co-authored-by: Niels Laute <niels9001@hotmail.com>
Co-authored-by: Niels Laute <niels.laute@live.nl>
2021-01-27 19:33:52 +01:00
csigs
eb15cdde1b LEGO: check in for master to temporary branch. (#9319) 2021-01-27 13:16:18 +01:00
Andrey Nekrasov
661a4adac6 [Setup] install dotnet 3.1.11 (#9312) 2021-01-27 13:17:49 +03:00
csigs
da4e74ba2a LEGO: check in for master to temporary branch. (#9308) 2021-01-27 09:16:31 +01:00
csigs
cbf529bff2 LEGO: check in for master to temporary branch. (#9299) 2021-01-26 13:39:56 +01:00
Enrico Giordani
74f831fb2e [build] add configuration to localize new plugins (#9295) 2021-01-26 11:37:24 +01:00
Niels Laute
2e961d1d70 Colorpicker fixes (#9277)
Co-authored-by: Niels Laute <niels9001@hotmail.com>
2021-01-25 14:21:49 +01:00
csigs
5713230c6d LEGO: check in for master to temporary branch. (#9275) 2021-01-25 14:17:29 +01:00
Pavel Zwerschke
be02ee1a25 [Run][Calculator Plugin] Add number formatting for different Locales (#9074)
* Add number formatting for different locales

* Remove conversionRequired check

* Add NumberTranslatorTests
2021-01-25 10:51:32 +01:00
Clint Rutkas
a24ea2f3be PT run plugin spec (#9121)
* first pass for plugin spec

* adding image

* adding in spelling

* fix image

* adjusted based on feedback from enrico

* fix spelling mistake

* tweaked telem, updated screenshot and added desc

* adjusted based on feedback.  removing weighting from a v1

* adding in author
2021-01-22 13:15:04 -08:00
Mykhailo Pylyp
016656f5e7 init launcher start shortcut with default if it does not exsist in th… (#9231) 2021-01-22 18:13:57 +02:00
Niels Laute
2b42fb8a38 [Settings] ColorPicker spacing issue (#9215)
* Added additional text header

* Margin fix

* Margin fix

Co-authored-by: Niels Laute <niels9001@hotmail.com>
2021-01-22 15:03:16 +01:00
Davide Giacometti
eed89eff45 improved shortcuts for service plugin (#9220) 2021-01-22 15:02:20 +01:00
Davide Giacometti
c8e43cb77d PT Run Service resources (#9222) 2021-01-22 15:00:50 +01:00
Ivan Stošić
bdd9452465 Add Registry plugin to installer (#9211) 2021-01-21 17:02:40 +01:00
Ivan Stošić
0b12798922 Bug report tool for registry (#9213)
* wip

* Improved registry bug reporting

* Don't use macros

* Ignore spelling of NLSTEXT in macro

* Various improvements

* Move functions to separate files
* Rename result file to registry-report-info.txt
* Rename a poorly named function in ReportMonitorInfo.cpp
* Restrict scope of symbols in these .cpp files

Co-authored-by: Davide <davide.giacometti@outlook.it>
2021-01-21 17:01:28 +01:00
Enrico Giordani
b74afd3a80 Fix "Converting null literal.." warning (#9205) 2021-01-21 11:02:18 +01:00
Enrico Giordani
a1910b4914 [Calculator Plugin] fix localization (#9200) 2021-01-21 09:57:41 +01:00
Andrey Nekrasov
da6fc54d1c [runner] bug report could be created from tray (#9191) 2021-01-21 11:55:58 +03:00
csigs
a0faf4c8d1 LEGO: check in for master to temporary branch. (#9196) 2021-01-21 08:57:37 +01:00
Clint Rutkas
1c80b49990 Update NOTICE.md (#9193)
This was removed in #4878
2021-01-20 12:16:10 -08:00
Clint Rutkas
e8ca77395a Default add triage to issues (#9175)
* Update translation_issue.md

* Update bug_report.md

* Update feature_request.md

* Update documentation-issue.md
2021-01-20 11:09:25 -08:00
Ivan Stošić
5eb95f836e Run Settings on same elevation as PowerToys.exe (#9184)
* Run Settings on same elevation as PowerToys.exe

* Only apply the fix when running the new Settings
2021-01-20 19:28:14 +01:00
Tobias Sekan
a434d6047f [PT Run] Registry plugin (#7951) 2021-01-20 19:15:45 +01:00
dziadkiewicz
da33d22c85 [Run][Plugin] Rename Calculator plugin to follow the required schema (#9026) 2021-01-20 11:38:52 +01:00
Mykhailo Pylyp
433e2e57ed Delete Fody and PropertyChanged.Fody (#9120) 2021-01-20 11:23:56 +02:00
csigs
d2a1ac9c3f LEGO: check in for master to temporary branch. (#9177) 2021-01-20 10:17:49 +01:00
Pavel Zwerschke
6835855c66 Add e to calculator (#9124)
* Add support for e

* Add tests for e

* Fix compiler complaints
2021-01-19 18:04:15 +01:00
Mykhailo Pylyp
2311c3fc18 Save QueryHistory, UserSelectedRecord after each update (#9165) 2021-01-19 18:43:28 +02:00
Enrico Giordani
8c1cfba5d8 [Run] remove KillPowerLauncher pre-build event (#9167) 2021-01-19 17:35:57 +01:00
csigs
84b84c91c2 LEGO: check in for master to temporary branch. (#9157) 2021-01-19 10:13:40 +01:00
Mykhailo Pylyp
98a6e27957 Added logging to keyboard manager (#9155) 2021-01-18 19:38:42 +02:00
Ben Constable
3e59fe6877 Update CONTRIBUTING.md (#9131)
Fixing broken link to Help Wanted
2021-01-18 15:55:53 +01:00
csigs
9ae48fcb21 LEGO: check in for master to temporary branch. (#9126) 2021-01-18 15:54:06 +01:00
csigs
0d9594b220 LEGO: check in for master to temporary branch. (#9132) 2021-01-18 15:53:41 +01:00
csigs
6031d9ec6e LEGO: check in for master to temporary branch. (#9154) 2021-01-18 15:53:05 +01:00
Pavel Zwerschke
7514758b8c [Run][Calculator Plugin] Add hyperbolic functions (#9104)
* Add hyperbolic functions as valid input

* Add test cases for hyperbolic functions

* Update expect.txt

Adding in spelling

Co-authored-by: Clint Rutkas <clint@rutkas.com>
2021-01-15 16:05:56 +01:00
csigs
ea21a11259 LEGO: check in for master to temporary branch. (#9116) 2021-01-15 15:29:23 +01:00
Davide Giacometti
990c27718a black icons with light windows theme (#9091) 2021-01-15 13:19:52 +02:00
Mykhailo Pylyp
8aad873a26 explain meaning of labels (#9101) 2021-01-14 19:03:52 +02:00
Ivan Stošić
655a86694d [Runner/common] Fixed two potential issues with CreateProcess (#9063)
* Fixed two potential issues with CreateProcess

* Remove comment
2021-01-14 15:29:12 +01:00
Mykhailo Pylyp
11a569b113 Added localization to default sizes (#8928) 2021-01-14 14:14:29 +02:00
Mykhailo Pylyp
b1a6964e18 [Run] Fix exception (#9068) 2021-01-14 13:17:32 +02:00
Andrey Nekrasov
6ecf8b60b6 updating: require dotnet >=3.1.10 (#9060) 2021-01-12 21:52:17 +03:00
Mykhailo Pylyp
9073ce8884 Report dotnet runtime installation info (#9069) 2021-01-12 20:48:55 +02:00
Andrey Nekrasov
7a562950b0 interop: fix issues in IPC message construction (#9035)
* interop: fix issues in IPC message construction

- simplify logic
- handle exceptions to prevent crashes
- log errors

* Update src/runner/settings_window.cpp

Co-authored-by: Enrico Giordani <enricogior@users.noreply.github.com>

* Update src/runner/settings_window.cpp

Co-authored-by: Enrico Giordani <enricogior@users.noreply.github.com>

* fixup

* comments + fix build

Co-authored-by: Enrico Giordani <enricogior@users.noreply.github.com>
2021-01-12 20:42:16 +03:00
Andrey Nekrasov
1364f78b30 updating: do not update update_check date when we couldn't do it (#9038)
* updating: do not update update_check date when we couldn't do it

- improve general settings page "Last Checked" feature
2021-01-12 18:34:02 +03:00
Enrico Giordani
7bcf4b7894 Dev docs update (#8984) 2021-01-12 14:40:25 +01:00
Mykhailo Pylyp
3503ac27a8 added logging to action-runner project (#9034) 2021-01-11 12:51:13 +02:00
Enrico Giordani
dbda4d50bd [runner] rename 'module' variables (#8999)
rename all occurrences of 'module' to 'pt_module' to prevent intellisense error
2021-01-08 19:26:38 +01:00
Niels Laute
cccd2c0139 [Image Resizer] UI fixes (#9001)
* Color fix

* Accesibility fix
2021-01-08 16:23:21 +01:00
Davide Giacometti
abf9287a99 PT Run sys plugin added to setup (#8974)
sys plugin renamed to system
2021-01-08 16:11:30 +01:00
Niels Laute
17b40aa10a [Run] Fixing UI issues (#8681)
* UI fixes

* Added dlls to installer

* Accent color tweaks + sync

* Added cornerradius to selection highlight border

* Increase icon's radius

Co-authored-by: Enrico Giordani <enrico.giordani@gmail.com>
2021-01-06 19:00:36 +01:00
Davide Giacometti
3a87c4909c [PT Run] Service Plugin (#8076)
* PT Run service plugin

* icon, localization and fixes

* basic toast notification

* service start mode

* improved keys

* fixed setup

* improvements

* added _ keyword
* better shortcuts
* action for open services.msc

* pt run service plugin dll signing

* renamed Microsoft.Plugin.Service

* changed output dir

* set ! action keyword

* launcher dll

Co-authored-by: Clint Rutkas <clint@rutkas.com>
2021-01-06 11:40:07 +01:00
Niels Laute
f0600f1725 [Settings] Various UX fixes (#8739)
* Change accent color to secondary grey for better contrast on colorpicker page

* Fix textwrapping issue for shortcut tooltips

* Fix image resizer scroll issue

* Fix colorpicker page textblock/listview not disabled when module is disabled

* Added MaxWidth and sidebar margin

* Typo fix
2021-01-05 17:24:14 +01:00
Davide Giacometti
4958f6c158 reset scrollviewer on page change (#8742) 2021-01-05 16:01:42 +01:00
Davide Giacometti
b590437ca1 Moved ThemeManager in common project (#8835)
* moved theme manager in common project

* added analyzers

* renamed CommonUI project
2021-01-05 06:54:32 -08:00
Enrico Giordani
dda3dce34b [localization] move file to its correct location (#8914) 2021-01-05 15:08:22 +01:00
Ivan Stošić
485d278b8c [FancyZones] Refactor/improve saving JSON files (#8947)
* Divide SaveFancyZonesData into two functions

* Removed unused function, continued refactoring

* Use SaveAppZoneHistory in some places

* Revert "Use SaveAppZoneHistory in some places"

This reverts commit 74a4a1e467.

* Only save files if the contents are about to be changed

* Restore FileWatcher
2021-01-05 14:00:39 +01:00
Ivan Stošić
d4a4203f95 [File Explorer] OneDrive SVG fix (#8926)
* Move SVG file reading out of the UI thread

* Also move Blocked-check out of the UI thread
2021-01-05 10:16:00 +01:00
Alan Ninan Thomas
93bdb819ca [Settings] Make images clickable and fix issue with Power Preview settings image (#8710)
* Hopefully I have got this right

* Add a more descriptive Uid
2021-01-04 10:51:05 -08:00
Chris Davis
d82c083076 Ensure SVGs are scaled correctly when viewbox is provided (#8872)
* Ensure SVGs with hard coded width and height as well as viewbox values are scaled correctly.

* Fix misspelling
2021-01-04 15:59:53 +01:00
Davide Giacometti
197af8853f fix svg thumbnail not working (#8879) 2021-01-04 15:27:01 +01:00
Enrico Giordani
a493043085 [CI] tests grouping (#8918) 2021-01-04 15:25:41 +01:00
Enrico Giordani
e456521b94 [FancyZones] fix for secondary mouse button (#8901)
primary mouse button switch is transparent to the application
the system still returns the same values as for the default case
2021-01-04 12:09:58 +01:00
Clint Rutkas
68a86a86ce Updated NUnit, Microsoft.Net.Test.SDK, FxCop, MSTest.TestAdapter, MSTest.Framework to match all other projects in PowerToys (#8865) 2021-01-02 10:33:14 -08:00
Clint Rutkas
e84158b486 Update README.md 2020-12-31 10:24:32 -08:00
Clint Rutkas
843d077da0 Updating PR template (#8843)
* Updating PR template

due to a few recent misses, going to be a bit more rigorous

* Update .github/pull_request_template.md

Co-authored-by: Enrico Giordani <enricogior@users.noreply.github.com>

* Update pull_request_template.md

Didn't update one instance of wxs

Co-authored-by: Enrico Giordani <enricogior@users.noreply.github.com>
2020-12-31 10:00:26 -08:00
Enrico Giordani
ff07374e2a [PowerRename] don't show an error message for invalid regex syntax (#8857) 2020-12-31 17:51:01 +01:00
Clint Rutkas
a8a87bc2ca Update README.md 2020-12-30 17:09:51 -08:00
Andrey Nekrasov
4aecabae47 FZ: ZoneWindowDrawing is now properly initialized (#8836) 2020-12-30 22:47:18 +01:00
Clint Rutkas
8b8f87c7e8 Update README.md 2020-12-30 12:38:31 -08:00
Enrico Giordani
b6dbd2d80d [FancyZones] initialize zone container window state (#8817) 2020-12-30 12:03:44 +01:00
Clint Rutkas
ea83c0fe6b Update README.md for 0.29 release (#8783)
* Update README.md

* Update README.md

* Update README.md

* Update expect.txt

adding in user names

* Update expect.txt

jhutchings was forgotten

* Update README.md

* Update README.md
2020-12-29 12:55:23 -08:00
Andrey Nekrasov
16e4c34d69 FZ: fix currently selected zone tracking (#8797) 2020-12-29 19:20:12 +03:00
Andrey Nekrasov
4f594c92e8 FZ: do not activate zones window when it's shown (#8795) 2020-12-29 16:38:19 +03:00
Andrey Nekrasov
9b2f1a826d runner: fix dispatching json possible crash (#8788) 2020-12-29 13:56:10 +03:00
Clint Rutkas
33866c124e Add CodeQL Analysis (#8598) (#8653)
* Add CodeQL Analysis (#8598)

* Create codeql-analysis.yml

* Add manual build steps for C++

* Add nuget restore

* Remove autobuild for C#

* Add CodeQL and Javascript to spell check

* Update to run daily only

Since the build performance is around an hour, this is a bit too slow for a PR build.

* Update codeql-analysis.yml

testing on push, will remove later

* Update codeql-analysis.yml

removing python

* Update codeql-analysis.yml

adding in comments then will remove push once this is verified working

* Update codeql-analysis.yml

Co-authored-by: Justin Hutchings <jhutchings1@users.noreply.github.com>
2020-12-28 13:30:04 -08:00
yuyoyuppe
e69fbfd16f FZ: disable filewatcher cb 2020-12-28 20:33:39 +03:00
yuyoyuppe
3eff741da8 FZ: use type aliases for Data types 2020-12-28 20:33:39 +03:00
csigs
9939779932 LEGO: check in for master to temporary branch. (#8778) 2020-12-28 09:07:55 -08:00
Mykhailo Pylyp
511ac53d07 remove redundant spelling (#8774) 2020-12-28 15:46:24 +02:00
Andrey Nekrasov
0c300194dc bug report: enum all display devices (#8745) 2020-12-25 12:49:58 +03:00
Enrico Giordani
ff74ef4a42 Update remove list (#8740) 2020-12-24 17:05:32 +01:00
Enrico Giordani
9ab3cb4e9f BugReportTool polishing (#8733)
* Removed unused project folder

* Update error messages

* Rename 'del' -> 'deleteFolder'

* Rename variable
2020-12-24 12:27:49 +01:00
Andrey Nekrasov
0ffa9198f5 CDPX: add missed restore nuget step (#8714) 2020-12-23 12:28:34 +03:00
Andrey Nekrasov
dde63b5017 Report tool improvements (#8709)
* bugreport: move to tools

* bugreport: skip packaging installers, format time with seconds, remove monitor-info-report tool

* bugreport: move BugReportTool to Tools folder

* fix CI

* fix CDPX
2020-12-22 17:15:46 +03:00
Andrey Nekrasov
0843efd282 CDPX: fix build (#8708) 2020-12-22 13:28:13 +03:00
Mykhailo Pylyp
321a722b8e Bug report tool (#8633)
* added diagnostic tool project

* Add copy to a temp folder, escape private info and zip it

* Added diagnostic tool to installer

* zip folder path as cmd argument

* renamed project to BugReportTool

* do not use precompile headers for release

* Added zip lib

* Added license

* Delete old zip source files

* Use fork version while PR is not merged

* fix spelling

* exclude deps folder from spell checking

* exclude only zip

* removed redundant configuration from zip project

* fix spelling

* Add error handling to implementation

* Added build of BugReportTool.sln to pipeline

* Delete redundant info from BugReportTool.vcxproj

* Deleted submodule

* Added submodule

* fix build

* Restore nuget packages for BugReportTool.sln on CI

* spelling fix

* Use SettingsAPI

* changed git submodule

* added new sensitive info

* Removed zip project

* use json.h, add date to zipfolder, handle zip is not created

* fix spelling

* delete bad_alloc catch

* add new sensative info

* report monitor info

* report windows version

* fix spelling

* delete platform specific configuration

* fix output
2020-12-22 11:27:28 +01:00
Andrey Nekrasov
063e704321 build: Treat warnings as errors in the remaining projects (#8689)
* build: remove #pragma comment(lib

* build: treat warnings as errors for all src projects
2020-12-21 18:51:48 +03:00
Seraphima Zykova
7040fffcca [PT Run] String with accented characters search (#8667) 2020-12-21 18:24:10 +03:00
csigs
295fc7c0dc LEGO: check in for master to temporary branch. (#8690) 2020-12-21 15:57:32 +01:00
Davide Giacometti
11bdbaa07f image resizer and settings percentage unit (#8674) 2020-12-21 15:55:50 +01:00
Andrey Nekrasov
34ff670e5b setup: don't set System.AppUserModel.ToastActivatorCLSID shortcut property (#8686) 2020-12-21 14:47:13 +03:00
Andrey Nekrasov
f752758181 build: make PowerToys interop depend on version (#8685) 2020-12-21 14:46:10 +03:00
Ivan Stošić
50b797aa32 [FancyZones] Don't capture Win+Arrows if there's no zone layout (#8626)
* Don't capture Win+Arrows if there's no zone layout

* Reuse a variable instead of calling

* Renamed a Windows event

* Add an underscore to fix misspelling
2020-12-18 13:58:37 +01:00
Andrey Nekrasov
c9c4c9ba8c ImageResizer: fix crash on using UseNewSettings (#8661)
* ImageResizer: fix crash on using UseNewSettings

- add unit test to InteropTests
2020-12-18 15:25:58 +03:00
Enrico Giordani
3a3cb27b36 Fix passing project folder path to localization script (#8663) 2020-12-18 12:37:40 +01:00
Clint Rutkas
c4f939f44b Update README.md 2020-12-17 16:42:53 -08:00
Clint Rutkas
d124315ba1 Update README.md 2020-12-17 16:21:48 -08:00
Deondre Davis
f8a22cbdac Update README.md (#8639)
* Update README.md

* Typo update

* Adjusted PT Community section and changed headers

* Updating to address comments and re-ordering content
2020-12-17 16:11:08 -08:00
Andrey Nekrasov
0709b0648a bootstrapper: add --extract_msi arg for users that must access MSI (#8646)
* bootstrapper: add --extract_msi arg for users that must access MSI

- clean up setting outdated MSI properties
- minor fixes
2020-12-17 19:58:15 +03:00
Andrey Nekrasov
e58ff6c71c Auto-updating: add text for "Last checked" (#8645) 2020-12-17 19:38:23 +03:00
Andrey Nekrasov
24141abde2 updating: remove all scheduled toast notifications from previous versions (#8644) 2020-12-17 19:34:55 +03:00
Andrey Nekrasov
a0ccca555d CDPX: fix header include (#8631) 2020-12-16 22:16:23 +03:00
Enrico Giordani
cb25c7e5aa Fix paths for localization (#8630) 2020-12-16 10:58:09 -08:00
Enrico Giordani
748eb9555a Fix SettingsUI loc paths (#8628) 2020-12-16 09:56:07 -08:00
Ivan Stošić
e2ca4177dd [FancyZones] Implement File Watcher (#8603)
* Implement File Watcher in FancyZones

* Simplify code, address PR comments

* Add check to result of CreateEventW

* Rebase fix

Removed unneeded newline. If we keep it now, VS will just remove it some other time.
2020-12-16 14:53:48 +01:00
Andrey Nekrasov
540e16b179 CDPX: update hardcorded localization paths (#8621) 2020-12-16 14:07:58 +03:00
Clint Rutkas
49369f3e98 Adding in Davide and InVEST team to community.md (#8612)
* Adding in Davide and InVEST team

* Update expect.txt
2020-12-15 12:05:42 -08:00
Davide Giacometti
8007c0af3f handling percentage unit (#8567) 2020-12-15 11:21:27 -08:00
Clint Rutkas
764c01befb changed to match MSFT in appwiz.cpl (#8596) 2020-12-15 10:52:08 -08:00
Benjamin Hooper
df2ed05edf [Docs] Added Microsoft.Plugin.Sys DevDoc (#8350)
* Added Initial Microsoft.Plugin.Sys DevDoc

* Reword

* Updated Links within Readme

* Corrected Case for URL
2020-12-15 09:44:38 -08:00
Andrey Nekrasov
445c32c996 notifications: use message/title directly instead of binding to it, because it breaks snoozed notifications (#8609) 2020-12-15 19:59:56 +03:00
Andrey Nekrasov
212ea2de30 common: refactor common library pt2 (#8588)
- remove common lib
- split settings, remove common-md
- move ipc interop/kb_layout to interop
- rename core -> settings, settings -> old_settings
- os-detect header-only; interop -> PowerToysInterop
- split notifications, move single-use headers where they're used
- winstore lib
- rename com utils
- rename Updating and Telemetry projects
- rename core -> settings-ui and remove examples folder
- rename settings-ui folder + consisent common/version include
2020-12-15 15:16:09 +03:00
martinchrzan
cddf48547d Color Picker - show color name (#8553)
* Added color name ported from WinUI implementation

* Added new words into expect.txt

* Change color name foreground

* Moved show color name checkbox
2020-12-15 08:46:38 +01:00
csigs
f4ffdbe8a9 LEGO: check in for master to temporary branch. (#8591) 2020-12-14 09:13:17 -08:00
Mykhailo Pylyp
29752c72d0 remove the indexer plugin from constant search plugins (#8367) 2020-12-14 18:07:26 +02:00
Andrey Nekrasov
64a864a332 logging: support msvc debug window output (#8478) 2020-12-14 16:10:29 +03:00
Andrey Nekrasov
5fa4ee4942 Cpp build: factor out common project props & prepare for common split (#8509)
* make common include paths format consistent
* build: introduce common Cpp.Build.props
2020-12-14 15:20:45 +03:00
Enrico Giordani
6c53c116ad [CI] enable PowerRename tests (#8585) 2020-12-14 13:10:10 +01:00
Niels Laute
df5409d103 Fix UI issue (#8508)
Authored-by: Niels Laute <niels9001@hotmail.com>
2020-12-14 10:50:30 +01:00
Mehmet Murat Akburak
da22e21a0e [PowerRename] Fix tests inconsistency, improve test performance (#8129)
* Move retrieveing file attibutes to PowerRenameRegex
Move file attributes unit tests to PowerRenameRegexTests
Add file time field to MockPowerRenameItem

* Add file attributes unittests to PowerRenameManagerTests

* Change variable name

* Rearrange function arguments

* Check if file attributes are used only once

* Change variable name LocalTime -> fileTime, date -> time

* Set fileTime as a member of PowerRenameRegEx rather than passing as an argument

* Change function name isFileAttributesUsed() -> isFileTimeUsed()
Check before resetting fileTime

* Fix small bugs

* Fix typos

* Refactor for readability, move free calls to reachable places

* Fix search for area empty bug
searchTerm being empty is not an invalid argument rather it must return OK without any operation
Tests must check if Replace()  returns S_OK becuase later it checks its result

* Check return values of method calls in PowerRenameManager
Remove received argments checks from some methods because argument being null or empty string doesnt mean it is invalid or method fails

* Fix formatting. Remove overlooked comment. Fix error message.

* Change HRESULT declarations according to coding style

* Fix unhandled case. Refactor.
2020-12-14 10:28:12 +01:00
Clint Rutkas
4403876320 DLL name changed (#8555) 2020-12-12 08:30:34 -08:00
Clint Rutkas
f113bc8a77 Improving CI build times with new build agent (#8516) 2020-12-11 12:45:52 -08:00
Andrey Nekrasov
cd8be91f4a CI: disable win-app-driver project (#8543) 2020-12-11 12:32:16 +03:00
Davide Giacometti
1d1dc41bb0 [PreviewPane] Porting .NET Core 3.1 (#8432)
* PreviewPane porting .NET core 3.1

* Adding in misspellings

Co-authored-by: Clint Rutkas <clint@rutkas.com>
2020-12-11 09:59:42 +01:00
Clint Rutkas
1dc2b1c4c0 adding in comments / adjusting for 8468 (#8532) 2020-12-10 21:54:24 -08:00
Andrey Nekrasov
84932eb9da updating: add support for prereleases (#8296) 2020-12-10 19:05:43 +03:00
Seraphima Zykova
8a7824924a [KBM] Open Remap Shortcuts/Remap Keyboard window on the same monitor as Settings. (#8325) 2020-12-10 18:28:44 +03:00
Rafael Rivera
709d42d3e7 Migrate winappdriver test project to .NET Core (#8412) 2020-12-10 06:53:07 -08:00
Mykhailo Pylyp
6cefb4e83f [PT Run] Add logs for Launcher (#8489) 2020-12-10 14:56:16 +02:00
Jeremy Sinclair
1790bfe91c Color picker netcore 31 (#8417)
* Converted to SDK Style project and upgraded to .NET Core 3.1

* Cleaned up formatting

* Swapped System.Windows.Interactivity.Wpf for Microsoft.Xaml.Behaviors.Wpf

* More replacements to Xaml Behaviors

* No need for App.config

* Profile file cleanup. Added System.Drawing.Common package

* Moved entry point to a new Program.cs

* Set StartupObject to ColorPicker.Program

* Renamed assembly to ColorPickerUI to resolve conflict with module

* Added proper output path

* Updated list of files needed for installer

* Added InvariantCulture string comparion for ColorToHex.
Updated pipeline.user.windows.yml
2020-12-10 08:21:46 +01:00
Eriawan Kusumawardhono
04586c02de migrate Microsoft.Interop.Tests to target .NET Core 3.1 (#8411)
* migrate Microsoft.Interop.Tests to target .NET Core 3.1

* put the stylecop nuget and stylecop.json

* refactor Microsoft.Interop.Tests.csproj to have x64 platform target

* Update build-powertoys-steps.yml

Getting interop tests actually on CI

Co-authored-by: Clint Rutkas <clint@rutkas.com>
2020-12-10 08:11:14 +01:00
Josh Soref
0e59be87cb Update expect (#8512) 2020-12-09 21:14:18 +01:00
Clint Rutkas
1d16320caa Update README.md 2020-12-09 10:33:08 -08:00
Ivan Stošić
9a906d427a [FancyZones] Reduce VRAM use (#8469) 2020-12-08 13:31:30 +01:00
Andrey Nekrasov
9d0d5db948 FZ: fix incorrect snapping zoning behavior caused by calling MessageBox from LLKBHook cb (#8473)
* Revert "add logging to hide/show window and shift press (#8392)"

This reverts commit df3d007a1b.

* FZ: fix incorrect snapping zoning behavior caused by calling MessageBox from LLKBHook cb
2020-12-08 15:16:06 +03:00
Clint Rutkas
292939c4a1 Merge pull request #8386 from microsoft/dev/crutkas/fxCopColorPickerUnitTests
FxCop to UnitTests for ColorPicker
2020-12-07 14:44:46 -08:00
Ivan Stošić
b1c0c5a03e Merge pull request #8445 from ivan100sic/free-render-target
[FancyZones] Video memory leak fix, free render target
2020-12-07 18:42:10 +01:00
Clint Rutkas
8ceee89ee7 Merge pull request #8452 from microsoft/lego/hb_2939_20201207140656093
LEGO: Pull request from lego/hb_2939_20201207140656093 to master
2020-12-07 09:11:54 -08:00
Seraphima Zykova
69c0f179f5 [FancyZones] Obtain device id (#8451) 2020-12-07 17:57:53 +03:00
csigs
aa18543903 LEGO: check in for master to temporary branch. 2020-12-07 14:06:58 +00:00
Ivan Stošić
b4939a8873 Free render target 2020-12-07 09:29:46 +01:00
Clint Rutkas
7235df2e89 Update expect.txt
dupenv
PROGRAMFILES
2020-12-06 16:36:48 -08:00
Clint Rutkas
83cc54f28d Merge pull request #8266 from davidegiacometti/issue-7504
[Bootstrapper] --install_dir arg
2020-12-06 16:35:34 -08:00
martinchrzan
375953641b Fixing issues when color picker freezes (#8376)
* Fixing issue when color picker was frozen because other application was locking clipboard

* Fixed another issue where holding activation keys constantly would trigger show color picker numberous times and it would cause some events to be attached multiple times
2020-12-05 14:25:55 +01:00
Seraphima Zykova
aa3dd133c7 [FancyZones] logging on the editor exit event (#8422) 2020-12-05 11:36:31 +03:00
Clint Rutkas
0603f2db1a Update README.md 2020-12-04 08:20:15 -08:00
Andrey Nekrasov
df3d007a1b add logging to hide/show window and shift press (#8392) 2020-12-04 17:44:35 +03:00
Clint Rutkas
9d02a23325 Adding in FxCop 2020-12-03 16:52:21 -08:00
martinchrzan
dc3e645591 Hiding remove context menu when there are no colors in the history (#8328) 2020-12-02 11:18:07 +01:00
Clint Rutkas
4478f29b47 Update README.md 2020-12-01 15:13:27 -08:00
Clint Rutkas
d184b79a19 Merge pull request #8310 from microsoft/martinchrzan-updateColorPickerDescription
[Color Picker] Update README.md with updated module description
2020-12-01 15:12:55 -08:00
martinchrzan
4e997951e4 Update README.md 2020-12-01 22:20:47 +01:00
Martin Chrzan
fd841ec272 ededf added into expect.txt 2020-12-01 21:40:08 +01:00
martinchrzan
035a452900 Update README.md 2020-12-01 21:24:22 +01:00
martinchrzan
d5542ad35e Update README.md 2020-12-01 21:09:46 +01:00
Clint Rutkas
dd35de863a Merge pull request #8285 from microsoft/readme_0.27
0.27 readme update
2020-12-01 10:13:40 -08:00
Clint Rutkas
a8f566052b Merge pull request #8183 from microsoft/users/niels9001/colorpicker-imageupdates
[Docs] Updated color picker hero images
2020-12-01 10:12:05 -08:00
Clint Rutkas
79dcd7c555 Merge pull request #8180 from microsoft/users/niels9001/imageresizer-imageupdates
[Docs] Updated ImageResizer hero-images
2020-12-01 10:11:40 -08:00
Clint Rutkas
2ddbb89599 fixing version number and month ...
wish these could just be vars at the bottom :)
2020-12-01 10:10:02 -08:00
martinchrzan
3d726fd2ba Update expect.txt 2020-12-01 18:49:24 +01:00
Clint Rutkas
14588ccba8 exclude alan's usernname and tweak URL 2020-12-01 09:34:06 -08:00
Clint Rutkas
506a3337c6 Merge pull request #8286 from microsoft/lego/hb_2939_20201201033406876
LEGO: Pull request from lego/hb_2939_20201201033406876 to master
2020-12-01 09:27:57 -08:00
Clint Rutkas
d2f91aa3da Update README.md 2020-12-01 09:23:59 -08:00
Clint Rutkas
8249763088 Update README.md 2020-12-01 09:20:47 -08:00
Clint Rutkas
fd8a4f63ce Update README.md
Co-authored-by: Enrico Giordani <enricogior@users.noreply.github.com>
2020-12-01 09:15:28 -08:00
Mykhailo Pylyp
d9ca68e6ea Add error handling for all possible failing of winrt::check_result (#8278) 2020-12-01 12:03:24 +02:00
csigs
f31652053f LEGO: check in for master to temporary branch. 2020-12-01 03:34:18 +00:00
Clint Rutkas
e9e7df693a updating user help 2020-11-30 15:52:12 -08:00
Clint Rutkas
04e3cd0fdb fixed spelling 2020-11-30 15:38:34 -08:00
Clint Rutkas
34030169cf readme updates 2020-11-30 15:14:08 -08:00
Davide
6296be4b75 bootstrapper --install_dir arg
cleanup and error handling
2020-11-30 21:37:31 +01:00
Seraphima Zykova
c6078e3136 handle key events (#8279) 2020-11-30 20:07:03 +01:00
Clint Rutkas
f86182d062 Merge pull request #8276 from microsoft/lego/hb_2939_20201130120702764
LEGO: Pull request from lego/hb_2939_20201130120702764 to master
2020-11-30 09:13:39 -08:00
Clint Rutkas
bec0fd603f Merge pull request #8272 from microsoft/lego/hb_2939_20201130074650503
LEGO: Pull request from lego/hb_2939_20201130074650503 to master
2020-11-30 09:12:58 -08:00
Andrey Nekrasov
6cee767ddf bootstrapper: show help instead of msgbox window when cmd option doesn't have an arg (#8275) 2020-11-30 17:42:46 +03:00
Mykhailo Pylyp
f0553c370a Fix runner warnings (#8211) 2020-11-30 16:16:49 +02:00
csigs
9a31d3ccab LEGO: check in for master to temporary branch. 2020-11-30 12:07:04 +00:00
csigs
d56319208a LEGO: check in for master to temporary branch. 2020-11-30 07:46:51 +00:00
Clint Rutkas
7c9888300b Merge pull request #8256 from bentdoug/CONTRIBUTIONtypo
Update CONTRIBUTING.md
2020-11-28 18:18:01 -08:00
Clint Rutkas
f2b4d790b6 Merge pull request #8232 from microsoft/lego/hb_2939_20201126120617106
LEGO: Pull request from lego/hb_2939_20201126120617106 to master
2020-11-27 20:27:50 -08:00
Clint Rutkas
e2d37a31ad Merge pull request #8259 from microsoft/lego/hb_2939_20201128000545286
LEGO: Pull request from lego/hb_2939_20201128000545286 to master
2020-11-27 18:13:03 -08:00
Clint Rutkas
faa9b4b27f Merge pull request #8243 from microsoft/lego/hb_2939_20201127000526832
LEGO: Pull request from lego/hb_2939_20201127000526832 to master
2020-11-27 18:12:33 -08:00
csigs
fe8bbb82a0 LEGO: check in for master to temporary branch. 2020-11-28 00:05:46 +00:00
Andrey Nekrasov
06984ff317 CI: disable multiple msbuild instances (#8253)
* CI: disable multiple msbuild instances

* make MultiProcessorCompilation option consistent

* KBM: increase compiler limit again
2020-11-27 14:18:23 +03:00
Davide Giacometti
ef0728657c fix build with localization (#8241) 2020-11-27 09:48:23 +01:00
Benjamin Douglas
2e080bc6ae Update CONTRIBUTING.md
Correcting typo on line 62
2020-11-26 21:33:36 -05:00
csigs
b4e37e0be5 LEGO: check in for master to temporary branch. 2020-11-27 00:05:27 +00:00
Andrey Nekrasov
9735459552 bootstrapper: use WinAPI progress bar window instead of toast notific… (#8210)
* bootstrapper: use WinAPI progress bar window instead of toast notifications

* remove obsolete msi action
2020-11-27 00:31:00 +03:00
csigs
65c03a786b LEGO: check in for master to temporary branch. 2020-11-26 12:06:17 +00:00
Benjamin Hooper
9757a4574f [PT Run] Sys Plugin Port from Wox.Plugins.Sys (#8062)
* Initial Port of Wox.Plugin.Sys

* Add Unit Tests for Microsoft.Plugin.Sys

* Modified Microsoft.Plugin.Sys.UnitTests Properties

* Microsoft.Plugin.Sys x64 Launch

* Fix Styling for Microsoft.Plugin.Sys.UnitTests

* Fixed Misspelling

* Remove Any CPU from Configuration Manager

* Removed Old Icons and Added New Images

* Updated Titles for Localization and Added & Updated Light/Dark Theme Icons

* Added Light/Dark Icon Theme Unit Tests

* Updated QueryTest Expected Results for Microsoft.Plugin.Sys.UnitTests

* Added Spell-Check Expects for Microsoft.Plugin.Sys

* Updated Spell-Check Expects for Microsoft.Plugin.Sys

* Corrected Format in Microsoft.Plugin.Sys

* Corrected Descriptions and Added Comments for Localization

* Added StyleCop and Version Props

* Corrected Format of Microsoft.Plugin.Sys.Main

* Updated Unit Tests for Microsoft.Plugin.Sys

* Updated Spell-Check Expects for Microsoft.Plugin.Sys

* fixing build issue

Co-authored-by: Clint Rutkas <clint@rutkas.com>
2020-11-26 10:35:48 +01:00
Clint Rutkas
3bd18af816 Merge pull request #8227 from microsoft/lego/hb_2939_20201126000602371
LEGO: Pull request from lego/hb_2939_20201126000602371 to master
2020-11-25 18:24:55 -08:00
Clint Rutkas
aa3d033066 Merge pull request #8220 from microsoft/lego/hb_2939_20201125120624164
LEGO: Pull request from lego/hb_2939_20201125120624164 to master
2020-11-25 16:08:55 -08:00
csigs
a40ba55750 LEGO: check in for master to temporary branch. 2020-11-26 00:06:03 +00:00
yuyoyuppe
6d1cf8ec53 build: remove compiler memory limits 2020-11-25 17:49:39 +03:00
csigs
0662baacd6 LEGO: check in for master to temporary branch. 2020-11-25 12:06:26 +00:00
Mykhailo Pylyp
eb264537f3 added logs to fancy zones (#8190) 2020-11-25 11:54:10 +02:00
Clint Rutkas
095b76b3e8 Merge pull request #8214 from microsoft/lego/hb_2939_20201125000600534
LEGO: Pull request from lego/hb_2939_20201125000600534 to master
2020-11-25 01:47:32 -08:00
csigs
e9fc0d1db8 LEGO: check in for master to temporary branch. 2020-11-25 00:06:01 +00:00
stefansjfw
9d90f2eed1 Mark string with DO NOT LOCALIZE (#8196) 2020-11-24 22:03:43 +01:00
Mykhailo Pylyp
65f8966247 shortcut guide logs (#8191) 2020-11-24 20:36:04 +02:00
Davide Giacometti
50dcd97611 [FancyZones Editor] Porting .NET Core 3.1 (#8122)
* fancy zones editor porting core 3.1

* fix build

* removed native image

* fancy zones editor dll sign
2020-11-24 15:55:31 +01:00
Clint Rutkas
4b419e02db Merge pull request #8197 from microsoft/lego/hb_2939_20201124000528125
LEGO: Pull request from lego/hb_2939_20201124000528125 to master
2020-11-23 21:45:51 -08:00
Clint Rutkas
fc2d334834 Merge pull request #8189 from microsoft/lego/hb_2939_20201123120634392
LEGO: Pull request from lego/hb_2939_20201123120634392 to master
2020-11-23 21:44:38 -08:00
Clint Rutkas
e5145e5273 Merge branch 'master' into lego/hb_2939_20201123120634392 2020-11-23 19:57:15 -08:00
csigs
146e3c2ca6 LEGO: check in for master to temporary branch. 2020-11-24 00:05:28 +00:00
Clint Rutkas
34ebd250d7 Merge pull request #8178 from microsoft/lego/hb_2939_20201122000609690
LEGO: Pull request from lego/hb_2939_20201122000609690 to master
2020-11-23 09:00:21 -08:00
yuyoyuppe
6650c4cc5c colorpicker: fix .sln issue with unittest project 2020-11-23 17:49:43 +03:00
yuyoyuppe
49e6af929d kbm: increase compiler memory limit 2020-11-23 17:45:59 +03:00
csigs
99826a3398 LEGO: check in for master to temporary branch. 2020-11-23 12:06:35 +00:00
yuyoyuppe
289532d7c8 updating: show the reason why the update couldn't be completed
- include nonstd::expected library for modern error-handling
- add localized strings
- refactor updating.cpp
2020-11-23 13:43:23 +03:00
Niels Laute
2b0bcaa34c Updated CP images 2020-11-22 20:44:36 +01:00
Niels Laute
9819742df3 Updated ImageResizer hero images 2020-11-22 19:45:25 +01:00
csigs
2cc1319cb3 LEGO: check in for master to temporary branch. 2020-11-22 00:06:12 +00:00
Clint Rutkas
63ce7ca981 Update pipeline.user.windows.yml
fixing missed '
2020-11-20 20:15:53 -08:00
Clint Rutkas
b345f565f7 Merge pull request #8168 from microsoft/lego/hb_2939_20201121000545634
LEGO: Pull request from lego/hb_2939_20201121000545634 to master
2020-11-20 19:00:16 -08:00
Clint Rutkas
952de46e45 Merge pull request #8145 from davidegiacometti/dll-sign
DLL without signature
2020-11-20 16:36:43 -08:00
csigs
92de810d4e LEGO: check in for master to temporary branch. 2020-11-21 00:05:46 +00:00
Clint Rutkas
fa21ef7ea7 Merge pull request #8158 from microsoft/lego/hb_2939_20201120120553737
LEGO: Pull request from lego/hb_2939_20201120120553737 to master
2020-11-20 10:27:01 -08:00
Clint Rutkas
71c309d2b8 Merge pull request #8149 from microsoft/lego/hb_2939_20201120000551890
LEGO: Pull request from lego/hb_2939_20201120000551890 to master
2020-11-20 10:24:54 -08:00
Clint Rutkas
7b274c955f Merge pull request #8132 from microsoft/lego/hb_2939_20201119120652245
LEGO: Pull request from lego/hb_2939_20201119120652245 to master
2020-11-20 10:24:01 -08:00
martinchrzan
a92fec2d0d Color Picker V2 (#7710)
* Ground base for WPF version of V2 color picker

* Added theming support

* Layout fixes, added UWP listview styling

* Updated UI

* Added theming and Fluent to colorpicker. Styles cleanup

* Added animation for "color copied" message

* Added color format control, testing transparency

* Added roll-over behaviour, selectable textbox and right-click context menu

* Revert "Added roll-over behaviour, selectable textbox and right-click context menu"

This reverts commit af35a23532.

* Delete context menu, mouse-over clipboard button and selectable text

* Implemented remove color command,  set color editor topmost

* Missed some changes

* Added all currently supported color formats into editor, added support for future custom formats

* Added missed file

* Reverted WindowStyle = None

* Added drag and drop reorder behavior for color formats

* Removed custom close button, UI cleanup, added scrollviewer to colorformats

* Added close button

* Added color picker color control to configure current color

* Added possibility to add and remove color representations, commented out drag&drop reorder behavior

* Calculate color variations of the current color, on click adds a new color into the history

* Fixed reopening of editor, added rgb textboxes into color picker control, moved add color formats button at bottom

* Improved color schemes, similiar to Windows 10X

* Updated icon, window name and XAML cleanup

* Moved strings to Resources file

* Added Narrator support

* Accesibility stuff

* Revamped color picker color - now 3 sliders to configure color - hue, saturation, value, added bidirectional of setting values HEX/RGB/Sliders, validation of rgb and hex input

* UX improvements

* Removed color format management

* Removed colorformat hide context menu

* Improved colorpicker UI

* Added colorformats XAML to Settings

* Reverted runner change

* Margin fix

* Updated height of colorpicking tooltip

* Using dynamic width for color picker based on a content

* Fixed build

* Added H,S,V labels in front of gradient sliders in color picker control

* Color shades borders are now buttons, improved narrator support

* Added tabindexes

* Accesiblity improvements

* UI bugfix

* Fixed issue with occasional issue with saving color/removing colors due to locked settings file, decreased number of writes into settings.json, fixed throuttledActionInvoker to run only once, added rangeobservablecollection data type to be able to control notifications in observablecollection

* Updated installer with newly added libs

* Hide settings button since required functionality is not available yet

* Added comments to resource file

* Added reorder and enable/disable color formats from settings,

* Show message when colors history empty, open color editor in the center of screen

* Styling updates to now color selected popup

* Added horizontal gripper icon on pointerover

* Typo fix

* Added new color formats into editor

* Added 3 different activation actions to choose from

* Added new color formats into settings for editor

* Update src/core/Microsoft.PowerToys.Settings.UI/Strings/en-us/Resources.resw

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

* Updated expect.txt

* Removed MahApps

* Removed MahApps from installer for Color Picker module

* Updated settings page

* Typo fix and moved string to Resources

* Typo fixes and string improvements

* Fixing build

* Replacing DispatcherTimer with Timer from System.Timers

* Fixing tests

* adjustments

* adjustments

* removed periods

* Fixing build

* unifiying language

* Added using statement in tests

* Disabled drop shadow for Color Picker and Zoom Window due to poor performance

* Stylecop fixes

Co-authored-by: Niels Laute <niels.laute@live.nl>
Co-authored-by: Niels Laute <niels9001@hotmail.com>
Co-authored-by: htcfreek <61519853+htcfreek@users.noreply.github.com>
Co-authored-by: Clint Rutkas <clint@rutkas.com>
2020-11-20 13:50:47 +01:00
csigs
ef6374becc LEGO: check in for master to temporary branch. 2020-11-20 12:05:54 +00:00
csigs
25f836ad0b LEGO: check in for master to temporary branch. 2020-11-20 14:48:15 +03:00
csigs
deb1f3723c LEGO: check in for master to temporary branch. 2020-11-20 14:47:55 +03:00
yuyoyuppe
eb1712808a FZ: fix keyboard layout mapping for dead characters 2020-11-20 13:45:46 +03:00
yuyoyuppe
9c5f142786 updating: split installer-related and github-related APIs, fix compilation error with latest VS 2020-11-20 12:32:43 +03:00
Clint Rutkas
0626519b4d .net 5 requires 5.8
talked to Matteo Pagani, this should be the fix
2020-11-20 12:32:43 +03:00
Clint Rutkas
1d3e3f40fd Merge pull request #8121 from microsoft/dev/crutkas/FxCop_fzEditor_pass1
Dev/crutkas/fx cop fz editor pass1
2020-11-19 14:50:33 -08:00
Davide
b12b3576a8 dll sign 2020-11-19 21:29:14 +01:00
Clint Rutkas
0e96b54a9e Merge pull request #8124 from microsoft/lego/hb_2939_20201119000611307
LEGO: Pull request from lego/hb_2939_20201119000611307 to master
2020-11-19 10:33:44 -08:00
Seraphima Zykova
9144123f32 [FancyZones Unit tests] removed temp files check (#8127) 2020-11-19 13:53:10 +03:00
Alan Ninan Thomas
b3abebcf9d CI on the stable branch as well (#8106) 2020-11-19 09:38:11 +01:00
Seraphima Zykova
854ea0e5ac [FancyZones Editor] Reset layout (#8114)
Co-authored-by: Enrico Giordani <enricogior@users.noreply.github.com>
2020-11-19 10:03:22 +03:00
csigs
6256436305 LEGO: check in for master to temporary branch. 2020-11-19 00:06:12 +00:00
Clint Rutkas
567e4a39d5 removing fxcop 2020-11-18 12:07:59 -08:00
Clint Rutkas
d056c136dd invariants 2020-11-18 12:04:24 -08:00
Clint Rutkas
98a8129f93 null checks 2020-11-18 11:47:24 -08:00
Clint Rutkas
4c853a8f45 more tweaks 2020-11-18 11:44:00 -08:00
Clint Rutkas
f113aadb68 removing default values 2020-11-18 11:40:59 -08:00
Clint Rutkas
0669fbcc27 Renaming nativemethods 2020-11-18 11:38:45 -08:00
Clint Rutkas
1735be1cc2 Merge pull request #8095 from microsoft/dev/crutkas/SettingUnitTestStyleCop
StyleCop Microsoft.PowerToys.Settings.UI.UnitTests
2020-11-18 11:14:49 -08:00
Mykhailo Pylyp
53bbd08fd3 Adjustments for runner process logging (#8112) 2020-11-18 20:25:20 +02:00
Clint Rutkas
fec05ff353 Update General.cs 2020-11-18 09:13:03 -08:00
Clint Rutkas
e2473b70ca Merge pull request #8096 from microsoft/dev/crutkas/styleCopUnitTest-ColorPickerUI
StyleCop for UnitTest-ColorPickerUI
2020-11-18 05:25:49 -08:00
Clint Rutkas
df4ff2d299 Merge pull request #8107 from microsoft/lego/hb_2939_20201118120708793
LEGO: Pull request from lego/hb_2939_20201118120708793 to master
2020-11-18 05:19:39 -08:00
csigs
c9d082303f LEGO: check in for master to temporary branch. 2020-11-18 12:07:12 +00:00
Mykhailo Pylyp
613d1fdf2a Runner logging (#8068) 2020-11-18 12:15:14 +02:00
Clint Rutkas
60a5c3f946 Merge pull request #8097 from microsoft/lego/hb_2939_20201118000548825
LEGO: Pull request from lego/hb_2939_20201118000548825 to master
2020-11-17 22:45:25 -08:00
csigs
bd8088daca LEGO: check in for master to temporary branch. 2020-11-18 00:05:50 +00:00
Clint Rutkas
bc5f1bf1fc StyleCop changes. all whitespace and a rename of a file 2020-11-17 15:39:04 -08:00
Clint Rutkas
fe351fbfda Getting StyleCop up-to-date here 2020-11-17 15:29:21 -08:00
Clint Rutkas
1eb1b5189c Merge pull request #8090 from microsoft/lego/hb_2939_20201117120642255
LEGO: Pull request from lego/hb_2939_20201117120642255 to master
2020-11-17 09:08:35 -08:00
csigs
dc57e0165c LEGO: check in for master to temporary branch. 2020-11-17 12:06:43 +00:00
vldmr11080
9ccd97798f [FancyZones] Update primary desktop data on virtual desktop switch (#7994)
* Update primary desktop data after virtual desktop switch

* Don't remove zeroed-GUID inside RemoveDeletedDesktops method

* Minor refactoring in VirtualDesktopUtils

* Use std::vector::empty check instead of comparing size with 0
2020-11-17 12:39:31 +01:00
Clint Rutkas
5477dbe396 Merge pull request #8078 from microsoft/lego/hb_2939_20201117000533444
LEGO: Pull request from lego/hb_2939_20201117000533444 to master
2020-11-17 00:47:16 -08:00
Seraphima Zykova
b8e5ccfb7b [FancyZones] Editor multi monitor support (#6562)
Co-authored-by: Enrico Giordani <enrico.giordani@gmail.com>
Co-authored-by: Enrico Giordani <enricogior@users.noreply.github.com>
2020-11-17 11:38:19 +03:00
Alan Ninan Thomas
687fc2e169 Change Settings' Resources.resw to use the name PowerRename consistently. (#8061) 2020-11-17 08:24:22 +01:00
csigs
471defca72 LEGO: check in for master to temporary branch. 2020-11-17 00:05:34 +00:00
Clint Rutkas
d649ed70e9 Merge pull request #7920 from microsoft/users/niels9001/fluent-imageresizer
[Image Resizer] Fluent UI and theming support
2020-11-16 10:47:42 -08:00
Clint Rutkas
4115c3f9c1 Merge pull request #8065 from microsoft/lego/hb_2939_20201116120631658
LEGO: Pull request from lego/hb_2939_20201116120631658 to master
2020-11-16 10:46:02 -08:00
Clint Rutkas
238e5b3afa Merge pull request #8057 from microsoft/lego/hb_2939_20201116000536744
LEGO: Pull request from lego/hb_2939_20201116000536744 to master
2020-11-16 10:45:32 -08:00
Clint Rutkas
bcebd27739 Merge pull request #8041 from microsoft/lego/hb_2939_20201114120538945
LEGO: Pull request from lego/hb_2939_20201114120538945 to master
2020-11-16 10:44:28 -08:00
Clint Rutkas
4516d10197 Merge pull request #8034 from microsoft/lego/hb_2939_20201114000606270
LEGO: Pull request from lego/hb_2939_20201114000606270 to master
2020-11-16 10:43:38 -08:00
Enrico Giordani
853a400867 Merge pull request #8063 from microsoft/dev/enricogior/keyboardmanager-icon-update
[KeyboardManager] icon update
2020-11-16 16:25:32 +01:00
Ivan Stošić
48e5cc152f Merge pull request #8006 from ivan100sic/zwnddraw-debug
[FancyZones] Refactor a function in ZoneWindowDrawing
2020-11-16 14:22:40 +01:00
csigs
d193640041 LEGO: check in for master to temporary branch. 2020-11-16 12:06:33 +00:00
ivan100sic
81e0836e11 Add a TODO comment 2020-11-16 12:28:45 +01:00
Enrico Giordani
6df97d1e38 high contrast support for installer (#8043) 2020-11-16 12:15:37 +01:00
Enrico Giordani
fc1b98811b [KeyboardManager] icon update
round corners instead of square corners
2020-11-16 10:24:05 +01:00
csigs
b653743f5f LEGO: check in for master to temporary branch. 2020-11-16 00:05:37 +00:00
Davide
a2f612715b high contrast support for installer 2020-11-14 17:39:23 +01:00
csigs
24690973a8 LEGO: check in for master to temporary branch. 2020-11-14 12:05:39 +00:00
csigs
8af6cf8d72 LEGO: check in for master to temporary branch. 2020-11-14 00:06:07 +00:00
Niels Laute
927d78cc04 Fix for black UI glitch 2020-11-13 18:38:13 +01:00
Enrico Giordani
95dc2f79a6 Add dependencies to the msi installer 2020-11-13 18:19:41 +01:00
Clint Rutkas
7116179dc6 Merge pull request #8026 from microsoft/lego/hb_2939_20201113120703275
LEGO: Pull request from lego/hb_2939_20201113120703275 to master
2020-11-13 09:00:44 -08:00
vldmr11080
165a06b5a9 Add custom announcement to tab items (#8027) 2020-11-13 17:51:21 +01:00
stefansjfw
4910bd3feb Null Left/RightWindowCommands (#8028) 2020-11-13 17:32:48 +01:00
Andrey Nekrasov
c1b1fe6371 Fix compilation errors for VS 16.8.1 (#8024)
* fix compilation issues for VS 16.8.* release

* - VS 16.8 changed its template instantiation model, so now the compiler checks the syntax used in template even when it's not instantiated. we were relying on that behavior to declare the list of required localized strings from a shared header => replacing that template with a macro.

* - fix 3 C++ `const auto&` bugs the new compiler was able to uncover

* - enabled /Zc:twoPhase- for bootstrapper and PowerToysSetupCustomActions to workaround 10.0.17134.0 headers' issue.

- PowerToysSetupCustomActions.vcxproj now uses 10.0.17134.0 instead of "latest" SDK

* - PowerToysSetupCustomActions project leverages `goto` operator's power extensively, and the new compiler was able to uncover new uninitialized variables behavior, restructured declarations and changed `NULL`s to `nullptr`s.

* - Fix unit FZ unit test compiler error

* - format FZS unit test source file

* fixup fz tests

* use /Zc:twoPhase- for common-md as well
2020-11-13 15:57:01 +03:00
csigs
97fcc8311f LEGO: check in for master to temporary branch. 2020-11-13 12:07:05 +00:00
Clint Rutkas
1826b38aa9 Merge pull request #8017 from microsoft/lego/hb_2939_20201113000515080
LEGO: Pull request from lego/hb_2939_20201113000515080 to master
2020-11-13 02:53:10 -08:00
csigs
ba42b192b8 LEGO: check in for master to temporary branch. 2020-11-13 00:05:15 +00:00
Clint Rutkas
d896db7d7d Merge pull request #8012 from microsoft/lego/hb_2939_20201112174858480
LEGO: Pull request from lego/hb_2939_20201112174858480 to master
2020-11-12 10:53:02 -08:00
csigs
f2ad8086a7 LEGO: check in for master to temporary branch. 2020-11-12 17:49:09 +00:00
ivan100sic
0013282012 Formatting 2020-11-12 12:41:11 +01:00
stefansjfw
102f42928c [FancyZones Editor][Accessibility] Default focused elements in all FancyZones Editor windows (#7971)
* Default focused elements

* Fix focus when starting editor from settings
2020-11-12 10:08:17 +01:00
Clint Rutkas
6a580c720a Merge pull request #7998 from microsoft/lego/hb_2939_20201111230612596
LEGO: Pull request from lego/hb_2939_20201111230612596 to master
2020-11-11 16:01:39 -08:00
csigs
9eb8377cea LEGO: check in for master to temporary branch. 2020-11-11 23:06:14 +00:00
Clint Rutkas
c756bad83c fix test 2020-11-11 14:39:30 -08:00
Clint Rutkas
62f2e6fb8e removed mahapps dep, did lighter weight ControlzEx. Need to add these to WSX 2020-11-11 14:14:34 -08:00
Clint Rutkas
2c0656142a added in a few comments. pointed automatedname to static resource 2020-11-11 13:35:42 -08:00
Clint Rutkas
bc22631340 adding disposed pattern 2020-11-11 13:18:15 -08:00
Clint Rutkas
56af486790 Merge pull request #7983 from microsoft/dev/crutkas/madeWithLove
added made with love
2020-11-11 12:49:52 -08:00
Clint Rutkas
6c47254bb5 Merge pull request #7990 from microsoft/lego/hb_2939_20201111110613998
LEGO: Pull request from lego/hb_2939_20201111110613998 to master
2020-11-11 12:49:15 -08:00
ivan100sic
f2469415d2 Separate a big function call to several functions 2020-11-11 17:57:24 +01:00
csigs
5c2e5e14fa LEGO: check in for master to temporary branch. 2020-11-11 11:06:15 +00:00
Clint Rutkas
3b62f2ceba added made with 2020-11-10 16:37:17 -08:00
Clint Rutkas
d50ae7489e Merge pull request #7982 from microsoft/lego/hb_2939_20201110230622796
LEGO: Pull request from lego/hb_2939_20201110230622796 to master
2020-11-10 16:27:32 -08:00
csigs
8a86253958 LEGO: check in for master to temporary branch. 2020-11-10 23:06:24 +00:00
Clint Rutkas
991d6478aa Merge branch 'lego/hb_2939_20201108230556187' 2020-11-10 14:43:48 -08:00
Clint Rutkas
8f11874449 Merge branch 'master' into lego/hb_2939_20201108230556187 2020-11-10 14:43:16 -08:00
Niels Laute
e4e2586939 Light theme fix 2020-11-10 20:17:47 +01:00
Niels Laute
1e00d8cdaf Updated styling 2020-11-10 20:13:39 +01:00
Clint Rutkas
7ecf01737d Merge pull request #7974 from microsoft/lego/hb_2939_20201110110635301
LEGO: Pull request from lego/hb_2939_20201110110635301 to master
2020-11-10 08:52:03 -08:00
Clint Rutkas
23083decbb Merge pull request #7946 from microsoft/lego/hb_2939_20201109110559091
LEGO: Pull request from lego/hb_2939_20201109110559091 to master
2020-11-10 08:51:39 -08:00
vldmr11080
0a8bc1a63c Enable keyboard accessibility for template and custom layout items (#7977) 2020-11-10 16:24:20 +01:00
vldmr11080
db61c6b643 [FancyZones] Localize names of predefined layotus (#7973)
* Localize strings in Settings.cs

* Add comment to resource variable
2020-11-10 16:15:30 +01:00
Andrey Nekrasov
48cf167a3c runner: localize tray menu item labels (#7959)
* runner: localize tray menu item labels

* fixup: please the electronic machinery

* Update src/runner/Resources.resx

Co-authored-by: Enrico Giordani <enricogior@users.noreply.github.com>

Co-authored-by: Enrico Giordani <enricogior@users.noreply.github.com>
2020-11-10 15:56:05 +03:00
csigs
248135dffb LEGO: check in for master to temporary branch. 2020-11-10 11:06:37 +00:00
Clint Rutkas
5056048ccd Update expect.txt 2020-11-09 16:55:23 -08:00
Clint Rutkas
7bbcde9310 Merge branch 'master' into lego/hb_2939_20201109110559091 2020-11-09 16:36:17 -08:00
Clint Rutkas
a0e14fd37c Merge pull request #7964 from microsoft/lego/hb_2939_20201109230607691
LEGO: Pull request from lego/hb_2939_20201109230607691 to master
2020-11-09 16:30:34 -08:00
Clint Rutkas
b3a2df7bf9 Merge pull request #7962 from microsoft/dev/crutkas/updateFody
upgrading PropertyChanged.Fody 3.3.+
2020-11-09 15:35:20 -08:00
Clint Rutkas
2d61b69ff5 Merge pull request #7555 from TobiasSekan/MoreColorsTakeTwo
[ColorPicker] Add HSB, HSI, HWB and NCol color representation
2020-11-09 15:16:32 -08:00
csigs
a6031a46a2 LEGO: check in for master to temporary branch. 2020-11-09 23:06:08 +00:00
Clint Rutkas
0266776a3e upgrading fody, https://github.com/microsoft/PowerToys/pull/7858 may be hard since we removed core 2020-11-09 10:57:37 -08:00
Davide Giacometti
701c119986 fix log file not created (#7935) 2020-11-09 19:39:02 +01:00
Raphael Horber
8c7f2b6a74 PowerRename: Add Lookbehind (#7571)
* Add boost-regex library

* If enabled use boost lib for regex

Add property `_useBoostLib` to `CPowerRenameRegEx`. If enabled for
replacements with regular expressions the Boost Library is used instead
of the Standard Library.

* Extend signatures to create RegEx with Boost

Extend create and constructor singatures of `CPowerRenameRegEx` with an
option to enable (or disabled, which is default) the Boost Library.

* Verify Lookbehind fails with STD library

To verify that the boost library is disabled as expected, check if a
lookbehind fails.

* Add Unit tests for RegEx with Boost

Add unit tests to verify regex replacement with Boost Library. They are
copied and adapted from the Standard Library tests.

* Improve verify capturing groups test with Boost

It is possible to use a capturing group followed by numbers as
replacement if the group number is enclosed in curly braces.
Added test cases based on the Standard Library tests.

* Add useBoostLib to settings interface

* Get library option from settings object

* Reduce signatures of RegEx by "useBoost"

Remove the parameter added in 19105cf, as it became obsolete.

* Settings: Read useBoostLib from JSON file

* Add UseBoostLib Option to UI

* Boost Lib label states the regex syntax difference

* Fix Regex with Boost Lib tests

- Do not load settings another time in CPowerRenameRegEx ctor
- Set flag correctly in standard library regex tests

* Add "lookbehind" to dictionary

* change Library to lowercase, and also add a comment

As suggested by @enricogior.

Co-authored-by: Enrico Giordani <enricogior@users.noreply.github.com>

* Change Library to lowercase and add a comment

 As suggested by @enricogior.

Co-authored-by: Enrico Giordani <enricogior@users.noreply.github.com>
2020-11-09 19:13:43 +01:00
yuyoyuppe
5a9e1b14cb localization: Fix action_runner/runner folder names 2020-11-09 20:00:45 +03:00
csigs
e27c5e3043 LEGO: check in for master to temporary branch. 2020-11-09 11:06:00 +00:00
Sekan, Tobias
83b2ffd0c9 Commit to Re-Trigger Github PR 2020-11-09 09:50:55 +01:00
Sekan, Tobias
f8e6802e3f Fix pattern 2020-11-09 09:33:57 +01:00
Sekan, Tobias
4a25335036 fix wrong pattern 2020-11-09 06:48:12 +01:00
Sekan, Tobias
772255e4e0 fix spelling 2020-11-09 06:46:13 +01:00
Sekan, Tobias
d192e6feb6 fix misspellings 2020-11-09 06:30:36 +01:00
Sekan, Tobias
36f55ae80c Address feedback 2020-11-09 06:03:39 +01:00
Sekan, Tobias
dc2751aa38 Address feedback + cleanup 2020-11-09 06:03:33 +01:00
Sekan, Tobias
c0501bdc02 Address feedback 2020-11-09 06:02:48 +01:00
Sekan, Tobias
25d7df470f Address feedback - fix swapped color name (UI) 2020-11-09 06:02:48 +01:00
Sekan, Tobias
e2dd94332b fix wrong name 2020-11-09 06:02:48 +01:00
Sekan, Tobias
c4eccb3666 correct order + correct docu 2020-11-09 06:02:48 +01:00
Sekan, Tobias
767ce22019 Add test for HWB and NCol converter 2020-11-09 06:02:48 +01:00
Sekan, Tobias
b087deadcb Add HSI test and fix HSI calculation 2020-11-09 06:02:48 +01:00
Sekan, Tobias
71f9299485 Add HSI calculation 2020-11-09 06:02:48 +01:00
Sekan, Tobias
57dd0ce113 Add Ncol, HWB, HSB color format + cleanup 2020-11-09 06:02:41 +01:00
Sekan, Tobias
d9de059a4f Merge branch 'master' of https://github.com/microsoft/PowerToys 2020-11-09 05:56:36 +01:00
csigs
090ddafade LEGO: check in for master to temporary branch. 2020-11-08 23:05:56 +00:00
Niels Laute
fbc82f01b2 Added foreground brush 2020-11-08 22:18:47 +01:00
Niels Laute
3e874f8bb2 Fixed x symbol not showing 2020-11-08 22:08:56 +01:00
Niels Laute
9ffbc0f08c Reverted dev changes 2020-11-08 21:07:05 +01:00
Niels Laute
9e5edaba71 Accesibility improvements 2020-11-08 21:02:26 +01:00
Niels Laute
aafab46456 UI improvements 2020-11-08 20:09:07 +01:00
Niels Laute
14f905dbfd Updates themes 2020-11-08 14:41:51 +01:00
Niels Laute
f424e93d34 Added logic that disables input boxes when Custom size is not selected 2020-11-08 14:35:00 +01:00
Niels Laute
0d43ea2bb9 Accesibility improvements + updated colors 2020-11-08 14:31:57 +01:00
Clint Rutkas
3a7aa76ef6 Merge pull request #7923 from alannt777/master
[README] [Fix] Links to File Explorer addons is a bit misleading
2020-11-07 23:35:41 -08:00
Alan Ninan Thomas
b6bcea6679 Update README.md 2020-11-08 10:05:55 +05:30
Niels Laute
da36371448 Keyboard accesibility fix 2020-11-07 21:36:59 +01:00
Niels Laute
edbbc69f4f Updating UI and making it Fluent 2020-11-07 21:17:31 +01:00
Clint Rutkas
1c64e62e3d Merge pull request #7909 from microsoft/lego/hb_2939_20201106230530020
LEGO: Pull request from lego/hb_2939_20201106230530020 to master
2020-11-07 08:24:10 -08:00
Niels Laute
36fd030075 Added theming support 2020-11-07 15:51:38 +01:00
csigs
f23925340e LEGO: check in for master to temporary branch. 2020-11-06 23:05:30 +00:00
vldmr11080
65ce8c760d Specify focus rectangle color when focused by keyboard (#7899) 2020-11-06 23:23:22 +01:00
vldmr11080
9402f4ad02 Add name property for delete buton (#7895) 2020-11-06 20:12:53 +01:00
Mykhailo Pylyp
db8be6ad10 fix clipped text issue (#7897) 2020-11-06 19:08:25 +02:00
Clint Rutkas
4d92a7e250 Merge pull request #7815 from pi1024e/patch-1
Remove unneeded variable for GetLastError();
2020-11-06 09:00:36 -08:00
Clint Rutkas
5b85e942f1 Merge pull request #7816 from pi1024e/headers
Replace deprecated C headers with their C++ equivalent
2020-11-06 09:00:23 -08:00
Clint Rutkas
8a55d327b6 Merge pull request #7886 from microsoft/lego/hb_2939_20201105230548571
LEGO: Pull request from lego/hb_2939_20201105230548571 to master
2020-11-06 08:59:05 -08:00
Mykhailo Pylyp
8a1d2611d8 [KBM] Added banded rows (#7787)
* Added banded rows

* Fix build after merge

* accessibility names, capturing static row indexes by lambda

* Fix position of targetApp textbox

* fix wrong path for textbox
2020-11-06 16:24:11 +02:00
Clint Rutkas
01e9be9180 Merge pull request #7884 from microsoft/crutkas-patch-1
adding Issue-Translation tag to translation issue template
2020-11-05 15:11:02 -08:00
csigs
42b4989846 LEGO: check in for master to temporary branch. 2020-11-05 23:05:49 +00:00
Clint Rutkas
6de5e61031 Merge pull request #7883 from microsoft/remove-wox.core-from-YML
Update pipeline.user.windows.yml
2020-11-05 14:27:38 -08:00
Clint Rutkas
59522b84db Update translation_issue.md
appending Issue-Translation
2020-11-05 13:37:05 -08:00
Clint Rutkas
eb5bf06272 Merge pull request #7877 from microsoft/addIgnoresForSpellCheck
Additional spelling ignores
2020-11-05 12:56:29 -08:00
Clint Rutkas
74b04e4f2c Merge pull request #7881 from microsoft/action_runner-loc-redirection-bug
Update LocProject.json
2020-11-05 12:56:03 -08:00
Clint Rutkas
085314d503 Update pipeline.user.windows.yml 2020-11-05 12:24:37 -08:00
Clint Rutkas
8a317e5af2 Merge pull request #7820 from davidegiacometti/issue-7336
[PT Run] Wox.Core merged into PowerLauncher
2020-11-05 12:20:42 -08:00
Clint Rutkas
7f21ebe82b Update LocProject.json 2020-11-05 11:25:03 -08:00
Clint Rutkas
f0889b13dd Merge pull request #7865 from microsoft/lego/hb_2939_20201105110544059
LEGO: Pull request from lego/hb_2939_20201105110544059 to master
2020-11-05 10:25:02 -08:00
Clint Rutkas
54ace02b9b Update expect.txt
hmon
IMonitor
scrollviewer
VDId
2020-11-05 09:58:12 -08:00
Clint Rutkas
3bc4820d90 Merge pull request #7857 from microsoft/lego/hb_2939_20201104230553771
LEGO: Pull request from lego/hb_2939_20201104230553771 to master
2020-11-05 09:17:40 -08:00
vldmr11080
fc1feab7ec Add descriptive name for zone increment/decrement buttons (#7867) 2020-11-05 15:01:07 +01:00
stefansjfw
8fa04fe2cf Add Grid Layout Editor name property (#7831) 2020-11-05 12:24:10 +01:00
csigs
4786b64b93 LEGO: check in for master to temporary branch. 2020-11-05 11:05:44 +00:00
Enrico Giordani
50a8884c32 [common, shortcutguide] move d2d files from common to scg (#7844)
Also remove d2d classes from common documentation
2020-11-05 10:38:46 +01:00
Niels Laute
1dc1531104 [Settings] Added hyperlink button to wiki for keys that can't be remapped (#7826) 2020-11-05 09:04:26 +01:00
Niels Laute
82bc61e620 [Settings] Added delete button tooltip to Image Resizer page (#7827) 2020-11-05 09:02:31 +01:00
Enrico Giordani
ad15a5e26f [settings-web] Update packages (#7849) 2020-11-05 08:53:27 +01:00
csigs
8e43a3ca0b LEGO: check in for master to temporary branch. 2020-11-04 23:05:54 +00:00
Clint Rutkas
e3b70bc8b9 Merge pull request #7851 from microsoft/dev/crutkas/adjustStrings
Change to FancyZone Layout Editor and added in comments
2020-11-04 13:32:20 -08:00
Davide
37f711b234 Wox.Core project deleted 2020-11-04 20:36:47 +01:00
Clint Rutkas
ea495b631c Merge pull request #7709 from jsoref/spell-check
Set up spell-checking action
2020-11-04 11:25:37 -08:00
Clint Rutkas
045837a888 adding in comments for FZ layout editor 2020-11-04 11:23:53 -08:00
Clint Rutkas
4b1ba511de shift to layout editor 2020-11-04 11:22:58 -08:00
Davide
6bca6f992c Wox.Core.dll removed 2020-11-04 20:03:03 +01:00
Davide
1aa4008b36 Merge branch 'master' into issue-7336 2020-11-04 20:02:25 +01:00
Davide
21c1665678 fix release build 2020-11-04 19:57:55 +01:00
Clint Rutkas
083605fb85 Merge pull request #7842 from microsoft/lego/hb_2939_20201104110551356
LEGO: Pull request from lego/hb_2939_20201104110551356 to master
2020-11-04 06:38:52 -08:00
Clint Rutkas
7f6d8ba86c Merge pull request #7618 from microsoft/dev/crutkas/upgradeNuget
Upgrading nuget packages
2020-11-04 06:38:08 -08:00
Mehmet Murat Akburak
1a64597fca [PowerRename] Fix warnings and turn on treat warnings as errors (#7840)
* Fix 2 mentioned warnings

* Turn on treat warnings as errors

* Remove win32 configurations
2020-11-04 14:13:07 +03:00
csigs
ced25643e0 LEGO: check in for master to temporary branch. 2020-11-04 11:05:51 +00:00
Niels Laute
a34afd1ca2 [Settings] Updated FZ page (#7828) 2020-11-04 10:05:14 +01:00
Clint Rutkas
bd8c2ce774 more comments 2020-11-03 17:01:37 -08:00
Clint Rutkas
7508a73373 Merge pull request #7708 from jsoref/spelling
Spelling
2020-11-03 16:54:00 -08:00
Clint Rutkas
7a766c6c09 Merge pull request #7832 from microsoft/lego/hb_2939_20201103230605054
LEGO: Pull request from lego/hb_2939_20201103230605054 to master
2020-11-03 16:46:35 -08:00
Clint Rutkas
bdeb35ba3b change indexer to file search 2020-11-03 16:37:18 -08:00
Clint Rutkas
e6ccd5cf0d adding in comments, changing "PowerToys is up-to-date" 2020-11-03 16:36:59 -08:00
csigs
a6a4821380 LEGO: check in for master to temporary branch. 2020-11-03 23:06:05 +00:00
Clint Rutkas
fd6863506d Update Product.wxs 2020-11-03 14:56:01 -08:00
Davide
fdb39ca314 Wox.Core merged into PowerLauncher 2020-11-03 21:45:01 +01:00
pi1024e
859e674c11 Replace deprecated headers
To remove warnings about deprecated headers and for more robust C++, this replaces the deprecated C header with its C++ equivalent.
2020-11-03 13:59:35 -05:00
Clint Rutkas
aa1d6f7095 Merge branch 'master' into dev/crutkas/upgradeNuget 2020-11-03 10:57:50 -08:00
pi1024e
9c1ed88e5f Remove unneeded variable for GetLastError();
No other usage of GetLastError has the result assigned to a variable first in this code, so it is better if we make check_user_is_admin the same in that regard.
2020-11-03 13:39:29 -05:00
Clint Rutkas
35cf50c796 Merge pull request #7808 from microsoft/lego/hb_2939_20201103110547248
LEGO: Pull request from lego/hb_2939_20201103110547248 to master
2020-11-03 09:59:34 -08:00
Clint Rutkas
f36584ce38 Merge pull request #7797 from microsoft/lego/hb_2939_20201102230612006
LEGO: Pull request from lego/hb_2939_20201102230612006 to master
2020-11-03 09:08:38 -08:00
Clint Rutkas
77fad07a28 Merge pull request #7799 from microsoft/dev/crutkas/fixWsxForAbstraction
added in abstraction to WSX
2020-11-03 08:57:53 -08:00
Sekan, Tobias
0929a937a3 Merge branch 'master' of https://github.com/microsoft/PowerToys 2020-11-03 17:27:48 +01:00
csigs
8b39996577 LEGO: check in for master to temporary branch. 2020-11-03 11:05:47 +00:00
vldmr11080
78b2020669 [FancyZones] Adjust colors of secondary buttons to maintain 3:1 contrast ratio against white background (#7785)
* Adjust colors of secondary buttons to maintain 3:1 contrast ratio against white background

* Use white color withing Cancel button
2020-11-03 11:46:24 +01:00
Davide Giacometti
269b12226a apply correct theme at startup (#7796) 2020-11-03 11:30:19 +01:00
yuyoyuppe
4228b9a772 ImageResizer: fix Color contrast of ComboBox 2020-11-03 12:42:19 +03:00
yuyoyuppe
c103a8a205 Image resizer: fix Color contrast of 'Resize Your Pictures' 2020-11-03 12:40:30 +03:00
Davide Giacometti
6e8337c563 [PT Run] Folder path starting with backslash (#7711)
* folder plugin path starting with backslash

* handle single \ input
2020-11-03 10:36:16 +01:00
yuyoyuppe
ccf02579e6 ImageResizer: skip Settings tab focus when hidden 2020-11-03 11:34:39 +03:00
vldmr11080
49811fc4b8 Adjust template tab non-highlighted color (#7638) 2020-11-03 09:25:36 +01:00
Clint Rutkas
1bbdf2f1cc added in abstraction 2020-11-02 16:20:01 -08:00
csigs
80d8144f1e LEGO: check in for master to temporary branch. 2020-11-02 23:06:13 +00:00
Clint Rutkas
40f439bc15 Update README.md
fix for #7793
2020-11-02 13:12:45 -08:00
Clint Rutkas
7f6e2c308e Merge pull request #7779 from microsoft/lego/hb_2939_20201102110603120
LEGO: Pull request from lego/hb_2939_20201102110603120 to master
2020-11-02 10:41:28 -08:00
Clint Rutkas
60f9a2f773 Merge pull request #7766 from microsoft/lego/hb_2939_20201101230540961
LEGO: Pull request from lego/hb_2939_20201101230540961 to master
2020-11-02 10:39:54 -08:00
Clint Rutkas
394482157e Merge pull request #7756 from microsoft/lego/hb_2939_20201101110551694
LEGO: Pull request from lego/hb_2939_20201101110551694 to master
2020-11-02 10:23:46 -08:00
Clint Rutkas
a66b276e7d Merge branch 'master' into spelling 2020-11-02 09:57:48 -08:00
Clint Rutkas
0a23f1e35c Merge pull request #7745 from microsoft/lego/hb_2939_20201031230528313
LEGO: Pull request from lego/hb_2939_20201031230528313 to master
2020-11-02 09:56:17 -08:00
Clint Rutkas
c47e61d136 Merge pull request #7725 from microsoft/lego/hb_2939_20201031110538538
LEGO: Pull request from lego/hb_2939_20201031110538538 to master
2020-11-02 09:49:32 -08:00
Clint Rutkas
f3f57ba79b Merge pull request #7717 from microsoft/lego/hb_2939_20201030230621684
LEGO: Pull request from lego/hb_2939_20201030230621684 to master
2020-11-02 09:41:03 -08:00
Clint Rutkas
41ee6e706a Merge pull request #7718 from microsoft/dev/crutkas/langAdjustmentForLearning
Change "Module overview" to "Learn more" in settings menu
2020-11-02 09:38:54 -08:00
P-Storm
0d4017fe1a Io abstraction (#7293)
Co-authored-by: p-storm <paul.de.man@gmail.com>
2020-11-02 18:33:43 +01:00
csigs
11f9a64737 LEGO: check in for master to temporary branch. 2020-11-02 11:06:04 +00:00
Davide Giacometti
5c3eef0112 fix test project color picker ui (#7713) 2020-11-02 12:00:56 +01:00
Niels Laute
a2f3e7cccd Fixed Color Picker spacing. (#7751) 2020-11-02 10:56:27 +01:00
yuyoyuppe
fbd1108041 ImageResizer: fix hyperlink buttons role 2020-11-02 12:55:56 +03:00
stefansjfw
ebf81a6a03 Associate Name label with textbox (#7621) 2020-11-02 10:05:57 +01:00
yuyoyuppe
f33b3c771a common project localization: move out all updating strings
- finish localizing boostrapper/runner/action_runner
2020-11-02 12:03:32 +03:00
yuyoyuppe
5629e8068b make build script less noisy 2020-11-02 12:03:32 +03:00
csigs
4a4b6c5589 LEGO: check in for master to temporary branch. 2020-11-01 23:05:41 +00:00
csigs
d7eafcb641 LEGO: check in for master to temporary branch. 2020-11-01 11:05:52 +00:00
csigs
4e0120493e LEGO: check in for master to temporary branch. 2020-10-31 23:05:28 +00:00
Clint Rutkas
a772527a4a Merge pull request #7628 from punker76/dev/punker76/RemoveMahAppsDependencyFromLauncher
[PowerLauncher] Remove MahApps dependency and add own LibraryThemeProvider
2020-10-31 08:07:01 -07:00
csigs
954b483e4f LEGO: check in for master to temporary branch. 2020-10-31 11:05:39 +00:00
punker76
fa1448163a [PowerLauncher] Fix getting theme changed event for and between HighContrast setting 2020-10-31 11:58:52 +01:00
punker76
f89b98e7c7 [PowerLauncher] Fix getting theme changed event 2020-10-31 11:58:52 +01:00
punker76
44af8f30f8 [PowerLauncher] Remove MahApps dependency and add own LibraryThemeProvider 2020-10-31 11:58:52 +01:00
Mehmet Murat Akburak
7ff8b97006 [PowerRename] Split "status message" / "items count label" into two lines (#7696)
* Split status message

* Use spaces instead of tabs
2020-10-31 11:25:16 +03:00
Clint Rutkas
62c9184658 Update Resources.resw 2020-10-31 01:15:52 -07:00
Clint Rutkas
1777fca0e3 Merge pull request #7705 from avarun42/master
Fix typos in Readme
2020-10-30 16:56:44 -07:00
Clint Rutkas
ce0f0322af adding in comment for do not loc product names 2020-10-30 16:54:27 -07:00
Clint Rutkas
462d64ab7a Changed title and started adding in additional comments. 2020-10-30 16:52:00 -07:00
Avneet Kaur
2c5b9b4d52 Audit culture bugs (#7707)
* Added comments and fixed CultureInfo /  StringComparison where appropriate

* Addressed comments

* Fixed comment
2020-10-30 16:43:09 -07:00
csigs
dddafc8944 LEGO: check in for master to temporary branch. 2020-10-30 23:06:23 +00:00
Alekhya
bd34127cd4 Add unit tests for incorrect settings json files (#7644)
* added some test config files

* Added tests for each powertoy to ensure that they don't crash even when there is a corrupt json

* Revert "Added tests for each powertoy to ensure that they don't crash even when there is a corrupt json"

This reverts commit fe3ed40902.

* Revert "added some test config files"

This reverts commit d08928423a.

* add a settings utils to test that a default item is returned when the json file is corrupt
2020-10-30 12:53:57 -07:00
Josh Soref
450ccf6359 spelling: viewmodel
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
2020-10-30 14:42:53 -04:00
Josh Soref
98c9199f0e spelling: verify
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
2020-10-30 14:42:49 -04:00
Josh Soref
0a0b41393e spelling: utility
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
2020-10-30 14:42:45 -04:00
Josh Soref
7e942a366c spelling: update
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
2020-10-30 14:42:41 -04:00
Josh Soref
23975d225d spelling: unofficial
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
2020-10-30 14:42:36 -04:00
Josh Soref
ad9f88c487 spelling: synchronized
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
2020-10-30 14:42:32 -04:00
Josh Soref
7442162cc0 spelling: suppressions
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
2020-10-30 14:42:28 -04:00
Josh Soref
3e20672efe spelling: specification
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
2020-10-30 14:40:57 -04:00
Josh Soref
2b235e0827 spelling: specific
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
2020-10-30 14:42:24 -04:00
Josh Soref
8720a0dcdf spelling: source
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
2020-10-30 14:42:20 -04:00
Josh Soref
d116298d2f spelling: shortcut
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
2020-10-30 14:42:16 -04:00
Josh Soref
fd8b99bd8c spelling: retrieving
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
2020-10-30 14:42:11 -04:00
Josh Soref
724ca6f06e spelling: representation
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
2020-10-30 14:42:07 -04:00
Josh Soref
054ab88ef1 spelling: rendering
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
2020-10-30 14:42:03 -04:00
Josh Soref
9c6c7a82cb spelling: registry
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
2020-10-30 14:41:59 -04:00
Josh Soref
c72ed77632 spelling: recommended
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
2020-10-30 14:41:54 -04:00
Josh Soref
6e6ae6f1d3 spelling: precedes
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
2020-10-30 14:41:49 -04:00
Josh Soref
706bce07e5 spelling: parameters
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
2020-10-30 14:41:45 -04:00
Josh Soref
ee6a9b3b6b spelling: occurred
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
2020-10-30 14:41:41 -04:00
Josh Soref
ade22bf48c spelling: modifier
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
2020-10-30 14:41:37 -04:00
Josh Soref
3bc0405715 spelling: milliseconds
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
2020-10-30 14:41:33 -04:00
Josh Soref
c2114d8e3b spelling: maximum
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
2020-10-30 14:41:27 -04:00
Josh Soref
6c0efef967 spelling: intentionally
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
2020-10-30 14:41:23 -04:00
Josh Soref
b0a584d5ee spelling: initialize
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
2020-10-30 14:41:19 -04:00
Josh Soref
27bb96b61c spelling: inferred
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
2020-10-30 14:41:14 -04:00
Josh Soref
034da586c8 spelling: explicitly
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
2020-10-30 14:41:09 -04:00
Josh Soref
e889e1a5c6 spelling: experimental
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
2020-10-30 14:41:05 -04:00
Josh Soref
4961601b84 spelling: exception
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
2020-10-30 14:41:01 -04:00
Josh Soref
beab8d2deb spelling: essentially
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
2020-10-30 14:40:53 -04:00
Josh Soref
aa19430d52 spelling: directory
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
2020-10-30 14:40:48 -04:00
Josh Soref
a161a94241 spelling: correctly
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
2020-10-30 14:40:44 -04:00
Josh Soref
468e08dfa7 spelling: constructor
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
2020-10-30 14:40:40 -04:00
Josh Soref
791b0cb904 spelling: consistency
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
2020-10-30 14:40:36 -04:00
Josh Soref
37dbcb91cd spelling: coming
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
2020-10-30 14:40:32 -04:00
Josh Soref
1888a4cf99 spelling: catalog
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
2020-10-30 14:39:18 -04:00
Josh Soref
d377170747 spelling: bootstrapper
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
2020-10-30 14:39:14 -04:00
Josh Soref
e68999ea0d spelling: adjacent
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
2020-10-30 14:39:10 -04:00
Varun Arora
a2a063e6a2 Fix typos in Readme 2020-10-30 14:19:09 -04:00
Clint Rutkas
c3e978793c Merge pull request #7619 from microsoft/dev/crutkas/WixGeneric
making dev env call vs hardcoded path
2020-10-30 10:07:46 -07:00
Clint Rutkas
98cb5f2e55 Merge pull request #7686 from microsoft/lego/hb_2939_20201030110544911
LEGO: Pull request from lego/hb_2939_20201030110544911 to master
2020-10-30 09:10:07 -07:00
Clint Rutkas
ad52061c50 Merge pull request #7660 from microsoft/lego/hb_2939_20201029230554135
LEGO: Pull request from lego/hb_2939_20201029230554135 to master
2020-10-30 09:09:24 -07:00
Clint Rutkas
6f67fa533a Merge pull request #7630 from microsoft/lego/hb_2939_20201029110538004
LEGO: Pull request from lego/hb_2939_20201029110538004 to master
2020-10-30 09:08:57 -07:00
Seraphima Zykova
4a7ce82688 [Localization] Unreachable input box in FancyZones Editor fix. (#7689) 2020-10-30 19:00:33 +03:00
Ivan Stošić
df28473326 [FancyZones] Use Direct2D to draw (#7547)
* Started work

* Good progress on D2D

* Visuals are good, functionality - almost there

* Opacity fix

* Animation works, WM_PAINT still doesn't

* Simplify code, remove flashZones, remove unused code

* Kinda works, but it's a bit laggy

* Works great, but needs refactoring/performance improvements

* Move code from .h to .cpp

* Polished the functionality

* Fix issue with changing monitors

* Rebase fix

* Finalize PR before review

* Couple two members of ZoneWindowDrawing

* Also request a low latency lock when hiding the zone window

* Move textFormat and textBrush out of the loop

* Thread-safe initialization

* Rebase fix: zone numbers

* Make zone borders crispy

* Fix offsets

* Another rebase fix

* Fix DPI bug
2020-10-30 16:25:56 +01:00
stefansjfw
181db8c40a Enable closing Edit Canvas Layout and Edit Grid Layout windows by pressing Esc button (#7643) 2020-10-30 16:25:27 +01:00
csigs
a87dabda1c LEGO: check in for master to temporary branch. 2020-10-30 11:05:45 +00:00
Clint Rutkas
c37d08c475 Merge pull request #7622 from microsoft/dev/crutkas/helpLocWithComments
Addressing loc team feedback
2020-10-29 22:33:34 -07:00
Clint Rutkas
5417afc623 Merge pull request #6788 from microsoft/dev/crutkas/buildFarmVersioningTake3
Getting version numbers set by the build farm
2020-10-29 20:24:27 -07:00
Clint Rutkas
6d60249fd2 Update Resources.resx 2020-10-29 20:23:20 -07:00
Avneet Kaur
ec8ead8183 [fxcop] Wox.Infrastructure (#7590)
* CA1052: Static holder types should be Static or NotInheritable

* CA1041: Provide ObsoleteAttribute message

* CA1062: Validate arguments of public methods

* CA1304: Specify CultureInfo / CA1305: Specify IFormatProvider / CA1307: Specify StringComparison for clarity

* CA1802: Use Literals Where Appropriate

* CA1820: Test for empty strings using string length

* CA1707: Identifiers should not contain underscores

* CA1805: Do not initialize unnecessarily.

* CA1822: Mark members as static

* CA2227: Collection properties should be read only

* CA1054: URI parameters should not be strings

* CA1031: Do not catch general exception types

* CA1060: Move P/Invokes to NativeMethods class

* CA1308: Normalize strings to uppercase

* CA2000: Dispose objects before losing scope / CA2234: Pass System.Uri objects instead of strings

* CA2234: Pass System.Uri objects instead of strings

* CA1044: Properties should not be write only

* CA1716: Identifiers should not match keywords

* CA2007: Do not directly await a Task

* CA2007: Do not directly await a Task (Suppressed)

* CA5350: Do Not Use Weak Cryptographic Algorithms (Suppressed)

* CA1724: Type names should not match namespaces (renamed Settings.cs to PowerToysRunSettings.cs)

* CA1033: Interface methods should be callable by child types (Added sealed modifier to class)

* CA1724: Type names should not match namespaces (Renamed Plugin.cs to RunPlugin.cs)

* CA1724: Type names should not match namespaces (Renamed Http.cs to HttpClient.cs)

* CA5364: Do not use deprecated security protocols (Remove unused code)

* Enabled FxCopAnalyzer for Wox.Infrastructure

* fixed comment

* Addressed comments

- Changed Ordinal to InvariantCulture
- Added comments
- Removed unused obsolete code
- Removed unused method (CA2007: Do not directly await a Task)

* Addressed comments - fixed justification for CA1031 suppression

* Addressed comments - Fixed justification for CA1031 suppression in Wox.Core/Wox.Plugin
2020-10-29 17:52:35 -07:00
csigs
49d7f90c99 LEGO: check in for master to temporary branch. 2020-10-29 23:05:54 +00:00
Divyansh Srivastava
5015642b6d [PT Run] Remove duplicated dll's from Plugins (#7617)
* Added copy local false for project references of plugins

* Remove infra and plugin dll from PT Run plugins
2020-10-29 14:46:09 -07:00
Luthfi Mawarid
215c353dee [fxcop] Settings UI (#7559)
* Remove redundant default initializations

* Implement IDisposable in HotkeySettingsControl

* Mark classes and methods as static

* Move Interop.ShowWindow to NativeMethods class

* Fix string-related warnings

* Remove unused argument for KeyEventHandler

* Log caught general exceptions

* Use safe navigation operator for null argument checks

* Suppress CA2007 warnings and enable FxCop

* Suppress warning for unused event handler params

* Use TryParse in ImageResizerPage

* Use ConfigureAwait(false) for CA2007
2020-10-29 14:24:16 -07:00
Clint Rutkas
7ec2ff5513 Merge pull request #7645 from microsoft/dev/crutkas/removeGifSpecAndMoveToWiki
Move gif spec to wiki
2020-10-29 13:36:26 -07:00
Arjun Balgovind
06cd9409e9 Move Focus to Type button in new row on Adding a remap (#7586) 2020-10-29 13:16:52 -07:00
Clint Rutkas
6e2191a34e Update translation_issue.md 2020-10-29 11:06:53 -07:00
Clint Rutkas
ef023d144b Update README.md 2020-10-29 11:01:43 -07:00
Clint Rutkas
676b6f98a3 Merge pull request #7623 from microsoft/0.25-readme
0.25 readme & loc translation issue template
2020-10-29 10:59:25 -07:00
Clint Rutkas
2dea187595 removed and moved to https://github.com/microsoft/PowerToys/wiki/Video-GIF-Capture 2020-10-29 10:52:17 -07:00
Clint Rutkas
04b0a4c888 Update README.md 2020-10-29 10:51:08 -07:00
Clint Rutkas
1c8c3d65c5 Update README.md 2020-10-29 10:44:48 -07:00
Alekhya
fdffe20c0b Display Drive detection warning only for multiple drives (#7589)
* indexer drive detection helper code to not show the warning for a single drive

* removed interface from the namespace due to stylecop

* removed interfac which no longer exists

* filter out only fixed drives in the system and ignore the removable drives

* changed text to not all files are indexed, from not all drives are idnexed

* add additional info in the comment
2020-10-29 10:38:15 -07:00
Clint Rutkas
e30393e18f Merge pull request #6900 from microsoft/dev/dedavis/GIFSpec
Functional Spec for Video GIF Capture
2020-10-29 10:22:18 -07:00
Deondre Davis
6726abd37e Updated priorities to focus on GIF then video 2020-10-29 09:54:35 -07:00
Deondre Davis
2174e97286 Fixed some typos 2020-10-29 09:39:06 -07:00
Deondre Davis
698d19cb51 Update requirements and added release milestones 2020-10-29 09:31:19 -07:00
csigs
365a1808c0 LEGO: check in for master to temporary branch. 2020-10-29 11:05:38 +00:00
Clint Rutkas
5ac30cec73 Merge pull request #7620 from microsoft/lego/hb_2939_20201028230559693
LEGO: Pull request from lego/hb_2939_20201028230559693 to master
2020-10-28 21:00:05 -07:00
Clint Rutkas
623e4427f1 Update config.yml 2020-10-28 20:59:11 -07:00
Clint Rutkas
7d29bd55f8 Update translation_issue.md 2020-10-28 20:50:33 -07:00
Clint Rutkas
6d1cabaa9d Update README.md 2020-10-28 20:49:02 -07:00
Clint Rutkas
1516d38254 translation_issue.md 2020-10-28 20:38:10 -07:00
Avneet Kaur
2e5b6df3a7 Removed Wox.CrashReporter folder since it is not being used anywhere (#7591) 2020-10-28 17:58:09 -07:00
Clint Rutkas
5ee9af795f Shifting to MSBuild constant. https://github.com/dotnet/roslyn/pull/23977 2020-10-28 17:22:42 -07:00
Avneet Kaur
175e962c0c [fxcop] Wox.Plugin devdocs update (#7595)
* Updated devdocs - Moved Log.cs from Wox.Infrastructure to Wox.Plugin

* Updated path to Log.cs
2020-10-28 17:19:24 -07:00
Clint Rutkas
1fb31352de few more 2020-10-28 17:16:58 -07:00
Clint Rutkas
302d28088d removing dlls from removed sqlite dep 2020-10-28 17:14:17 -07:00
Clint Rutkas
a25cc12c67 loc team feedback 2020-10-28 16:59:29 -07:00
Clint Rutkas
6ebea75f87 loc team feedback 2020-10-28 16:51:30 -07:00
Clint Rutkas
eee5b0d231 adding comments for Rename based on loc team q's 2020-10-28 16:47:52 -07:00
Clint Rutkas
24b7748834 addressing kbm loc team feedback q 2020-10-28 16:44:34 -07:00
Clint Rutkas
68cc4f190c addressing feedback 2020-10-28 16:42:23 -07:00
Clint Rutkas
d3fa1f5be7 addressing loc team feedback 2020-10-28 16:40:50 -07:00
Clint Rutkas
e81dfea600 Addressing comments from https://ceapex.visualstudio.com/CEINTL/_workitems/edit/325394 2020-10-28 16:36:26 -07:00
Clint Rutkas
edaf0fcd2c Addressing color comment issue for light being possible weight vs color 2020-10-28 16:33:00 -07:00
Clint Rutkas
3e059aac56 Adding in FancyZone comments to help with localization 2020-10-28 16:29:01 -07:00
Clint Rutkas
13b0c62ecd shell main does not exist 2020-10-28 16:10:29 -07:00
csigs
70f78c3189 LEGO: check in for master to temporary branch. 2020-10-28 23:06:00 +00:00
Clint Rutkas
2c916aa117 making dev env call vs hardcoded path 2020-10-28 15:44:54 -07:00
Clint Rutkas
8f12973c84 Merge pull request #7612 from microsoft/lego/hb_2939_20201028172704848
LEGO: Pull request from lego/hb_2939_20201028172704848 to master
2020-10-28 13:50:11 -07:00
Clint Rutkas
5ca11f3eac Merge pull request #7592 from microsoft/lego/hb_2939_20201027230544851
LEGO: Pull request from lego/hb_2939_20201027230544851 to master
2020-10-28 13:49:41 -07:00
Clint Rutkas
b00e5008af Merge pull request #7609 from microsoft/lego/hb_2939_20201028145308375
LEGO: Pull request from lego/hb_2939_20201028145308375 to master
2020-10-28 12:50:33 -07:00
Clint Rutkas
b8069ce657 Merge branch 'master' into lego/hb_2939_20201027230544851 2020-10-28 12:47:53 -07:00
Clint Rutkas
29ba06739a removing SQLite 2020-10-28 12:38:40 -07:00
Clint Rutkas
9db53461a4 winapp driver 2020-10-28 12:35:41 -07:00
Clint Rutkas
3d53e80532 additional items 2020-10-28 12:24:42 -07:00
Clint Rutkas
40b0a8c127 Updated Fody, PropertyChanged.Fody, Mono.Cecil 2020-10-28 12:18:29 -07:00
Clint Rutkas
965f3813b2 Merge pull request #7574 from microsoft/lego/hb_2939_20201027110546671
LEGO: Pull request from lego/hb_2939_20201027110546671 to master
2020-10-28 12:09:08 -07:00
Clint Rutkas
97a51fc2a9 Merge pull request #7546 from microsoft/lego/hb_2939_20201026110534010
LEGO: Pull request from lego/hb_2939_20201026110534010 to master
2020-10-28 12:08:31 -07:00
Alekhya
3a7fc33943 added a main landmark to all settings pages (#7568) 2020-10-28 11:10:08 -07:00
csigs
8a006d27ca LEGO: check in for master to temporary branch. 2020-10-28 17:27:07 +00:00
csigs
3f45a521a0 LEGO: check in for master to temporary branch. 2020-10-28 14:53:13 +00:00
ivan100sic
39982f1eec Fix DPI bug 2020-10-28 15:50:42 +01:00
ivan100sic
3ede935949 Another rebase fix 2020-10-28 14:30:17 +01:00
ivan100sic
9a60892b68 Fix offsets 2020-10-28 14:23:32 +01:00
ivan100sic
10052a6d7e Make zone borders crispy 2020-10-28 14:23:32 +01:00
ivan100sic
9fd8d831ca Rebase fix: zone numbers 2020-10-28 14:23:32 +01:00
ivan100sic
bb8ee18a59 Thread-safe initialization 2020-10-28 14:23:32 +01:00
ivan100sic
6c05d116a0 Move textFormat and textBrush out of the loop 2020-10-28 14:23:32 +01:00
ivan100sic
d5ef0b1330 Also request a low latency lock when hiding the zone window 2020-10-28 14:23:32 +01:00
ivan100sic
d09e03d7f2 Couple two members of ZoneWindowDrawing 2020-10-28 14:23:32 +01:00
ivan100sic
191c5c3b37 Finalize PR before review 2020-10-28 14:23:32 +01:00
ivan100sic
51faca5b69 Rebase fix 2020-10-28 14:23:32 +01:00
ivan100sic
3b1a70c10a Fix issue with changing monitors 2020-10-28 14:23:32 +01:00
ivan100sic
1390bf271f Polished the functionality 2020-10-28 14:23:32 +01:00
ivan100sic
97ee0205e9 Move code from .h to .cpp 2020-10-28 14:23:31 +01:00
ivan100sic
ad4a6b3386 Works great, but needs refactoring/performance improvements 2020-10-28 14:23:01 +01:00
ivan100sic
0925b479c2 Kinda works, but it's a bit laggy 2020-10-28 14:23:01 +01:00
ivan100sic
f7d3c20648 Simplify code, remove flashZones, remove unused code 2020-10-28 14:23:00 +01:00
ivan100sic
92e8a84a4e Animation works, WM_PAINT still doesn't 2020-10-28 14:20:57 +01:00
ivan100sic
f637cd3202 Opacity fix 2020-10-28 14:20:57 +01:00
ivan100sic
a022b2231f Visuals are good, functionality - almost there 2020-10-28 14:20:57 +01:00
ivan100sic
0c544409dd Good progress on D2D 2020-10-28 14:20:56 +01:00
ivan100sic
92a3ff9b2a Started work 2020-10-28 14:20:08 +01:00
Clint Rutkas
ab5a4860a2 Update README.md 2020-10-27 17:08:47 -07:00
Clint Rutkas
cacd7a4c32 Update README.md 2020-10-27 16:32:47 -07:00
csigs
b7bcd4484a LEGO: check in for master to temporary branch. 2020-10-27 23:05:45 +00:00
Clint Rutkas
d1fad42ec3 Update README.md 2020-10-27 14:05:05 -07:00
Clint Rutkas
f97ed9c340 Merge pull request #7561 from alekhyareddy28/settings_version_accessibiltiy
Add help text to be read out before reading out the version number
2020-10-27 11:35:26 -07:00
Clint Rutkas
f03553e107 Merge pull request #7577 from ka1bi4/doc-fix-misspellings
Doc fix misspellings
2020-10-27 11:24:43 -07:00
Alekhya Reddy
4394491292 resolved merge conflicts and validated that it works as expected 2020-10-27 09:39:22 -07:00
Clint Rutkas
fe32e10dc1 Merge pull request #7565 from microsoft/lego/hb_2939_20201026230523649
LEGO: Pull request from lego/hb_2939_20201026230523649 to master
2020-10-27 09:21:34 -07:00
Arjun Balgovind
03ea90dced Select all text in Target App textbox on getting focus (#7566) 2020-10-27 09:14:00 -07:00
Arjun Balgovind
d7912e1e12 Added tooltips for Add and Delete buttons (#7564) 2020-10-27 09:13:39 -07:00
Clint Rutkas
ce464f4816 Merge pull request #7530 from microsoft/users/niels9001/settings-incorrecttheminglabels
[Settings] Fixing inconsistent theme/app mode naming
2020-10-27 08:55:42 -07:00
Roman Bug
a019ebb15e Update debugging.md 2020-10-27 17:50:01 +03:00
Roman Bug
674e24fd58 Update program.md 2020-10-27 17:48:58 +03:00
Roman Bug
eccc5b204c Update program.md 2020-10-27 17:48:34 +03:00
Niels Laute
c99fbe54bd Fix conflict 2020-10-27 15:48:15 +01:00
Roman Bug
71ed538285 Update README.md 2020-10-27 15:48:04 +03:00
Roman Bug
8eab2ef27c Update xaml-island-tweaks.md 2020-10-27 15:46:01 +03:00
Roman Bug
93da059454 Update viewmodels.md 2020-10-27 15:44:35 +03:00
Roman Bug
162ff4ab15 Update compatibility-legacy-settings.md 2020-10-27 15:43:34 +03:00
Roman Bug
07e600907b Update uri.md 2020-10-27 15:42:34 +03:00
Roman Bug
2c2a033e18 Update program.md 2020-10-27 15:41:58 +03:00
Roman Bug
ccd61c2d78 Update indexer.md 2020-10-27 15:40:34 +03:00
Roman Bug
877bd0954b Update debugging.md 2020-10-27 15:38:40 +03:00
Roman Bug
810ee0e290 Update keyboardmanagerui.md 2020-10-27 15:36:19 +03:00
Roman Bug
c00b4ba6ac Update runner.md 2020-10-27 15:32:49 +03:00
Roman Bug
23b854dedc Update unofficalInstallMethods.md 2020-10-27 15:32:12 +03:00
Roman Bug
d10d7d06fb Update README.md 2020-10-27 15:27:30 +03:00
Roman Bug
b4102eabe5 Update README.md 2020-10-27 15:25:45 +03:00
Niels Laute
3bd6e787ab Merge branch 'master' into users/niels9001/settings-incorrecttheminglabels 2020-10-27 12:11:16 +01:00
csigs
1758449b51 LEGO: check in for master to temporary branch. 2020-10-27 11:05:48 +00:00
Niels Laute
9c3c5725af Merge pull request #7261 from microsoft/users/niels9001/settings-accesbilitynarratorsupportforshortcutcontrol
[Settings] Added improved narrator support for custom shortcut control
2020-10-27 12:00:04 +01:00
Avneet Kaur
931fd66f66 [fxcop] Fixes for Wox.Plugin (3of3) - enable FxCop Analyzer (#7465)
* Enabled FxCopAnalyzer for Wox.Plugin

* Fixed build errors - CA1824: Mark assemblies with NeutralResourcesLanguageAttribute
2020-10-26 18:18:21 -07:00
Divyansh Srivastava
d2435262ec handle COM error to fetch description (#7563) 2020-10-26 16:37:27 -07:00
Luthfi Mawarid
cbb4307f6d [fxcop] Microsoft.Plugin.Uri.UnitTests (#7562)
* Enable FxCop for Microsoft.Plugin.Uri.UnitTests

* Fix indentation
2020-10-26 16:15:05 -07:00
csigs
46f5bfbe22 LEGO: check in for master to temporary branch. 2020-10-26 23:05:24 +00:00
Avneet Kaur
ca1e5d111a [fxcop] Fixes for Wox.Plugin (1of3) (#7457)
* Added CultureInfo (CA1307: Specify StringComparison for clarity / CA1304: Specify CultureInfo)

* Check arguments and throw ArgumentNullException (CA1062: Validate arguments of public methods)

* Changed url parameter from string to System.Uri and added null checks (CA1054: URI parameters should not be strings)

* Rethrow exception without specifying the exception explicitly (CA2200: Rethrow to preserve stack details)

* Changed from Collection property to methods for PluginMetadata::ActionKeywords (CA2227: Collection properties should be read only)

* Changed from Collection property to methods for Result::GetTitleHighlightData (CA2227: Collection properties should be read only)

* Made Collection property read-only and added parameter in constructor for Result::SubTitleHighlightData (CA2227: Collection properties should be read only)

* Made Collection property read only and added parameter in constructor for ResultUpdatedEventArgs::Results (CA2227: Collection properties should be read only)

* CA1507: Use nameof in place of string

* Removed initialization for ThemeManager::_disposed (CA1805: Do not initialize unnecessarily)

* Changed Query::Terms array property to ReadOnlyCollection and added private set (CA1819: Properties should not return arrays)

* CA1060: Move P/Invokes to NativeMethods class

* CA1806: Do not ignore method results

* CA2101: Specify marshaling for P/Invoke string arguments

* Removed unnecessary empty interface IFeatures (CA1040: Avoid empty interfaces)

- Removed IFeatures interface and references
- Renamed IFeatures.cs to IContextMenu.cs according to guidelines

* Added comments for CultureInfo (CA1307: Specify StringComparison for clarity / CA1304: Specify CultureInfo)

* Added localization for Wox.Plugin and localized strings in FilesFolders.cs
2020-10-26 15:14:33 -07:00
Alekhya Reddy
c76c4f026e Ensure the keyword version is read out before reading out the version number 2020-10-26 14:45:04 -07:00
Clint Rutkas
3906896947 Merge pull request #7537 from microsoft/user/martinchrzan/ColorPickerShowColorWhenFormatChanged
Update string color represention when color format changed, but mouse…
2020-10-26 11:29:01 -07:00
Clint Rutkas
825e7a7533 [Settings] FZ MDL2 icon fix (#7517)
* Fixed fancy zones MDL2 icon

* Updated FZ icon
2020-10-26 11:14:02 -07:00
Alekhya
e411e6dc75 Catch Exceptions when settings.json is corrupted (#7553)
* added a json exception catch statement as a fail safe to create a fresh configuration file when settings is corrupted

* change formatting

* add issue link

* add extra info in the comment
2020-10-26 11:13:53 -07:00
Luthfi Mawarid
39ebd82e20 [fxcop] Settings UI runner (#7485)
* Enable FxCop for Microsoft.PowerToys.Settings.UI.Runner

* Log exceptions in WindowsXamlHost_ChildChanged

* Add Debugger.Break in debug mode

* Move Debugger.Break into Logger class
2020-10-26 11:09:18 -07:00
Arjun Balgovind
ec22bc40bc Switch focus to last Image Size ListViewItem on adding new size (#7505) 2020-10-26 11:06:35 -07:00
yuyoyuppe
129342edff FZ: format FancyZones.cpp 2020-10-26 20:21:04 +03:00
yuyoyuppe
8ca0c35242 FZ: fix nullptr crash 2020-10-26 20:21:04 +03:00
Arjun Balgovind
e5f2810212 Add dev docs for Localization (#7481)
* Added localization doc

* Update

* Added details for C++ projects

* Added table of contents

* Added more info about C++ and C# loc

* Update localization.md

* Update localization.md

* Update localization.md
2020-10-26 08:56:34 -07:00
csigs
48292fb189 LEGO: check in for master to temporary branch. 2020-10-26 11:05:34 +00:00
stefansjfw
e6a5b589ff [FancyZones] Align zone numbers between Editor and FancyZonesLib (#7387)
* Align zone numbers between Editor and FancyZonesLib
Use zoneId on win+arrow

* Update tests

* Fix crash

* ZoneId starts from 0

* Define ZonesMap type

IFACEMETHOD_ macro is having trouble processing
std::map template when expanding, so return type needs
to be predefined

* Address PR comment

* Address more PR comments

* Handle .at
2020-10-26 09:07:11 +01:00
Aaron Junker
8ef91a528f Fixed #7524 (#7525) 2020-10-25 23:39:04 +01:00
Enrico Giordani
8ea09e0c95 [Keyboard Manager] new icon (#7492) 2020-10-25 22:54:48 +01:00
Martin Chrzan
854828e4ca Update string color represention when color format changed, but mouse is hovering on top of the same color 2020-10-25 18:00:59 +01:00
Niels Laute
bea1cf92d8 Updated FZ icon 2020-10-25 15:21:14 +01:00
Niels Laute
fa37d53cd9 Added Windows color settings link 2020-10-25 14:47:47 +01:00
Niels Laute
344013d860 Updated labels 2020-10-25 14:37:43 +01:00
Niels Laute
61a2e5297f Fix resource issue 2020-10-24 16:35:10 +02:00
Niels Laute
93627d2bbe Merge branch 'master' into users/niels9001/settings-accesbilitynarratorsupportforshortcutcontrol 2020-10-24 15:45:36 +02:00
csigs
2ef451aa4a LEGO: check in for master to temporary branch. (#7508) 2020-10-24 06:36:20 -07:00
Niels Laute
36b628df48 Fixed fancy zones MDL2 icon 2020-10-24 15:06:12 +02:00
Davide Giacometti
146e7866a6 [PT Run] Option for override theme (#7355)
* option for override PT Run theme

* fix startup theme detection and moved strings in resources

* xaml fixed

* fix title spacing

* launcher theme fix

moved theme enum
removed settings direct access

* missing files

* theme manager dispose removed

Co-authored-by: Clint Rutkas <clint@rutkas.com>
2020-10-23 15:05:07 -07:00
Alekhya
6424667396 Define Heading levels in Settings App (#7496)
* Add shell page headings

* add headings for all the PTsettings

* add heading level 1 for the heading of each page

* Add heading level to the style instead of redifining it multiple times

* revert adding level2 for each control

* add heading level for run as admin because it does not follow the group style and rather the default style
2020-10-23 13:35:57 -07:00
Avneet Kaur
beecdc8d79 [fxcop] Fixes for Wox.Plugin (2of3) - Moved logger interface to Wox.Plugin (#7464)
* Moved Logger/Log.cs from Wox.Infrastructure to Wox.Plugin

- Installed Logger dependency in Wox.Plugin: NLog.Extensions.Logging
- Moved file Log.cs from Wox.Infrastructure/Logger/ to Wox.Plugin/Logger
- Moved file Constant.cs from Wox.Infrastructure to Wox.Plugin: This file was moved since Log.cs depends on this class
    - Copied Wox.Infrastructure.Helper.NonNull to Wox.Plugin.Constant since Constant.cs depends on this method
- Replaced all "using Wox.Infrastructure.Logger" to "using Wox.Plugin.Logger" in all files as needed
- Replaced Wox.Infrastructure.Constant to Wox.Plugin.Constant in all files as needed

* Removed Nlog.Extensions.Logging from Wox.Infrastructure

* Added logging and suppressed general exceptions (CA1031: Do not catch general exception types)

* Resolved fxcop errors introduced by newly added Log.cs

- CA1307: Specify StringComparison for clarity
- CA2000: Dispose objects before losing scope
- CA1062: Validate arguments of public methods

* Replaced Wox.Infrastructure.Logger with Wox.Plugin.Logger
2020-10-23 13:06:22 -07:00
Arjun Balgovind
6ae8d6749a Removed AnyCPU config (#7502)
Forcing this to merge a s build has completed successfully, and pr is approved.
2020-10-23 11:56:57 -07:00
Divyansh Srivastava
ba07b52cc2 Remove unused pinyin code (#7455)
* Remove pinyin

* Remove pinyin mappings and files

* Remove pinyin files from MSI
2020-10-23 10:34:24 -07:00
Niels Laute
87128ceee6 Merge branch 'master' into users/niels9001/settings-accesbilitynarratorsupportforshortcutcontrol 2020-10-23 16:16:09 +02:00
Niels Laute
773c57e609 File format limitations are now announced by Narrator 2020-10-23 16:10:16 +02:00
Niels Laute
7c42162618 Updated string 2020-10-23 15:57:34 +02:00
Niels Laute
466a0015e9 Fixed tooltip call out with narrator 2020-10-23 15:44:31 +02:00
Sekan, Tobias
359d4aca29 Merge branch 'master' of https://github.com/microsoft/PowerToys 2020-10-23 13:06:26 +02:00
Arjun Balgovind
859e9f8b04 Added ColorPicker unit tests to CI and moved the unit test project (#7484)
* Added ColorPicker unit tests to CI and moved the unit test project

* Updated output path
2020-10-22 19:26:48 -07:00
Luthfi Mawarid
c5bf549dde Update docs to reflect Settings.UI.Library project name change (#7458) 2020-10-22 19:25:24 -07:00
Arjun Balgovind
3f5810bfdb [Fix Build farm]Fix ImageResizer Loc and change C# language version in ColorPicker to 8.0 (#7483)
* Removed duplicate resx addition

* Changed version to 8.0
2020-10-22 17:28:25 -07:00
Clint Rutkas
5b86885cd1 Settings accessibility issues with clipping on large text (#7459)
* Fix issues found in 7068

* fixed a few more
2020-10-22 14:37:10 -07:00
Sekan, Tobias
600a7da670 Merge branch 'master' of https://github.com/microsoft/PowerToys 2020-10-22 21:14:35 +02:00
Luthfi Mawarid
f92bd6ffd3 [fxcop] Settings UI library (part 4) - project/namespace renames (#7403)
* Rename Interface to Interfaces in namespaces

* Rename Lib to Library in namespaces

* Rename project and directory and enable fxcop

* Add CA2213 suppression

* Minor fixes
2020-10-22 09:45:48 -07:00
Davide Giacometti
aa0947061a [Image Resizer] Upgraded to .NET Core 3.1 (#7317)
* project converted to sdk style

* image resizer core31

* image resizer test core31

* project and setup fixes
2020-10-22 09:26:46 -07:00
Clint Rutkas
e2c94b592f Upgrade mahapps to 2.3 (#7466) 2020-10-22 08:30:18 -07:00
Mehmet Murat Akburak
31799cd019 Widen text labels (#7475) 2020-10-22 18:25:13 +03:00
yuyoyuppe
ec18e31ff1 settings: use actionable toast notifications for file explorer modules warning 2020-10-22 18:24:54 +03:00
yuyoyuppe
5e772340bc updating: remove previous progress toasts
toast notifications:
- add method for removing existing toasts
- add method for updating existing toast contents/title
- refactoring
2020-10-22 16:36:20 +03:00
yuyoyuppe
5593f81242 checkout git submodules as PowerToys.sln prebuild action 2020-10-22 16:14:37 +03:00
Mehmet Murat Akburak
3d0254bdeb [PowerRename] Fix UI for Localized Strings (#7467)
* Put the options in two columns. Rearrange options.

* Expand "Search for" label
2020-10-22 13:09:59 +03:00
yuyoyuppe
bc103ce25c update notice for spdlog and cxxotps 2020-10-22 12:52:04 +03:00
Avneet Kaur
cfe9e2328f FxCopAnalyzer fixes for Wox.Test (#7312)
* Added InvarientCulture info (CA1305: Specify IFormatProvider)

* Removed underscore from method names (CA1707: Identifiers should not contain underscores)

* Marked members as static (CA1822: Mark members as static)

* Removed initialization for DummyTestClass::IsFunctionCalled (CA1805: Do not initialize unnecessarily)

* Replaced Count with Any (CA1827: Do not use Count/LongCount when Any can be used)

* Changed WoxTest::DummyTestClass to private (CA1034: Nested types should not be visible)

* Suppressed warnings for uninstantiated internal classes used as TestFixtures (CA1812: Avoid uninstantiated internal classes)

* Enabled FxCopAnalyzer for Wox.Test

* Added suppression message for CA1812 in GlobalSuppressions.cs and removed inline supression messages (CA1812: Avoid uninstantiated internal classes)

* Changed InvariantCulture to Ordinal where appropriate

* Addressing comments: Updated justification for CA1812 in GlobalSuppressions.cs (Avoid uninstantiated internal classes)
2020-10-21 20:13:12 -07:00
Alekhya
dd2627dbbc Fix exceptions and incorrect results within the calculator plugin (#7438)
* remove functions which mages cannot interpret and add in functions which mages can

* set validResult when the result is explicitly created to differentiate it form an empty CalculateResult

* Add condition to check that the input is not ending with a binary operation

* add tests for all the cases

* use valid result while calculating hash as well

* add test for e is valid within regex

* removed i from regex

* remove valid result to use decimal? instead

* remove duplicate rand and exp
2020-10-21 16:19:37 -07:00
Luthfi Mawarid
86d77103e9 [fxcop] Settings UI library (part 3) - exception handling (#7385)
* Log general exceptions caught in Settings

* Rethrow argument-related exceptions in debug mode

* Log ColorPicker settings errors into Settings Logs
2020-10-21 12:32:53 -07:00
Clint Rutkas
8ecf246386 Shifting to 0.0.0. 0.0.1 won't compile since Max and min would match. Suggestion of 0.0.0.1 wasn't liked since it was a different format as well. 2020-10-21 12:24:06 -07:00
Roy
29ed39c7ae Enable starting apps with command line arguments when run as admin is selected (#6923)
* Enable Run as Admin Arguments

* Use a seperate function for both methods which were generating ProcessStartInfo fixes missing LnkResolvedPath missing in contextmenu (E.g. Shortcuts / PWA's).

* Update tests

* Move ProgramArguments to Result class

Co-authored-by: Roy <royvou@hotmailcom>
2020-10-21 11:49:55 -07:00
vldmr11080
8d9e85f4f5 [FancyZones] Add AutomationProperties.Name to focusable elements (#7372)
* Add AutomationProperties.Name to focusable elements

* Add AutomationProperties.Name to focusable elements

* Use AutomationProperties.LabeledBy with buttons / text boxes

* Address PR comments
2020-10-21 20:11:32 +02:00
Tobias Sekan
73df7b5deb [ColorPicker] CMYK, HSV and HSL color format (#6975)
* Add HSL and HSV color formats + cleanup + docu

* Fix build problem (lang version)

* Add CYMK color + replace float with double values

* ups - fix cmyk text format

* fix wrong settings text + doc typo fix

* Address feedback

* Address feedback + fix to small window size

* adress feedback + more cleanup

* typo fix

* Avoid possible division by zero + unit test

* Address feedback - move all represenation to own helper class + UnitTest

* Address feedback -> switch to mstest framework
2020-10-21 11:09:30 -07:00
Arjun Balgovind
cd8c9c5375 Tweaked KBM comment, removed redundant assignment, and avoid sending key up for one case when not necessary (#7315)
* Changed one case to release key only if it is pressed, tweaked a comment

* Remove redundant assignment
2020-10-21 10:24:43 -07:00
Arjun Balgovind
147b78ffce Dev docs for Keyboard Manager (#7340)
* Create kbm md file

* Documented KBM main module (without links)

* Completed docs for backend except links

* Added docs for UI and created doc file for KBM Common

* Added docs for KBM common and for tests

* Add table of contents for all files

* Started updating links

* Added some more links

* Updated links

* testing link

* Resolve all links on keyboardmanager.md

* Added links in KBM Common

* Added comments for keyboardeventhandlers

* Added links for KBM-UI

* Added mention of shortcut to key

* Add section link for settings update code.

* Include more information on updating remap tables
2020-10-21 08:30:40 -07:00
yuyoyuppe
9c341cc9bc bootstrapper: treat invalid flags as fatal errors 2020-10-21 15:11:54 +03:00
yuyoyuppe
f506980e4d previewpane: use RAII for FileExplorerPreviewSettings classes to avoid memory leaks 2020-10-21 15:10:56 +03:00
yuyoyuppe
6c62be1818 bootstrapper: add cmd argument for custom log location 2020-10-21 12:33:12 +03:00
yuyoyuppe
e05146acf9 update Microsoft.Windows.ImplementationLibrary nuget package 2020-10-21 12:31:22 +03:00
Mykhailo Pylyp
eaec26a012 Fix dropdown popup narrator bug (#7422) 2020-10-21 11:14:30 +03:00
csigs
3801ad3030 LEGO: check in for master to temporary branch. (#7436) 2020-10-20 21:17:06 -07:00
Arjun Balgovind
4da4673e24 [KBM] Ignore IME keys while checking keyboard state for Shortcut Remaps (#7386)
* Ignore IME keys while checking keyboard state for Shortcut Remaps

* Add bool check

* Update Shortcut.cpp
2020-10-20 16:14:48 -07:00
Clint Rutkas
a1782f31b2 Update Version.props 2020-10-20 15:58:26 -07:00
Clint Rutkas
f4d0ef19fb Merge branch 'master' into dev/crutkas/buildFarmVersioningTake3 2020-10-20 15:58:08 -07:00
Clint Rutkas
47430edf9f Update Product.wxs 2020-10-20 15:57:33 -07:00
Divyansh Srivastava
466ed10f3d Fix autocomplete text issue on query change (#7392)
* Fix autocomplete text issue on query change

* Update from invariant to ordinal case for exact byte to byte matching

* Add tests for checking when autocomplete should be empty
2020-10-20 14:53:32 -07:00
Alekhya
0314b570cd Dev Documentation of PowerToys Run (#7333)
* Architecture and  (#7267)

* Added debugging steps for PT Run

* Updated architecture markdown for launcher

* updated project architecture markdown for launcher

* Added telemetry docs for launcher

* Added the basic folder structure and files

* Added a basic overview of all common functionalities of the plugins

* Added information about the functioning of the calculator plugin

* update score section of overview

* added information about the uri plugin

* added info about the indexer plugin

* Added the documentation for the indexer plugin

* Added information about the program plugin

* Added info about the shell plugin

* updated some plugin info and added information about the ww plugin

* documenting the folder plugin

* updated window walker docs

* dev docs for the folder plugin

* added images to each of the plugins

* Added link to pt run documents

* fix typos and some minor corrections

* Add table of contents for pt run dev docs

* Fix image path and project link for Wox.plugin

Co-authored-by: Divyansh Srivastava <somm14divi@gmail.com>
2020-10-20 14:28:23 -07:00
Alekhya
18eb6b4ffd Dev documentation of SettingsV2 (#7335)
* created a folder for settings and added an overview, hotkey information

* basic structure for communication between settings and runner

* Added information about the IPC communication between settings and runner

* Added information about the communication between the settings process and modules

* Added details on backward compatibility

* brief overview on settings utils

* added an overview of the viewmodels and anomalies

* minor modifications

* Settings v2 dev docs (#7334)

* Added settings architecture and tech stack dev docs

* Added telemetry and updated architecture docs for settings v2

* Fix image link in ui_architecture markdown

* Added table of contents for settings v2

* Correct file path for ui architecture image

* nit fix in table of contents heading

* Add doc for xaml island tweaks

Co-authored-by: Divyansh Srivastava <somm14divi@gmail.com>
2020-10-20 14:28:06 -07:00
Arjun Balgovind
9a9424a975 Add null check for WindowsXamlHost_ChildChanged handler (#7426) 2020-10-20 12:50:04 -07:00
Arjun Balgovind
51d6482ec2 [Localization] Fix Settings resw path on the build farm (#7383)
* Added loc debugging statements

* Added more debug statements

* Check path

* Fixed input path for Settings resources on pipeline
2020-10-20 11:58:32 -07:00
csigs
334e612bce LEGO: check in for master to temporary branch. (#7411) 2020-10-20 11:22:47 -07:00
Alekhya
14e74376d9 Use task delay instead of thread sleep (#7401)
* Use task delay instead of thread.sleep to free up the blocked thread

* fix formatting
2020-10-20 11:13:53 -07:00
Avneet Kaur
58cf165eb4 Enabled FxCopAnalyzers for Wox.Core.csproj (#7212) 2020-10-20 10:36:18 -07:00
yuyoyuppe
7c07bc2717 interop: fix possible crash in keyboardhook
also treat warnings as errors
2020-10-20 17:52:21 +03:00
yuyoyuppe
83872046fa autoupdating: ignore local builds 2020-10-20 17:46:50 +03:00
Avneet Kaur
701ccfdbcc FxCopAnalyzer fix for Wox.Core (PR#2of3) - Removing unused JsonRPC files (#7211)
* Removed unused JsonRPC related files and references

- Files Removed: ExecutablePlugin.cs, JsonRPCClientRequestModel.cs, JsonRPCErrorModel.cs, JsonRPCModelBase.cs, JsonRPCPlugin.cs, JsonRPCQueryResponseModel.cs, JsonRPCRequestModel.cs, JsonRPCResponseModel.cs, JsonRPCResult.cs, JsonRPCServerRequestModel.cs
- Modified PluginsLoader.cs:
	- Removed method ExecutablePlugins
	- In method Plugins(): Removed call to ExecutablePlugins()

* Suppressed warning for catching general exception type

* Addressing comments: Replaced in source suppression with attribute and logged exception information
2020-10-19 19:48:51 -07:00
Divyansh Srivastava
280d1907d8 Non localized module name (#7170)
* Added get_key to powertoysmodule interface

* Replace get_name with get_key

* Implement get_key function in modules

* Make key global constant in each module

* Update settings v1 to use key to load and save files

* Fixed fancyzones and preview pane unit tests

* Removed setings unit test as the case is not covered anymore

* Add constant files for modules and use it to reference module key

* Add constant string files to colorpicker, launcher and shortcut guide

* correct sunction signature in settings helper

* Fix powerpreview merge conflicts

* nit fix with include statement location

* add check for fields in from_json_string

* Updated preview pane tests with correct from_json_string signature

* Correct Image resizer naming

* Roll back changes for adding check for property and version

* Fix image resizer not working
2020-10-19 16:07:02 -07:00
Avneet Kaur
8b759094f7 FxCopAnalyzer fixes for Wox.Core (#7209)
* FxCop Fixes- added InvarientCulture info, suppressed warnings for general exception types

* Used IsNullOrEmpty to test for empty strings (CA1820: Test for empty strings using string length)

* Check if arguments are null and throw ArgumentNullException

* Removed unused function argument from PluginsLoader.cs

* Addressing comments- Using attributes to suppress errors for general exception types

* Addressing comments- Using attributes to suppress errors

* Addressed comments and changed InvariantCulture to CurrentCulture/Ordinal where appropriate

* Addressing comments - catching and logging specific exception in FontHelper.cs
2020-10-19 15:46:56 -07:00
yuyoyuppe
0aae535986 fix low-level kb hook disabling macro 2020-10-20 00:21:04 +03:00
Luthfi Mawarid
688f134051 [fxcop] Settings UI library (part 2) (#7257)
* Suppress warnings for read-only collection properties (see code comments)

* Call ConfigureAwait on tasks

* Add CultureInfo and StringComparison policy for certain string operations

* Add checks and exceptions for null arguments to public methods

* Rename RaisePropertyChanged to NotifyPropertyChanged

* Suppress CA1000 warning on SettingsRepository class

* Implement Disposable pattern in HotkeySettingsControlHook

* Modify null argument handling in KeyboardManagerViewModel::CombineShortcutLists
2020-10-19 13:32:05 -07:00
Andrey Nekrasov
03509e7f36 Logging improvements (#7377)
* bootstrapper: fix Windows SDK version

* devdocs: add spdlog usage readme
2020-10-19 10:54:39 -07:00
Gordon Watts
4660dd4970 Add action keywords for each plugin (#6129)
* Add action keywords for each plugin

- Added keywords for each plug-in
-  Change window walker search to use Query, not RawQuery (to get rid of action keyword)
- Make sure plug-ins that have action keywords as well as are in global list don't get added twice

All tests passed that passed before I started

Addressing issue #5823

* Fix bad formatting from the merge

* Do not add global plug-ins if we have an action keyword

Note side effect: you will not not be able to search for things that start with one of the plug-in keywords.

* Missed merge conflict repair!

* Revert "Do not add global plug-ins if we have an action keyword"

This reverts commit e3b0ecd708.

* Adjust keywords to suggested ones

* No need to ubild a query if we aren't going to use it

Didn't quite get the if statement right the first time I put it in.

* Do not add global plugins if we have an action keyword

This means, especially without a space, that global plugins do not become part of the search. Which really narrows down the search results, nicely.

* Update keywords as requested in the PR
2020-10-19 10:42:01 -07:00
csigs
12a84c01b1 LEGO: check in for master to temporary branch. (#7346) 2020-10-19 10:23:15 -07:00
csigs
06de5ffa07 LEGO: check in for master to temporary branch. (#7338) 2020-10-19 10:22:30 -07:00
Mykhailo Pylyp
7e0574cba2 Get rid of indexes in dropdowns (#7278) 2020-10-19 12:27:47 +03:00
Davide Giacometti
b80578b1b9 [PT Run] Open folder using shell instead of explorer.exe (#7292)
* pt run not using explorer.exe for opening path (#4622)

* updated explorer action name (#4622)
2020-10-16 16:30:11 -07:00
csigs
36dd29c056 LEGO: check in for master to temporary branch. (#7327) 2020-10-16 11:03:43 -07:00
csigs
6f5cdb4674 LEGO: check in for master to temporary branch. (#7319) 2020-10-16 08:59:49 -07:00
yuyoyuppe
c34c963121 bootstrapper: implement logging support
- add cxxopts and spdlog libraries
- implement cmd flag for severity
- add debug and error messages
2020-10-16 16:30:26 +03:00
stefansjfw
36bcbe9d95 [FancyZones] Minor refactoring of ZoneSet class (#7274)
* Minor refactoring of ZoneSet class

* Remove comment
2020-10-16 15:25:30 +02:00
Mykhailo Pylyp
4634c74f9e Remove Drop Down from combo box name as it is redundant (#7307) 2020-10-16 14:09:57 +03:00
csigs
c576bb611d LEGO: check in for master to temporary branch. (#7305)
Co-authored-by: Clint Rutkas <clint@rutkas.com>
2020-10-15 13:19:50 -07:00
Enrico Giordani
5f86956a41 [PowerRename] new icon (#7309) 2020-10-15 11:13:58 -07:00
csigs
fd7c7ffd57 LEGO: check in for master to temporary branch. (#7294) 2020-10-15 10:33:40 -07:00
Arjun Balgovind
438169e64f [KBM] Fix shortcut remap scenarios that should/should not open start menu (#7171)
* Modify  shortcut to key code more similar to shortcut to shortcuts code. Manually tested cases

* Fixed existing tests and fixed scenario with other keys pressed and action key released

* Fixed dummy key usage

* Updated comments and removed dummy key usage in key to shortcut remaps

* Added tests for disable and shortcut to key. Pending tests for dummy key

* Added test cases for each usage of dummy key event

* Remove redundant check
2020-10-15 08:53:43 -07:00
Ivan Stošić
598729f84c Remove m_drawHints, fix duplicate zone drawing (#7300) 2020-10-15 17:08:55 +02:00
Niels Laute
001c3304a2 Merge pull request #7259 from microsoft/user/niels9001/settings-placeholdertext
[Settings] Added placeholder labels
2020-10-14 20:31:16 +02:00
csigs
eeeae65493 LEGO: check in for master to temporary branch. (#7276) 2020-10-14 10:42:43 -07:00
csigs
184b6c5bd0 LEGO: check in for master to temporary branch. (#7265) 2020-10-14 10:42:15 -07:00
Arjun Balgovind
70bc967219 Updated double quotes logic (#7268) 2020-10-14 09:03:45 -07:00
vldmr11080
944e605f06 Allow negative spacing between zones up to -10 (#7284) 2020-10-14 17:42:47 +02:00
stefansjfw
d1372af581 [FancyZones] Refactor Zone class (#7022)
* Pass zoneId on zone creaton and make it const
Refactor IZone and Zone - make methods const
and remove SetId

* Update tests

* Fix Grid layout zone order
2020-10-14 09:00:50 +02:00
Niels Laute
3f4336697e Improvements 2020-10-13 23:30:29 +02:00
Deondre Davis
789816084e Added points from community and updated non-goals 2020-10-13 14:04:41 -07:00
Niels Laute
ac94bbe575 Added improved narrator support for custom shortcut control 2020-10-13 22:24:15 +02:00
Niels Laute
539b834da9 Added placeholder labels 2020-10-13 21:30:57 +02:00
Clint Rutkas
094136daec Update README.md 2020-10-13 11:50:23 -07:00
Clint Rutkas
5444bde283 Update README.md 2020-10-13 11:49:52 -07:00
csigs
8ade8fb2c5 LEGO: check in for master to temporary branch. (#7253) 2020-10-13 10:06:05 -07:00
Roy
844a68dae0 Improve DeduplicatePrograms by using a set instead of distinct (#7223)
Co-authored-by: Roy <royvou@hotmailcom>
2020-10-13 09:31:07 -07:00
vldmr11080
954705e3a0 [FancyZones] Screen enumeration improvement (#6908)
* Improvements in enumeration of available screens (work areas)

* Minor code style improvement

* Address PR comments

* Store map of display device name to device index

* Address PR comments

* Update comment

* Break when suitable device is found
2020-10-13 17:22:25 +02:00
Arjun Balgovind
dde19380e9 [Localization] Add localized resource dlls to the MSI installer (#6986)
* Added PowerLauncher resource files

* Fixed typo in language

* Updated localized .NET framework projects to include all resx files

* Fixed typo in FZEditor.csproj

* Added FZ Editor (.NET framework) resource dlls

* Updated pipeline

* Tweaked artifact statement to get all resource dlls in pipeline

* Fix SvgPreviewHandler resx inclusion in csproj

* Added condition to allow local MSI builds to run without resources

* Generalized directory code

* Added all resources that are to be added from C# projects, Settings UWP pending

* Added markdown prev handler as keypath

* Added loc script for Settings to move resw files to UWP file format

* Separate markdown and svg resource components to allow guid auto-generation

* Removed old image resizer resources

* Fixed formatting

* Changed tabs to space
2020-10-13 08:20:33 -07:00
Ivan Stošić
bb8cc0a305 Restart the launcher if it had crashed when invoked (#7127) 2020-10-13 10:26:04 +02:00
csigs
45124c2245 LEGO: check in for master to temporary branch. (#7246)
Co-authored-by: Clint Rutkas <clint@rutkas.com>
2020-10-12 21:44:15 -07:00
csigs
6e8cc67824 LEGO: check in for master to temporary branch. (#7236) 2020-10-12 19:22:52 -07:00
csigs
c6a82ef199 LEGO: check in for master to temporary branch. (#7217) 2020-10-12 16:59:32 -07:00
Aaron Junker
bd700a5b29 Change community health file names to the same name format (#7192)
* Rename LICENSE to LICENSE.md

* Rename community.md to COMMUNITY.md

* Rename contributing.md to CONTRIBUTING.md

* Rename LICENSE.md to LICENSE

* Update README.md

* Update SUPPORT.md
2020-10-12 15:33:58 -07:00
Roy
1f1cff3389 Fixed wrong name logged in Program Plugin (#7244)
Co-authored-by: Roy <royvou@hotmailcom>
2020-10-12 15:33:09 -07:00
csigs
d9d328173b LEGO: Pull request from lego/hb_2939_20201009230714095 to master (#7210)
* LEGO: check in for master to temporary branch.

* Update pipeline.user.windows.yml

Co-authored-by: Clint Rutkas <clint@rutkas.com>
2020-10-12 15:31:47 -07:00
Ivan Stošić
6161531376 [FancyZones] Responsive drawing (#7125)
* Made drawing zones not clog message processing

* Fixed synchronization bugs

* call BufferedPaintInit

* Some refactoring, the animation is back

* Rename a function

* Align parameters
2020-10-12 11:05:22 +02:00
Seraphima Zykova
3807e98f23 [PT runner] Misplaced 'return' statement fix (#7202) 2020-10-12 11:57:50 +03:00
Luthfi Mawarid
889f20c4a7 [fxcop] Settings UI library (part 1) (#7187)
* Mark methods static and replace Count() with Length

* Use IsNullOrEmpty for null string checks

* Remove redundant initializations to default values

* Use nameof(property name) in place of string literals

* Add NativeMethods class

* Rename property getters in KeysDataModel & AppSpecificKeysDataModel

* Remove underscores from method names

* Mark Helper class static

* Address comments & typo fixes

* Add EncoderGuid property and fix failing build

* Update binding in GeneralPages.xaml
2020-10-09 17:58:52 -07:00
Arjun Balgovind
8643bfc977 Change declaration order of delay thread member in KeyDelay (#7206) 2020-10-09 16:13:48 -07:00
Arjun Balgovind
7fd5e18ef4 [File Explorer] Fix enable/disable for File Explorer PowerToy (#6883)
* Commented out enable/disable for File Explorer

* Revert UI changes

* Disable the toggles if PT is not running elevated

* Fixed compilation errors in tests

* Cleaned up preview pane code to separate thumbnail and preview panes as separate classes

* Fixed broken settings format and added elevation check and registry updated required logic. Preview Handler tested manually working, Thumbnail Enable/Disable needs to be fixed

* Updated Thumbnail enable/disable logic and added warning messages

* Update tests for File Explorer

* Fixed RegGetValue failing in Release config

* Renamed new classes

* Split wrappers for disable to work

* Modified enabled flag check to also check if user is on new settings. Fixed casing issue in powerpreview.h that caused a dialog prompt on first launch after install

* Update fontweight and margin

* Fixed release build not working

* Move UseNewSettings usage to powerpreview.cpp to avoid tests breaking. For new settings the enable check is done in constructor and for old settings it is done in enable

* Update src/core/Microsoft.PowerToys.Settings.UI/Strings/en-us/Resources.resw

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

* Update src/core/Microsoft.PowerToys.Settings.UI/Strings/en-us/Resources.resw

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

* Update src/core/Microsoft.PowerToys.Settings.UI/Strings/en-us/Resources.resw

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

* Moved dup code to method

* Use correct versions of general settings for backwards compat test

Co-authored-by: htcfreek <61519853+htcfreek@users.noreply.github.com>
2020-10-09 14:45:30 -07:00
csigs
d753179d1e LEGO: check in for master to temporary branch. (#7186)
Co-authored-by: Arjun Balgovind <32061677+arjunbalgovind@users.noreply.github.com>
2020-10-09 14:32:31 -07:00
Clint Rutkas
ff20ef26d8 Update README.md 2020-10-09 11:04:49 -07:00
csigs
bd3c877ca3 LEGO: check in for master to temporary branch. (#7195) 2020-10-09 09:38:36 -07:00
Niels Laute
274c009f20 [PT Run] Updated borderbrush to improve accessibility for dark mode (#7141)
* Updated borderbrush

* Update src/modules/launcher/PowerLauncher/LauncherControl.xaml

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

* Fixed bug

Co-authored-by: htcfreek <61519853+htcfreek@users.noreply.github.com>
2020-10-08 20:14:00 -07:00
Arjun Balgovind
210426a020 Fixed lcl file bad merge (#7189) 2020-10-08 19:38:21 -07:00
Arjun Balgovind
c393db0b65 [KBM] Fix remaps to arrow keys/Home/Ins, etc not working with Windows Terminal (#7143)
* Added MapVirtualKey call to set scancode before calling SendInput

* Updated comment

* Update comment with link

* Added test for dummy key scan code
2020-10-08 17:52:19 -07:00
Nkateko
1390b57d3e [Settings] Adding Tests to Verify Backward Compatibility (#6161)
* compare config files

* create settings files

* updated path check

* reverted color picker changes

* added test files

* removed settings uralted files

* Modifying directory structure and adding properties for backcompat test.

* Updating Unit test to use mock repositories.
1) BackCompatTestProperties exposes mock repository implementation because SettingsRepository is a singleton, and settings utils isn't typed.
2) BackCompatTestProperties, encapsulates logic to verify that the correct file was read from.
3) Validating each file is read twice.  Once by the original file, and once via the view model.

* Adding 18.2 settings files.

* Fix compiler errors from latest merge

* Adding v0.19.2 test files.

* Adding in 0.20.1 settings.  Removing 0.20.2 (as this was a dev build number)

* Adding settings tests for 22.1

* General Settings should update version when they don't match

* Adding v0.22.0 files

* Removing not settings related files from TestData for PT Run 21.1

* Referencing module name as *Settings.ModuleName in tests.  Except for ImageResizer

* Using ImageResizerSettings to use Settings for the module name.

* Setting AllPlugins to empty list in case PluginManager.Save/Load/ReloadData is called before plugins are loaded

* Fixing fxcop errors

* using named parameters as per review feedback

Co-authored-by: ryanbodrug-microsoft <56318517+ryanbodrug-microsoft@users.noreply.github.com>
2020-10-08 16:34:19 -07:00
ryanbodrug-microsoft
4451403c1e Setting AllPlugins to empty list in case PluginManager.Save/Load/ReloadData is called before plugins are loaded (#7173) 2020-10-08 16:32:31 -07:00
Tony Mitchell
38e03e6bb0 Detect potential errors copying metadata and avoid them (#2447) (#6997) 2020-10-08 16:16:32 -07:00
Arjun Balgovind
42ebc42c98 Changed dummy key event to send key down and key up to improve compatibility with applications (#7166) 2020-10-08 11:28:37 -07:00
Arjun Balgovind
e1d22c74b0 [KBM] Refactor KBM's thread safety logic to avoid mutex re-entrancy bugs and improve performance (#6803)
* Unlock mutex before ResetModifierForLowerLevelKeyHandlers method to avoid crash if two instances of KBM are running

* Added alias for Shortcut DWORD variant to clean up code

* Removed mutex usage in single key remap method and added GetSingleKeyRemap

* Added more alias

* Moved to boolean disable remapping

* Added missing ! in condition

* Remove lock statement from bad auto-merge
2020-10-08 11:28:24 -07:00
Clint Rutkas
9928579364 Adjusting to force all instances to use rounded vs result due to Mage's quirks (#7164) 2020-10-08 08:57:17 -07:00
Alekhya
cfe2bbd75e Fix Tab Trap in SettingsHotkey Custom Control (#7136)
* basic logic working

* Added a literal for ignore flag which cna be shared by all the files

* Added a condition that the other modifier keys should not be pressed

* Added comments to describe each scenario

* sometimes when multiple modified keys were involved the shift+tab key press was also being invoked, so added an additional check in the IsValid function

* use variable for vk_tab

* remove new line before initializing dwextraInfo

* move flag check if the filterKeyboardevent function

* use windows.system.virtualkey.shift instead of defining a constant for the shift key code

* removed latest settings to use internal settings instead. Removed the validity check while still within the hotkey other than if it's tab or shift+tab

* add a function to send input to the system instead of duplicating the send input code

* remove VKSHIFT declaration

* display all shortcuts/keys except tab and shift+tab

* remove header that is no longer needed
2020-10-08 08:45:09 -07:00
csigs
8a81bea413 LEGO: check in for master to temporary branch. (#7168) 2020-10-08 07:55:56 -07:00
csigs
9216aa465f LEGO: check in for master to temporary branch. (#7181) 2020-10-08 07:54:53 -07:00
Enrico Giordani
038087e076 [FancyZones] Clone parent data only for new VD (#7116)
* [FancyZones] Clone parent data only for new VD
2020-10-08 16:02:51 +02:00
csigs
de4436ccc0 LEGO: check in for master to temporary branch. (#7153) 2020-10-07 13:30:34 -07:00
csigs
5e30ad176a LEGO: check in for master to temporary branch. (#7144) 2020-10-07 13:30:12 -07:00
P-Storm
d011843113 Assert was switched in these instances, so I changed it to the "expected, actual" (#7142)
Co-authored-by: p-storm <paul.de.man@gmail.com>
2020-10-07 13:12:59 -07:00
Alekhya
0c0aec0f2a catch security exception and access denied exception while trying to read a file (#7140) 2020-10-07 12:56:57 -07:00
Divyansh Srivastava
2bd6c5c664 Fix Docker desktop not found in program plugin issue (#6882)
* Fix docker lnk not found issue

* Add common desktop folder location to desktop program

* Add CommonDesktopDirectory to file watchers
2020-10-07 12:27:56 -07:00
Arjun Balgovind
eae0937db0 Add null check in SelectPrevTabItem (#7139) 2020-10-07 12:22:54 -07:00
Clint Rutkas
69e25cfefc Create SUPPORT.md (#7161) 2020-10-07 11:51:00 -07:00
P-Storm
163a699bff EnumerateFileSystemInfos uses EnumerationOptions (#6933)
* Changed EnumerateFileSystemInfos to EnumerationOptions we don't have to catch the exceptions ourself.

* Change Matchtype to mimic old search method.

Co-authored-by: p-storm <paul.de.man@gmail.com>
2020-10-07 09:25:29 -07:00
P-Storm
8b66932036 Matching ExactName for known Win32 Programs (#6924)
* Matching explorer.exe also for explorer
Added unit test
Optimized multiple iterations for IProgram

* Fixed linter

Co-authored-by: p-storm <paul.de.man@gmail.com>
2020-10-07 09:23:47 -07:00
Luthfi Mawarid
a2fce22973 [fxcop] Settings UI unit tests (#6987)
* Add FxCop to project

* Remove underscores from method names

* Add message to obsolete test method

* Mark method static

* Method renames and remove unused ToRGBHex method

* Method renames and replace Count() with the List.Count property

* Method renames, rename unused OnSend argument, validate argument for AssertHotkeySettings
2020-10-06 15:00:25 -07:00
P-Storm
206397dc86 Fixed the error that Files were named Folder (#6935)
* Fixed the error that Files were named Folder

* Add and use resources in Results.

* Last item without resources in Plugin.Folder

* Changed to CurrentCulture, added N0 to Folder truncate warning.

Co-authored-by: p-storm <paul.de.man@gmail.com>
2020-10-06 09:08:41 -07:00
Yuhanun Citgez
ac3910580a Modernized unique pointer construction (#6982) 2020-10-06 18:17:20 +03:00
lai52066
bee1af427b Fix translate (#7005)
ORG <Val><![CDATA[輕]]></Val>
FIX <Val><![CDATA[淺色]]></Val>
2020-10-05 13:04:54 -07:00
Divyansh Srivastava
ea0de4f831 [Run] Fix for IndexOutOfBounds exception (#6981)
* Fix index out of bounds exception

* Race condition in query telemetry
2020-10-05 09:50:41 -07:00
Divyansh Srivastava
5d095efe90 Add exception handling in win32 program (#6958)
* Add exception handling to prevent program from failing due to error in one program

* Error handling for program path function

* Fix incorrect log value in ProgramLogger
2020-10-05 09:50:07 -07:00
vldmr11080
71765238b1 [FancyZones] Localize strings in FancyZones editor (#6943)
* Localize strings in FancyZones editor

* Move localized strings into resx file
2020-10-05 12:06:35 +02:00
Divyansh Srivastava
4feb0f209f Fix autocomplete due to error in returned autocomplete text (#6988) 2020-10-02 21:30:14 -07:00
Arjun Balgovind
7c607ad540 Add AppxBundlePlatform to remove warning (#6960) 2020-10-02 13:42:47 -07:00
Mykhailo Pylyp
3f25d7ccc8 Keyboard disable (#6874)
Added disable key/shortcut functionality
2020-10-02 15:36:36 +03:00
Arjun Balgovind
b2e72e1ca4 [KBM] Moved unregistering of key delays to always run on the dispatcher thread to avoid mutex re-entrancy (#6959)
* Moved unregistering of key delays to always run on the dispatcher thread

* Updated comments
2020-10-01 18:19:11 -07:00
Divyansh Srivastava
55fd8749c8 Shift to ControlzEx HC code (#6880)
* Use high contrast detection from controlzex

* Allow multiple theme changes
2020-10-01 16:08:06 -07:00
P-Storm
fd32a6f7d6 Fix throwing when there is no results (#6934)
Co-authored-by: p-storm <paul.de.man@gmail.com>
2020-10-01 13:47:58 -07:00
Arjun Balgovind
b981467f1e [KBM] Avoid checking reserved/unassigned/oem-specific/undefined key codes during shortcut remaps (#6952)
* Updated list of key codes to be ignored

* Added comments
2020-10-01 12:43:54 -07:00
Clint Rutkas
c219fe0d1d [fxcop] image resizer ui (#6841)
* adjustments

* Settings fixed

* Getting resizing tests operational again

* fixed default vs loading from settings

* one small tewak
2020-10-01 11:33:23 -07:00
Clint Rutkas
19b519638f old logos moved (#6919) 2020-10-01 10:41:28 -07:00
stefansjfw
85f56f4ed8 [FancyZones] Fix stuck chrome tab when merging into existing window (#6931)
* Fix stuck Chrome tab when merging with existing window

* Rename struct fields
2020-10-01 15:38:24 +02:00
Android Dev Notes
8f81b9c662 Fix typos (#6937) 2020-10-01 14:11:11 +02:00
P-Storm
5c84de5400 Made Plugin Folder Unit tests & Expanding enviroment search (#6600)
* Made Plugin Folder Unit tests. Fixes '>' not recursive searching (with max). Added that paths with an UnauthorizedAccessException are ignored. Added expanding enviroment search.

* Fixed some merging errors

* Added feedback from review

* Made the change that  ryanbodrug-microsoft suggested

* Stupid merge request... fixed

Co-authored-by: p-storm <paul.de.man@gmail.com>
2020-09-30 20:37:46 -07:00
Clint Rutkas
b2c00b1e1a Update README.md 2020-09-30 14:03:47 -07:00
csigs
67072b99d4 LEGO: check in for master to temporary branch. (#6907) 2020-09-30 10:26:54 -07:00
Matt Wojciakowski
07256c50ef Add link to the PowerToys ep of Tabs vs Spaces (#6903) 2020-09-30 09:49:16 -07:00
Clint Rutkas
6711a6bc7e 0.23 readme update (#6910)
* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md
2020-09-30 09:34:30 -07:00
stefansjfw
39c61b9abd [FancyZones] Remove WindowMoveHander pImpl pattern (#6894)
* Remove WindowMoveHandlare pImpl pattern

Introduces runtime overhead and makes debugging unecessary more painful

* End file new line
2020-09-30 09:19:20 +02:00
Divyansh Srivastava
24ba7f08cf Add debugging section in preview pane (#6717)
* Added info on directly registering dll

* Update README.md

* Update README.md

* Update to regasm x64

* Add information related to assembly signing in readme preview pane handler

* Bold warning for taking registry route for installation
2020-09-29 14:36:28 -07:00
Clint Rutkas
fb8e80c09c FxCop for Preview handler (#6833) 2020-09-29 10:43:18 -07:00
Seraphima Zykova
240f67f15c Fixed crash with big 'Space around zones' values (#6815) 2020-09-29 13:12:21 +03:00
Enrico Giordani
8d18626659 Now working on 0.23.1 (#6881) 2020-09-29 12:05:36 +02:00
Alekhya
a5b22cffa2 Changed default theme in settings to be consistent with that of shortcut guide (#6832)
* changed default theme to be consistent with that of shortcut guide

* change the test to reflect that the initial settings theme or shortcut guide is 'system' and not 'light'.
2020-09-28 12:44:18 -07:00
Tobias Sekan
9f8202bc4f Add VS Preview to prerequisites install script (#6855) 2020-09-28 10:09:24 -07:00
Deondre Davis
bdd513b212 Updated STG info and noted static GIF copying 2020-09-28 08:48:27 -07:00
Tobias Sekan
3062a47b3b Merge pull request #1 from microsoft/master
merge from master
2020-09-27 13:22:22 +02:00
Arjun Balgovind
de870c843e Fix settings UpgradeConfiguration code path (#6839) 2020-09-25 13:59:14 -07:00
Arjun Balgovind
9c32e32097 Updated winUI version (#6840) 2020-09-25 13:52:43 -07:00
Alekhya
f61db8ed3f Add delay to File System watchers to prevent Calibre installation issue (#6821)
* add a separate task to dequeue and create an app on installation

* Added tests to validate the behavior of the event handler

* release unmanaged memory
2020-09-25 10:36:38 -07:00
Arjun Balgovind
9e1711cbb9 [Settings] Added recursive delete for IOProvider DeleteDirectory to prevent crash on non-empty directory (#6818)
* Added recursive delete flag

* Changed to named parameter
2020-09-24 11:36:26 -07:00
Alekhya
c941b5333c Fix settings changes that were made in PR #6620 (#6817)
* validated that restart elevated and check for updates work.Removed isettingsUtils and reused settings repository

* reverted the name to ImageResizer instead of using ImageResizerSettings.Modulename to make it backward compatible
2020-09-24 10:50:49 -07:00
csigs
8d934df0c0 LEGO: check in for master to temporary branch. (#6805) 2020-09-24 09:14:25 -07:00
csigs
2f0937951a LEGO: check in for master to temporary branch. (#6802) 2020-09-24 08:01:13 -07:00
Ivan Stošić
a676537e26 [FancyZones editor] Rudimentary crash handler (#6783)
* Handle crashes in the FZ editor

* Removed reference to .NET frameworks, added a message box

* log => txt

* Update text shown
2020-09-24 12:29:53 +02:00
Clint Rutkas
b071220b6c Improve logging for PT Run (#6800)
* init code pass

* adjusting tabbing for readabilty

* few small adjustments
2020-09-23 16:32:06 -07:00
Alekhya
dafc1e0c7d Fixed scaling Accessibility issues in Settings (#6774)
* fixed scaling issues in settings

* reduced the size to 375 from 380

* Set scrollviewer visibility to auto so that it is visible only when needed
2020-09-23 13:20:58 -07:00
Alekhya
5a07579b73 Fix for settings crash on toggling enable button for any PowerToy (#6620)
* Removed getSettings from moduleEnabled so that it doesn't have to reopen the file everytime

* To Lower to while checking the theme

* color picker doesn't reopen the file

* use the generalView model config directly for FZ

* Made the same change for all the viewmodels so that they access the general view model value directly instead of opening and reading the value from a file each time

* removed unused variable

* Fix initialization in tests

* should read the file only if general settings does not exist

* Added interfaces for all the powertoys to use the generalSettings singleton class

* Runner is responding to changes in settings, only issue is that every time the general settings page is loaded the information is being read because isInitialized property could not be ignored during serialization

* All tests pass

* Settings and runner are working as expected with the settings cache

* added a null check to read from the file only when the settings process is started

* use converter to deserialize an interface

* Renamed generalSettings within the cache to be called CommonSettingsConfig

* All tests pass, had to initialize the common settings config instance

* Added few comments to newly created classes

* encapsulating load and store of general view model

* reading from file is encapsulated

* settings and runner wotk with generic singleton

* Shortcut guide works as expected

* Fancyzones, shortcutguide and power preview use the settings repository and work as expected

* referencing GeneralSettings instead of the settingsRepository<GeneralSettings> within viewmodels

* unified access to General settings and removed the IGeneralSettingsData interface

* Passing settings to viewmodel as a parameter

* removed ISettingsConfig interface from the viewmodels which are not using the singleton to access settings

* have to use ISettingsConfig to use GetSettings

* refactored tests, all tests pass

* Added test for settingsRepository that a single instance is created

* Added comments and removed unnecessary headers/code

* added settings repository tests

* moq for each settings file

* Img resizer tests pass

* General tests pass

* FancyZones tests pass

* PowerPreview tests pass

* PowerRename tests pass

* shortcut guide tests pass

* Added GetModuleName to ISettingsConfig

* unify the way the Modulename is accessed. It was redeclared in multiple places and this would cause an issue if the name is changed only in one place. All the module names are accessed using the <T>Settings.ModuleName, eg: ShortcutGuideSettings.ModuleName.

* create PTRun settings file if it does not exist

* GetFile is now a private function. Modified the logic of KBM default.json access and PT Run so that we can re-use GetSettings instead of GetFile.

* Added UpgradeSettingsConfiguration to the ISettingsConfig interface so that the settings file can be upgraded based on some condition. Presently, only the GeneralSettings file is utilizing this to change the PT Version number based on the old PT version and the current PT version that it receives from the helper function. Verified that if the PT version is lower in the general settings.json file, settings saves the file with the new version info.

* The naming for the PowerToys was inconsistent and the variables were redeclared in multiple places. To have the settings.ModuleName as the main name, all other places should refer to that name. In the tests file the module name for ImgResizer was 'ImageResizer' and not 'Image Resizer'.

* renamed lock

* Remove unnecessary GetSettingsFileNAme function. It is no longer in use because the code does not use types to create a new BasePTModule object
2020-09-23 13:20:32 -07:00
Clint Rutkas
0148669e98 [fxcop] preview handler common (#6762)
* FxCop adjustments

* initing due to change for abstract
2020-09-23 10:22:17 -07:00
Clint Rutkas
d1348bb26a tweaked, unsure if we want to make this dynamic for farm to change min version 2020-09-23 10:17:50 -07:00
Clint Rutkas
eadab13d1c added in version.prop update and the ps script 2020-09-23 08:10:42 -07:00
Arjun Balgovind
75ace74d37 [Keyboard Manager] Enabled horizontal scroll on scroll viewers and tweaked ScrollViewer layout (#6755)
* Enabled horizontal scroll on scroll viewers and tweaked layout

* Added code to constrain the minimum window sizes
2020-09-22 17:46:57 -07:00
Arjun Balgovind
1ef4c43382 [Keyboard Manager] Fix crash in Keyboard Manager by ignoring MapToSameKey warnings on loading (#6714)
* Add extra argument to ignore MapToSameKey error for Key To Shortcut mapping

* added comment
2020-09-22 13:54:53 -07:00
Clint Rutkas
c1e9f2de6a FxCop enabled (#6758) 2020-09-22 09:14:42 -07:00
Clint Rutkas
55b36d44fa adding in frontmatter and latex (#6711) 2020-09-22 09:10:18 -07:00
Enrico Giordani
d2201cbb79 [SG] change suppress key code (#6750) 2020-09-22 13:12:19 +02:00
Clint Rutkas
934949725b FxCop and StyleCop for SVG thumbnail (#6757)
* FxCop work for SvgThumbnail

* enabling stylecop
2020-09-21 19:44:12 -07:00
Clint Rutkas
57972c6653 Update README.md 2020-09-21 13:43:23 -07:00
ryanbodrug-microsoft
0f6428eed0 User/ryanbod/mock settings disk access (#6188)
* 1) Making Directory Methods private.
2) Removing the CreateDirectory / DeleteDirectory functionality from all Settings Unit Tests.

* Abstracting disk access via IIOProvider to be able to provide mocks for unit tests instead of writing to disk.   This also prevents developers who are running unit tests from interfering with the PowerToys settings on their local dev box.

* Dependency Injecting stub SettingsUtils for all tests

* Removing ISettingsUtils from constructors of objects that need to be deserialized (ColorPickerSettings/PowerLauncherSettings) as this breaks System.Text.Json

* Removing unused namespace reference

* Removing redifined mock

* As per PR feedback.  Stub Settings utils should work with any settings type if the intent is to compile / avoid null ref exceptions.

Strangely when implementing this fix it became apparent that a stub settings isn't enough, and disk access needed to be mocked.  I can't explain why the tests were passing previously.

* Leveraging GetMockIOProviderForSaveLoadExists
2020-09-21 10:14:44 -07:00
Ivan Stošić
6e89ef62e4 [Launcher] Kill the Launcher immediately (#6747)
* Kill the Launcher immediately

* Also rename the shared file
2020-09-21 13:51:30 +02:00
Ivan Stošić
b266e336b5 [Launcher] Use a keyboard hook in the runner to invoke the Launcher (#6660)
* Added a keyboard hook to the runner

* Update RootKeyboardHook

* Enable reading the whole JsonObject property

* Renamed RootKeyboardHook to CentralizedKeyboardHook

* Fixed build break, changed callback return type to bool

* Added Hotkey struct which somehow went missing

+ Cherry-pick fixes

* Reorganized the kb hook

* Basic version works

* Various fixes

* Finishing touches

* Fix potential threading issue

* int -> size_t

* Add default initializers to the Hotkey struct

* Added a suggested comment

* Unified a constant

* Use C# classes instead of native calls for sync

* Added a claryfing comment

* Use std::move

* Renamed a method

* Possible fix for compilation errors

* Fix a regression

* Show a message on failure

* Added DISABLE_LOWLEVEL_HOOK support

* Allow running Launcher as standalone

* Rename string constants
2020-09-21 12:44:16 +02:00
Arjun Balgovind
e135153c45 [Keyboard Manager] Fix focusable elements should have different names accessibility issue (#6672)
* Add listview

* Added row index to accessible names

* Cleanup rowIndex

* Fixed accessibility issue with ComboBox

* Updated comments
2020-09-18 17:12:37 -07:00
Divyansh Srivastava
28cae124d1 Nit fix in logging (#6708) 2020-09-18 13:32:28 -07:00
Clint Rutkas
94d8b4a122 rerouting to Log class vs custom logic (#6688) 2020-09-18 12:58:52 -07:00
Arjun Balgovind
ce835418cb Enable localization on all folders under PowerToys root (#6692)
* Changed to repo root

* Removed backslash

* Revert testing change

* Add comment
2020-09-18 10:27:59 -07:00
vldmr11080
3aa7a52c21 [FancyZones] Initial improvements in FancyZones exception handling (#6063)
* Initial improvements in FancyZones exception handling

* Add callback

* Disable FancyZones if error durign loading data occurrs

* Remove logs

* Add resource strings

* Add 1sec retry when failure during initialization occurs

* Rephrase error descriptions

* Error handling during loading of module in runner

* Pass error handling on the runner

* Remove unneeded string

* Remove unnedeed changes
2020-09-18 15:18:01 +02:00
yuyoyuppe
2bc3480396 common: fix trim functions for wchar_t 2020-09-18 13:33:02 +03:00
Remy Blok
7893f387d5 [FancyZones] Configurable sensitivity radius (#6554)
* Add the setting for the Sensitivity Radius to JSON and the Editor
Use the setting when determining Zones to highligh

* Fix FanzyZones unit tests
Add test for Json upgrade

* Updated texts in FancyZone Editor
More Text to Resources / Use Resources

* Added constant for default of Sensitivity Radius

* When installing from scratch of when a new device is added set the sensitivity radius to the default.
Move all the constant values to a single namespace

* restore correct formatting

Co-authored-by: Remy Blok <remy.blok@prodware.nl>
2020-09-18 09:16:06 +02:00
Divyansh Srivastava
00187269de handle error in Packaged program loading (#6674) 2020-09-17 16:17:02 -07:00
Roy
b3833fcf1a [PowerToys Run] Add Suport for Commandline arguments in Program Plugin (#5791)
* Implemented possibility to add commandline arguments in the Program Plugin

* Add missing return statement inc ommandArgumentParser loop

* Fix typos

* Fix Additional Typo

* Changed -c to /c to make it a valid cmd argument

* Added small comment about importance of order in _programArgumentParsers

Co-authored-by: Roy <royvou@hotmailcom>
2020-09-17 15:39:28 -07:00
Aaron Junker
923972dd49 Update contributing.md (#6636)
* Update contributing.md

* Update contributing.md
2020-09-17 15:06:40 -07:00
Arjun Balgovind
f19bad3761 Revert "[FxCop] Telemetry.csproj" (#6690)
* Revert "marking all warnings (#6642)"

This reverts commit b0f0940534.

* Added warning comment
2020-09-17 14:02:25 -07:00
stefansjfw
b5cc24fcff [FancyZones] Remove migration from registry logic and delete registry data if present (#6657)
* Remove migration from registry logic

* Address PR comments
2020-09-17 20:57:44 +02:00
yuyoyuppe
d414d52156 localization: move localizable strings to .resw for runner/bootstrapper 2020-09-17 20:32:18 +03:00
Clint Rutkas
85c0eaa598 Update readme.md (#6670) 2020-09-16 14:27:37 -07:00
Clint Rutkas
d409a71000 Getting FxCop online (#6668) 2020-09-16 12:26:58 -07:00
Clint Rutkas
0a716c253b Upgrade nuget packages (#6641)
* upgrade mahapps

* update nlog

* all launcher packages now updated

* tests and Setting UI

* markdown

* removing unneeded DLL now from nuget update
2020-09-16 12:24:21 -07:00
Clint Rutkas
13fd6bd6e1 [FxCop] Svg preview handler (#6647)
* Adjusting namespace

* Getting FxCop working e2e
2020-09-16 12:24:07 -07:00
Clint Rutkas
b0f0940534 marking all warnings (#6642) 2020-09-16 12:23:50 -07:00
Clint Rutkas
dc284d9cbb Clean up some unused dependencies, nlog and some newtonsoft (#6650)
* remove nlog

* removing unused referecnes to newtonsoft
2020-09-16 11:36:52 -07:00
Clint Rutkas
0a86360948 Fxcop markdown preview handler (#6646)
* migrating namespace conflict

* Fixing all errors

* removing todo

* tweak wxs
2020-09-16 11:15:34 -07:00
Deondre Davis
aff717ffce Updated Video Editor Menu and minor fixes 2020-09-16 10:20:38 -07:00
Divyansh Srivastava
e49900f927 Fix sync issue in SelectedItem (#6582) 2020-09-16 09:59:04 -07:00
Arjun Balgovind
5e301133ff [Settings] Fix settings process not terminating on closing settings while minimized (#6626)
* Added code to set CoreWindow to visible on closing while minimized

* Changed to environment.exit
2020-09-16 09:47:43 -07:00
Aaron Junker
5b684cca9a Update style.md (#6323) 2020-09-15 11:24:55 -07:00
stefansjfw
3d36779e19 [FancyZones] Do not zone window if it should be maximized (#6619)
* Do not zone window if it should be maximized

* Update comment

* Remove uneeded field

* Address PR comment
2020-09-15 13:03:17 +02:00
Enrico Giordani
eaf54ca525 Fix typo in URL (#6630) 2020-09-15 12:38:34 +02:00
Deondre Davis
ba7a598b2e Added links to figures and software referenced 2020-09-14 17:32:54 -07:00
Deondre Davis
dce4b2288b Added Mock ups and fixed Figure labelings 2020-09-14 16:51:32 -07:00
Deondre Davis
2a847eebb9 Added visaul assets 2020-09-14 13:47:10 -07:00
Arjun Balgovind
25f93e8b94 Fix for issue 3886 (#6585) 2020-09-14 13:12:02 -07:00
Arjun Balgovind
7328aa7df5 Fixed Visibility property changed invoked on clicking away from PT Run (#6588) 2020-09-14 13:10:56 -07:00
Divyansh Srivastava
d75dd71848 Fix for null reference exception (#6589) 2020-09-14 11:03:17 -07:00
Deondre Davis
a8dca61a3c fix image link 2020-09-14 10:02:20 -07:00
Deondre Davis
d32d5b8bac init commit 2020-09-14 09:53:39 -07:00
Ivan Stošić
3d5c790fb6 [FZ Editor] Improved a function in GridData.cs (#6565)
* Improved a function in GridData.cs

* Allocate the extra values proportionally

* Refactor a constant
2020-09-14 10:05:28 +02:00
Clint Rutkas
5af88de27b tweaking text and adding in headers (#6586) 2020-09-11 17:10:51 -07:00
Clint Rutkas
997a7bc60f adding in trim (#6584) 2020-09-11 16:15:18 -07:00
Arjun Balgovind
bfbd7b53a1 Unregister key delays on closing KBM windows (#6583) 2020-09-11 15:16:34 -07:00
Alekhya
1dec80902d unify the name as it is present in the plugin.json file (#6547) 2020-09-11 13:45:32 -07:00
Alekhya
0478d99aac To catch URI Format Exception in PT Run (#6580)
* add a catch block for uri format exceptions

* Added link to watson crash
2020-09-11 13:04:25 -07:00
stefansjfw
db9677bb4a [FancyZones] Do not zone window if it merges with other window (#6549)
* Do not zone window if it merges with other window (e.g. merge Chrome tab into other Chrome window

* Small move of func call

* Address PR comment

* remove include

* Address PR comment 2
2020-09-11 12:35:43 +02:00
Ivan Stošić
0e32edb603 [FancyZones] Use Ctrl+Win+Alt+arrows to Expand/shrink windows to adjacent zones (#6446)
* Added an Alt key hook

* Refactor a block of code into a method

* Again refactored existing code

* Apparently Win+Alt does not reach FancyZones

* Using Ctrl+alt instead of Win+alt for now

* It works

* Fixed VD change

* Remove unused member

* Fix compilation error

* Enable shrinking

* Fixed comments in .h files

* Remove newline

* Refactored a function into two

The next task is to simplify their code.

* Updated a comment

* Update a variable name

* Reverted to the old implementation of directional move

* More refactoring

* Remove space

* Fixed windows getting stuck

* Changed function name
2020-09-11 11:32:45 +02:00
Arjun Balgovind
82e1be2839 [Launcher] Categorize Lnk files in program plugin correctly as per the target file type (#6348)
* Updated UnregisteredApps code

* Added file type checking code and Folder and File classifications

* Added more file formats

* Removed run as admin for lnk folders

* Added script files as executable and changed hashset to case insensitive

* Removed runasadmin for generic files

* Removed FileTypes enum

* Extended ApplicationTypes enum

* Fix file format error

* Cleaned use of ApplicationType enum to public and match AppType and used ApplicationType in OnAppRenamed

* Modify tests to use ApplicationType enum

* Added tests for new App types

* Modified dummy appref

* Mock Directory.Exists and add tests for GetAppTypeFromPath

* Combined tests
2020-09-10 15:06:37 -07:00
Arjun Balgovind
ab8bec8866 [KBM] Prevent keyboard manager crash when index is not found (#6488)
* Added Sleep(5000) for repro

* Added check to prevent kbm crash for index not found

* Add more safeguards
2020-09-10 11:31:49 -07:00
Arjun Balgovind
3b8fa8b4ce Fixed KBM shortcut remapping not working after using Japanese IME (#6450) 2020-09-10 10:46:33 -07:00
ryanbodrug-microsoft
c4cb3df306 Adding FxCop to Microsoft.Plugin.WindowWalker (#6260)
* Adding FxCop to Microsoft.Plugin.WindowWalker

* Delete WindowResult.cs -- Fix for CA1812 WindowResult is an internal class that is apparently never instantiated. If so, remove the code from the assembly. If this class is intended to contain only static members, make it static (Shared in Visual Basic).

* Fix for CA1806 UpdateOpenWindowsList calls EnumWindows but does not use the HRESULT or error code that the method returns. This could lead to unexpected behavior in error conditions or low-resource situations. Use the result in a conditional statement, assign the result to a variable, or pass it as an argument to another method.

* Fix for: CA1066 Type Microsoft.Plugin.WindowWalker.Components.InteropAndHelpers.RECT should implement IEquatable<T> because it overrides Equals

* Fix for:  CA1052 Type 'FuzzyMatching' is a static holder type but is neither static nor NotInheritable

* Suppress for CA1069 - These values are defined in
https://docs.microsoft.com/en-us/windows/win32/winmsg/extended-window-styles.

CA1069 The enum member 'WS_EX_LTRREADING' has the same constant value '0' as member 'WS_EX_LEFT'
CA1069 The enum member 'WS_EX_RIGHTSCROLLBAR' has the same constant value '0' as member 'WS_EX_LEFT'

* Supress CA1069

Code Description
CA1069 The enum member 'SWP_NOREPOSITION' has the same constant value '512' as member 'SWP_NOOWNERZORDER'
CA1069 The enum member 'SWP_FRAMECHANGED' has the same constant value '32' as member 'SWP_DRAWFRAME'

* Suprress CA1069 for ShowWindow values.  See

https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-showwindow

CA1069 The enum member 'ShowMaximized' has the same constant value '3' as member 'Maximize'

* Fix code formatting error

* Fix for CA2235: Making POINT serializable

CA2235 Field MinPosition is a member of type WINDOWPLACEMENT which is serializable but is of type Microsoft.Plugin.WindowWalker.Components.InteropAndHelpers.POINT which is not serializable
CA2235 Field MaxPosition is a member of type WINDOWPLACEMENT which is serializable but is of type Microsoft.Plugin.WindowWalker.Components.InteropAndHelpers.POINT which is not serializable

* Fix CA2235 Making RECT serializable

CA2235 Field NormalPosition is a member of type WINDOWPLACEMENT which is serializable but is of type Microsoft.Plugin.WindowWalker.Components.InteropAndHelpers.RECT which is not serializable

* Fixes for CA2101 Specify marshaling for P/Invoke string arguments.

* Fixes for CA2007 Consider calling ConfigureAwait on the awaited task

* Fixes for the following (CA1822 / CA1801):
CA1822 Member 'OnOpenWindowsUpdate' does not access instance data and can be marked as static
Code Description
CA1801 Parameter value of method add_OnOpenWindowsUpdate is never used. Remove the parameter or use it in the method body.
CA1801 Parameter value of method remove_OnOpenWindowsUpdate is never used. Remove the parameter or use it in the method body.

* Fix: CA1710 Rename OpenWindowsUpdateHandler to end in 'EventHandler'

* Fix CA1822 Member 'GetProcessIDFromWindowHandle' does not access instance data and can be marked as static

* Fix CA1062 In externally visible method 'List<int> FuzzyMatching.FindBestFuzzyMatch(string text, string searchText)', validate parameter 'searchText' is non-null before using it. If appropriate, throw an ArgumentNullException when the argument is null or add a Code Contract precondition asserting non-null argument.

* Fixes for CA1304 The behavior of 'string.ToLower()' could vary based on the current user's locale settings.

CA1304 The behavior of 'string.ToLower()' could vary based on the current user's locale settings. Replace this call in 'FuzzyMatching.FindBestFuzzyMatch(string, string)' with a call to 'string.ToLower(CultureInfo)'.

Code Description
CA1304 The behavior of 'string.ToLower()' could vary based on the current user's locale settings. Replace this call in 'FuzzyMatching.FindBestFuzzyMatch(string, string)' with a call to 'string.ToLower(CultureInfo)'.

* Supressing warning for CA1814: Prefer jagged arrays over multidimensional however this might be something to consider if needing to optimize the window walker search.

* Fix: CA1062 In externally visible method 'List<List<int>> FuzzyMatching.GetAllMatchIndexes(bool[,] matches)', validate parameter 'matches' is non-null before using it. If appropriate, throw an ArgumentNullException when the argument is null or add a Code Contract precondition asserting non-null argument.

* Fix for CA1062 In externally visible method 'int FuzzyMatching.CalculateScoreForMatches(List<int> matches)', validate parameter 'matches' is non-null before using it. If appropriate, throw an ArgumentNullException when the argument is null or add a Code Contract precondition asserting non-null argument.

* Fixes for CA1806 Calls x...  but does not use the HRESULT or error code that the method returns. This could lead to unexpected behavior in error conditions or low-resource situations. Use the result in a conditional statement, assign the result to a variable, or pass it as an argument to another method.

Using discard for methods that return void, and checking the hresult before returning parameters.

* Fix for CA1820 Test for empty strings using 'string.Length' property or 'string.IsNullOrEmpty' method instead of an Equality check

* Supress CA1031 Modify 'get_WindowIcon' to catch a more specific allowed exception type, or rethrow the exception

* Code Description
CA1062 In externally visible method 'List<Result> Main.Query(Query query)', validate parameter 'query' is non-null before using it. If appropriate, throw an ArgumentNullException when the argument is null or add a Code Contract precondition asserting non-null argument.

* Fixes For CA1304 The behavior of 'string.ToUpper()' could vary based on the current user's locale settings.

CA1304 The behavior of 'string.ToLower()' could vary based on the current user's locale settings. Replace this call in 'SearchController.SearchText.set' with a call to 'string.ToLower(CultureInfo)'.
CA1304 The behavior of 'string.ToLower()' could vary based on the current user's locale settings. Replace this call in 'Window.ProcessName.get' with a call to 'string.ToLower(CultureInfo)'.
CA1304 The behavior of 'string.ToLower()' could vary based on the current user's locale settings. Replace this call in 'Window.SwitchToWindow()' with a call to 'string.ToLower(CultureInfo)'.
CA1304 The behavior of 'string.ToUpper()' could vary based on the current user's locale settings. Replace this call in 'Window.ToString()' with a call to 'string.ToUpper(CultureInfo)'.
CA1307 The behavior of 'string.Equals(string?)' could vary based on the current user's locale settings. Replace this call in 'Microsoft.Plugin.WindowWalker.Components.Window.SwitchToWindow()' with a call to 'string.Equals(string?, System.StringComparison)'.

* Fix: CA1710 Rename SearchResultUpdateHandler to end in 'EventHandler'

* Fix CA1060 Move pinvokes to native methods class

* Fix: CS0067 The event 'OpenWindows.OnOpenWindowsUpdateEventHandler' is never used

1) Remove SearchController::OpenWindowsUpdateHandler(object sender, SearchResultUpdateEventArgs e) as it wasn't being called and was redundant with Update Search Text.
2) In Main.cs calling UpdateOpenWindowsList before UpdateSearchText so that the latest enumerated windows will be called.
3) Removing unused OnOpenWindowsUpdateEventHandler and related code.

* Revert "Fixes for CA2101 Specify marshaling for P/Invoke string arguments."

This reverts commit b3dfe07915.

* Fixing CA2101 by turning off best fit mapping for methods that require ANSI marshalling.

See: https://docs.microsoft.com/en-us/visualstudio/code-quality/ca2101?view=vs-2019

* Previous fix for CA1806 misunderstood int result as hresult.  The actual return value is number of characters written.
NativeMethods.GetWindowText(hwnd, titleBuffer, sizeOfTitle);

* Previous fix for CA1806 misunderstood int result as hresult.  The actual return value is number of characters written.

NativeMethods.GetClassName(Hwnd, windowClassName, windowClassName.MaxCapacity);

* Removing unused window code.  This was done instead of validating fxcop changes in WindowIcon.

* Fixing typos in Window.cs (charachter -> character)
2020-09-10 09:44:22 -07:00
Alekhya
efd5c33a92 set object before using it (#6497) 2020-09-10 09:44:10 -07:00
Niels Laute
f589103f5d Change searchbox order to make text selectable (#6400)
Co-authored-by: Niels Laute <niels9001@hotmail.com>
2020-09-10 09:42:20 -07:00
vldmr11080
19175e9bde Introduce several fallback scenarios when obtaining GUID for current virtual desktop (#6534) 2020-09-10 14:42:36 +02:00
P-Storm
3137aaa660 Create unit tests for Calculator plugin (#6356)
* Refactored logic and made it unit testable

* Changes after code review

* Added to build steps, and modified bracket to new class with unittest. Validates complexer cases now.

Co-authored-by: p-storm <paul.de.man@gmail.com>
2020-09-09 20:01:30 -07:00
Clint Rutkas
cfda69a120 FxCop with ColorPicker (#6464)
* fxcop fixes

* more fixes, not done yet

* supressing 1031 and ca2000 since we are expressly disposing this correctly

* catching a possible crash due to null ref if run twice

* addressing feedback
2020-09-09 17:08:37 -07:00
Clint Rutkas
1027b7de72 Enabling FxCop on tests (#6481) 2020-09-09 15:33:18 -07:00
Arjun Balgovind
fb1888f01f Add in verbose error message and telemetry for SetWindowsHookEx failure (#6454)
* Updated error message when SetWindowsHookEx fails to show correct error message

* Added telemetry for exception in SG, FZ and KBM

* Rename exception to error
2020-09-09 14:27:40 -07:00
Divyansh Srivastava
f61e9d389f catch unhandled FileNotFoundException exception (#6456) 2020-09-09 11:33:28 -07:00
dependabot[bot]
936b02865f Bump http-proxy from 1.17.0 to 1.18.1 in /src/settings-web (#6455)
Bumps [http-proxy](https://github.com/http-party/node-http-proxy) from 1.17.0 to 1.18.1.
- [Release notes](https://github.com/http-party/node-http-proxy/releases)
- [Changelog](https://github.com/http-party/node-http-proxy/blob/master/CHANGELOG.md)
- [Commits](https://github.com/http-party/node-http-proxy/compare/1.17.0...1.18.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-09-09 16:14:58 +02:00
yuyoyuppe
cbd3516fc4 installer: reduce notification spam 2020-09-09 12:50:31 +03:00
yuyoyuppe
c2d6f740a1 bootstrapper: handle the unhandled 2020-09-09 12:50:31 +03:00
Niels Laute
305a04ce69 [Settings] NumberBox headers fixes (#6227)
* Update from master

* Updated Numberbox headers
2020-09-08 15:28:57 -07:00
Arjun Balgovind
fdd7d6afa4 Add in missing telemetry for Keyboard Manager usage (#6393)
* Added key remap invoked telemetry event

* Added queryperformance call

* Added in telemetry for key and shortcut remaps

* Removed redundant if check
2020-09-08 14:40:02 -07:00
Alekhya
1a51f77fce Fix KBM Accessibility issues (#6379)
* Added an accessible name for the combo box

* Add name for the type shortcut button

* Add accessible name for the add new remapping button in both key remapping as well as shortcut remapping windows

* Set accessible names for the delete button

* Set the accessible name to the remapped to icon

* Fix the font icon issue faced while using narrator

* Fix accessible name for Add shortcut remapping button

* Set the accessible name for the target app text box when it loses focus

* fix comment
2020-09-08 12:24:59 -07:00
Arjun Balgovind
8ea8db7994 [PowerToys Run] Remove unused wox resources and move hardcoded strings to resx file (#6181)
* Removed xaml files, added resx file and removed references for PowerLauncher project

* Added resx file for wox.plugin

* Moved Calculator resources to resx

* Migrated resources for Folder and Indexer plugins

* Migrated resources for Program and Shell plugin

* Migrated resources for URI and Window Walker

* Removed GetTranslation, tests need to be refactored

* Removed internationalization classes

* Removed Wox.Core.Resource references

* Fixed Programs plugin tests

* Fixed tests

* Removed language xaml files from installer

* Added locProject.json files

* Fixed resource not found error

* Remove unused strings from PowerLauncher

* Removed all unused strings

* Reverted addition of resx file for Wox.Plugin

* Added more resources for Folder plugin

* Added resources for Folder and Indexer plugin

* Added resources for Program, Shell, Uri and WW plugins

* Changed string from Wox to PT Run

* managed common files
2020-09-08 11:51:24 -07:00
Divyansh Srivastava
cd906b0a6f Corrected querytext display on action keyword (#6341)
* Corrected querytexdisplay on action keyword

* Added tests for UpdateResultWithActionKeyword
2020-09-08 10:32:01 -07:00
Alekhya
85fa644aca Fix KBM Settings page Property related and screen reader Accessibility issues (#6289)
* Add accessible names for the KBM key remapping list and list item

* Add accessible name for the shortcut list item

* Add accessible name for shortcut remapping list

* Added accessible names to all icons

* Add accessible name for image

* Fix font icon narrator issue
2020-09-08 10:25:53 -07:00
Clint Rutkas
839d3f89d8 Update build-powertoys-ci.yml (#6384) 2020-09-08 10:24:33 -07:00
Divyansh Srivastava
52a06b5cdc [PT Run] Mitigate JSON Deserialization exception (#6295)
* Add error reporting window on deserialisation error

* Add message box to show launcher errors

* Change report window to messagebox

* nit fix in error window

* Localized string for error window

* update messagebox interface

* Correct ShowMessageBox argument order
2020-09-08 10:04:17 -07:00
Enrico Giordani
5065239266 [CDPx] add bootstrapper symbols (#6431) 2020-09-08 18:59:57 +02:00
vldmr11080
13426eac50 [FancyZones] Validate zone rect before adding it into layout (#6249)
* Validate zone rect before adding it into layout

* Rename variables for better code readability
2020-09-08 12:06:54 +02:00
Enrico Giordani
c5f90272d1 ImageResizer new icon (#6443) 2020-09-08 11:29:51 +02:00
yuyoyuppe
e0d6c2a4cd tools: add wmi monitor info powershell script 2020-09-07 15:47:40 +03:00
stefansjfw
3c76942799 [FancyZones] Update 'span zones across monitors' feature description and add message box warning accordingly (#6381)
* Update span accross monitors feature description in Settings App

* Add warning if scalings are different

* Address PR comments

* Address comment
2020-09-07 12:24:13 +02:00
twig
4ff888b2b0 Updated links under "How to create new PowerToys" (#6412)
They were 404'ing
2020-09-06 18:02:36 +02:00
Divyansh Srivastava
a0eaf077de [Pt Run] Show context menu for first folder plugin result (#6301)
* Added context menu to first folder result

* Added context menu to first folder result

* Add localization for string in folder plugin

* Fixed issue with context menu not showing on first selected item

* Add exception  logging
2020-09-04 15:12:04 -07:00
Arjun Balgovind
726f94e2a2 [Settings] Fix tabbing issues on KBM settings page (#6304)
* Removed listview items from tab ordering

* Removed tabstops on key/shortcut item controls to prevent double tab requirement
2020-09-04 12:42:41 -07:00
Kamesh Kotwani
19771b171c Updated .exe installer version number from 0.21.0 to 0.21.1 (#6355)
* fixed the .exe installer number

* updated .exe installer version number
2020-09-04 12:15:02 -07:00
Clint Rutkas
b4223967e8 Update README.md
adjusting to aka links
2020-09-04 10:39:50 -07:00
Niranjan
e57283460a devdocs: readme: fix grammar (#6375) 2020-09-04 09:22:28 -07:00
stefansjfw
78edaf5edc [FancyZones] Set 3-zones PriorityGrid as default layout (#6248)
* 3-zones Priority Grid as default layout

* Update tests

* Address PR comments
2020-09-04 16:37:06 +02:00
yuyoyuppe
91f0d40d1a docs: add bootstrapper cmd args description 2020-09-04 17:33:21 +03:00
yuyoyuppe
dacccf1415 docs: add monitor info report readme 2020-09-04 17:19:12 +03:00
yuyoyuppe
8fcb76e300 tools: monitor report info 2020-09-04 17:19:12 +03:00
vldmr11080
24906e6fa5 [FancyZones] FancyZones draw layout test tool (#6358)
* FancyZones draw layout test tool

* Fix formatting in resource file
2020-09-04 11:55:26 +02:00
Seraphima Zykova
570065175c [Settings] Temporary string showing the latest available version (#6254) 2020-09-04 11:56:52 +03:00
stefansjfw
e84a293642 Fix span accross monitors feature (#6335) 2020-09-04 10:11:05 +02:00
Adrian Campos
41559d8742 Fix typo in readme (#6350)
"Experiential" -> "Experimental"
2020-09-04 09:42:46 +02:00
martinchrzan
6e898ae52d Added pixel reveal effect, increased max zoom level to 4, added rounded corners to main and zoom window (#6242) 2020-09-03 23:31:27 +02:00
Arjun Balgovind
288d929477 [Settings] Changed ImageSize class to parse as double instead of int (#6299)
* Changed ImageSize class to parse as double instead of int

* Tweaked fix to resolve empty ImageResizer box fix
2020-09-03 13:43:55 -07:00
Jeremy Wu
807fbd4d89 fix missing fragment portion of LocalPath (#6257) 2020-09-03 12:46:34 -07:00
ryanbodrug-microsoft
6ce47e5cd9 Adding fxcop to PowerLauncher.TelemetryProject (#6259) 2020-09-03 10:44:51 -07:00
Clint Rutkas
712d5fbfa7 fixing the fody warning (#6164)
* fixing the fody warning

* removing the ignored item from the installer
2020-09-03 09:49:28 -07:00
Aaron Junker
8d3380b388 Implement #6312 (#6315) 2020-09-03 09:19:00 -07:00
Seraphima Zykova
c9855a2671 [FancyZones] Fixed type cast warning (#6311) 2020-09-03 17:50:49 +03:00
Enrico Giordani
c887f0ce5b [chore] disable PowerRename unit tests in CI (#6319) 2020-09-03 12:59:54 +02:00
Enrico Giordani
64ee0015d1 [chore] fix line endings (#6307) 2020-09-03 11:44:46 +02:00
Arjun Balgovind
1b598ad87e [Localization] Move PowerToys Run string resources from xaml files to resx (#6165)
* Removed xaml files, added resx file and removed references for PowerLauncher project

* Added resx file for wox.plugin

* Moved Calculator resources to resx

* Migrated resources for Folder and Indexer plugins

* Migrated resources for Program and Shell plugin

* Migrated resources for URI and Window Walker

* Removed GetTranslation, tests need to be refactored

* Removed internationalization classes

* Removed Wox.Core.Resource references

* Fixed Programs plugin tests

* Fixed tests

* Removed language xaml files from installer

* Added locProject.json files

* Fixed resource not found error

* Reverted addition of resx file for Wox.Plugin
2020-09-02 15:24:59 -07:00
Alekhya
c9f536c635 fix for argument out of range exception (#6269) 2020-09-02 13:39:57 -07:00
Divyansh Srivastava
742f4fe36d [Pt Run] Narrator support for result view navigation (#6146)
* Screen reader detecting List view

* Fixed narrator text for listview items and context menu items

* Renamed custom textbox to a more meanigful name

* Renamed custom textbox to a more meanigful name

* Fix formatting of LauncherControl.xaml

* Added support to control multiple elements
2020-09-02 13:34:07 -07:00
Clint Rutkas
fc34c05a2f Update README.md 2020-09-02 12:36:40 -07:00
Clint Rutkas
84055a420b 0.21 readme (#6291)
* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md
2020-09-02 12:26:35 -07:00
Niels Laute
e5ec08ff9d [Read me] Adding videoconference images (#6287)
* Update from master

* Added videoconference images
2020-09-02 10:37:44 -07:00
Enrico Giordani
06267f5a03 Now working on 0.21.2 (#6286) 2020-09-02 10:18:14 -07:00
Enrico Giordani
824bec2784 Update version to 0.21.1 (#6284) 2020-09-02 09:57:55 -07:00
Seraphima Zykova
cb81f7b057 [FancyZones] Convert ARGB color values to RGB (#6277) 2020-09-02 19:27:35 +03:00
Seraphima Zykova
ce43b10b5b [FancyZones] HEX to RGB util (#6275) 2020-09-02 18:34:17 +03:00
Arjun Balgovind
0349383d08 [PowerToys Run] Fix error reporting window for exceptions that are not on the dispatcher thread (#6221)
* Possible fix for dispatcher error

* Revert changes on other files
2020-08-31 10:22:00 -07:00
Divyansh Srivastava
777e1dc48c Fix color issue in search box (#6222) 2020-08-28 17:18:46 -07:00
Divyansh Srivastava
fe8727bd94 Fix issue with autocomplete text remaining on clearing query (#6220) 2020-08-28 14:58:57 -07:00
Enrico Giordani
6a531ca57c Update version to 0.21.0 (#6219) 2020-08-28 20:57:03 +02:00
Clint Rutkas
1d9c15b1cc Update community.md 2020-08-28 10:09:06 -07:00
yuyoyuppe
fc4ac803aa common: do not accept invalid input in VersionHelper and add negative unit tests 2020-08-28 16:37:12 +03:00
yuyoyuppe
870f1095cd setup: add --help and --no_dotnet commands 2020-08-28 16:37:12 +03:00
yuyoyuppe
4e969a3701 bootstrapper: do not specify patch version of .net core in the notification msgs 2020-08-28 16:37:12 +03:00
stefansjfw
0a603449ad [FancyZones] Enable to manually zone child windows (#6182)
* Enable to manually zone child windows

* Refactor IsInterestingWindow in 2 separate functions

* Remove enum
2020-08-28 15:00:21 +02:00
Enrico Giordani
d51640c2f0 [PowerRename] fix build warning (#6210)
PowerRenameUWPUI uses the resources from powerrename\dll\Resources.resx
2020-08-28 14:45:24 +02:00
Ivan Stošić
be8695777c Fixed a stack overflow (#6212)
Credits to @gurnec for proposing the fix.
2020-08-28 13:54:59 +02:00
Enrico Giordani
eb825ae619 [FancyZones] fix warning (#6203) 2020-08-28 11:30:03 +02:00
Yevhenii Holovachov
40a4a6a1a8 Clean Up tool (#5994)
* Initial commit

* Code review changes

* Added PowerShell script to clean up PowerToys

* Removed commented code

* Added about and comments to script, fixed deleting of DontShowThisAgain directory inside registry

* Added type to var's, changed positions of comments

* Changed RegDeleteKey to RegDeleteTree
2020-08-27 11:19:49 +03:00
Arjun Balgovind
07dfa6f296 Fix runner crashing on launching Keyboard Manager UI (#6185)
* Added maxVersionTested back to the manifest

* Updated comment with link to docs
2020-08-26 15:57:25 -07:00
Ivan Stošić
cb52cb2549 Improved the KB Hook in Color Picker (#6175)
* Improved the KB Hook in Color Picker

* Update KeyboardMonitor.cs

* Further simplify a method

* Using var

* Update KeyboardMonitor.cs

Add return;
2020-08-26 18:21:22 +02:00
Enrico Giordani
26b73b0745 [ColorPicker] proper Trace::UnregisterProvider(); (#6155) 2020-08-26 18:15:09 +02:00
Chris Davis
fead0c5ad9 Allow embedded images in SVGs to be displayed (#6163)
* Add DLIMAGES to WebBrowserExt ambient control flags to allow display of img links in SVGs.  We still specify FORCEOFFLINE so we are not actually performing a download.  This is to target SVGs with xlink base64 encoded data.

* Fix unit test
2020-08-26 09:06:42 -07:00
Mehmet Murat Akburak
c3652786ff Use en-Us locale when using ToUpper() (#6177) 2020-08-26 17:54:28 +03:00
Arjun Balgovind
3bd6c363de Added missing ! to condition check (#6162) 2020-08-25 12:07:17 -07:00
stefansjfw
48b6654ad2 Introduce ZoneWindowDrawing files and move stuff to better place (#6142) 2020-08-25 18:55:29 +02:00
ryanbodrug-microsoft
2075f9fa71 Comparing exepected vs actual json strings. This fixes two issues. (#6145)
1) the same variables are being compared against each other.
2) BasePTSettingsTest doesn't override equals to Equals compares the objects. This change compares the json strings directly.
2020-08-25 09:07:44 -07:00
Seraphima Zykova
96fdb6169a Warning fix: __NULL_IMPORT_DESCRIPTOR already defined in Pathcch.lib (#6150) 2020-08-25 12:52:25 +03:00
Seraphima Zykova
6d47a5477a Warning fix: C++/CLI mode does not support C++ versions newer than C++17 (#5910) 2020-08-25 12:21:30 +03:00
Mehmet Murat Akburak
d3b80b26e3 [PowerRename] Add Filtering Feature (#6017)
* Implement basic functionality

* Change approach.
move filter controls to manager
edit redrawing to always work with new GetVisibleItemCount() and GetVisibleItemByIndex() calls

* Fix performance issues. Some refactoring.

* Handle toggleAll correctly

* Handle dangling elements when filter is on

Make an item visible if it has at least one visible subitem

* Support filtering for selected and shouldRename

* Refactor for readability, remove useless member from PowerRenameUI

* Change variable names in PowerRenameUI for clarity

Use wrapper function RedrawItems() and SetItemCount() for consistency

* Handle result value properly in getVisibleItemByIndex()

* Add FlagsApplicable filter

* Add visual indication of filters

* Improve performance

Check if no filter is selected
Call SetItemCount() only when necessary

* Refactor for readability

* Get lock in setVisible()

* Change function names to camel case

* Change function names to start with uppercase

* Change filter behaviour when search area is empty

Show all elements when search area is empty and ShouldRename filter is selected
Avoid warnings

* Resolve conflicts
2020-08-25 08:22:05 +03:00
Arjun Balgovind
3ede1a0b53 [Localization] Migrate resources to resx for PowerRename (#6112)
* Added localization code to pipeline and created one LocProject json for Settings

* Fixed typo

* Reordered nuget source

* Moved nuget install to restore step

* Added FZ.rc file to LocProj

* Added FZ resx file and modified rc file

* Fixed file names

* Changed to check folder for LocProject files

* Updated folder

* Changed directory

* Changed to src directory

* Changed language set and name format, removed rc file localization

* Added all projects with resx/resw files

* Added newline to end of file

* Removed nuget source as it is not used

* Updated comments

* Updated keyboard manager to use resx file

* Tweaked resources.resx and added it to project files

* Added comments and added in string table to resx script

* Remove change from bad merge

* Fix syntax error in convert stringtable

* Changed file type to None

* Migrated color picker's resources

* Migrated resources for Microsoft.Launcher

* Migrated resources for fancy zones

* Revert fancyzones changes

* Migrated resources for ImageResizer and modified script to add language specific code

* Added try catch and checks for modification to avoid unnecessary file creation

* Changed tab insertion to 4 spaces to avoid mixed file types in rc file

* Migrated resources for power preview project

* Added LocProject.json file for 5 projects

* added resgen exception check

* Moved non-localizable strings out of resx for powerpreview

* Move out hardcoded strings from dialog box and set them at runtime from string table

* Migrated resources for powerrename

* Added locproj

* Added missing ImageBase extern declaration

* Added build script in UWP UI project since PowerRenameExt is not referenced

* Resolved merge conflicts
2020-08-24 17:51:48 -07:00
Arjun Balgovind
aebd7657ef [Localization] Migrate resources to resx for FancyZones (#6106)
* Added localization code to pipeline and created one LocProject json for Settings

* Fixed typo

* Reordered nuget source

* Moved nuget install to restore step

* Added FZ.rc file to LocProj

* Added FZ resx file and modified rc file
2020-08-24 17:50:41 -07:00
Arjun Balgovind
15938a12be [Localization] Migrate resources to resx for Shortcut Guide (#6104)
* Added localization code to pipeline and created one LocProject json for Settings

* Fixed typo

* Reordered nuget source

* Moved nuget install to restore step

* Added FZ.rc file to LocProj

* Added FZ resx file and modified rc file

* Fixed file names

* Changed to check folder for LocProject files

* Updated folder

* Changed directory

* Changed to src directory

* Changed language set and name format, removed rc file localization

* Added all projects with resx/resw files

* Added newline to end of file

* Removed nuget source as it is not used

* Updated comments

* Updated keyboard manager to use resx file

* Tweaked resources.resx and added it to project files

* Added comments and added in string table to resx script

* Remove change from bad merge

* Fix syntax error in convert stringtable

* Changed file type to None

* Migrated color picker's resources

* Migrated resources for Microsoft.Launcher

* Migrated resources for fancy zones

* Revert fancyzones changes

* Migrated resources for ImageResizer and modified script to add language specific code

* Added try catch and checks for modification to avoid unnecessary file creation

* Changed tab insertion to 4 spaces to avoid mixed file types in rc file

* Migrated resources for power preview project

* Added LocProject.json file for 5 projects

* added resgen exception check

* Moved non-localizable strings out of resx for powerpreview

* Migrated shortcut guide resources to resx

* Added LocProject.json
2020-08-24 17:49:28 -07:00
Arjun Balgovind
f2cfd90c46 [Localization] Move rc files to resx (#6057)
* Added localization code to pipeline and created one LocProject json for Settings

* Fixed typo

* Reordered nuget source

* Moved nuget install to restore step

* Added FZ.rc file to LocProj

* Added FZ resx file and modified rc file

* Fixed file names

* Changed to check folder for LocProject files

* Updated folder

* Changed directory

* Changed to src directory

* Changed language set and name format, removed rc file localization

* Added all projects with resx/resw files

* Added newline to end of file

* Removed nuget source as it is not used

* Updated comments

* Updated keyboard manager to use resx file

* Tweaked resources.resx and added it to project files

* Added comments and added in string table to resx script

* Remove change from bad merge

* Fix syntax error in convert stringtable

* Changed file type to None

* Migrated color picker's resources

* Migrated resources for Microsoft.Launcher

* Migrated resources for fancy zones

* Revert fancyzones changes

* Migrated resources for ImageResizer and modified script to add language specific code

* Added try catch and checks for modification to avoid unnecessary file creation

* Changed tab insertion to 4 spaces to avoid mixed file types in rc file

* Migrated resources for power preview project

* Added LocProject.json file for 5 projects

* added resgen exception check

* Moved non-localizable strings out of resx for powerpreview
2020-08-24 15:10:50 -07:00
Divyansh Srivastava
f3a55d96f5 Remove the code for saving/writing program plugin cache (#6107) 2020-08-24 10:50:54 -07:00
Alekhya
392ca87dab Fix Accessibility issues of the shortcut guide settings page (#6091)
* set the labeled by property of number box to point to the textblock heading so that 'Press duration before showing (ms)' string is read when the number box is highlighted

* Added comments on the accessibility issues that are dependent on the winui radiobuttons control

* Added information to the shortcut guide image on the right, it previously said only the word graphic
2020-08-24 10:48:45 -07:00
Alekhya
ff48421e4f Add info about the color picker image (#6097) 2020-08-24 10:48:35 -07:00
Alekhya
f6579184a2 Add information about the image (#6099) 2020-08-24 10:48:24 -07:00
Alekhya
c0c68f6acd Fix Accessibility issues in the PowerRename settings page (#6101)
* add automation property to number box

* Set the automation property for the image
2020-08-24 10:48:12 -07:00
Alekhya
f2fd376363 Fix Accessibility issues of the Image Resizer settings page (#6109)
* Added an automation name to the custom list view

* Added an automation property for the text box

* changed the name to 'Configuration'

* Added an automation property for the combo box

* Add automation property for number box

* added a name for the times symbol

* Added the height name automation property

* Add automation property for image resizer size combo box

* Add name and uid for button

* Add automation name for the grouping of list views

* Add automation property label for number box

* Add name for the filename format edit box

* Added more information to the image
2020-08-24 10:47:59 -07:00
stefansjfw
9999a2b126 Refactor common and fancyzones/utils (#6073)
* Move module-specific functions to module

* Refactor FZ utils

* Remove 'zonable' from FancyZonesWindowInfo

* Address PR comments

* Address PR comments

* Fix stuff after rebasing
2020-08-24 19:38:15 +02:00
Enrico Giordani
2817bf4d62 [FancyZones] fix warnings (#6095)
unified data type to size_t in all methods that process the zone index set
2020-08-24 14:39:34 +02:00
Seraphima Zykova
845bb466c6 [FancyZones] Shift + StickyKeys behavior fix (#6039) 2020-08-24 10:19:39 +03:00
Clint Rutkas
f64df97652 adding in FxCop to Svg tests (#6111) 2020-08-21 17:23:42 -07:00
Divyansh Srivastava
9c6b2c3e81 Display colored icons for packaged apps (#5923)
* Added wox code for tiling

* nit fixes in plating function

* Added feature to plate images based on theme

* Improve code readability

* added altform based paths

* Error handling in fetching logo

* Re add fix sequence empty exception on calling max in program plugin

* Move path and logo setting code to setIcon function

* Add corner radius to packaged apps icon

* Revert "Add corner radius to packaged apps icon"

This reverts commit 9be496e662.
2020-08-21 13:39:08 -07:00
Clint Rutkas
83e8799610 init checkin (#6100) 2020-08-21 12:40:31 -07:00
Alekhya
80f8c0399b To remove the condition that space is needed after the Action keyword (#6003)
* Returning individual queries for each plugin

* Changed cancellation token from Query type to directly using the rawQuery

* Changed the way we get the plugins for which we execute the query

* updated UpdateResultView to take a string instead of query

* Changed the way we set a query for each plugin

* removed todo comment

* global plugins are added as a part of the query builder

* Fix for plugin.json of Folder plugin being copied into the shell plugin

* >,< and : are not allowed in file paths and indexer creates a query which searches compares if a file name is greater than or lesser than the query

* Reformatted the regex

* catching the exception

* fixed existing tests

* modified it so that it works with action keyword as well as action keywords

* Added unit tests for non global plugins

* fixed test

* add back whitespace that was removed by mistake

* fix regex

* modified the cold start query

* remove extra condition

* terms being modified as expected

* used key value pairs to iterate through the dictionary

* renamed variable

* added check for an empty dictionary

* remove : because it may appear in the file path

* fix some whitespace warnings that were being treated as errors
2020-08-21 12:21:42 -07:00
Alekhya
f6b5840e0e Fix Accessibility issues of the FancyZones Settings page (#6045)
* Added automation property for the button

* Added an automation property name for the glyph

* added name automation property for the shortcut window

* fixed the name null for zone highlight button

* fixed the name for the inactive color dropdown

* fixed the accessibility issue with the border color downdown button

* fixed the issue with dropdowb buttons

* add description to the image

* Capitalize Z otherwise it reads it in an expected way

* made the naming generic as it the custom window is not only specific to fancyzones but is also used by colorpicker and PTRun to set their shortcut
2020-08-21 12:21:23 -07:00
Alekhya
b5dec2e935 Fix Accessibility Issues of PT Run settings page (#6090)
* label number box

* Added information to the PTRun image on the right
2020-08-21 12:21:15 -07:00
ryanbodrug-microsoft
79bb68d784 User/ryanbod/shell plugin fxcop (#6043)
* Enabling FxCop static analysis.

* Fixes for CA2227 Change 'Count' to be read-only by removing the property setter.
https://docs.microsoft.com/en-us/visualstudio/code-quality/ca2227?view=vs-2019

* Fix for:  CA1822: Mark members as static
https://docs.microsoft.com/en-us/visualstudio/code-quality/ca1822?view=vs-2019

* Fix for CA1805: Do not initialize unnecessarily.
https://docs.microsoft.com/en-us/visualstudio/code-quality/ca1805?view=vs-2019

* Fix for: Error CA1724 The type name Settings conflicts in whole or in part with the namespace name 'Microsoft.PowerToys.Settings'. Change either name to eliminate the conflict. Microsoft.Plugin.Shell C:\repos\powertoys\src\modules\launcher\Plugins\Microsoft.Plugin.Shell\Settings.cs 9 Active

* Severity Code Description Project File Line Suppression State
Error CA1724 The type name Settings conflicts in whole or in part with the namespace name 'Microsoft.PowerToys.Settings'. Change either name to eliminate the conflict. Microsoft.Plugin.Shell C:\repos\powertoys\src\modules\launcher\Plugins\Microsoft.Plugin.Shell\Settings.cs 9 Active

* Fix for CA1307: Specify StringComparison & CA1305: Specify IFormatProvider
https://docs.microsoft.com/en-us/visualstudio/code-quality/ca1307?view=vs-2019
https://docs.microsoft.com/en-us/visualstudio/code-quality/ca1305?view=vs-2019

* Fix for CA1062: Validate arguments of public methods
https://docs.microsoft.com/en-us/visualstudio/code-quality/ca1062?view=vs-2019

* Suppressing CA1031 Modify 'Query' to catch a more specific allowed exception type, or rethrow the exception'
2020-08-21 12:10:41 -07:00
Ivan Stošić
976116a012 Win arrows revisited (#5932)
* Added the setting

* Refactored existing code, the main feature isn't implemented yet

* Renamed a method

* Updated a comment in IZoneWindow

* Added the zone selection algorithm, didn't test it

* Basic features work

* Single monitor cycling works

* Seems that the feature works well

* Polished the settings page

* Rebase fix

* Fixed a null pointer dereference

* Use classic if syntax

* Fixed bad indentation

How did these lines unindent themselves?

* Removed TODO comment

* Rebase fix

* Another rebase fix
2020-08-21 12:53:03 +02:00
Seraphima Zykova
64c51a49a0 [FancyZones] Failing unit tests update (#6065) 2020-08-21 08:56:25 +03:00
Clint Rutkas
cc0b808962 Blurry Text for PT Run improvements (#6049)
* Checking in adjustments based off @anuthadev pr's

* Forcing an improvement on the magnifier glass

* removing whitespace
2020-08-20 21:45:55 -07:00
Seraphima Zykova
9b567f9ba3 [FancyZones] capture strong_this (#6066) 2020-08-20 19:55:41 +03:00
Enrico Giordani
9a36b005a1 [Shortcut Guide] fix Virtual-Key codes range (#6025) 2020-08-20 12:24:06 +02:00
ryanbodrug-microsoft
2390368d03 Fix for Crash due to System.AccessViolationException when calling OleDBSearch from multiple threads. (#6052)
* Removing non thread safe member variables, as well as the check to ensure that they have been disposed.

* Removing 'ExecuteQuery_ShouldDisposeAllConnections_AfterFunctionCall'.

This call previously required the use of member variables that were not thread safe.   There is no reason to share this state across threads.  Arguably this test verifies an internal implementation detail and is not suitable for a unit test anyway.
2020-08-19 17:28:19 -07:00
Mehmet Murat Akburak
64106cba82 [PowerRename] Using File Attributes Update (#5250)
* Use only fff for milliseconds

* Refactor

* Handle double $ signs.
Move isFileAttributes check to Helpers.
Move File Attributes to perform before regex operation

* Fix typo

* Format date/time test

* Disable problematic features. Add comments

* Fix month/day names

* Add tests

* Add line between tests

* Add local month/day names support

* Make sure month/date names are capitalized

* Fix formatting
2020-08-20 02:53:09 +03:00
Divyansh Srivastava
69cb20e1cd Re add fix sequence empty exception on calling max in program plugin (#6054) 2020-08-19 16:16:45 -07:00
Arjun Balgovind
2a7bf7fb5b [Localization] Add localization step to pipeline and enable localization on C# projects with resx/resw resource files (#6033)
* Added localization code to pipeline and created one LocProject json for Settings

* Fixed typo

* Reordered nuget source

* Moved nuget install to restore step

* Added FZ.rc file to LocProj

* Added FZ resx file and modified rc file

* Fixed file names

* Changed to check folder for LocProject files

* Updated folder

* Changed directory

* Changed to src directory

* Changed language set and name format, removed rc file localization

* Added all projects with resx/resw files

* Added newline to end of file

* Removed nuget source as it is not used

* Updated comments

* Fixed formatting of json file

* Move loc step to end
2020-08-19 16:10:15 -07:00
Clint Rutkas
dc744f236e [warningsAsErrors] Getting settings online (#6053)
* getting everything to compile

* fixing json
2020-08-19 15:59:10 -07:00
Divyansh Srivastava
9724afd9ec Run UI contrast accessibility (#6027)
* Fix contrast ration for SecondaryTextForeground brush

* Improve contrast for context menu button
2020-08-19 11:38:49 -07:00
Alekhya
34e7467d16 Fix accessibility issues related to the General Settings page (#6034)
* grouped radio buttons together

* grouping radio buttons together

* the word version is now read along with the version number

* Information regarding the image is read

* added a comment with the link to the issue in the winui repository
2020-08-19 11:29:13 -07:00
stefansjfw
7eccb6fc7a Delete custom layout if malformed (#6011) 2020-08-19 18:12:57 +02:00
Nkateko
0445e89747 [Settings] Migrate PT Run Settings (#5768)
* added MSTest project

* Migrated PT Run Tests

* reverted changes to xaml file

* fixed Sttings.UI.csproj file

* added parameter for default key code
2020-08-19 08:12:07 -07:00
Nkateko
953ab958d5 [Settings] Migrate Fancy Zones Settings Tests (#5762)
* added MSTest project

* [Settings] Migrate Fancy Zones Settings Tests

* fixed errors

* reverted changes to xaml file

* updated varibale for test folder

* add ignore case flag

* fixed Sttings.UI.csproj file

* fixed Sttings.UI.csproj file
2020-08-18 14:46:32 -07:00
Nkateko
5e13152c73 [Settings] Migrated Image Resizer Tests (#5765)
* added MSTest project

* Migrated Image Resizer Tests

* fixed links

* removed exception
2020-08-18 13:43:58 -07:00
ryanbodrug-microsoft
8c98c7df29 attempting to run CI unittests for .netcore and .netframework projects (#5886)
* attempting to run CI unittests as seperate passes for .netframework and .netcore, based on assemblies.

* Mocking CSearchManager to avoid the following exception running in CI.

Retrieving the COM class factory for component with CLSID {7D096C5F-AC08-4F1F-BEB7-5C22C517CE39} failed due to the following error: 80070422 The service cannot be started, either because it is disabled or because it has no enabled devices associated with it. (0x80070422).

* Setting proper connection string for unit test.

* Mocking sqlQuery with FilePath vs m*

* Temporarily Ignoring test that is throwing exception in CI.
2020-08-18 13:19:35 -07:00
Divyansh Srivastava
cedc4f710e Catch exception in save method for json class (#5950)
* Catch exception in save method for json class

* Update error message

* Correct error logging format

* Catch IO exception
2020-08-18 10:50:16 -07:00
Seraphima Zykova
13d61bd866 WinAppDriver tests update (#5882)
* tray button fix
* settings closing changed
* ignore old settings tests
* changed test init
* changed launch
* separated app history file
* select enabled modules on launch
2020-08-18 12:23:43 +03:00
Nkateko
c6c9839208 [Settings] KBM Migrated KBM Settings Tests (#5821)
* added MSTest project

* enabled settings tests run in the build pipeline

* migrated KBM settings

* fixed typo

* moved the callback function initialization to the top

* fixed build
2020-08-17 15:00:19 -07:00
Clint Rutkas
2ff439dc47 fixing warnings, per ryan suggestion, suprressing warning now. we'll revisit the if debug blocks later (#6010) 2020-08-17 14:52:27 -07:00
Niels Laute
dad8cbecc1 [Launcher] ReportWindow redesign and theming support (#5790)
* Updated adaptive trigger behavior

* Fixed wrapping for KBM subtitle textblock

* Fix

* Theme support for ReportWindow

* Fix

* Fix

* Spacing issue fix

* Revert "Fix"

This reverts commit 8b2812e2de.

* Revert "Fixed wrapping for KBM subtitle textblock"

This reverts commit aa9ec54121.

* Revert "Updated adaptive trigger behavior"

This reverts commit e6f4ed27a1.

* Update ReportWindow.xaml.cs

* Update ReportWindow.xaml.cs

* Update ReportWindow.xaml.cs

* Removed redundant code, fixed trailing issue

Co-authored-by: Niels Laute <niels9001@hotmail.com>
2020-08-17 13:48:54 -07:00
Arjun Balgovind
8f8b200f24 Move hardcoded strings in Keyboard Manager projects to rc file (#5921)
* moved all strings in c++ side to rc file

* Fixed formatting
2020-08-17 13:46:50 -07:00
Clint Rutkas
8dec9d5fe9 Fixing color picker warnings and enabling warnings as errors (#6006) 2020-08-17 13:13:45 -07:00
Clint Rutkas
e671c913ab Removind depercated fields (#6008) 2020-08-17 13:13:11 -07:00
Clint Rutkas
9d46fae865 Enabling warnings as errors and correcting StyleCop issues (#6007) 2020-08-17 13:11:59 -07:00
Clint Rutkas
315caaba1c [WarningsAsErrors] Getting Most online (#6005)
* Enabling errors as warnings.

* removing plugin since it throws an error for release mode,  WIll fix in other release
2020-08-17 13:11:40 -07:00
Nkateko
7af4ffe341 [Settings] Migrate File Explorer Preview Settings (#5785)
* added MSTest project

* migrate file explorer preview settings

* updated test file

* fixed build
2020-08-17 13:10:56 -07:00
Enrico Giordani
8bf730baae Remove 'AnyCPU' build configuration (#5999) 2020-08-17 20:17:16 +02:00
Clint Rutkas
0b3826d2dd Move alt installers to new file (#6001)
* Create unofficalInstallMethods.md

* Update README.md

* Update unofficalInstallMethods.md
2020-08-17 11:11:07 -07:00
Clint Rutkas
d055ba1c3b whitespace forced changes (#6002) 2020-08-17 10:00:56 -07:00
Aaron Junker
649e7e103d Update de.xaml (#5227)
* Update de.xaml

* Update de.xaml
2020-08-17 09:25:10 -07:00
Rashil Gandhi
bcdfb212fc Add Scoop (Unofficial) installation method (#5979) 2020-08-17 08:42:51 -07:00
Seraphima Zykova
947bf10c2f Warning fix: calling convention of '__cdecl ' ignored; '__clrcall ' used instead (#5931) 2020-08-17 16:41:11 +03:00
Ivan Stošić
2e48b583c0 Remove deleted files from the solution (#5996) 2020-08-17 13:24:39 +02:00
Roy
55dc5dc19d [Powertoys Run] Implemented "hidden files" flag in native Windows Search (#5500)
* Implemented "hidden files" flag in native Windows Search

* add missing file

* Change InitQueryHelper back to static

* Fix Line Endings

* Add files via github

Co-authored-by: Roy <royvou@hotmailcom>
2020-08-15 14:11:56 -07:00
martinchrzan
04c80915e5 Trying to dispose mouse hook earlier to potentialy fix the lagging mouse bug after selecting the color (#5530) 2020-08-15 17:28:53 +02:00
Clint Rutkas
be36b4aac1 correctin file ending (#5970) 2020-08-14 15:10:06 -07:00
Nkateko
2ce16bcdb7 [Settings] Migrate PowerRename Tests (#5787)
* added MSTest project

* migrated powerrename tests

* updated test

* reverted changes to xaml file
2020-08-14 14:26:41 -07:00
Nkateko
1683f191a9 [Settings] Migrate Shortcut Guide Settings Tests (#5789)
* added MSTest project

* migrated shortcut guide tests

* updated tests

* updated tests

* reverted changes to xaml file
2020-08-14 13:58:48 -07:00
Clint Rutkas
70d93a0bfc C26819 - Directly stating this fallthrough is correct (#5967)
* Directly stating this fallthrough is correct

* Update MockedInput.cpp

Adjust per Arjun
2020-08-14 13:35:58 -07:00
Clint Rutkas
6514712054 [stylecop] Launcher (#5968)
* Should be last stylecop change!

* two more tweaks
2020-08-14 13:35:06 -07:00
Clint Rutkas
e0a1b478a1 Program plugin fully on stylecop (#5964) 2020-08-14 12:46:23 -07:00
Clint Rutkas
be5d58c849 incorrect override of SA1401 (#5965) 2020-08-14 12:41:55 -07:00
Clint Rutkas
e4f9c02d11 Lots of small tweaks (#5960) 2020-08-14 11:50:14 -07:00
Clint Rutkas
b8d720d06f Update .gitattributes to make line endings consistent (#5942)
* Update .gitattributes

* Update .gitattributes

* Update .gitattributes
2020-08-14 11:38:10 -07:00
Clint Rutkas
5c1713f274 wrapping up everything minus var renaming (#5952) 2020-08-14 09:22:24 -07:00
Clint Rutkas
913615f1c2 more braces and whitespace style errors (#5951) 2020-08-14 09:22:12 -07:00
Arjun Balgovind
9e8b0d2807 Refactored Keyboard Manager UI code and added unit tests for Keyboard Manager UI (#5718)
* Added tests for loading and saving remappings in the UI

* Added tests for ApplyRemappings methods

* Moved single key remap validation logic to separate method so that it can be tested

* Added tests for single key remap validation in UI

* Refactored shortcut validation code to be testable

* Added some shortcut validation tests

* Refactored code to be cleaner

* Added tests for action key and modifier key selection and formatted file

* Added tests for selecting None

* Added tests for selecting Null

* Added tests for WinL error

* Added CtrlAltDel tests

* Added tests for MapToSameKey

* Added tests for mapping repeated shortcut

* Fixed const correctness

* Clean up type names with type alias

* Clean up ValidateAndUpdateKeyBufferElement tests and tweak ValidateShortcutBufferElement signature

* Fixed bug when None selected

* Refactored one test as per test case framework

* Cleaned up more tests

* Cleaned up buffer validation tests

* Added tests for KBM Common Helpers and Shortcut
2020-08-13 16:32:15 -07:00
Nkateko
0b5749d491 [Settings] Migrate Color Picker Settings Tests (#5759)
* added MSTest project

* migrated color picker settings

* undo changes for the .xaml page
2020-08-13 15:46:51 -07:00
Clint Rutkas
23a9fa40e7 Additional formatting tweaks (#5909) 2020-08-13 15:32:12 -07:00
Clint Rutkas
38b0d427f8 Fix all file naming tweaks (#5945) 2020-08-13 15:31:32 -07:00
Clint Rutkas
e02977edc0 Whitespace and type fixes (#5917) 2020-08-13 15:31:14 -07:00
Nkateko
24d7232559 [Settings Tests] Migrate General Settings tests (#5753)
* added MSTest project

* migrated general settings tests

* enabled settings tests run in the build pipeline

* added tests

* move relay command class to separate file

* added a foldername parameter for general settings view model
2020-08-13 15:02:05 -07:00
Clint Rutkas
e4ea8d2abd Correcting floating point error (#5949) 2020-08-13 14:02:38 -07:00
Nkateko
ebd1a6406b [Settings] Unit Tests Migration Feature Branch Merge (#5754)
* added MSTest project

* enabled settings tests run in the build pipeline

* re-added settings test project

* re-added test project and sample test

* Update build-powertoys-steps.yml

* Update build-powertoys-steps.yml

* updated settings test output path

* updated output path for release config

* added xunit test project

* removed xunit test project

* fix build

* Update build-powertoys-steps.yml

* Update build-powertoys-steps.yml

* Update build-powertoys-steps.yml

* Update build-powertoys-steps.yml

* Update build-powertoys-steps.yml

* Update build-powertoys-steps.yml

* Update build-powertoys-steps.yml

* Update build-powertoys-steps.yml

* Update build-powertoys-steps.yml

* Update build-powertoys-ci.yml

* Update build-powertoys-steps.yml

* Update build-powertoys-steps.yml

* Update build-powertoys-steps.yml

* Update build-powertoys-steps.yml

* Update build-powertoys-steps.yml

* Update build-powertoys-steps.yml

* Update build-powertoys-steps.yml

* Update build-powertoys-ci.yml

* Update build-powertoys-steps.yml

* Update build-powertoys-steps.yml

* Update build-powertoys-steps.yml

* Update build-powertoys-steps.yml

* Update build-powertoys-steps.yml
2020-08-13 13:51:01 -07:00
Clint Rutkas
d1ee9ebbd9 Update readme.md (#5939) 2020-08-13 11:32:36 -07:00
Clint Rutkas
5079ee67c3 [stylecop] program plugin unit tests part2 (#5925)
* Another batch

* Commenting out stylecop
2020-08-13 11:10:55 -07:00
Seraphima Zykova
9592fab414 Warning fix: removed additional dependencies in common project (#5930) 2020-08-13 15:25:36 +03:00
Enrico Giordani
f36858d074 update readme for WinAppDriver tests (#5927) 2020-08-13 13:08:36 +02:00
Seraphima Zykova
1b8bb7c445 Warning fix: Variable is uninitialized. Always initialize a member variable (#5928) 2020-08-13 13:48:15 +03:00
Divyansh Srivastava
f499ff81f2 Prevent copying of files from folder to shell plugin (#5893) 2020-08-12 15:16:29 -07:00
Alekhya
e80c7b6b45 Fix for PowerLauncher crash - Type Load Exception (#5906)
* Added the version number for all launcher projects so that they are in sync with the powerToys version number

* Removed internals visible to Wox.dll as we no longer have that library
2020-08-12 14:18:01 -07:00
Arjun Balgovind
f3babcb46e Fixed exceptions in indexer and delayed execution logic (#5912) 2020-08-12 12:44:55 -07:00
Clint Rutkas
95e82ca359 [stylecop] program plugin/unit test first pass (#5908)
* initial pass

* multiple whitespace fixes
2020-08-12 11:46:11 -07:00
Clint Rutkas
8888739867 fixing all warnings and info for infra (#5891) 2020-08-12 10:44:58 -07:00
ryanbodrug-microsoft
db6e9b6962 Adding FxCop to Program Plugin Unit Tests (#5884)
* Adding FxCop to Microsoft.Plugin.Program.UnitTests

* CA1707: Identifiers should not contain underscores
https://docs.microsoft.com/en-us/visualstudio/code-quality/ca1707?view=vs-2019

* CA1307: Specify StringComparison
https://docs.microsoft.com/en-us/visualstudio/code-quality/ca1307?view=vs-2019

* CA1812: Avoid uninstantiated internal classes
https://docs.microsoft.com/en-us/visualstudio/code-quality/ca1812?view=vs-2019

* More CA1707: Identifiers should not contain underscores fixes now that class is public

* More fixes for https://docs.microsoft.com/en-us/visualstudio/code-quality/ca1812?view=vs-2019

List Repository and Win32ProgramRepository

* More CA1707: Identifiers should not contain underscores fixes now that class is public

ListRepository and Win32ProgramRepository tests

* Adding `ConfigureAwait(false)` and removing Assert.DoesNotThrowAsync as thowing an exception will fail the test anyway, and the DoesNotThrowAsync method can't be awaited.

Fix for CA2007: Do not directly await a Task (Consider calling ConfigureAwait on the task).

CS1998 This async method lacks 'await' operators and will run synchronously. Consider using the 'await' operator to await non-blocking API calls, or 'await Task.Run(...)' to do CPU-bound work on a background thread.

* Setting treat warning as errors to true for release and debug.
2020-08-12 10:03:34 -07:00
Clint Rutkas
a0832d3fb6 enabling stylecop (#5885) 2020-08-11 16:35:58 -07:00
Divyansh Srivastava
1c77887629 Reduce folder plugin results (#5631)
* Reduce folder plugin results

* Added warning message

* Added UI content for warning message in folder plugin

* nit fixes for folder plugin changes

* Localised warning message

* fix Merge conflicts

* nit fixes and move warning to end of results

* Add IDisposable interface to folder plugin

* Add images to MSI
2020-08-11 15:06:40 -07:00
Arjun Balgovind
dcd0ca8daa [PT Run] Split indexer plugin's queries into a fast and slow query (#5748)
* Added regex code

* Added regex based method to remove all LIKE queries

* Made regex readonly

* Added plugin interface and code to execute slower plugins after the fast plugins

* Added scoring for indexer and added statement to remove old indexer results

* Refactored from master and added thread sleep for debugging

* Removed lock from indexer plugin and added checks to avoid exceptions

* Remove debug statement

* Removed selected index update and fixed tests not building

* Added tests

* Removed scoring

* Removed lock

* Resolve merge conflicts

* Moved dispatcher code to function and add parallel foreach loop

* Removed DelayedExec metadata and modified QueryForPlugin to run only delayed exec plugins when bool param is true

* Removed metadata from plugin.json
2020-08-11 14:52:03 -07:00
Clint Rutkas
304981fcf2 [stylecop] Wox.Core - last amount needed to fully integrate (#5877)
* Looks like it was done

* StyleCop enabled for WoxCore
2020-08-11 14:12:08 -07:00
Clint Rutkas
f1bb533321 [StyleCop] Wox.Plugin - last amount needed to fully integrate (#5853)
* StyleCop for Plugin

* getting release mode working
2020-08-11 13:41:41 -07:00
Clint Rutkas
2c49df4be3 more fixes for getting styleCop up, this will need one more push to get another 15 that will require renaming of vars (#5875) 2020-08-11 13:40:26 -07:00
Roy
90502f7553 Add Microsoft.Plugin.Uri.UnitTests to CI + Fix Tests (#5878)
Co-authored-by: Roy <royvou@hotmailcom>
2020-08-11 11:49:44 -07:00
Mehmet Murat Akburak
18f5c7f691 [PowerRename] Use the same label size for all options (#5870) 2020-08-11 21:31:16 +03:00
Clint Rutkas
649606f32e Update bug_report.md 2020-08-11 11:19:39 -07:00
Clint Rutkas
0f54cc147e Update bug_report.md 2020-08-11 11:19:30 -07:00
Clint Rutkas
7781f41ebf Update bug_report.md 2020-08-11 11:19:13 -07:00
Divyansh Srivastava
2d2cb22806 Stable sorting of ResultCollection (#5850)
* Stable sorting of ResultCollection

* nit fixes for resultsViewModel and ResultCollection
2020-08-11 10:24:56 -07:00
ryanbodrug-microsoft
ac10c988b9 Enable Static Analysis on programs plugin (#5847)
* Removing unused ProgramSettings constructor paramaters.

* Fix for:

Severity Code Description Project File Line Suppression State
Error CA1829 Use the "Count" property instead of Enumerable.Count(). Microsoft.Plugin.Program C:\Repos\PowerToys\src\modules\launcher\Plugins\Microsoft.Plugin.Program\Views\ProgramSetting.xaml.cs 182 Active

Severity Code Description Project File Line Suppression State
Error CA1827 Count() is used where Any() could be used instead to improve performance. Microsoft.Plugin.Program C:\Repos\PowerToys\src\modules\launcher\Plugins\Microsoft.Plugin.Program\Views\ProgramSetting.xaml.cs 287 Active

* Fixes for CA1031:
https://docs.microsoft.com/en-us/visualstudio/code-quality/ca1031?view=vs-2019

* More fixes(Suppression) for CA1031 (Catching base exception)
https://docs.microsoft.com/en-us/visualstudio/code-quality/ca1031?view=vs-2019

* Fix for nested types being externally visible.  CA1034
https://docs.microsoft.com/en-us/visualstudio/code-quality/ca1034?view=vs-2019

* Fix for  CA1028 If possible, make the underlying type of Hresult System.Int32 instead of uint. Microsoft.Plugin.Program C:\Repos\PowerToys\src\modules\launcher\Plugins\Microsoft.Plugin.Program\Programs\UWP.cs 236 Active

* Fix for CA2227 Collection properties should be readonly.
https://docs.microsoft.com/en-us/visualstudio/code-quality/ca2227?view=vs-2019

Fix rror CA2211 Non-constant fields should not be visible
https://docs.microsoft.com/en-us/visualstudio/code-quality/ca2211?view=vs-2019

* CA2208: Instantiate argument exceptions correctly
https://docs.microsoft.com/en-us/visualstudio/code-quality/ca2208?view=vs-2019

* Win32.cs Static analysis fixes:

CA2200: Rethrow to preserve stack details
https://docs.microsoft.com/en-us/visualstudio/code-quality/ca2200?view=vs-2019

CA1825: Avoid zero-length array allocations
https://docs.microsoft.com/en-us/visualstudio/code-quality/ca1825?view=vs-2019

CA2211: Non-constant fields should not be visible
https://docs.microsoft.com/en-us/visualstudio/code-quality/ca2211?view=vs-2019

* More Win32.cs static analysis fixes:

CA1307: Specify StringComparison
https://docs.microsoft.com/en-us/visualstudio/code-quality/ca1307?view=vs-2019

Verifying query is not null before using it.
CA1062: Validate arguments of public methods
https://docs.microsoft.com/en-us/visualstudio/code-quality/ca1062?view=vs-2019

CA1305: Specify IFormatProvider
https://docs.microsoft.com/en-us/visualstudio/code-quality/ca1305?view=vs-2019

* UWPApplication.

CA2007: Do not directly await a Task
https://docs.microsoft.com/en-us/visualstudio/code-quality/ca2007?view=vs-2019

* Error CA2010 Consume the hresult returned by method 'Microsoft.Plugin.Program.Programs.AppxPackageHelper.IAppxManifestApplication.GetStringValue(string, out string)' and call Marshal.ThrowExceptionForHR.

Note:  CA2010 has been removed from future FXCop versions as it can provide incorrect advice for methods that don't return hresult (possibly when [PreserveSig] has been incorrectly labeled.)  I've verified the methods in question do still return hresults.

* More fixes for
Error CA2010 Consume the hresult returned by method and call Marshal.ThrowExceptionForHR.

* Fixes for:
Error CA2000 Call System.IDisposable.Dispose on object created before all references to it are out of scope.

* Suppress CA1031:Do not catch general exception types

* Fixes for
Error CA1034 Do not nest type ...

* Fixing Unit tests that were broken as per a previous fix.

* Fix for: CA1034: Nested types should not be visible:
https://docs.microsoft.com/en-us/visualstudio/code-quality/ca1034?view=vs-2019

* Suppressing CA1707 for native/com types.
CA1707:Identifiers should not contain underscores

* Fix for Error CA1307 The behavior of 'string.Replace(string, string?)' could vary based on the current user's locale settings.

* Fixes for Error CA1825 Avoid unnecessary zero-length array allocations.  Use Array.Empty<string>() instead.

* Fix for: Error CA1823 Unused field 'IndexLock'.

* Fixes for CA1822: Mark members as static:
https://docs.microsoft.com/en-us/visualstudio/code-quality/ca1822?view=vs-2019

* Fix for Error CA1819 Properties should not return arrays

* Fix for Error CA1806 ContextMenus calls Trim but does not use the new string instance that the method returns. Pass the instance as an argument to another method, assign the instance to a variable, or remove the call if it is unnecessary.

* Fix for Error CA1801 Parameter settings of method UpdateSettings is never used. Remove the parameter or use it in the method body.

* Fix for Error CA1724 The type name Settings conflicts in whole or in part with the namespace name 'Microsoft.PowerToys.Settings'.

* Includes FxCop for static analysis

* Fix for Error CA1717 Only FlagsAttribute enums should have plural names

* Suppress Stgm flags: Error CA1714 Flags enums should have plural names Microsoft.Plugin.Program

* Rename Win32 to Win32Program

Fix for: Error CA1724 The type name Win32 conflicts in whole or in part with the namespace name 'Microsoft.Win32' defined in the .NET Framework. Rename the type to eliminate the conflict.

* Fixes for Error CA1507 Use nameof in place of string literal

* Using ordinal instead of invariant culture when not symbolic comparison

* CA1308: Normalize strings to uppercase
https://docs.microsoft.com/en-us/visualstudio/code-quality/ca1308?view=vs-2019

* CA1304: Specify CultureInfo
CA1305: Specify IFormatProvider

https://docs.microsoft.com/en-us/visualstudio/code-quality/ca1305?view=vs-2019
https://docs.microsoft.com/en-us/visualstudio/code-quality/ca1304?view=vs-2019

* CA1062: Validate arguments of public methods
https://docs.microsoft.com/en-us/visualstudio/code-quality/ca1062?view=vs-2019

* CA1056: URI properties should not be strings
https://docs.microsoft.com/en-us/visualstudio/code-quality/ca1056?view=vs-2019

Fix:   Making LogoURi private, as it is only used internally and operated on as a string

* Warning CA1052 Type 'AppxPackageHelper' is a static holder type but is neither static nor NotInheritable

* CA1060: Move P/Invokes to NativeMethods class
https://docs.microsoft.com/en-us/visualstudio/code-quality/ca1060?view=vs-2019

* Programs Plugin - Treat warnings as errors true

* CA1031:Do not catch general exception types
Missed release only compile issue.  Making debug and release behave the same.

* Renaming 'Create' to 'CreateWin32Program' based on PR feedback.
2020-08-11 09:08:44 -07:00
Ivan Stošić
83de1686c0 Don't wait for ColorPicker.exe to close (#5866) 2020-08-11 17:06:28 +02:00
vldmr11080
145347f7ae [FancyZones] Clasify strings in FancyZones to localizable and non-localizable (#5315)
* Clasify strings in FancyZones to localizable and non-localizable

* Address PR comments

* Better handling of FirePropertyChanged event

* Address PR comments

* Update properties
2020-08-11 13:51:06 +02:00
Ivan Stošić
b8b6dbe791 Potential fix for a crash in OnThreadExecutor (#5840) 2020-08-11 10:39:18 +02:00
Divyansh Srivastava
d21201e996 Reduce program plugin results (#5743)
* Added minimum score threshold

* nit fix for program plugin
2020-08-10 16:25:34 -07:00
Clint Rutkas
dc35fc450b Update community.md 2020-08-10 15:57:43 -07:00
Clint Rutkas
c4140dd38b Update community.md 2020-08-10 15:57:31 -07:00
Roy
ba2ef23414 [PowerToys Run] Add Support for Uris (#5160)
* url handler plugin

* updates

* Add seperate interface classes
rename to uri module

* Update path

* Update implementation to remove slow DNS lookup ( and let browser handle it)

* tabs to spaces

* - Update icon/assets
- Finalize Project

* Update wix project

* Implement UpdateBrowserIconPath

* Implemented Microsoft.CodeAnalysis.FxCopAnalyzers

* Add Language component to installer

* Update logic to determine icon

* Update Translation File to "Open in browser"

* Added test for typing http://test.com and which result to expect on each keystoke

* Implement StyleCop

* Added ipv6 tests

* Fix Solution LineBreaks

* Added Microsoft.Plugin.Uri as build Dependency

* Use ArgumentNullException instead of InvalidOperationException

* Fix wrong Directory in wix installer

Co-authored-by: Roy <royvou@hotmailcom>
2020-08-10 15:53:43 -07:00
Divyansh Srivastava
3781d1e06b Consolidate folder and shell plugin (#5843)
* Added folder plugin functionality to shell plugin

* Added QueryTextDisplay for shell plugin

* Remove QueryTextDisplay change

* Fix merge conflict issues
2020-08-10 15:51:02 -07:00
Clint Rutkas
082a78bd92 Getting remaining Tests on stylecop (#5846) 2020-08-10 15:49:36 -07:00
Clint Rutkas
7bfd0823db Enabling StyleCop for folder plugin (#5844) 2020-08-10 13:28:22 -07:00
Enrico Giordani
013ffe1626 Now working on 0.20.2 (#5834) 2020-08-10 16:30:25 +02:00
Divyansh Srivastava
b2006f2466 Remove all plugin results on query change (#5796) 2020-08-07 19:27:52 -07:00
Niels Laute
7d8931696d Localized Image resizer tooltip (#5529)
Co-authored-by: Niels Laute <niels9001@hotmail.com>
2020-08-07 17:54:56 -07:00
Niels Laute
e88812458e [Settings] Updated adaptive trigger behavior (#5434)
* Updated adaptive trigger behavior

* Fixed wrapping for KBM subtitle textblock

* Fix

Co-authored-by: Niels Laute <niels9001@hotmail.com>
2020-08-07 12:00:48 -07:00
Clint Rutkas
ada42f6e94 in theory this fixes all SA1649 issues now with any project with stylecop enabled (#5786) 2020-08-07 11:56:28 -07:00
Clint Rutkas
34c3b50b48 Incremental fix for StyleCop on Infra (#5729)
* Fixes file names and classes don't match.  All but PluginsSettings

* making it pluginsettings

* fixing due to conflict
2020-08-07 10:45:50 -07:00
Andrey Nekrasov
63c36d0dbf runner: don't try to restart explorer (#5763) 2020-08-07 15:26:34 +03:00
Andrey Nekrasov
bd80bb6bb3 bootstrapper: add support for silent arg (#5590) 2020-08-07 12:00:14 +03:00
Ivan Stošić
8f98866d71 [FancyZones] Feature to create zone layouts spanning multiple monitors (#5289)
* Added the setting

* Added a property to Editor Settings

This will be used later

* Fixed a bug in the previous commit

* Simplified a method

* Added snapping points to the editor

* Simplified a method in ZoneSet

* Updated ZoneSet testcases

* Add a method to FancyZones / ZoneWindowHost

* Almost works

* The editor now launches, but FZ does not understand the results

* Refactored some code

* Snapping to a zone by dragging seems to work

* Hotkeys seem to work

* Refresh the work area handler after changing settings

* Fixed zones not snapping to monitor edges when moved

* Remove unused method in FancyZones.h

* Fixed an issue with DPI awareness

* Renamed setting to spanZonesAcrossMonitors

* Renamed a function

* Fixed a bug with the magnetic effect

* Fix restoring window positions on layout changes
2020-08-07 10:06:25 +02:00
Clint Rutkas
26bf05dd7e whitespace changes (#5750) 2020-08-06 20:38:49 -07:00
Clint Rutkas
b815718c26 whitespace only (#5747) 2020-08-06 16:52:25 -07:00
Clint Rutkas
d7994ca67d style cop wox.core whitespace changes (#5744)
* whitespace changes

* undoing csproj tweak to keep stylecop off
2020-08-06 16:51:47 -07:00
Arjun Balgovind
b95a1fb604 Unlinked the MaxResults value from settings and set to fixed value of 30 (#5742) 2020-08-06 16:44:13 -07:00
martinchrzan
b04bb2ef8d Color picker respects right monitor side boundaries and does not go outside of the view (#5480) 2020-08-06 20:54:26 +02:00
martinchrzan
066aeec1e6 Fixed jerky zoom animation (#5483) 2020-08-06 20:53:16 +02:00
Clint Rutkas
d6e46d73b5 whitespace stylecop fixes for Wox.Infra (#5689)
* Limited to whitespace

* removing stylecop again
2020-08-06 11:28:13 -07:00
Clint Rutkas
7b767df0b5 getting stylecop undercontrol for UI warnings (#5630) 2020-08-06 11:16:25 -07:00
Clint Rutkas
ed36447bdf Fixing stylecop violations (#5629) 2020-08-06 10:10:44 -07:00
Clint Rutkas
0f90af3c7d URL audit (#5685) 2020-08-06 10:09:50 -07:00
stefansjfw
f50a8e5252 Fix difference in editor and applied focus layout zones size and increments (#5601) 2020-08-06 16:41:15 +02:00
vldmr11080
1d8ca28152 Don't restore minimized windows after layout is updated (#5603) 2020-08-06 16:22:47 +02:00
vldmr11080
6c4129d02a [FancyZones] Do not restore maximized windows (#5597)
* Do not restore maximized windows

* Fix show command comparison

* Move maximized check outside of RestoreWindowSize function
2020-08-06 15:12:49 +02:00
Andrey Nekrasov
9b4574ad06 CI: add installer (#5698) 2020-08-06 16:12:20 +03:00
Nkateko
4543b32bef fix settings path (#5692)
* fix settings path

* Update settings_window.cpp

* rollback commit #5487
2020-08-06 00:49:40 -07:00
Clint Rutkas
ff69f6ed7f fixing most whitespace issues, reordering namespaces and adding in headers (#5677) 2020-08-05 14:06:55 -07:00
Clint Rutkas
92a2b83bc8 smaller stylecop fixes in Wox.Core and Wox.Infra (#5671)
* Headers
unneeded usings
files need blank line at bottom
Fixed double returns
Returns after braces

* commenting out stylecop
2020-08-05 14:06:42 -07:00
Alekhya
30b65028fe Fix Code Related PT Run Accessibility issues (#5610)
* set the name automation properties for the result elements

* Added name properties to search box

* removed the name for the grid

* localized the automation property names of the launcher control

* Localized the automation name property for the result list

* Uncommented out the Hide() function which was commented out to run Accessibility Insights

* modified resources from static to dynamic

* reverted access modifier to internal as we are no longer using this

* updated csproj file
2020-08-05 13:43:47 -07:00
Clint Rutkas
4b72b291ef 0.20.1 readme (#5669) 2020-08-05 12:23:12 -07:00
Andrey Nekrasov
59ebe30b72 runner: initialize COM security, so toast notifications work in elevated context from non-admin account (#5314) 2020-08-05 19:06:50 +03:00
Alekhya
814f6213fa Added null check before using unregister hotkey function (#5627) 2020-08-05 08:06:03 -07:00
Andrey Nekrasov
dce3ee440b bootstrapper: use a dedicated solution (#5318) 2020-08-05 17:20:50 +03:00
Clint Rutkas
b87d14cd61 Proper fix for MSB3052. (#5618)
* fixing MSB3052

* adding back in to unblock build

* More agressive refactor.  Moved the define constant to wixproj and actual version into src file version prop

Co-authored-by: Clint Rutkas <crutkas@microsoft.com>
2020-08-05 00:04:18 -07:00
Arjun Balgovind
5c10c78595 Fixed exceptions in dispose not allowing PT Run to terminate (#5615) 2020-08-04 21:06:07 -07:00
Clint Rutkas
a793cf4ac2 onboarding stylecop (#5622) 2020-08-04 16:39:25 -07:00
Roy
010732108c Add "AssemblyTitle" attribute which is used for the taskbar menu name. (#5487)
Co-authored-by: Roy <royvou@hotmailcom>
2020-08-04 16:36:59 -07:00
Clint Rutkas
296d103f68 Getting Shell on stylecop (#5620) 2020-08-04 16:27:35 -07:00
Clint Rutkas
1f590c45be Unit tests getting up-to-par for StyleCop (#5364)
Co-authored-by: Clint Rutkas <crutkas@microsoft.com>
2020-08-04 14:01:37 -07:00
Clint Rutkas
48b816fb36 fixing MSB3052 (#5609)
Co-authored-by: Clint Rutkas <crutkas@microsoft.com>
2020-08-04 11:28:41 -07:00
Hector Minaya
d11b5b3e02 Power Launcher | #5062 Moved Start Typing... to resource file (#5408) 2020-08-04 09:53:58 -07:00
Ivan Stošić
8f8787b2e0 Fixed Launcher not exiting when PT is terminated (#5588)
* Fixed Launcher not exiting when PT is terminated

* Added a null check to _hotkeyManager as well
2020-08-04 14:33:07 +02:00
Andrey Nekrasov
7581802498 Fix bootstrapper getting stuck on "installing dotnet" (#5565) 2020-08-04 13:34:09 +03:00
Andrey Nekrasov
371523d756 notifications: provide default app id to fix FZ toast crashes (#5551) 2020-08-04 11:12:49 +03:00
Clint Rutkas
1456be9feb wrapping agressively the timer. (#5560)
Co-authored-by: Clint Rutkas <crutkas@microsoft.com>
2020-08-03 16:46:15 -07:00
martinchrzan
62f57b134a Fixing potentially infinite loop with logs in Color Picker (#5558) 2020-08-03 22:03:00 +02:00
Niels Laute
84127d7a80 [Feature request.md] Fix typo (#5532) 2020-08-03 10:22:40 -07:00
Hector Minaya
8fc3f1ccbd [Fancy Zones] Add scrollbar to the input field for excluded apps in the settings page (#5410) 2020-08-01 07:48:38 +02:00
Clint Rutkas
c946f10d0c fixing all warnings and i think i got one larger one that was before stylecop was enabled, OnOpenWindowsUpdate (#5382)
Co-authored-by: Clint Rutkas <crutkas@microsoft.com>
2020-07-31 16:42:24 -07:00
Clint Rutkas
e03ef0b739 Remove InputSimulator nuget package (#5388)
* getting app to not use it, now installer

* removed windowinput.dll from inputsimulator nuget package

Co-authored-by: Clint Rutkas <crutkas@microsoft.com>
2020-07-31 15:16:49 -07:00
Clint Rutkas
55b92ab263 supressing warning 8305 as there is nothing we can do about as this is a WinUI (#5393)
Co-authored-by: Clint Rutkas <crutkas@microsoft.com>
2020-07-31 15:15:50 -07:00
Divyansh Srivastava
fbc625478b Improve query cancellation and ResultCollection performance (#5370)
* Added cancellation token to downstream functions in query thread

* Remove initial lag in query

* Re add query delay

* Remove debug flag
2020-07-31 15:09:23 -07:00
ryanbodrug-microsoft
4da8aab44f Including valid package information when path is invalid. This is needed because the path will be invalid when uninstalling an application, but we still need the other information to remove it from the currently indexed list of uwp/packaged applications. (#5373) 2020-07-31 12:33:05 -07:00
Clint Rutkas
d9fd967c48 Style cop up and running (#5340)
Co-authored-by: Clint Rutkas <crutkas@microsoft.com>
2020-07-31 09:49:42 -07:00
Clint Rutkas
ab86fc9a5e enabling stylecop on ColorPicker (#5336)
* Getting all warnings fixed

* fixed feedback, missed resize for some reason as well.

Co-authored-by: Clint Rutkas <crutkas@microsoft.com>
2020-07-31 09:13:05 -07:00
Clint Rutkas
8fb095e2f4 staging 0.20 readme (#5292)
* first pass for 0.20 readme

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* fixing link

* Update README.md

shifted per @enricogior feedback for requirements

* Update README.md
2020-07-31 09:09:03 -07:00
martinchrzan
2fe84b7510 Fixed an issue of not being able to change settings for ColorPicker (#5351) 2020-07-31 16:10:08 +02:00
Andrey Nekrasov
46ef13dd0f autoupdate: set app_id in time for download_update to use it (#5346) 2020-07-31 14:22:05 +03:00
Andrey Nekrasov
49b56d9b52 PowerToys interface: remove powertoys events and system_menu_helper functionality (#5323) 2020-07-31 14:06:13 +03:00
Enrico Giordani
cff654ae69 Now working on 0.20.1 (#5344) 2020-07-31 11:50:02 +02:00
Clint Rutkas
7abb4072b5 getting stylecop added and online SvgThumbnailProviderUnitTests (#5335)
* getting stylecop added and online

* shifting out of csproj and into packages.config

Co-authored-by: Clint Rutkas <crutkas@microsoft.com>
2020-07-30 17:36:39 -07:00
Clint Rutkas
d91fd0027a stylecop online (#5341)
Co-authored-by: Clint Rutkas <crutkas@microsoft.com>
2020-07-30 17:31:41 -07:00
ryanbodrug-microsoft
8f17f7297d Enabling static analysis on indexer plugin and fixing errors (#5220)
* Enabling code analysis, and treating warnings as errors

* Error CA1724 The type name Settings conflicts in whole or in part with the namespace name 'Microsoft.PowerToys.Settings'. Change either name to eliminate the conflict. Microsoft.Plugin.Indexer C:\repos\powertoys\src\modules\launcher\Plugins\Microsoft.Plugin.Indexer\Settings.cs 9 Active

* Removing keyword "Interface" from namespace to fix fxcop warnings

* Fixing static analysis warnings on ContextMenuLoader

* Fixing general exception warnings for static analysis

* Fixing public list variables, non static methods, and general exception warning

* Implementing IDisposable on OleDBSearch although in practice these objects were already being disposed.

Also Validated we were not using user input directly for sql strings.

* Removing VS generated comments from dispose methods as per PR feedback.

* Setting translated text to use current culture as per PR feedback.

* Explicity specifying 'internal' access modifier for Indexer 'Main' class, as per PR feedback

* Updating to FxCop 3.0.0
2020-07-30 16:39:47 -07:00
Clint Rutkas
aa8c31e79b adding in global supressions (#5337)
Co-authored-by: Clint Rutkas <crutkas@microsoft.com>
2020-07-30 16:23:58 -07:00
Clint Rutkas
cfc768caa9 StyleCop rules enforced (#5339)
Co-authored-by: Clint Rutkas <crutkas@microsoft.com>
2020-07-30 16:23:20 -07:00
ryanbodrug-microsoft
c48bd9b840 User/ryanbod/fix unittests (#5191)
* Fixing PowerLauncherViewModelTest.cs.  These OpenConsole functionality was accidentlly removed in a merge conflict, which broke the build.  The build was fixed, but the unit tests didn't work.  034079b441 is the offending change.

* Color picker tests need to remove the ShellPage.DefaultSndMSGCallback on cleanup.

* Fixing casing that was updated in previous change.
2020-07-30 15:58:01 -07:00
Clint Rutkas
c09919055a StyleCop for SvgThumbnailProvider (#5338)
* adding in global supression

* caught one more, stylecop was included vs linked

Co-authored-by: Clint Rutkas <crutkas@microsoft.com>
2020-07-30 15:57:10 -07:00
Clint Rutkas
d35f1ea802 last nuget packages and fixed small errors (#5334)
Co-authored-by: Clint Rutkas <crutkas@microsoft.com>
2020-07-30 14:01:02 -07:00
dependabot[bot]
cfbf3cd4b3 Bump elliptic from 6.5.0 to 6.5.3 in /src/settings-web (#5302)
Bumps [elliptic](https://github.com/indutny/elliptic) from 6.5.0 to 6.5.3.
- [Release notes](https://github.com/indutny/elliptic/releases)
- [Commits](https://github.com/indutny/elliptic/compare/v6.5.0...v6.5.3)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-30 12:36:53 -07:00
Clint Rutkas
a46103fc8c Adjusting interop tests for 5295 (#5296)
Co-authored-by: Clint Rutkas <crutkas@microsoft.com>
2020-07-30 12:22:33 -07:00
Clint Rutkas
d032956124 adding in stylecop goodness (#5301)
Co-authored-by: Clint Rutkas <crutkas@microsoft.com>
2020-07-30 12:17:08 -07:00
Clint Rutkas
ff93b38d23 upgrading all .NET assemblies, #5303 took care of ones where they needed consolidating (#5304)
Co-authored-by: Clint Rutkas <crutkas@microsoft.com>
2020-07-30 12:16:32 -07:00
Clint Rutkas
5b02ee5169 updated to Microsoft.Windows.CppWinRT.2.0.200729.8 (#5306)
* updated to Microsoft.Windows.CppWinRT.2.0.200729.8

* actually adding in packages.config and updating

Co-authored-by: Clint Rutkas <crutkas@microsoft.com>
2020-07-30 11:37:15 -07:00
Clint Rutkas
aa770689f5 pointing toward linked global (#5297)
Co-authored-by: Clint Rutkas <crutkas@microsoft.com>
2020-07-30 11:37:00 -07:00
Andrey Nekrasov
de67fff731 autoupdate: handle exceptions in download_update (#5324) 2020-07-30 18:32:50 +03:00
Anish Asrani
7799783c9a Updated Administrator mode URL to new wiki page (#5309)
* Updated URL to wiki page

* Updated URL to aka.ms link

Co-authored-by: Anish Asrani <anasrani@microsoft.com>
2020-07-30 07:11:07 -07:00
Andrey Nekrasov
c854565e30 chore: add most used projects helper build script (#5317) 2020-07-30 14:30:06 +03:00
Andrey Nekrasov
52e9d37b93 chore: move codeAnalysis folder to src (#5311) 2020-07-30 11:59:24 +03:00
Clint Rutkas
e94cb34a25 Create run-as-admin-detection.md
#5308
2020-07-29 17:43:43 -07:00
martinchrzan
f541e7105e Generating AssemblyInfo.cs for ColorPicker.exe, added resources and version for ColorPicker.dll (#5299) 2020-07-29 14:45:41 -07:00
Andrey Nekrasov
4060e29c63 runner: make sure that explorer is restarted (#5293) 2020-07-29 12:58:15 -07:00
Niels Laute
d913285523 [Settings] Fix for theming aware titles (#5245)
* Fix for theming aware titles

* Converter fix
2020-07-29 11:38:03 -07:00
ryanbodrug-microsoft
d98d1193fc Removing hardcoded version numbers from c# telemetry events. (#5283)
* Removing hardcoded version numbers from c# telemetry events.

* Removing dependency on powertoysInterop for getting version string.

* Defensive checks around getting assembly version
2020-07-29 11:18:21 -07:00
Enrico Giordani
e23b406364 Update version to 0.20.0 (#5288) 2020-07-29 13:19:57 +02:00
martinchrzan
0b27fc39e6 Added telemetry for Color Picker module (#5259)
* Added telemetry for Color Picker module

* Closing color picker with Esc and added a telemetry for that

* Missed update of csproj

* updated installer to include telemetry.dll for color picker

* removed telemetry.dll it was alrady there

* after review changes
2020-07-29 09:01:04 +02:00
Clint Rutkas
704ca4eae2 reenabling multi-core (#5279)
Co-authored-by: Clint Rutkas <crutkas@microsoft.com>
2020-07-28 23:04:40 -07:00
Clint Rutkas
1fc3cfee68 adjust for modules (#5284)
Co-authored-by: Clint Rutkas <crutkas@microsoft.com>
2020-07-28 19:26:18 -07:00
Niels Laute
8fb446ad47 [Settings] Embed images (#5236)
* Added local images

* Margin fix

* Update Product.wxs

Added images to installer
2020-07-28 15:02:09 -07:00
Clint Rutkas
66ff661ff5 file moved to wiki (#5278)
deleting run as admin images and moving to wiki

Co-authored-by: Clint Rutkas <crutkas@microsoft.com>
2020-07-28 13:41:00 -07:00
Andrey Nekrasov
57e69080c9 CDPx: revert parallel msbuild building also in build-powertoys-ci.yml (#5275) 2020-07-28 09:23:23 -07:00
Andrey Nekrasov
d78f7a9303 CI: sign new binaries (#5274)
* CI: sign colorpicker binaries

* CI: sign SVGThumbnailProvider binaries

* CPDx: revert parallel project building
2020-07-28 09:16:09 -07:00
Andrey Nekrasov
47cb34d26b chore: enable multiprocessor compilation (#5272) 2020-07-28 17:20:01 +03:00
Andrey Nekrasov
8354797406 CDPx: do not use span header (#5268) 2020-07-28 14:26:30 +03:00
Divyansh Srivastava
87ae1c6a9b Improving UI performance (#5216)
* Added fast observable collection

* Updated to use 1 collection changed event per query

* Moved result updating to background thread

* Changed collapsed to hidden for virtualization

* Moved all token cancellations inside try catch

* Fixed freeze on deleting first letter

* nit fixes

* Moved update logic to plugin result loop

* Updated doc comment for AddResults function

* fix result clear on empty query
2020-07-27 18:13:47 -07:00
Clint Rutkas
5fb7d43aff Update pull_request_template.md 2020-07-27 16:24:53 -07:00
Clint Rutkas
115c391191 Update bug_report.md 2020-07-27 16:20:22 -07:00
Clint Rutkas
c73fa4b0f6 Update feature_request.md 2020-07-27 16:19:42 -07:00
Clint Rutkas
f5894ac3c2 Update bug_report.md 2020-07-27 16:14:30 -07:00
Clint Rutkas
bcbeda5102 Update bug_report.md 2020-07-27 16:12:15 -07:00
Clint Rutkas
8891c305e3 Update documentation-issue.md 2020-07-27 16:07:58 -07:00
Clint Rutkas
c62f98db95 Update documentation-issue.md 2020-07-27 16:07:49 -07:00
Clint Rutkas
96bca43089 Update documentation-issue.md 2020-07-27 16:07:26 -07:00
Clint Rutkas
9ffd42d477 Update documentation-issue.md 2020-07-27 16:06:54 -07:00
Clint Rutkas
c57f051863 Update config.yml 2020-07-27 16:06:09 -07:00
Clint Rutkas
ab04874c11 Update config.yml 2020-07-27 16:05:10 -07:00
Clint Rutkas
481a47b638 Update config.yml 2020-07-27 16:03:18 -07:00
Aaron Junker
df2ef04558 Create config.yml (#5091) 2020-07-27 16:00:52 -07:00
Clint Rutkas
c3ad095553 Update NOTICE.md
Adding in Martin into notice for color picker
2020-07-27 15:37:27 -07:00
Clint Rutkas
3f2dbfbbd2 removing colorpicker (#5260)
Co-authored-by: Clint Rutkas <crutkas@microsoft.com>
2020-07-27 13:12:47 -07:00
Clint Rutkas
8eca70c338 adding in stable and installer to build status (#5255)
* Update README.md

* Update README.md
2020-07-27 13:12:31 -07:00
Niels Laute
ba7302a197 [Settings] Adding collapse button to settings navview (#5237)
* Adding collapse button to settings navview

* Custom panewidth
2020-07-27 09:57:28 -07:00
stefansjfw
d15b0a0285 [FancyZonesEditor] Don't load malformed custom layout and show appropriate message (#5248)
* Introduce const strings in LayoutModel.cs

* Don't load malformed custom layout and show apropriate message

* Add more checks

* Address PR comments

* Address PR comments
2020-07-27 18:56:26 +02:00
Andrey Nekrasov
3796a5ef97 Autoupdate: implement updating bootstrapper utility (#5204) 2020-07-27 19:53:29 +03:00
Bernard Vander Beken
5a48376a77 Fix casing (#5252) 2020-07-27 09:43:12 -07:00
stefansjfw
61669a73d9 [FancyZonesEditor] Introduce const strings in LayoutModel.cs (#5196)
* Introduce const strings in LayoutModel.cs

* Address PR comments - Update FirePropertyChanged
2020-07-27 10:12:35 +02:00
martinchrzan
5a2385c66b Set default shortcut for activating launcher, creating settings.json … (#5206)
* Set default shortcut for activating launcher, creating settings.json on a start if it does not exists

* After review fixes
2020-07-25 08:50:29 +02:00
Alekhya
d7721065dc Add theme aware default icons to usage dictionary (#5223)
* Added theme aware default icons to usage dictionary

* they should not be removed while resizing
2020-07-24 18:23:33 -07:00
Alekhya
025f2507f4 Drive Detection Indexer warning refinement (#5221)
* show results always and conditionally show warning

* changed test logic to show warning when expected

* renamed unit test
2020-07-24 17:45:07 -07:00
Alekhya
563fb3ff5c commenting out the test (#5224) 2020-07-24 17:43:48 -07:00
Clint Rutkas
9646ec5edd fixed another set of warnings (#5219)
Co-authored-by: Clint Rutkas <crutkas@microsoft.com>
2020-07-24 15:46:29 -07:00
Alekhya
cc990a1181 Fix for handling exceptions thrown by dispatcher which were crashing PT Run (#5199)
* fix report window error icon

* fix for launching web page to create new issue

* Made icon theme aware

* removed exception that was added by mistake

* modified the issue reporting link to match that in the settings page

* added comment
2020-07-24 13:58:40 -07:00
Arjun Balgovind
c4ddb7d351 [PT Run] Resolve text alignment issues for RTL input languages (not for mixed strings) (#5170)
* Added logic to switch TextBox/TextBlock flow direction on language change

* Move event handler to separate method

* Moved code to function
2020-07-24 13:34:49 -07:00
Arjun Balgovind
ab0047a9b7 Added additional checks in version info methods (#5173) 2020-07-24 13:34:17 -07:00
Arjun Balgovind
39ec10cbba Add telemetry event for measuring time taken to display PT Run (#5201)
* Added LauncherHotkeyEvent

* Split into cold state and warm state events
2020-07-24 12:38:16 -07:00
Niels Laute
65b6513207 [Settings] Multiple UX refinements (e.g. OOBE) (#5113)
* Updated FZ page with new resizing logic

* Multiple UX fixes. Added updated resizing logic to other pages

* Added ImageResizer file format example snippets to tooltip

* Added warning icon in hotkeysettingscontrol

* Fixed formatting

* Keys label can now be set

* Replaced custom titleblocks with converter

* Updated strings

* Added correct links to the images. Added PT description on General page as well.

* Colorpicker image updates

* Rounded corners

* Fix

* Added back in correct subtitles
2020-07-24 12:02:56 -07:00
Clint Rutkas
beb4494534 Adding back in key for FZ Json (#5210)
* Adding back in key for FZ Json

* defaulting key to string empty

Co-authored-by: Clint Rutkas <crutkas@microsoft.com>
2020-07-24 11:35:03 -07:00
martinchrzan
983ff901f2 Prevent clicking through when selecting a color using color picker (#5203) 2020-07-24 18:44:46 +02:00
Ivan Stošić
5d66473a4f [FancyZones] Remove m_workArea from ZoneWindow (#5185)
* Removed m_workArea from ZoneWindow

* Remove another unused variable
2020-07-24 11:17:39 +02:00
Arjun Balgovind
ff1e04b957 [Keyboard Manager] Added in Shortcut to Key and Key to Shortcut remapping (#5070)
* Added union class

* Added key to shortcut backend implementation

* Added tests

* Added tests for CapsLock/modifier workaround for key to shortcut

* Added correct JSON loading step

* Cleaned shortcut remap code to use helper function for modifier keys

* Removed RemapKey class

* Enable Key to Shortcut in UI along with Type Shortcut in Remap key window

* Fixed orphaning and unsuccessful remap dialog

* Fixed column width

* Renamed second type key button

* Fixed Type Shortcut issues

* Fixed shortcut to key backend logic and manually tested most scenarios

* Added s2k in UI, manually verified its working

* Added one more k2s test

* Added tests for s2k

* Added tests for Caps Lock workaround in shortcut remaps

* Fixed formatting

* Fixed formatting

* Removed safety code since it can cause issues with code generated key up events

* Added test for key up scenario

* Tweaked warning text

* Tweaked text

* Tweaked text to fit in two lines

* telemetry additions
2020-07-23 16:43:49 -07:00
ryanbodrug-microsoft
53c4c6cbb8 User/ryanbod/folders enable staticanalysis (#5137)
* Enabling static analysis and settings treat warnings as errors

* Fixing/Supressing static analysis warnings in ContextmenuLoader and removing unused code

* Fixing static analysis errors in Main.cs

* Fixing static analysis warnings for folderpluginSettings.xaml.cs
2020-07-23 16:05:36 -07:00
Arjun Balgovind
47736603af Fix saving to JSON in PT Settings (#5197)
* Added argument to fix saving to JSON in PT Settings

* Added argument to fix saving to JSON in PT Settings
2020-07-23 16:04:04 -07:00
Clint Rutkas
b6e5a5e655 Color picker tweaks (#5194)
* Adjustments on default keystroke and removing key string whihc really didn't do anything

* moving color picker into alphabetical order

* removing removed property

* adjusting comment based on feedback from martin

Co-authored-by: Clint Rutkas <crutkas@microsoft.com>
2020-07-23 15:53:12 -07:00
Clint Rutkas
84018f5b61 Fixing more warnings (#5189)
* classes need to be in new files

* adding in new lines

Co-authored-by: Clint Rutkas <crutkas@microsoft.com>
2020-07-23 14:56:21 -07:00
Clint Rutkas
592d3afe6d shifting naming (#5190)
Co-authored-by: Clint Rutkas <crutkas@microsoft.com>
2020-07-23 13:08:20 -07:00
Clint Rutkas
2bd2ec7a2e Renaming properties to C# styling to fix warnings (#5166)
* Renaming properties

* Update PowerLauncherProperties.cs

trying to kick CI

* PowerLauncher is way for naming.

Co-authored-by: Clint Rutkas <crutkas@microsoft.com>
2020-07-23 11:01:49 -07:00
Alekhya
f25d2b3a86 removed incrementalClean for launcher (#5172) 2020-07-23 10:34:32 -07:00
Clint Rutkas
886cea56f3 bring on all tests (#5118)
* Update build-powertoys-steps.yml

bring on all tests

* Update build-powertoys-steps.yml

* Update build-powertoys-steps.yml

* Update build-powertoys-steps.yml

* adding in runsetting

* Delete unit.tests.x64.runsettings

* Update build-powertoys-steps.yml

* Update build-powertoys-steps.yml

* Update build-powertoys-steps.yml

* Update build-powertoys-steps.yml

* Update build-powertoys-steps.yml

* Update build-powertoys-steps.yml

* Update build-powertoys-steps.yml

* Update build-powertoys-steps.yml

* Update build-powertoys-steps.yml

* Update build-powertoys-steps.yml

* Update build-powertoys-steps.yml

Co-authored-by: Clint Rutkas <crutkas@microsoft.com>
2020-07-23 09:24:16 -07:00
Niels Laute
ed21efc003 [Read me] Updated screenshots in the overview for settings page (#5148)
* Updated images

* Updated shorcut guide image ref

* Updated image titles

* Uppercase to lowercase

* Added high res colorpicker images

* Updated extension

* Updated extensions

* Added Color Picker description

* Updated readme

* Removed CP section

* Update README.md

Co-authored-by: Niels Laute <niels9001@hotmail.com>
2020-07-23 09:21:11 -07:00
ColdTune
c379cca2e5 [FancyZones Editor] Prevent new zones from being unreachable (#4457)
* stack new zones

* Changed startup location of window editor

* Zones start in upper left

* Changed Focus Zone Initialization

* Zones.Add

* Reset zone position when it goes off screen
2020-07-23 10:53:19 +02:00
Clint Rutkas
efa04b4cd8 Adding in headers (#5163)
Co-authored-by: Clint Rutkas <crutkas@microsoft.com>
2020-07-22 16:55:04 -07:00
Mehmet Murat Akburak
35a214603f [PowerRename] Clear capturing groups with more than 1 digit (#5116)
User has actually signed CLA, see #4722

* Clear capturing groups with more than 1 digit

* Fix issue in regex pattern

* Add unittest

* Fix regex patterns

* Edit unittest

* Fix regex pattern, add some tests
2020-07-22 14:12:46 -07:00
Chris Davis
3acc96cab1 Check the shell attributes of the items to see if we should show the Power Rename menu item and or perform a rename. Also fix a unit test for the SVG Thumbnail Provider. (#5158) 2020-07-22 13:27:58 -07:00
Clint Rutkas
14247fa75a Dev/crutkas/fixing warnings (#5161)
* new lines & braces

* Tabs /space auto fix

Co-authored-by: Clint Rutkas <crutkas@microsoft.com>
2020-07-22 13:27:17 -07:00
Alekhya
6efec9d280 Minor text refinement in drive detection (#5132)
* minor text refinement

* removed the word Detected

* Revert "Merge branch 'tweakUIText_DriveDetectionWarning' of https://github.com/alekhyareddy28/PowerToys into tweakUIText_DriveDetectionWarning"

This reverts commit b193905d00, reversing
changes made to 0d0db138f8.

* Revert "Revert "Merge branch 'tweakUIText_DriveDetectionWarning' of https://github.com/alekhyareddy28/PowerToys into tweakUIText_DriveDetectionWarning""

This reverts commit b653814eec.

Co-authored-by: Clint Rutkas <clint@rutkas.com>
2020-07-22 13:10:53 -07:00
Arjun Balgovind
063253d5e7 Updated menu key name, and added missing IME key codes (#5110) 2020-07-22 12:57:13 -07:00
Divyansh Srivastava
f773604dec Added functionality for left/right key navigation (#5067)
* Added functionality for left/right key navigation

* Update Behviour of left/right navigation

* Code cleanup

* Null check for results VM

* Added tests for results view model

* Update test namings
2020-07-22 12:48:42 -07:00
ryanbodrug-microsoft
25d43354b3 User/ryanbod/enable codeanalysis for calculatorplugin (#5130)
* Turning on static analysis and removing warning for NoMages.

* Fixing static analysis errors in NumberTranslator.cs

* Fix: Severity Code Description Project File Line Suppression State
Error CA1810 Initialize all static fields in 'Main' when those fields are declared and remove the explicit static constructor Microsoft.Plugin.Calculator C:\Repos\PowerToys\src\modules\launcher\Plugins\Microsoft.Plugin.Calculator\Main.cs 30 Active

* Throwing exception if arguments are null to fix static analysis errors.

* Ignoring CA1031

* Logging exceptions for Calculator queries.
2020-07-22 12:42:30 -07:00
Alekhya
b59ec5e78b Fix for internet shortcut app not showing up on installation (#5131)
* added changed for internet shortcut app

* Added AppChanged event for url files

* Tests added

* refactoring
2020-07-22 10:58:01 -07:00
ricardosantos9521
f7ad935dfb Copy Indexer Languages Folder during instalation (#5036)
* Copy Indexer Languages Folder during instalation

* add ja.xaml to IndexerLanguagesComponent

Co-authored-by: ricardosantos9521 <ricar@ASUS>
Co-authored-by: Clint Rutkas <clint@rutkas.com>
2020-07-22 09:47:29 -07:00
Clint Rutkas
1a210ae684 updating test related stuff (#5133)
Co-authored-by: Clint Rutkas <crutkas@microsoft.com>
2020-07-22 09:46:20 -07:00
Seraphima Zykova
92c666692d [FancyZones] Dragging a window across monitors transparency fix (#5102) 2020-07-22 19:00:03 +03:00
Chris Davis
761f0a78f4 Add registry entry for PowerRename to enable showing up on the context menu for OneDrive placeholders (#5140)
Co-authored-by: Enrico Giordani <enricogior@users.noreply.github.com>
2020-07-22 11:59:36 +02:00
stefansjfw
0027a0af40 [FancyZones] Split and reorganize FancyZonesData and JSON Helpers (#5028)
* Rename JsonHelpers to FancyZonesData
Add new JsonHelpers.[h|cpp] files

* Introduce FancyZonesDataTypes

* Move first part of JSON related stuff to JsonHelpers files

* Small refactor

* Move all json related stuff to JsonHelpers

* Minor refactoring

* Fix formating

* Remove GetPersistFancyZonesJSONPath() and GetPersistAppZoneHistoryFilePath()
Remove GetActiveZoneSetTmpPath(), GetDeletedCustomZoneSetsTmpPath and GetAppliedZoneSetTmpPath()
Simplify tests

* Address PR comment - Rename FancyZonesDataNS to FancyZonesData

* Address PR comment - Rename local var

* Delete obsolete stuff

* Remove double and uneeded includes
Introduce const non-localizable string variables
Address all othe PR comments

* Add comments to explain hardcoded values

* Remove FancyZonesData namespace

* Introduce const non-localizable string variables in FancyZonesDataTypes

* Add comments to explain FancyZonesData maps

Co-authored-by: Clint Rutkas <clint@rutkas.com>
2020-07-22 10:39:13 +02:00
Clint Rutkas
4f45cf1386 Upgrading CppWinRT and adding in new packages.config (#5134)
Co-authored-by: Clint Rutkas <crutkas@microsoft.com>
2020-07-22 00:35:39 -07:00
Clint Rutkas
9dfa685fb1 update WinUI and Xaml Islands (#5135)
Co-authored-by: Clint Rutkas <crutkas@microsoft.com>
2020-07-21 17:41:07 -07:00
Chris Davis
40d2ef4f0a Add SVG Thumbnail Provider for Windows Explorer (#5048)
* Add SVG Thumbnail Provider

* Some cleanup

* Small settings changes

* Update PowerToys.sln

Remove Any CPU entries

* Fix project configuration issues

* Fix bad merge

* Update output path for SVG thumbnail provider

* Sync with latest
2020-07-21 16:27:12 -07:00
Clint Rutkas
8e5a877997 Update readme.md 2020-07-21 14:10:25 -07:00
Clint Rutkas
d1b3f77feb Update readme.md 2020-07-21 14:08:42 -07:00
Clint Rutkas
a5b7234d6f Update readme.md 2020-07-21 14:08:12 -07:00
Clint Rutkas
398991f3c1 Adjusting settings to leverage base class (#5127)
* renaming / deleting file

* adding in base class

Co-authored-by: Clint Rutkas <crutkas@microsoft.com>
2020-07-21 14:06:39 -07:00
Arjun Balgovind
d01b93ae5f Move OS detection to common and PowerToysInterop (#5120)
* Remove os-detection project

* Removed os-detection project from sln

* Added os-detection to PowerToysInterop

* Removed references to os-detection and added PowerToysInterop.dll to the ImageResizer folder
2020-07-21 12:01:59 -07:00
Alekhya
b31d9761fa Fix for the issue where PT Run was preventing UWP apps from building in VS (#5109)
* We should not deny other processes access to this item

* added a catch block for argument exception

* using memory stream instead of URI

* removed denyNone as it is the default config
2020-07-21 10:26:37 -07:00
Clint Rutkas
1ba403db7b Update community.md (#5111)
Added in Martin and updated Chris to reflect new SVG feature
2020-07-21 08:14:01 -07:00
Alekhya
96cd135f82 Detect if all Drives are indexed and show a warning if they aren't (#5015)
* opens new settings search options

* Catching file not found exception

* removed unnecessary header files

* Added display strings and cleaned up code

* reduced the number of max results to 30

* added log statement for exception

* Added drive detection to settings ui but still doesn't reflect on toggling it

* added getter setter for DriveDetectionWarning

* Got UI and backend to work as expected

* Reading value from registry working as expected

* Added test for settings

* Added tests for drive detection

* rename drive detection

* Localized indexer string

* formatting

* resolving merge conflict

* Added theme aware warning icon

* changed text for the warning

* Added the warning images to the installer
2020-07-20 17:50:42 -07:00
Divyansh Srivastava
c85cd4ac24 Migrate files from Wox to PowerLauncher (#5014)
* Moved all files from Wox to Powerlauncher

* Removed Wox project

* Changed namespace for imported files

* Resolved errors for VM

* Added build dependency order

* Fixed errors in helper class

* Remove Wox files

* Fixed errors in SingleInstance class

* Fixed wox.tests

* Fixed MSI

* Removed obsolete methods from PublicAPI

* nit fixes

* Throw null exception

* Fix merge conflict
2020-07-20 11:22:03 -07:00
martinchrzan
177546bab6 Color picker documentation images (#5106)
* Added documentatino images for the color picker guide

* Added a screenshot of settings
2020-07-20 18:17:42 +02:00
vldmr11080
29e2c982d4 Handle desktop switch and open on active monitor functionality (#5065) 2020-07-20 11:55:19 +02:00
martinchrzan
bc301f269a New color picker module - integrated from github.com/martinchrzan/Col… (#4778)
* New color picker module - integrated from github.com/martinchrzan/ColorPicker

* Trying to fix build in github

* Replaced icon in the settings to use font icon instead of path icon

* Closing ColorPicker.exe when PowerToys process closed, added color picker project into runner dependencies, restoring cursors on exit, added ManagedCommon as a dependency into installer

* User/ryanbod/fix colorpicker release (#5046)

* Changing configuration to x64 instead of AnyCPU.   The previous configuration was preventing the ManagedCommon binary from being loaded in Release.

* Updating MSI Installer with new icons (#4998)

* Adding missed dll into installer

* Fixed potential exception

* Creating settings.json on the first start when there are none, fixed default keyboard shortcut

* Added ColorPicker.exe.config into installer

* Start filewatcher after default settings file is created

* Fixing build

Co-authored-by: ryanbodrug-microsoft <56318517+ryanbodrug-microsoft@users.noreply.github.com>
2020-07-18 21:27:36 +02:00
Alekhya
d09253e532 Functionality to detect Win32 apps which are installed, deleted or renamed while PowerToys is running (#4960)
* Added file system wrapper and interface

* added win32program repository which would load store app and also handle new apps being added/deleted

* Added event handlers to win32 program repo

* added paths to monitor and setting FSWs for each location

* Events firing as expected

* filter extensions added, events fire as expected

* override gethashcode so that duplicates don't show up. OnCreated and OnDeleted events trigger as expected

* implemented setter for filters in FileSystemWatcher

* Rename adds item but does not seem to delete the previous app

* catching an exception when a duplicate item is inserted

* Removed notify filter for directory because we only need to monitor files

* Added exe programs to be indexed in the desktop and startmenu

* created a new class to init FileSystemHelpers instead of main

* Added fix for shortcut applications to work as expected while renaming and deleting them

* Added wrappers for file system operations

* Added some tests

* Added all tests for appref-ms and added a condition to search in sub directories

* Added tests for Exe applications

* Added lnk app tests

* Added tests for shortcut applications

* removed unnecessary wrappers

* override Equals for win32

* removed debug statements

* Fixed exe issue

* Fixed internet shortcut exception

* fixed renaming shortcut apps

* Added a retry block for ReadAllLines

* capitalized method name - RetrieveTargetPath

* made naming consistent, helper variables start with underscore

* Added the exception condition back

* renamed Win32ProgramRepositoryHelper to Win32ProgramFileSystemWatchers

* made win32Program repository variable static

* changed list to ilist

* disposed file system watchers

* make retrieveTargetPath upper case in tests
2020-07-17 22:32:21 -07:00
Nkateko
034079b441 fixed build failure (#5071)
Co-authored-by: Lavius Motileng <laviusntk>
2020-07-17 16:13:13 -07:00
Clint Rutkas
22f0e2615f Create SECURITY.md 2020-07-17 14:45:18 -07:00
Divyansh Srivastava
45bab578c4 Fix Focus issue on clicking list view (#5045)
* Focus working after right click

* Removed unnecessary focussable setter
2020-07-17 12:29:36 -07:00
Nkateko
e8de6f0ace [Settings]Change text color for disabled controls (#4837)
* change text color for disabled controls

* added custom textblock controls and updated FZ Xaml

* updated Image Resizer Page

* updated Shotcut Guid

* updated KBM Settings

* reverted unrealted changes

* reverted unrealted changes

* reverted unrealted changes

* reverted unrealted changes

* updated power launcher

* reverted unrealted changes

* Image Resizer: renoved spaces in file format hint text

* Image Resizer: restored file format header

Co-authored-by: Lavius Motileng <laviusntk>
2020-07-17 11:01:46 -07:00
Andrey Nekrasov
13c2ce3f31 autoupdate: wait for the .exe updater to exit before restarting PowerToys (#5004) 2020-07-17 11:51:20 +03:00
Divyansh Srivastava
3bf9a3833a Fix for result on empty query (#4927)
* Updated last query before clearing results

* Cancel last query expicitly
2020-07-16 16:23:01 -07:00
Enrico Giordani
c035bf2d37 Update version to 0.19.3 (#5033) 2020-07-16 17:15:05 +02:00
Kamesh Kotwani
2b9ab05888 updated the .msi installer version in README.md (#5032) 2020-07-16 17:06:49 +02:00
Mehmet Murat Akburak
a8153dd8db [PowerRename] Using File Date Time Attributes Feature (#4722)
* Add basic using file attributes functionality

* Correctly return result

* Refactor

* Move retrieving date attribute to get function

* Cover various milliseconds patterns, retrieve file attributes only when needed

* Correctly check if date/time pattern is used. Remove wstring cast

* Use correct flags on CreateFile call to handle directories

* rebase to master

* Perform transform operation at last to make it not mess with date/time variables

* Refactor, remove extra space
2020-07-16 14:24:49 +03:00
dependabot[bot]
ebe70a52d1 Bump lodash from 4.17.15 to 4.17.19 in /src/settings-web (#5024)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.19)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-16 12:19:58 +02:00
Seraphima Zykova
2282e72d03 [FZEditor] Grid layout resizers fixes (#4095)
* Swap resizers on drag
* Update resizers on split if existing split is used
* Fix accuracy error
* Zone ids are ordered
* Cancel merge on other actions
* Split if one of the snapped splitters is dragged
2020-07-16 12:54:15 +03:00
C. Augusto Proiete
5a590512bd Rename MarkDown -> Markdown to resolve differences for non-Windows machines (#3758) 2020-07-15 10:23:59 -07:00
ryanbodrug-microsoft
6131181ea4 Updating MSI Installer with new icons (#4998) 2020-07-15 05:35:08 -07:00
Roy
78946c11ea [PowerToys Run] Implemented Setting to Clear Search Query when PowerToys Run is Launched (#4995)
* Implemented Clear Input On Launch

* Move logic to seperate command on viewmodel

* Added Settings Sync
Moved logic from OnDeactivated to OnActivated

* Complete after testing

Co-authored-by: Roy <royvou@hotmailcom>
2020-07-14 17:54:21 -07:00
Alekhya
f59abe23c3 Fix for File Not Found exception while indexing invalid Package App (#4971)
* Catching file not found exception

* removed unnecessary header files

* Added a string.empty check for installed location

* reusing package wrapper instead of package installing event args
2020-07-14 11:44:50 -07:00
Divyansh Srivastava
74412766fa Remove redundant code from Wox project (#4878)
* Removed unnecessary files from wox

Removed themes, images and unused xaml files

* Removed unused functions from settings view model

* Removed update manager

* Cleaned helper class

* Delete SingletonWindowOpener.cs

* nit fixes
2020-07-14 09:05:21 -07:00
Ivan Stošić
39b0401c55 Allow selecting multiple adjacent zones even when they slightly overlap (#4974) 2020-07-14 14:51:24 +02:00
Niels Laute
5f0e8d3d8e [PowerToys Run] Updated (plugin) icons with MDL2 (#4149)
* Updated (plugin) icons with MDL2

* Image wasn't updating

* Based on feedback, updated app icon and windowwalker icon

* Updated app icon

* Updated Window Walker icon

* Change build action / Copy to output directory to None and Do Not Copy - like it was originally

* Fix

* Fix

* Resized images

* Added theme awereness based on somil55s PR

* Added theming to Shell and WindowWalker

* Revert "Added theming to Shell and WindowWalker"

This reverts commit f492c4efdb.

* Revert "Added theme awereness based on somil55s PR"

This reverts commit 8edd3226be.

* Typo fix

* Added new theming support for the new Calculator, Shell and WindowWalker icons

* Added Unit test reference back in
2020-07-13 22:59:19 -07:00
Kamesh Kotwani
01ca13cccb upgraded the version number of .msi installer file (#4954)
The previous version was 0.19.0 in line-77, upgraded that to 0.19.1.
2020-07-13 12:42:52 -07:00
Arjun Balgovind
6a9badd31b [Keyboard Manager] Cleanup header file references to improve incremental build time (#4880)
* Remove WinUI include in KeyboardManagerState.h

* Changed include steps

* Clean up headers in KeyboardManagerUI except XamlBridge.h

* Cleaned up headers in KeyboardManager common and test

* Cleaned up headers in KeyboardManager project

* Removed headers from XamlBridge

* Removed some headers from kbm common pch

* Added MP flag to reduce build time

* Added missing include
2020-07-13 11:49:09 -07:00
Arjun Balgovind
7db5d6a307 [Keyboard Manager] Fixed app-specific shortcut causing app to lose focus scenario (#4902)
* Fixed focus issue and added tests

* Changed key names

* Use constant instead of hardcoded empty string
2020-07-10 17:53:41 -07:00
Arjun Balgovind
bb2049411b [Keyboard Manager] Add JSON support for App Specific shortcuts (#4840)
* Enable app specific shortcut remapping

* Fixed lowercase function call

* Add test file

* Moved GetForegroundProcess to II and added tests

* Fixed runtime error while testing due to heap allocation across dll boundary

* Renamed function

* Changed shortcutBuffer type

* Linked App specific UI to backend

* Added shortcut validation logic on TextBox LostFocus handler

* Moved Validate function and changed default text

* Changed to case insensitive warning check

* Changed to case insensitive warning check at OnClickAccept

* Fixed alignment and spacing issues

* Added app-specific JSON support in backend

* Updated landing page

* Make listview horizontally scrollable

* Added tests

* Consider all case variants of All Apps in textbox to be global shortcuts
2020-07-10 17:07:28 -07:00
Divyansh Srivastava
653ae777d5 Packaged apps test (#4921)
* Added wrapper for PackageManager and Package class

* Added tests for package in development and framework mode

* Renamed UWP test file

* Improved readability of UWP tests
2020-07-10 13:43:02 -07:00
Niels Laute
ec803d63c8 [Run] Updated tooltip styling and fixed casing (#4877)
* Added custom tooltip style (with theming support) that represents the UWP tooltip style.

* Removed unnecessary space in text

* Fixed run as admin casing

* Fixed casing for Indexer plugin
2020-07-10 12:06:57 -07:00
Ivan Stošić
412d80efe3 [FancyZones] Hold Ctrl to select any number of zones (#4850)
* Started work

* Did something, not yet sure that it works

* Sort of works

* Cleari highlighted zones when using Ctrl after leaving a monitor

* Remove unnecessary line

* Enhanced UX. Maybe refactor?

* Changed the logic behind zone selection when dragging

* Various fixups
2020-07-10 11:06:01 +02:00
ryanbodrug-microsoft
b1d662a5b1 Improving performance of Adding and Removing Packaged Apps (#4521) (#4900)
* Merging in Theme changes and moving win32Tests to Microsoft.Plugin.Program.UnitTests

* Fixing message format for exception

* Changing test structure.  Need to add unit tests.

* Updating packagerepository comment based on pr feedback

* Fixing potential race condition in ListRepository.  Now internally implemented as a concurrent dictionary.

* Removing unecessary implementation of IRepository interface as this is implemented by the base class.

* Restoring checks for invalid uwp apps based on PR feedback. This was accidentally removed when moving the initialize outside the constructor.

* Fixing comments

* Adding newline to end of file for IProgramRepository
2020-07-09 13:14:53 -07:00
ryanbodrug-microsoft
12d9d59d85 Revert "Improving performance of Adding and Removing Packaged Apps" (#4898)
* Revert "Adding newline to end of file for IProgramRepository"

This reverts commit d55cac80bf.

* Revert "Fixing comments"

This reverts commit a1ecdc9bfa.

* Revert "Restoring checks for invalid uwp apps based on PR feedback. This was accidentally removed when moving the initialize outside the constructor."

This reverts commit 0e8c1cb0fd.

* Revert "Removing unecessary implementation of IRepository interface as this is implemented by the base class."

This reverts commit 1c724280f5.

* Revert "Fixing potential race condition in ListRepository.  Now internally implemented as a concurrent dictionary."

This reverts commit 9ff8246a9d.

* Revert "Updating packagerepository comment based on pr feedback"

This reverts commit 2c45956030.

* Revert "Changing test structure.  Need to add unit tests."

This reverts commit 1c267a55d5.

* Revert "Fixing message format for exception"

This reverts commit f60bdc3dd4.

* Revert "Merging in Theme changes and moving win32Tests to Microsoft.Plugin.Program.UnitTests"

This reverts commit 030dfc2370.
2020-07-09 12:10:48 -07:00
Enrico Giordani
b13e719ab3 Update version to 0.19.2 (#4896) 2020-07-09 18:17:30 +02:00
Arjun Balgovind
451aea87aa Added dummy key event to prevent Start Menu from popping up (#4874) 2020-07-09 08:14:47 -07:00
ryanbodrug-microsoft
d55cac80bf Adding newline to end of file for IProgramRepository 2020-07-09 07:02:19 -07:00
ryanbodrug-microsoft
a1ecdc9bfa Fixing comments 2020-07-09 07:02:19 -07:00
ryanbodrug-microsoft
0e8c1cb0fd Restoring checks for invalid uwp apps based on PR feedback. This was accidentally removed when moving the initialize outside the constructor. 2020-07-09 07:02:19 -07:00
ryanbodrug-microsoft
1c724280f5 Removing unecessary implementation of IRepository interface as this is implemented by the base class. 2020-07-09 07:02:19 -07:00
ryanbodrug-microsoft
9ff8246a9d Fixing potential race condition in ListRepository. Now internally implemented as a concurrent dictionary. 2020-07-09 07:02:19 -07:00
ryanbodrug-microsoft
2c45956030 Updating packagerepository comment based on pr feedback 2020-07-09 07:02:19 -07:00
ryanbodrug-microsoft
1c267a55d5 Changing test structure. Need to add unit tests. 2020-07-09 07:02:19 -07:00
ryanbodrug-microsoft
f60bdc3dd4 Fixing message format for exception 2020-07-09 07:02:19 -07:00
ryanbodrug-microsoft
030dfc2370 Merging in Theme changes and moving win32Tests to Microsoft.Plugin.Program.UnitTests 2020-07-09 07:02:19 -07:00
Rahul Das
3295ea84a4 Update readme.md (#4893)
Fixed the broken link for The "Wiki"
2020-07-09 14:23:25 +02:00
TheTank20
ef2041b919 Changed to where it is in line with PowerToys (#4885) 2020-07-09 09:51:41 +02:00
Arjun Balgovind
4634085402 [Keyboard Manager] Add app-specific shortcuts to Remap shortcuts UI (#4804)
* Enable app specific shortcut remapping

* Fixed lowercase function call

* Add test file

* Moved GetForegroundProcess to II and added tests

* Fixed runtime error while testing due to heap allocation across dll boundary

* Renamed function

* Changed shortcutBuffer type

* Linked App specific UI to backend

* Added shortcut validation logic on TextBox LostFocus handler

* Moved Validate function and changed default text

* Changed to case insensitive warning check

* Changed to case insensitive warning check at OnClickAccept

* Fixed alignment and spacing issues
2020-07-08 16:24:30 -07:00
Alekhya
411140c3ea Add run as admin context menu item for application results returned by the Indexer Plugin (#4807)
* Added run as admin context menu item to apps returned by indexer plugin

* Added a test and localized strings

* localize strings

* Add more tests for folder and other file types

* fixed run as admin -> run as administrator

* resolved merge conflict

* refactored tests

* moved common code to helper and added logs

* moved start process to the helper class

* added more info in a comment

* fixed count in tests as open in console was added

* removed additional code that was added while fixing merge conflicts
2020-07-08 13:05:57 -07:00
Divyansh Srivastava
638cd1dd48 [Run] Open in console functionality (#4739)
* Added open in console for indexer

* Added open in console fpr indexer and folder plugin

* Added open in console to program plugin

* Added string localization for program plugin

* Added test for win32 program

* Added test for win32 programs

* Added test for indexer plugin

* Localization for context menu title

* Added tests for folder plugin

* Added tests for indexer plugin

* Code cleanup

* Improved logging and nit fixes

* Updated tooltip for open in console

* Updates tests

* Removed subtitle property from contextmenuresult class

* Improved logging for context menu loaders
2020-07-08 09:56:26 -07:00
Yevhenii Holovachov
e3e6b23b7c fixed unit tests (#4865) 2020-07-08 18:00:44 +03:00
vldmr11080
ac5a3e7a65 [FancyZones] Update app zone history on window removal (#4696)
* Update app zone history on every new window assignment to zone

* Compare window positions with already placed windows

* Remove window property only after processing window removal from zone
2020-07-08 16:59:36 +02:00
stefansjfw
106c316442 [FancyZones] Don't create new custom layout when applying Focus layout (#4755)
* Only persist data when applying existing layout if it is scaled

* Fix applying edited Focus layout

* Fix different Focus zone sizes in editor and engine

* Fix codestyle
2020-07-08 15:34:19 +02:00
vldmr11080
db229cf1bf [FancyZones] Open window on active monitor (#4361)
* Initial design for opening window on active monitor

* Perform entire handling in DPI unaware thread

* Codestyle improvement

* Improve resizing mechanism and optimise code a bit

* Remove unneeded code, make simple helper functions inline

* Make this feature configurable

* Code optimization, improve positioning for some applications

* Retry positioning for certain applications

* Improve readability

* Address PR comments: Minor code style improvements

* Remove retries in custom positioning

* Position new toggle in settings menu
2020-07-08 10:37:42 +02:00
Kamesh Kotwani
94f66b812a Fixed the broken link for example_settings.png (#4843)
Due to changes in the directory structure of the `doc/images` folder, the link for `examples_settings.png` was broken and image was not showing up. I have fixed the link and image is showing up in the README.md file.
2020-07-08 07:31:53 +02:00
Alekhya
a314106b7e Set the name(not the description) as the Title of the Result (#4745)
* Added tests to verify that the name is always set as the title and never the description

* removed AppType as an argument

* refactored code

* added comments

* localized strings

* removed empty constructor

* made setsubtitle private

* removed the mock Win32 class used for unit testing

* removed the UWP tests
2020-07-07 15:00:17 -07:00
Divyansh Srivastava
8d72bc0ea4 Tooltip for indexer and program plugin (#4589)
* Fix multiline title issue

* Added code to display tooltip for program and indexer plugin

* Added tests for Result class

* Theme based color for tooltip

* Added colors for tooltip

* Added string tags to tooltip

* Add initial show delay

* Seperated textbox for title and path
2020-07-07 13:02:39 -07:00
Arjun Balgovind
1533c9315f [Keyboard Manager] Enable App-specific shortcuts in the KBM backend (#4628)
* Enable app specific shortcut remapping

* Fixed lowercase function call

* Add test file

* Moved GetForegroundProcess to II and added tests

* Fixed runtime error while testing due to heap allocation across dll boundary

* Renamed function

* Remove unused code

* Changed process checking step to include substrings

* Changed back to exact match included match without file extension
2020-07-06 16:45:53 -07:00
stefansjfw
70405045d7 [FancyZones] Remove Editor tmp files paths cmd args and make Editor 'debugable' easier (#4279)
* Remove Editor cmd args - tmp files
Add 'Debug mode' startup for Editor

* Remove fixed device info string

* Move if file exist check

* Add enum to improve readability

* Introduce ParseDeviceMode enum

* Organize strings

* Move title to localizable strings
2020-07-06 17:40:25 +02:00
vldmr11080
3d623506a8 [FancyZones] Invalidate cached work areas when display resolution or taskbar position changes (#4800)
* Invalidate cached work areas when display resolution or taskbar position changes

* Update comments in code
2020-07-06 17:34:28 +02:00
stefansjfw
11df74c292 Fix different grid layout shown by editor than the engine (#4758) 2020-07-06 17:04:40 +02:00
Nkateko
a935d69408 added null value handle for image resizer size input (#4721)
* addle null value handle for image resizer size input

* check for negative withd and height

* check for negative withd and height

* Update ImageSize.cs

Co-authored-by: Lavius Motileng <laviusntk>
2020-07-03 15:40:53 -07:00
Arjun
cffe0196e2 Added unit tests 2020-07-03 11:08:21 -07:00
Arjun
ac2a9deb75 Changed flags for newly pressed key after invoking shortcut 2020-07-03 11:08:21 -07:00
Alekhya
282e0adfe2 Removed the race condition (#4735) 2020-07-03 10:25:11 -07:00
Alekhya
ce60bcedb0 Add keyboard shortcut in tooltip for context menu items (#4702)
* Folder plugin - copy path

* indexer plugin - localized

* removed program plugin reference as it was not needed

* program plugin localized

* shell plugin localized

* removed extra semi colon

* Added loc files in other languages as well for indexer
2020-07-03 09:42:44 -07:00
Mehmet Murat Akburak
c9fd409650 Add trailing slash to OutDir (#4708) 2020-07-03 19:37:16 +03:00
Arjun Balgovind
8a908aa33f Rework the HotkeyManager and KeyboardHook interop classes (#4710)
* Use GetAsyncKeyState calls and remove additional thread usage

* Removed Environment.Exit
2020-07-03 08:21:06 -07:00
Enrico Giordani
f9a5242e75 [FancyZones] draw active zones on top of inactive zones (#4727) 2020-07-03 17:04:52 +02:00
Divyansh Srivastava
7dabcc00ed Added fix to update text on navigation using up/down arrow (#4626)
* Added fix to update text on navigation using up/down arrow

* Fix incorrect alignment with ghost text

* Added tests
2020-07-02 18:29:39 -07:00
Alekhya
18f4e9db31 Fix for Memory issue with context menu items (#4597)
* Added the inotifyPropertyChanged to all the properties and that stops the memory for shooting up

* some more inotify properties added

(cherry picked from commit 26fa05d9b661dadc5ab0257d540ab838a07c43a6)

* Revert "some more inotify properties added"

This reverts commit 845a94c9b2.

* Removed unnecessary inotifypropertychanged interfaces and cleaned up the code

* removed the ctrl+c from folder plugin

* removed unnecessary init

* Added unit test to check if PropertyChanged is called

* renamed var

* refactored the tests

* formatting and adding comments

* changed access modifier in test

* Used observable collection instead of a list

* clearing the observable collection instead of setting it to a new one
2020-07-02 13:48:41 -07:00
Clint Rutkas
593ab6b014 unifying a lot of test packages (#4667)
Co-authored-by: Clint Rutkas <crutkas@microsoft.com>
2020-07-02 11:02:05 -07:00
Arjun Balgovind
656c33e942 Moved each test class to a separate file (#4592) 2020-07-02 10:25:57 -07:00
Clint Rutkas
4330338285 adjustment for #3191 (#4674)
* adjustment for #3191

* forgot DE

Co-authored-by: Clint Rutkas <crutkas@microsoft.com>
2020-07-02 10:09:25 -07:00
Clint Rutkas
44c41d52b2 upgrading wincppwinrt across the board (#4669)
Co-authored-by: Clint Rutkas <crutkas@microsoft.com>
2020-07-02 09:42:51 -07:00
Clint Rutkas
449a3f479f unified mahapps (#4664)
Co-authored-by: Clint Rutkas <crutkas@microsoft.com>
2020-07-02 09:42:31 -07:00
Divyansh Srivastava
159a7c4947 Removed undeclared binding (#4590) 2020-07-02 09:32:53 -07:00
Mehmet Murat Akburak
30f442d774 [PowerRename] upper/lower/titlecase transform feature (#4183)
* Add basic transform functionality

* Add basic transform functionality

* Change toupper/tolower/isspace to towupper/towlower/towisspace. For loops omitted if possible.

* Avoid wcslen() in for statement

* Avoid wcslen() in for statement

* Add basic transform functionality

* Change toupper/tolower/isspace to towupper/towlower/towisspace. For loops omitted if possible.

* Avoid wcslen() in for statement

* Avoid wcslen() in for statement

* Add basic transform functionality

* Change toupper/tolower/isspace to towupper/towlower/towisspace. For loops omitted if possible.

* Avoid wcslen() in for statement

* Adjust Powerrename Interface

* Add trimming rename string

* Remove leading and trailing spaces from rename string

* Add support for transforming only item name or extension. Temporarily remove trimming to refactor. Change CAPITALIZED to TITLECASE

* Fix bug when search for area is empty

* Add trimming back with refactor(leading spaces, trailing spaces, trailing dots)

* Now supports transforming when search area is empty

* Add smarter titlecase

Transformation breaks when new filename contains an unusable character (\/?:*?"<>|)
These characters need to be removed from new name anyway.

* minor bugfix

* Add unittests, contains failing tests

* Remove unnecessary/failing tests

* remove generated file

* some code formatting and fix memory leak issues

* Use proper allocation, change int to size_t

* Refactor. Move transforming to Helpers.cpp

* Refactor. Move trimming to Helpers.cpp

* Change StrDup to SHStrDup. Some refactoring.

* Fix memery leak, add proper result controls, use newNameToUse in functon calls becaause it is where the final form of the string is tracked

* Change declarations of strings, add proper result controls

* Slightly widen the labels to cover the whole text

* Add extended characters support

* Rename a variable

* Correctly identify the last word for titlecase

* Add empty line to last line of resource.h
2020-07-02 11:52:01 +03:00
Yevhenii Holovachov
e8685de7f7 [FancyZones] Fixed shift behavior (#4653) 2020-07-01 18:23:57 +03:00
Ivan Stošić
4c08b591f1 [FancyZones] Restore size of zoned windows (#4463)
* Started work

* I can't debug anything, cleaning

* Added settings, [[Not Tested]]

Not even compiled

* Tested, the most basic features work

* Refactor, add RestoreSize

* Added DPI awareness

* Fixed a potential issue with resizing zoned windows

* Fixup: Potentially unsafe memory-layout of std::pair replaced with std::array

* Fixup: Use .data() instead of a pointer

* Further refactoring

* Integrated Win+Arrow keys with the Restore size feature

* Fixed an issue where window's on-screen position is not restored properly

* Fixed a bug pointed out by Enrico
2020-07-01 15:36:05 +02:00
Andrey Nekrasov
16528888df Shortcut guide: add support for hotkeys + comments (#4517) 2020-07-01 12:37:50 +03:00
Andrey Nekrasov
738b5f5707 PowerLauncher: fix disabling by adjusting OpenProcess params (#4577) 2020-07-01 12:36:26 +03:00
Enrico Giordani
17343210c0 Now working on 0.19.1 (#4602) 2020-06-30 18:40:16 +02:00
Clint Rutkas
43aa2f5cd9 0.19 readme update (#4583)
* Update README.md

* Update README.md

* Update README.md

* Update README.md
2020-06-30 09:32:15 -07:00
martinchrzan
423cd20922 Merge pull request #4596 from microsoft/user/martinchrzan/nugetConfig
Clearing any nuget configuration that might be coming from parent dir…
2020-06-30 09:38:26 +02:00
Martin Chrzan
69d5ef36e2 Clearing any nuget configuration that might be coming from parent directories, fixes #4595 2020-06-30 08:50:53 +02:00
Arjun Balgovind
0dd17cc175 Cleanup null reference fix with correct code practice (#4587)
* Fixed null reference exception on context menu buttons

* Cleaned up fix with correct practices
2020-06-29 15:47:10 -07:00
Arjun Balgovind
16e56c4edb Fixed null reference exception on context menu buttons (#4586) 2020-06-29 13:47:35 -07:00
Yevhenii Holovachov
f46b876fd6 Removed hook creating from constructor (#4572) 2020-06-29 18:19:43 +03:00
Clint Rutkas
1181ab67ba fixing installer by removing file no longer used (#4545)
Co-authored-by: Clint Rutkas <crutkas@microsoft.com>
2020-06-27 11:10:50 -07:00
Niels Laute
014c26be25 Fix for visual glitch (#4537) 2020-06-27 09:39:02 -07:00
Divyansh Srivastava
99eb9429fd Add calculator images to MSI (#4530) 2020-06-26 23:01:15 -07:00
Divyansh Srivastava
d3b10d0d4d Theme aware plugin (#4499)
* Migrate theme manager to infrastructure and added it as input to public API instance

* Working event-delegate for PublicAPIInstance

* Theme aware UWP applications

* Theme aware program plugin

* Update query icon on theme change

* Theme aware calculator plugin

* Fix issue with query running before theme change

* Theme based changes in ImageLoader

* Removed ErrorIcon direct references and added references from ImageLoader

* Nit fixes

* Removed unnecessary TODO in UWP.cs

* Added preference to theme based icons

* Added IDisposable interfaces to unsubscribe events
2020-06-26 17:42:06 -07:00
Niels Laute
d9597d5ad5 [Run] Minor UX tweaks (#4526)
* Tweaked the shadows so it's conform to Windows standards. Fixed margins so UI elements are more aligned

* Fix
2020-06-26 16:12:26 -07:00
Arjun Balgovind
55272e5ea2 Fix settings issue where settings.json would get reset on runner startup (#4524)
* Added flag to avoid saving before modules is initialized

* Added comment
2020-06-26 14:46:47 -07:00
Alekhya
d17fc86fa4 [PT Run] Clear binary and json storage files on version upgrade (#4479)
* Clean termination of powertoys process.

* Fixed issue with run not responding to WM_CLOSE

* Fixed serialization error in pinyin and image cache

* Fixed merge conflict

* Fixed nit wrt to master

* Basic framework of clearing up of cache is working

* formatting

* removed the default argument of load

* fixed nit comment

* rewriting the PowerToys version

* Each storage file has an associated version file which helps decide whether or not to delete that file on loading

* removed unnecessary reference

* renamed file to StoragePowerToysVersionInfo

* adding log files

* Checking whether the version strings are null, if so, we would clear the cache

* Added filepath to log files to make it more informative

* fixed nit naming

* using lesser than to compare instead of portable version

Co-authored-by: Divyansh Srivastava <somm14divi@gmail.com>
2020-06-26 11:54:42 -07:00
Clint Rutkas
0b391584d4 Update README.md 2020-06-26 11:35:37 -07:00
Arjun Balgovind
e3e02aa30b Skip ErrorIcon and DefaultIcon while resizing the dictionary (#4520)
* Skip ErrorIcon and DefaultIcon while resizing the dictionary

* Removed autogenerated using statement
2020-06-26 11:30:04 -07:00
Arjun Balgovind
403f53a397 Fixed ghost text casing (#4498) 2020-06-26 10:29:34 -07:00
Alekhya
bfd79e1af2 reduced the description weight by half (#4519) 2020-06-26 10:20:54 -07:00
Alekhya
5745a984aa Partial Fix for Memory issue - Limiting the number of ImageSources cached (#4433)
* reducing storage of images

* Added task.run

* cleaned up code and added comments

* Renamed variable

* refactored code

* Removed task.run because it was leading to race conditions in the concurrent dictionary and it was taking only upto 10 ms for reordering the dictionary

* Added comments and fixed variable name
2020-06-26 10:20:35 -07:00
Enrico Giordani
d2f1f67a22 Update version to 0.19.0 (#4518) 2020-06-26 19:01:03 +02:00
Enrico Giordani
d98cb50d7a Update version to 0.19.0 (#4518) 2020-06-26 19:00:27 +02:00
Yevhenii Holovachov
cc4864976a Changed position of callback(false) call on disabling hook for shift (#4515) 2020-06-26 17:20:10 +03:00
Divyansh Srivastava
92fa8b7421 PowerToys Run cache issue (#4472)
* Clean termination of powertoys process.

* Fixed issue with run not responding to WM_CLOSE

* Fixed serialization error in pinyin and image cache

* Fixed merge conflict

* Fixed nit wrt to master

* Fixed undeterministic behaviour of Environment.Exit function

* Update timing for terminate process
2020-06-25 16:03:50 -07:00
Arjun Balgovind
aad2e8012b Add environment exit statement (#4496) 2020-06-25 14:21:09 -07:00
Enrico Giordani
b3eae80ece [CI, test] add prefix to common lib test dll (#4491) 2020-06-25 18:04:50 +02:00
Enrico Giordani
b58d5b6066 [CI, test] add common lib unit tests (#4489) 2020-06-25 16:20:43 +02:00
Arjun Balgovind
f1b6e6570c Fix remapping issues to Home/PgUp and other keys which are also present on NumPad (#4398)
* Added extended key flag to more keys

* Add test for extended key flag

* Move shlwapi.lib reference

* Added shcore ref

* Fixed pipeline incompatibility

* Fixed lib declaration in common

* Fixed formatting

* Remove unused statements

* removed another statement
2020-06-24 20:28:54 -07:00
Arjun Balgovind
8e758507b1 Enable code analysis on Keyboard Manager projects (#4455)
* Enable code analysis and fix GetTickCount warning

* Fix arithmetic casting warning
2020-06-24 14:55:02 -07:00
Arjun Balgovind
2601d8b702 Fix missing dlls in MSI for 0.19 (#4474)
* Add/remove missing dlls and add search.interop nuget package ref

* Fixed formatting
2020-06-24 14:48:16 -07:00
Yevhenii Holovachov
fa0545e4b3 Added info to ManagedCommon project (#4468) 2020-06-24 18:36:37 +03:00
Yevhenii Holovachov
690208fd4e Fixed info for powerrename, previewpane and shortcutguide (#4447) 2020-06-24 18:08:55 +03:00
Chakib Ljazouli
3272575f70 Dynamic dialog titles for Key/Shortcuts remapping (#4251)
* Fix typo in dialog title

* Pass Remap Keys/Shortcuts dialog titles as argument
2020-06-23 20:00:58 -07:00
ryanbodrug-microsoft
fad3142a47 Fix for warning: Error CA1806 BringProcessToForeground calls SendInput but does not use the HRESULT or error code that the method returns. This could lead to unexpected behavior in error conditions or low-resource situations. Use the result in a conditional statement, assign the result to a variable, or pass it as an argument to another method. PowerLauncher C:\Repos\PowerToys\src\modules\launcher\PowerLauncher\MainWindow.xaml.cs 73 Active 2020-06-23 17:51:17 -07:00
ryanbodrug-microsoft
1f74dcff14 Changing 'Any CPU' to 'x64' for Managed Common project. 2020-06-23 17:51:17 -07:00
ryanbodrug-microsoft
62c7183922 Setting 'Treat warnings as errors' to 'All' 2020-06-23 17:51:17 -07:00
ryanbodrug-microsoft
ef73b0a07f Setting treat warnings as errors to true for release as well. 2020-06-23 17:51:17 -07:00
ryanbodrug-microsoft
ec7d42d1fd Supressing NU1701 warning on known working nuget packages. This will allow us to turn warnings as errors on. 2020-06-23 17:51:17 -07:00
ryanbodrug-microsoft
256a17f2c9 Fixing:
Error CS0436 The type 'ActionKeywords' in 'C:\Repos\PowerToys\src\modules\launcher\PowerLauncher\ActionKeywords.xaml.cs' conflicts with the imported type 'ActionKeywords' in 'Wox, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. Using the type defined in 'C:\Repos\PowerToys\src\modules\launcher\PowerLauncher\ActionKeywords.xaml.cs'. PowerLauncher C:\Repos\PowerToys\src\modules\launcher\PowerLauncher\ActionKeywords.xaml 7 Active
2020-06-23 17:51:17 -07:00
ryanbodrug-microsoft
165ffed9e6 Fix CA 1060 by moving PInvokes to a common NativeMethodsClass
Severity Code Description Project File Line Suppression State
Warning CA1060 Move pinvokes to native methods class PowerLauncher C:\Repos\PowerToys\src\modules\launcher\PowerLauncher\App.xaml.cs 24 Active
2020-06-23 17:51:17 -07:00
ryanbodrug-microsoft
b89d6d78ef Fix or the following warning. Removing unused ReportWindow from Launcher
Warning CA1812 ReportWindow is an internal class that is apparently never instantiated. If so, remove the code from the assembly. If this class is intended to contain only static members, make it static (Shared in Visual Basic). PowerLauncher C:\Repos\PowerToys\src\modules\launcher\PowerLauncher\ReportWindow.xaml.cs 15 Active
2020-06-23 17:51:17 -07:00
ryanbodrug-microsoft
6890561723 Severity Code Description Project File Line Suppression State
Warning CA1307 The behavior of 'string.IndexOf(string)' could vary based on the current user's locale settings. Replace this call in 'PowerLauncher.MainWindow.ListView_FirstItem(string)' with a call to 'string.IndexOf(string, System.StringComparison)'. PowerLauncher C:\Repos\PowerToys\src\modules\launcher\PowerLauncher\MainWindow.xaml.cs 269 Active
2020-06-23 17:51:17 -07:00
ryanbodrug-microsoft
849ce04def Fix for Warning CA1823:
Severity Code Description Project File Line Suppression State
Warning CA1823 Unused field '_progressBarStoryboard'. PowerLauncher C:\Repos\PowerToys\src\modules\launcher\PowerLauncher\MainWindow.xaml.cs 27 Active
2020-06-23 17:51:17 -07:00
ryanbodrug-microsoft
a29baf19d0 Fix for:
Severity Code Description Project File Line Suppression State
Warning CA2007 Consider calling ConfigureAwait on the awaited task PowerLauncher C:\Repos\PowerToys\src\modules\launcher\PowerLauncher\MainWindow.xaml.cs 305 Active
2020-06-23 17:51:17 -07:00
ryanbodrug-microsoft
10d6a1fa54 Severity Code Description Project File Line Suppression State
Warning CA1801 Parameter text of method DelayedCheck is never used. Remove the parameter or use it in the method body. PowerLauncher C:\Repos\PowerToys\src\modules\launcher\PowerLauncher\MainWindow.xaml.cs 303 Active
2020-06-23 17:51:17 -07:00
ryanbodrug-microsoft
6ea181c286 Fix for:
Warning CA1820 Test for empty strings using 'string.Length' property or 'string.IsNullOrEmpty' method instead of an Equality check. PowerLauncher C:\Repos\PowerToys\src\modules\launcher\PowerLauncher\MainWindow.xaml.cs 291 Active
2020-06-23 17:51:17 -07:00
ryanbodrug-microsoft
2d890603c6 Fix for Warning CA1822 Member 'Hyperlink' does not access instance data and can be marked as static PowerLauncher C:\Repos\PowerToys\src\modules\launcher\PowerLauncher\ReportWindow.xaml.cs 45 Active 2020-06-23 17:51:17 -07:00
ryanbodrug-microsoft
d1ca30a28f Fix for Warning CA1822 Member 'GetHighContrastBaseType' does not access instance data and can be marked as static PowerLauncher C:\Repos\PowerToys\src\modules\launcher\PowerLauncher\ThemeManager.cs 65 Active 2020-06-23 17:51:17 -07:00
ryanbodrug-microsoft
35fccf8af8 Fix for Warning CA1031: Removing catch, as it doesn't recover from the exception, but hides the exception from showing up in crash reports / telemetry.
Warning CA1031 Modify '.ctor' to catch a more specific allowed exception type, or rethrow the exception. PowerLauncher C:\Repos\PowerToys\src\modules\launcher\PowerLauncher\SettingsWatcher.cs 33 Active
2020-06-23 17:51:17 -07:00
ryanbodrug-microsoft
f5baa56e05 Fix for CA1031.
Settings.json is locked by the settings application and throws a system IO Exception.   This should be syncronized with the settings application, but for now I'm just fixing the exception to be more specific and not hide unexpected exceptions.

System.IO.IOException: 'The process cannot access the file 'C:\Users\ryanbod\AppData\Local\Microsoft\PowerToys\PowerToys Run\settings.json' because it is being used by another process.'

Severity Code Description Project File Line Suppression State
Warning CA1031 Modify 'OverloadSettings' to catch a more specific allowed exception type, or rethrow the exception. PowerLauncher C:\Repos\PowerToys\src\modules\launcher\PowerLauncher\SettingsWatcher.cs 76 Active
2020-06-23 17:51:17 -07:00
ryanbodrug-microsoft
d2c1be5c2d Warning CA2002 Do not lock on objects with weak identity PowerLauncher C:\Repos\PowerToys\src\modules\launcher\PowerLauncher\SettingsWatcher.cs 43 Active 2020-06-23 17:51:17 -07:00
ryanbodrug-microsoft
fd6525a9de Fix for Warning CA1822 :
Severity Code Description Project File Line Suppression State
Warning CA1822 Member 'ConvertHotkey' does not access instance data and can be marked as static PowerLauncher C:\Repos\PowerToys\src\modules\launcher\PowerLauncher\SettingsWatcher.cs 85 Active
2020-06-23 17:51:17 -07:00
ryanbodrug-microsoft
ba03a134da Fix for CA1822:
Severity Code Description Project File Line Suppression State
Warning CA1822 Member 'WaitForPowerToysRunner' does not access instance data and can be marked as static PowerLauncher C:\Repos\PowerToys\src\modules\launcher\PowerLauncher\App.xaml.cs 130 Active
2020-06-23 17:51:17 -07:00
ryanbodrug-microsoft
9184c64ecb Fix for
Severity Code Description Project File Line Suppression State
Warning CA1401 P/Invoke method 'OpenProcess' should not be visible PowerLauncher C:\Repos\PowerToys\src\modules\launcher\PowerLauncher\App.xaml.cs 125 Active
2020-06-23 17:51:17 -07:00
ryanbodrug-microsoft
653a9664e4 Removing warnings relative to passing in unlocalized string literals. Most of these pertain to debug messages and aren't user facing. We may want to revisit localizing these later. 2020-06-23 17:51:17 -07:00
ryanbodrug-microsoft
51d0cedb29 Fix for:
Warning CA1806 Main calls TryParse but does not explicitly check whether the conversion succeeded. Either use the return value in a conditional statement or verify that the call site expects that the out argument will be set to the default value when the conversion fails. PowerLauncher C:\Repos\PowerToys\src\modules\launcher\PowerLauncher\App.xaml.cs 45 Active
2020-06-23 17:51:17 -07:00
ryanbodrug-microsoft
fa6d1bb23c Fix for:
Warning CA1062 In externally visible method 'void App.Main(string[] args)', validate parameter 'args' is non-null before using it. If appropriate, throw an ArgumentNullException when the argument is null or add a Code Contract precondition asserting non-null argument. PowerLauncher C:\Repos\PowerToys\src\modules\launcher\PowerLauncher\App.xaml.cs
2020-06-23 17:51:17 -07:00
ryanbodrug-microsoft
0f3b154699 Fix for the following:
Warning CA1001 Type 'MainWindow' owns disposable field(s) '_firstDeleteTimer' but is not disposable PowerLauncher C:\Repos\PowerToys\src\modules\launcher\PowerLauncher\MainWindow.xaml.cs

    Warning CA1816 Change App.Dispose() to call GC.SuppressFinalize(object). This will prevent derived types that introduce a finalizer from needing to re-implement 'IDisposable' to call it. PowerLauncher C:\Repos\PowerToys\src\modules\launcher\PowerLauncher\App.xaml.cs
2020-06-23 17:51:17 -07:00
ryanbodrug-microsoft
d6e2b096ca Adding static analysis (Microsoft.CodeAnalysis.FxCopAnalyzers) to PowerLauncher Project 2020-06-23 17:51:17 -07:00
Arjun Balgovind
2104a1250e Added step to dispose the keyboard hook object (#4449) 2020-06-23 17:19:36 -07:00
Alekhya
ca99f60964 [PT Run] Find applications using the PATH env variable (#4418)
* Search for programs in the path env variable

* removing list of disabled programs

* Added env variable string to classify apps

* reverted the fullpath change

* removing full paths while calculating dups

* removed dups

* removed debugging code

* Renamed to run command

* Added condition to filter run commands unless there is an exact match

* renamed occurances to RUN COMMAND

* localized the subtitle - Run command

* Added tests

* add fullpath back to hash calculation

* renamed the function
2020-06-23 11:40:11 -07:00
Yevhenii Holovachov
147c08bd71 Added info to FancyZones, KeyboardManager and PowerLauncher projects (#4445) 2020-06-23 18:36:39 +03:00
Yevhenii Holovachov
ad440f70fa Added info to projects inside root, tests and common folders (#4413) 2020-06-23 16:53:16 +03:00
Yevhenii Holovachov
bb22155482 Added info to new settings projects (#4417) 2020-06-23 16:47:07 +03:00
Seraphima Zykova
5c1999b3d0 [Settings] 'Check for updates' button behavior changed (#4385) 2020-06-23 15:53:02 +03:00
Arjun Balgovind
87f0fcfd52 Added hack to show window if open (#4428) 2020-06-22 15:38:55 -07:00
Clint Rutkas
f6d53bc337 upgrade xaml based nuget packages (#4426)
* Settings packages updated

* removing WinUI references from wox base

* removing unneeded reference

Co-authored-by: Clint Rutkas <crutkas@microsoft.com>
2020-06-22 15:23:39 -07:00
Arjun Balgovind
720fad80c3 Fix Launcher focus for most cases (#4362)
* Add SendInput hack

* Cleaned up code

* Fixed formatting

* Moved Activate fn call

* Add more comments with link to issue
2020-06-22 14:47:33 -07:00
Divyansh Srivastava
196055e50e Index Desktop Applications (#4422)
* Added support to index desktop app

* Fixed dedup for url files

* Added internet shortcut scheme for epic games

* Added test for internet shortcut dedup

* Updated hostname for steam game
2020-06-22 12:34:57 -07:00
Andrey Nekrasov
73125574e6 MSI: fix include dirs causing MSI pre-build event fail to build (#4415) 2020-06-22 17:00:39 +03:00
Ivan Stošić
27a35a0388 Fixed an issue with the shift key (#4411) 2020-06-22 15:57:30 +02:00
Andrey Nekrasov
8c6085b933 Runner: move Launcher to its own folder and simplify dll loading (#4379) 2020-06-22 13:01:33 +03:00
Andrey Nekrasov
bef14f551e FancyZones: fix possible crash in GetWorkAreasByDesktopId (#4380) 2020-06-22 12:46:54 +03:00
Yevhenii Holovachov
e56c2eb6ca Fixed version property to pull from Version.props in C# projects (#4382) 2020-06-22 12:14:00 +03:00
Lavius Motileng
165365473f [Settings][Fix][Image Resizer ] Unused text box when selecting custom percent in new settings (#4344)
* save general settings to file upon launch

* ImageResizer: Added flags to disable and hide extra boxes

Co-authored-by: Lavius Motileng <laviusmotileng-ms>
2020-06-19 13:18:37 -07:00
Andrey Nekrasov
3bdd9a850f Runner: improve debugging experience with hooks (#4377)
* Runner: improve debugging experience with hooks
2020-06-19 14:13:38 +03:00
yuyoyuppe
b84ea020f2 fixup! forgot to rename 2020-06-19 13:27:29 +03:00
Seraphima Zykova
90efc5740f [WinAppDriver tests] Affection on user setting files fix (#4186) 2020-06-19 11:09:12 +03:00
Alekhya
c78e6588ad init description (#4391) 2020-06-18 17:15:21 -07:00
Divyansh Srivastava
a21a3827fd Remove hidden files from indexer results (#4325)
* Added functionality to not display hidden files

* Added interfaces for seperating db layer

* Updated variable naming and refactored Database connection class

* Added tests for WindowsSearchAPI class

* Fixed nit with braces

* Added function to test that all connections from database are closed
2020-06-18 15:42:28 -07:00
yuyoyuppe
2effbd0baf Runner: improve debugging experience with hooks 2020-06-18 14:27:20 +03:00
Andrey Nekrasov
7ed03c8b90 Runner: autoupdate should prefer .exe installer instead of .msi (#4216) 2020-06-18 13:43:09 +03:00
Niels Laute
59ce90e924 [PowerToys Run] Vertical scrollbar for results list (#4343)
* Enabling vertical scrollbar and colors

* Extending the list under the scrollbar

* Fix
2020-06-17 09:48:30 -07:00
Yevhenii Holovachov
da38e6a23d [FancyZones] Changed Shift key capture method (#4274)
* Used windows hook to capture shift key instead of getting state of key on window move
2020-06-17 16:06:16 +03:00
vldmr11080
698e5ec6ea [FancyZones] Move window into last known position on active work area (if possible) (#4218)
* Move window into last known position on active work area (if possible)

* Refactor code to avoid double checks

* Address PR comments

* Perform all HWND checks at one place

* Improve handling of active/primary work area in app zone history

* Address PR comments: naming, arguments checks

* Rename some functions to increase readability

* Implement special handling in 2+ monitor scenario

* Minor naming change

* Simplify

* Improve readability

* Remove blank line

* Don't move away from secondary monitor if there is no app zone history

* Update comment

* FancyZonesEditor should not be zoned

* Preserve width and height (if possible) when opening on active monitor

* Maintain w/h whenever possible

* Remove scaling, add window coordinates on active monitor top-left corner

* If there is no app zone history on secondary screen, fallback to default windows behavior.
2020-06-17 11:55:14 +02:00
ryanbodrug-microsoft
7f25e3ba97 Allowing launcher to be run as startup project with no command line args (#4267) 2020-06-16 10:53:27 -07:00
Clint Rutkas
1a3500cad3 moving the editor config out the the root folder (#4289)
Co-authored-by: Clint Rutkas <crutkas@microsoft.com>
2020-06-16 08:59:38 -07:00
stefansjfw
31c30a7602 Apply general settings on runner startup (#4302) 2020-06-16 10:55:15 +02:00
Mehmet Murat Akburak
014f3b9873 [PowerRename] capturing groups fix (#4181)
* Fix capturing group bug when Match All Occurrences is not checked

* Capture groups are now available when Match All Occurences option is not selected

* Bug fix when capture group is indicated with leading zeros. $01 should be considered as $1 etc

* Use flags in regex_replace() when Match All Occurences is not selected

Now the behaviour is consistent with how regex works when Match All Occurences is selected.
2020-06-16 11:04:14 +03:00
Arjun Balgovind
49cbcf01c6 Add workaround for IME Caps Lock issue (#4123)
* Add workaround for Japanese IME Caps Lock issue

* Changed tweak to reset modifier key rather than Caps Lock

* added tests

* Fixed test comment

* Moved environment initialization in KBM tests to TEST_METHOD_INITIALIZE
2020-06-15 16:48:00 -07:00
stefansjfw
f8cc129f04 [FancyZones] Move Trace::VirtualDesktopChange (#4320)
* Move Trace::VirtualDesktopChange to catch only the actual VD changes

* Update the check

* Add double check
2020-06-15 19:44:07 +02:00
Alekhya
236c1208e6 PWAs should not show up when searching for the main app (#4221)
* Search shows up steam games

* Formatting

* Filtering only those steam shortcuts which run an application

* Using equals instead of ==

* PWAs should not show up when searching for the main app

* Modified the subtitle to say progressive web application

* renamed to web application

* To search for web applications for all chromium based browsers

* Renamed it to WebApplication

* Added unit tests and refactored code

* made string global const

* Added localization tags

* Added a separate function for localization as the IPublic API was not available to all

* Removed unnecessary references and variables

* Update src/modules/launcher/Plugins/Microsoft.Plugin.Program/Languages/de.xaml

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

* Apply suggestions from code review

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

* Added enum for application types

Co-authored-by: htcfreek <61519853+htcfreek@users.noreply.github.com>
2020-06-12 13:11:24 -07:00
Davide Giacometti
4c70e75bfc fix launcher network path (#4224) 2020-06-12 11:42:31 -07:00
pekspro
e8c5f3a882 Fixes null reference exception. (#3436) 2020-06-12 11:42:13 -07:00
Divyansh Srivastava
302df56ee1 Added support to run apps in development mode (#4217) 2020-06-11 18:24:45 -07:00
chrisgch
ccfc4d68f3 Setting WS_CHILD on preview handler (#3048) 2020-06-11 15:32:35 -07:00
Arjun Balgovind
071ea1dc97 KBM - Set up tests for keyboard hook remapping logic (#4004)
* Add test proj, refactor proj with filters, and move single remap function to a separate header

* Moved all methods to header files

* remove more unused commented code

* Reverted sln file

* Fixed sln file

* Added interface wrapping SendInput calls

* fixed formatting

* Created test mock class

* Added keyboard input logic

* Fixed compilation errors and added nuget reference to CppWinRT

* Added tests for single key remapping

* Refactored code for adding shortcut remap tests

* Separated test classes

* Fixed tests in release mode

* Added more tests

* Resolved comments
2020-06-11 13:07:46 -07:00
Tomas Agustin Raies
670033c4da [Settings/Run] LowLevel Keyboard hooking for Hotkeys (#3825)
* [Launcher/Settings] Low Level Keyboard Hooks

* [Run] LowLevel Keyboard Hook for Hotkeys

* Prevent shortcuts from auto repeating when keeping the keys pressed down
2020-06-11 12:59:36 -07:00
Arjun Balgovind
fa7e4cc817 Tweaked OS Detection project structure and added os check for PT Run (#4253)
* Tweaked OS Detection project structure and added check in Launcher

* Reverted formatter change to minimize diff
2020-06-11 11:47:15 -07:00
Clint Rutkas
67c8d80190 Safeguarding end user links in settings (#4226)
* first adjustment to wiki move

* Image Resizer and deleting imgs for FZ

* updating stuff to aka links

* updating app to leverage aka links

* moving files to wiki

* KBM adjustment

* updating

* getting PT Run moved over

* Shortcut guide and fixing launcher's readme text

* Update README.md

* img for shortcut guide moved to wiki

* updated setting img to be aka link as well
2020-06-11 10:16:39 -07:00
vldmr11080
792ce53992 Fix invalid namespace (#4259) 2020-06-11 17:03:02 +02:00
vldmr11080
b0a25f59d9 [Installer] Restart explorer.exe programatically after successful update (#4215)
* Restart explorer.exe programatically after successful update

* Move RestartManager related code into common

* Add newline at the end of files

* Note that explorer.exe should not be localized string
2020-06-11 10:09:06 +02:00
Niels Laute
d76234c112 [PT Run] Updated themes (dark/light/highcontrast) (#4119)
* Updated themes (dark/light/highcontrast)

* Updated semi-transparent colors to opague colors (for ClearType)

* Added theme brushes (light/dark/high contrast) for scrollbar.
2020-06-10 11:15:15 -07:00
Yevhenii Holovachov
6fdfd3b9e7 [PT Run] Closing PT Run and new settings app when PowerToys is not running (#3853)
Closing PowerLauncher, FZ Editor and new settings app when PowerToys is not running
2020-06-10 20:58:34 +03:00
dependabot[bot]
38350a1ae4 Bump websocket-extensions from 0.1.3 to 0.1.4 in /src/settings-web (#4108)
Bumps [websocket-extensions](https://github.com/faye/websocket-extensions-node) from 0.1.3 to 0.1.4.
- [Release notes](https://github.com/faye/websocket-extensions-node/releases)
- [Changelog](https://github.com/faye/websocket-extensions-node/blob/master/CHANGELOG.md)
- [Commits](https://github.com/faye/websocket-extensions-node/compare/0.1.3...0.1.4)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-06-10 19:36:53 +02:00
Alekhya
ce2bba751c Fix for Steam games not showing up (#4124)
* Search shows up steam games

* Formatting

* Filtering only those steam shortcuts which run an application

* Using equals instead of ==

* Case change in Internet shortcut
2020-06-10 10:34:48 -07:00
Arjun Balgovind
f149736a20 Add additional shortcut validation logic in Remap Shortcuts UI (#4068)
* Add more validation logic for shortcut remaps UI

* Fixed a bug in CheckRepeatedModifier logic
2020-06-10 08:25:41 -07:00
Alekhya
40330be123 Added case insensitive hash code calculation (#4206) 2020-06-09 14:12:53 -07:00
Divyansh Srivastava
93af4fc6b0 Fixed initial focus on WPF issue (#4113)
* Fixed initial focus on WPF issue

* Added comment for property change

* Updated function naming for visibility callback
2020-06-09 09:16:20 -07:00
Josh Soref
b574d4e388 Spelling - remaining code changes (#3963)
* spelling: commit

* spelling: exclusion

* spelling: initial

* spelling: occurred

* spelling: programmatically

* spelling: should

* spelling: successfully

* spelling: committed

* spelling: directly
2020-06-09 10:11:02 +02:00
Ivan Stošić
eb4b429e19 [Action runner] Support running generic targets as non-elevated (#3863)
* Initial work, not tested

* Forgot the most important part

* Use target argument instead of hardcoded string

* Removed old way of running Launcher

* Completed rebase, updated some code
2020-06-08 22:53:40 +02:00
Josh Soref
21929b1db2 Spelling misc (#4199)
* spelling: accessibility

* spelling: occurrences
2020-06-08 22:43:59 +02:00
Clint Rutkas
a5197ee039 making alt-f4 ignored (#4023) 2020-06-08 13:18:42 -07:00
Clint Rutkas
e974981725 Update community.md 2020-06-05 15:46:52 -07:00
Niels Laute
9ae4dd3dfe Updated the PT Run icon to #4041 (#4114) 2020-06-05 15:45:18 -07:00
Alekhya
d0e4dabe90 Fix for UWP icons not showing up (#4008)
* Added fix for UWP icons not showing up

* updated comment and reversed the list of target sizes

* find the icon closest in size to the appIcon size

* Remove nlog reference that was added by mistake
2020-06-05 15:05:00 -07:00
Clint Rutkas
a3c569137e Getting system up and going instructions (#4013)
* Update readme.md

* Update readme.md

* Update readme.md

* adjusted based off Raf's comments

* Update readme.md
2020-06-05 14:21:06 -07:00
Arjun Balgovind
3edb360d79 Fix remapping from Num Lock (#4083)
* Added num lock remap workaround

* Added comments

* Changed to 2 suppressed key events

* Fixed typos
2020-06-05 12:54:52 -07:00
Arjun Balgovind
f5285b48b1 Fix remapping to Alt+Tab/Win+Space style shortcuts (#3965)
* Add skip to currently invoked shortcut code - should change no behavior

* Fixed Alt tab issue

* Added comment

* Added step to check if original shortcut action key should be pressed

* Fix number of cases in comment
2020-06-05 11:39:38 -07:00
Alekhya
c01b76e098 Fix for PWAs and command prompt not showing up as the first result (#4020)
* Added code which increments the score for the app without any arguments

* Removed magic number and added var
2020-06-05 11:34:16 -07:00
Divyansh Srivastava
6adb47c447 Theming for powertoys run (#4007)
* Removed Wox Theme Manager

* Added Light and dark theme and template for high contrast theme

* Updated themeManager to remove strings

* Fixed issue with high contrast theme not being applied

* Fixed formatting

* Updated MSI to include dll for Mahapps and controlzex

* Added support for multiple high contrast themes
2020-06-05 09:58:30 -07:00
vldmr11080
b0b2d3a727 [FancyZones] App zone history on multiple desktops (#3932)
* Remove app zone history belonging to deleted virtual desktop.

* Implement support fancy zones app zone history on multiple desktops.

* Break when device id is located to avoid unnecessary loop iterations.

* Fix failing unit tests after JSONHelpers API changes.

* Use valid UUIDs in json helper unit tests.

* User properly formated test data in app zone history unit tests.

* Don't delete entire app history when moving out of zone on one desktop.
2020-06-05 17:25:52 +02:00
Yevhenii Holovachov
8410d7b08e [FancyZones] Secondary mouse buttons click to toggle zones activation (#3989)
* Changed option name in settings, changed behaviour of zones activation by mouse to switch
* Removed IsDragEnabled from ZoneWindow
2020-06-05 17:53:08 +03:00
Enrico Giordani
e6408a0c37 [runner] Change way of dropping privileges to start PT Run 2020-06-05 10:35:11 +02:00
Seraphima Zykova
e96c82b171 Uniform style for button designations in settings (#4070) 2020-06-05 09:51:09 +03:00
Enrico Giordani
ee31813a0d Now working on 0.18.3 2020-06-05 07:27:45 +02:00
Lavius Motileng
ac62fd6204 added error handling for FZ Hotkeys (#4057)
* added error handling for FZ Hotkeys

* moved hint to hot key control text

* updated icon size 16px

* updated styling and fixed typos

* fixed typo

* moved text to string resource

Co-authored-by: Lavius Motileng <laviusmotileng-ms>
2020-06-04 14:52:04 -07:00
Clint Rutkas
25fbcc144c Update README.md
tweaking to 18.2
2020-06-04 11:18:41 -07:00
Lavius Motileng
30cb7e62fd removed restrictions for image-resizer file format (#3377) 2020-06-04 11:05:28 -07:00
smiley
7c7ccc3a07 [PowerToys Run] Add "ignore hotkeys in fullscreen" setting (#3262) (#3604)
Connect Wox's existing "ignore hotkeys in fullscreen mode" setting to PowerLauncher and the PowerToys settings UI.

This allows PowerLauncher to ignore hotkeys if any application is currently in fullscreen mode, whether it's real exclusive fullscreen or borderless windowed mode. This applies to things like fullscreen games, video and presentations but not maximized windows.
2020-06-04 10:21:16 -07:00
vldmr11080
fb3f4fa0a8 Connect appZoneHistory settings with rest of the stack in settings v2 (#4047) 2020-06-04 14:33:03 +02:00
stefansjfw
2b62244806 Cleanup Editor cmd args (#4022) 2020-06-04 13:01:42 +02:00
stefansjfw
f5dc197e8b [example_powertoy] Remove example_powertoy (#3955)
* Remove example_powertoy

* Address PR comments
2020-06-04 12:28:30 +02:00
Josh Soref
e6060048bd spelling: restart 2020-06-04 11:38:21 +02:00
Clint Rutkas
f83ff068ae Update README.md 2020-06-03 16:03:36 -07:00
Clint Rutkas
b21a6b76e0 Expanding 'community' section (#4028)
* updating for #3977

* spelling
2020-06-03 15:28:59 -07:00
Arjun Balgovind
70527022d9 Moved component to KBM directory (#4009) 2020-06-03 10:41:35 -07:00
Alekhya
8cddd595d4 Fix for File explorer not showing up and multiple notepads (#3969)
* reverted the dedup code, file explorer shows up but so do duplicates

* Fixed file explorer and dedup

* Formatting

* Added tests for all the cases

* Formatting

* Tests

* take name and exe into consideration while calculating hash

* unique primes while calculating hash code
2020-06-02 14:36:32 -07:00
Niels Laute
96b79d5f06 Fabric UI reference update (#3991)
Microsoft changed the name of Fabric UI to Fluent UI. Updated title and URL (which still links to the same page, just with a direct link instead of a redirect).
2020-06-02 12:04:58 -07:00
vldmr11080
1c7b07d614 Remove workarounds related to 0000 dekstop GUID. (#3931) 2020-06-02 12:06:36 +02:00
Niels Laute
0d59de5767 Fixed spacing issue 2020-06-02 11:26:58 +02:00
Niels Laute
e3613c54e9 'Autocomplete' is more common than 'autocompletion' 2020-06-02 11:26:58 +02:00
Niels Laute
5956e6d9c1 Updated strings for PowerRename 2020-06-02 11:26:58 +02:00
Niels Laute
ec895f271b Page header is now center aligned with first item, similiar to W10 Settings 2020-06-02 11:26:58 +02:00
Niels Laute
751f30e316 Changed numberbox to slider for FZ. Added opacity value textblock for all sliders 2020-06-02 11:26:58 +02:00
Niels Laute
cee8253cd3 Fixed width for controls so they are nicely aligned 2020-06-02 11:26:58 +02:00
stefansjfw
ae4cb6e372 Move FancyZones to separate build&install dir (#3961) 2020-06-02 10:48:07 +02:00
Arjun
398f976f3e Added KeyboardManager directory 2020-06-02 10:26:21 +02:00
Clint Rutkas
5f049beb04 Update pipeline.user.windows.yml 2020-06-01 16:10:34 -07:00
Alekhya
a8d67a1c60 Take space into consideration while calculating the first matched index (#3874) 2020-06-01 15:25:14 -07:00
Clint Rutkas
26aa9727a1 Update pipeline.user.windows.yml 2020-06-01 15:21:38 -07:00
Clint Rutkas
3cef696a65 Update pipeline.user.windows.yml 2020-06-01 13:54:12 -07:00
Divyansh Srivastava
397b1533f0 Somil55/merge wpf to master (#3840)
* Basic WPF searchbox working

* Updated key navigation and removed coldstart for searhbox

* refactored and added code back in commented

* Removed XAML Island references

* Basic searchbox+listview working

* Getting a bit more back

* got color there

* Result list bit better now

* Added image loader for WPF Image

* Partially got the context menus rendering again

* adjusting coldstart to load, control will load with main form

* getting context menus back

* mouse over works now

* Click now works, started to remove Win.XAML references

* being a bit more forcusful on focus

* Shadow text is not aligned

* fixing focus if listbox was used

* small tweak to fix shadow text

* inputs don't work but gotta figure out why.  commenting out

* preview text

* adding back in delay

* fixed height issue

* Applied the correct context button styles

* Created custom ItemContainerStyle to fix the blue highlights behind the command buttons

* Applied the correct highlight / mouseover styling

* Removed vertical scrollbar in listview

* fixed for alt-space prompt

* Fixed right click focus issue

* Somil55/wpf modifier keys (#3378)

* Removed DPI change as it was not required

* Global key hooks for context menu items

* Updated Key for shell, folder and indexer plugin

* Updated key mapping for indexer plugin

* Somil55/wpf context menu selection (#3389)

* Removed DPI change as it was not required

* Global key hooks for context menu items

* Updated Key for shell, folder and indexer plugin

* Updated key mapping for indexer plugin

* Add trigger to selection on tabbing

* Minor shadow adjustments so its more similiar to default shell shadow. Added intro/outro animations

* Added UWP-like scrollbar style for the results list

* Fixed formating and naming

* Removed Powerlauncher UI project

* Update PowerToys.sln

* Commented out scrollbar and fade in/out animations

* Added missing features from UWP branch

* Fixed formatting for Product.wxs

* Add dragging to WPF window

Co-authored-by: Clint Rutkas <clint@rutkas.com>
Co-authored-by: Niels Laute <niels.laute@live.nl>
2020-06-01 12:35:37 -07:00
Clint Rutkas
5680a34ec1 Update pipeline.user.windows.yml 2020-06-01 10:26:10 -07:00
stefansjfw
84a197299f [KeyboardManager&Installer] Move Keyboard Manager to separat build&install folder (#3949)
* Move Keyboard Manager to separat build&install folder

* Update pipeline
2020-06-01 18:29:40 +02:00
Clint Rutkas
4307882fa8 Update pipeline.user.windows.yml 2020-06-01 09:01:44 -07:00
Alekhya
d2dfbff832 Add resource only when it is not already present (#3842) 2020-06-01 08:17:28 -07:00
stefansjfw
8cc58d0b89 Move ImageResizer to separate folder (#3868) 2020-06-01 17:07:06 +02:00
Clint Rutkas
971fc462ab Update pipeline.user.windows.yml 2020-06-01 07:44:19 -07:00
Ivan Stošić
8d2256d359 Removed the stampZone argument (#3852) 2020-06-01 16:14:29 +02:00
Enrico Giordani
8f3b863edd [PowerRename] fix for documentation (#3952) 2020-06-01 14:05:52 +02:00
Clint Rutkas
4cc6c5ec35 Update pipeline.user.windows.yml 2020-05-31 22:19:50 -07:00
Clint Rutkas
cf53614721 Update pipeline.user.windows.yml 2020-05-31 21:05:02 -07:00
Clint Rutkas
efe84e58d7 Update pipeline.user.windows.yml 2020-05-31 15:45:35 -07:00
Clint Rutkas
cf59ad76fb Update pipeline.user.windows.yml 2020-05-31 10:16:51 -07:00
vldmr11080
2216cda2f1 [FancyZones] Improve monitor work area handling (#3418)
* Initial design for improving handling of different engaged work areas in fancyzones.

* Remove active device id check in ZoneWindow.

* Remove concept of active device identifier in JSONHelpers.

* Refactor interface description and add new method.

* Simplify ZoneWindow initialization.

* Default value for active ZoneWindow during move/size.

* Add newline at the end of file.

* Use COM pointers for ZoneWindow instead of passing raw ptr.

* Solve few issues after merging with master.

* Fix typo in documentation.
2020-05-31 12:36:45 +02:00
Clint Rutkas
595b15fcd9 Update pipeline.user.windows.yml 2020-05-29 20:57:17 -07:00
Clint Rutkas
a104c7f0f8 Update pipeline.user.windows.yml 2020-05-29 20:49:54 -07:00
Clint Rutkas
059392d257 Update pipeline.user.windows.yml 2020-05-29 20:46:47 -07:00
Clint Rutkas
5a1b3da394 Update pipeline.user.windows.yml 2020-05-29 20:42:43 -07:00
htcfreek
92d7c2926c [Settings] Change settings header to "Remap keys" on KBM pagr (#3654)
* Update settings header: Remap keys

We write "Remap Keyboard" but it must be "Remap keys" because we not remapping the whole keyboard. We only remap single keys.

* Tweaked c++ side naming

Co-authored-by: Arjun <arjunbalgovind@gmail.com>
2020-05-29 12:01:29 -07:00
Enrico Giordani
8f39697e3d [CDPx] publish symbols (#3864) 2020-05-29 17:28:57 +02:00
stefansjfw
ff328381af [FancyZones] Custom canvas layouts scaling (#3644)
* Make canvas layout scaling sensitive

* Revert "Make canvas layout scaling sensitive"

This reverts commit 705dab7e36.

* Revert "Revert "Make canvas layout scaling sensitive""

This reverts commit b9dd27644c.

* Cleanup

* Minor refactoring

* Address PR comments
2020-05-29 09:38:29 +02:00
Arjun Balgovind
3bb3c06456 KBM - Set treat warnings as errors, and clean up the dllmain.cpp file (#3203)
* Add test proj, refactor proj with filters, and move single remap function to a separate header

* Moved all methods to header files

* remove more unused commented code

* Undo test project addition

* Treat warnings as errors
2020-05-28 14:47:32 -07:00
vldmr11080
1cbcd41b17 [PowerRename] Move PowerRename module installation into separate folder (#3821)
* Move PowerRename module installation into separate folder.

* Update build pipeline.

* Correct order between modules.
2020-05-28 16:53:16 +02:00
stefansjfw
5ebd9eb577 [ShortcutGuide&Installer] Move Shortcut Guide to separate build and install folder (#3810)
* Move Shortcut Guide to separate build and install folder

* Rename shortcut_guide to ShortcutGuide

* Propagate change to the pipeline
2020-05-28 16:23:03 +02:00
Clint Rutkas
850d9ee095 Update README.md 2020-05-27 20:39:06 -07:00
Seraphima Zykova
5db1f91b01 [FancyZones] Unit-tests fix: keeping user settings unchanged (#3500) 2020-05-27 21:09:18 +03:00
Josh Soref
ac6b9712ad Spelling: ... shortcut guide (#3790)
* spelling: dimension

* spelling: hidden

* spelling: miniature

* spelling: parent

* spelling: popin

* spelling: signal

* spelling: suppress
2020-05-27 19:57:19 +02:00
stefansjfw
df93f4ba99 Use correct resource for Shourtcut Guide theme setting (#3788) 2020-05-27 19:45:21 +02:00
Clint Rutkas
7c20d46eeb Update README.md 2020-05-27 09:59:04 -07:00
Clint Rutkas
fe432fcca8 Update README.md 2020-05-27 09:53:41 -07:00
Clint Rutkas
5b1638ea59 Update README.md 2020-05-27 09:52:08 -07:00
htcfreek
87a1d4088b [Readme.md] Adding an uninstall hint (#3522)
* Adding Uninstall instaructions to ReadMe

* Fixed issue link

* Move "uninstall hint" link

* Did requested changes

Remove hand emoji, move link and fix text mistakes.
2020-05-27 09:48:54 -07:00
Josh Soref
038c346500 spelling: calculator (#3750) 2020-05-27 08:22:18 -07:00
Josh Soref
0bcaa13056 Spelling: ... runner settings (#3783)
* spelling: default

* spelling: elevated

* spelling: instance

* spelling: relative
2020-05-27 17:06:50 +02:00
Josh Soref
c0e62372e6 Spelling: ... core (#3782)
* spelling: administrator

* spelling: appearance

* spelling: expected

* spelling: explorer

* spelling: implementation

* spelling: integration

* spelling: successful

* spelling: windows
2020-05-27 08:06:17 -07:00
Josh Soref
84169cce10 Spelling: ... wox (#3775)
* spelling: arguments

* spelling: config

* spelling: deactivated

* spelling: exception

* spelling: folder

* spelling: initialize

* spelling: makesure

* spelling: response

* spelling: storage

* spelling: visibility

* spelling: serialized

* spelling: zipped
2020-05-27 08:05:54 -07:00
Josh Soref
c2c163ac4e Spelling: ... common (#3781)
* spelling: alignment

* spelling: awareness

* spelling: background

* spelling: bottom

* spelling: buttons

* spelling: comparison

* spelling: cortana

* spelling: exiting

* spelling: initialization

* spelling: middle

* spelling: properly

* spelling: succeeded

* spelling: unknown
2020-05-27 16:58:47 +02:00
Josh Soref
ecb5d2ae1c Spelling: ... fancyzones (#3777)
* spelling: defined

* spelling: excluded

* spelling: guid

* spelling: highlight

* spelling: original

* spelling: nonexistent
2020-05-27 16:55:46 +02:00
PrzemyslawTusinski
3d619f1670 [FancyZones] Outlook new message restore placement bug (#2534) 2020-05-27 16:52:59 +02:00
Josh Soref
3265549911 spelling: separator (#3751) 2020-05-26 18:10:58 -07:00
Sam Chivers
d5c3a3e5e8 Update README.md (#3753)
After reading the rest of the paragraph, I believe the intention was for this to read "This project welcomes contributions of all types" rather than "This project welcomes contributions of all times" or "..at all times"
2020-05-26 14:33:04 -07:00
Josh Soref
30dff09d7e spelling: toggle (#3749) 2020-05-26 20:12:20 +02:00
Clint Rutkas
85f7d19eb2 upgrade to cppwinrt after the last merge conflict (#3745) 2020-05-26 10:53:46 -07:00
vldmr11080
6adda5c29c [FancyZones] Remove "keep windows pinned to virtual desktop location" settings (#3687) 2020-05-26 17:06:12 +02:00
Josh Soref
4a03756b5b Spelling: ... (#3398) 2020-05-26 17:02:36 +02:00
Josh Soref
b1554ebf37 Spelling: ... src/modules (#3712) 2020-05-26 16:56:25 +02:00
Clint Rutkas
b6307b4fd6 Nuget updates (#3683)
* Sync'ing nuget packages. more to do

JSON, islands

* updating sql and oledb

* upgrading to 2.0 RTM for MahApps

* consolidated Microsoft.NETCore.UniversalWindowsPlatform

* updating Microsoft.Windows.ImplementationLibrary

* Microsoft.Windows.SDK.Contracts
2020-05-26 07:42:04 -07:00
Ivan Stošić
6f22c7ad19 [FancyZones] Added persistence to app zone history (#3132)
* Persist app zone history in a separate file

* Almost ready to be functionally tested

* Now all unit tests pass

* Bug fixes, it seems to work

* Various fixups

* Improved performance of FancyZones::UpdateWindowsPositions()
2020-05-26 16:01:12 +02:00
Andrey Nekrasov
bc9add783c sln: specify WinSDK version for cpp projects (#3728) 2020-05-26 17:00:09 +03:00
Niels Laute
ee67221068 [Settings] About section headers are now on a single line in collapsed mode (#3696)
* About section headers are now on a single line in collapsed mode

* Removed the more button, since the colorpickers are now in flyouts anyways
2020-05-26 09:34:14 +02:00
Josh Soref
71e528139c Spelling: ... src/modules/launcher (#3694) 2020-05-25 17:27:13 -07:00
Clint Rutkas
c674fe1f04 Migrate numberboxes to compact mode (#3375) 2020-05-25 08:58:29 -07:00
Niels Laute
d047e95bb5 [Settings] UX improvements to the FancyZones config page (#3658) 2020-05-25 11:47:32 +02:00
stefansjfw
791518d6c4 Don't migrate custom layout if type is invalid (#3645) 2020-05-25 10:59:05 +02:00
Niels Laute
83afd55e0e Updated titles (#3464) 2020-05-25 10:45:27 +02:00
vldmr11080
7870a66790 [FancyZones] Snap out of maximized window into zones with win + left/right arrow (#3097)
* Snap out of maximized window into zones with win + left/right arrow.

* Determine if there is anything to process before swallowing keypress.
2020-05-25 10:15:42 +02:00
Andrey Nekrasov
c923e96f3e sln: do not use PCH on CI (#3106) 2020-05-25 10:59:05 +03:00
Andrey Nekrasov
dd79834137 CI: remove unnecessary build commands (#3300) 2020-05-25 10:56:44 +03:00
Enrico Giordani
8995f0af55 Now working on 0.18.2 (#3542) 2020-05-22 20:28:49 +02:00
Clint Rutkas
e75a74565b Update README.md 2020-05-22 10:21:43 -07:00
vldmr11080
1792849b98 Expose InMoveSize from WindowMoveHandler. (#3525) 2020-05-22 16:42:29 +02:00
ricardosantos9521
c7fb1f6d17 bug fix #3209 (#3457)
Co-authored-by: ricar <ricar@ASUS>
2020-05-21 11:02:03 -07:00
Enrico Giordani
a856263081 [PowerToys Run] run non-elevated when runner is elevated (#3451)
* run Launcher non-elevated

* Implemented acquiring PID of Launcher

Co-authored-by: ivan100sic <ivan100sic@gmail.com>
2020-05-21 19:44:32 +02:00
Ivan Stošić
582d1320a3 [KBM] Fix compilation error 2020-05-21 11:06:50 +02:00
Josh Soref
3789da4305 Use check boxes (#3396) 2020-05-20 22:53:12 -07:00
Josh Soref
1e58ae0e63 Set up spell-checking action 2020-05-20 23:19:08 -04:00
Josh Soref
618329c7e0 spelling: ignore
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
2020-11-04 12:11:27 -05:00
sakariya
a36f97adfb Dev/saahmedm/fixlabel (#3366)
* Update EditShortcutsWindow.cpp

* Update EditKeyboardWindow.cpp

* Update README.md

* Update EditShortcutsWindow.cpp

* Update EditShortcutsWindow.cpp
2020-05-20 14:52:10 -07:00
Tim De Pauw
2cda53d3af Capitalize GitHub properly (#3356) 2020-05-20 14:28:25 -07:00
Bret
74007ea465 Merge pull request #3360 from microsoft/TheMrJukes-patch-1
Delete README.md
2020-05-20 14:10:37 -07:00
Bret
c88a7dba6b Delete README.md
This is no longer accurate and also talks about internal shares which we shouldn't do publically
2020-05-20 13:17:16 -07:00
Clint Rutkas
66b7863d43 Update README.md 2020-05-20 12:21:37 -07:00
Clint Rutkas
19b318a488 Update README.md (#3355) 2020-05-20 12:15:31 -07:00
ryanbodrug-microsoft
c606e3db43 Disabling IsRightTapEnabled on all UI Elements that steal focus from the text box. (#3349) 2020-05-20 11:38:14 -07:00
wolf99
f89ab74b29 Add 1903 requirement (#3321)
Have not seen this requirement mentioned anywhere until PowerToys is already installed.
For those installing PowerToys specifically to try this, it would be useful to know the requirement in advance, especially given that https://github.com/microsoft/PowerToys/blob/master/README.md mentions only 1803.
2020-05-20 11:20:11 -07:00
Clint Rutkas
4bbdec5044 Update README.md 2020-05-20 11:05:53 -07:00
Arjun Balgovind
56a727cf0d Added check for Type key/shortcut open but not in focus (#3235) 2020-05-20 09:56:00 -07:00
Arjun Balgovind
32f74e41ef Fix publish on local machines (#3270)
* Moved publishing to publish.cmd script

* Moved publish back to pre-build event
2020-05-20 09:55:17 -07:00
Ivan Stošić
e249bc5856 [FancyZones] Fix a regression with Chrome tabs jamming FZ (#3338) 2020-05-20 18:52:48 +02:00
Arjun Balgovind
32b8a344a6 Moved publishing to publish.cmd script (#3259) 2020-05-20 09:35:02 -07:00
Clint Rutkas
61c0c35e92 Fix for 3116, changing uwp to packaged (#3123) 2020-05-20 09:17:46 -07:00
Andrey Nekrasov
2eecaf4570 Revert "[FancyZones] Remove "keep windows pinned to virtual desktop location" settings (#3093)" (#3292)
This reverts commit 8f59247acb.
2020-05-20 11:57:17 +03:00
vldmr11080
8f59247acb [FancyZones] Remove "keep windows pinned to virtual desktop location" settings (#3093)
* Remove keep windows pinned to virtual desktop location FancyZones settings

* Remove virtual desktop switch handling for this scenario.
2020-05-20 10:49:28 +02:00
Clint Rutkas
eb3ec26279 fixing images so they deep link to module overview versus the img in readme (#3240)
* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md
2020-05-19 17:12:35 -07:00
Alekhya
f07d37ce0d [launcher] - Increase the score for Exact matches in the Name of the Application (#3213)
* Increase score for exact matches in the name

* Added tests for exact matching

* Used TestCase

* variable for bonus score

* Removed comment, variable is self explanatory
2020-05-19 16:10:40 -07:00
Alexander Sklar
2e8602eb43 Update win_hook_event_data.h (#3092) 2020-05-19 15:07:06 -07:00
Cloud Han
4277041b0e correct url (#3142) 2020-05-19 10:29:06 -07:00
Enrico Giordani
6801190180 Now working on 0.18.1 (#3141) 2020-05-19 18:20:35 +02:00
Clint Rutkas
067a9cf54d Dev/crutkas/change log0.18 (#3138)
* Update README.md

* Update README.md

* Update README.md

* Update README.md
2020-05-19 08:48:53 -07:00
Divyansh Srivastava
d31a8c203f Updated query delay in launcher (#3113) 2020-05-18 11:00:53 -07:00
Niels Laute
99e8a393b6 Fix for hero image not showing in GitHub mobile app (#3105)
Replaced the image MD tag with HTML. Seems to solve the issue.
2020-05-18 10:58:43 -07:00
Enrico Giordani
42ba0a2642 [CDPx] update to use telemetry nuget package v2 (#3087) 2020-05-16 19:48:41 +02:00
Alekhya
cc0cd51658 default four results in launcher (#3081) 2020-05-15 18:51:56 -07:00
sakariya
9d3014e39c adding readme (#3045)
* adding readme

* adding links

* Update README.md

* responding to edits

* update readme

* Update README.md

* adding image

* update

* Update README.md

* adding numbers
2020-05-15 17:16:04 -07:00
ryanbodrug-microsoft
1ac3a9da4f Revert "Remove binaries from signing list" (#3078)
* Revert "Remove binaries from signing list (#3029)"

This reverts commit 64d9e9054c.

* Removing wox.exe from cdpx build assemblies
2020-05-15 15:11:38 -07:00
Tomas Raies
7c80bbecd9 [Hotfix] Add VCRuntime dlls to \modules folder
This fixes the ImageResizer crash.
2020-05-15 12:42:04 -07:00
Tomas Raies
d55e6191c2 Remove VCRedist Merge Modules, copy dlls instead
* VC++ redistributables for CRT are copied into \PowerToys, \PowerToys\SettingsUIRunner and \PowerToys\modules\launcher
2020-05-15 12:01:21 -07:00
ryanbodrug-microsoft
3875603285 Wox project should only produce a .dll not an exe. (#3068) 2020-05-15 11:44:37 -07:00
Enrico Giordani
a62261343c Update version to 0.18.0 (#3063) 2020-05-15 18:51:49 +02:00
Lavius Motileng
8b0a995f23 [Settings V2] Updated general settings tests (#2971)
* updated general settings tests

* reverted changes to solution files

* fetch test strings from a string resource

* updated bidning variable name to avoid confusion

Co-authored-by: Lavius Motileng <laviusmotileng-ms>
2020-05-15 09:38:47 -07:00
Arjun Balgovind
4734cb3428 Fix FZ not forwarding events to next hook (#3044) 2020-05-15 09:37:11 -07:00
ryanbodrug-microsoft
34f814717b Adding privacy event tags to each telemetry event. (#2879)
* Adding privacy event tags to each telemetry event.

* Moving Privacy events to Telemetry base, Removing tag values, and fixing namespaces.

* Adding documentation comments to fix style cop errors in release

* UTCReplace_AppSessionGuid boolean property to all C# telemetry events.

* Adding hardcoded version number to boot events.

* Adding reference to telemetry in settings unittest

* Adding Preview Pane events for loading w/ hardcoded version number

* Adding telemetry.h to msi for svg and markdown events

* removing unused explicit interface exception
2020-05-15 09:08:39 -07:00
Alekhya
d4b56f99ff [launcher] Remove Program Plugin dll (AppxPackagingTlb.dll) (#3037)
* Removed AppxPackaging dll

* Added helper class and fixed some AppxPackage errors

* Modified it to use the COM interface

* Got it to build without errors but UWP apps don't show up

* Added app to the array

* Deleted the AppxPackaging.dll

* Added github reference

* Removed unnecessary uwp app argument

* Removed dll from installer wxs file
2020-05-15 08:49:44 -07:00
PrzemyslawTusinski
f51d51abf4 Fz Settings excluded apps multiline behavior - fix (#3055) 2020-05-15 17:37:50 +02:00
Ivan Stošić
a13a0ee5a9 Fixed a crash in Settings/ImageResizer (#3053) 2020-05-15 17:03:30 +02:00
Jessica Yuwono
19f4ad0361 Update launcher readme (#3034)
* Added readme and module overview link

* Fixed image link

* Added a known issue per review comment

* Changed images location
2020-05-14 17:24:17 -07:00
Divyansh Srivastava
93dc96f150 Fixed folder naming for app data (#3033) 2020-05-14 16:26:45 -07:00
Enrico Giordani
64d9e9054c Remove binaries from signing list (#3029) 2020-05-14 15:02:59 -07:00
Divyansh Srivastava
b1ed7227d7 Fix launcher height (#3013)
* Added height for searchbox

* Updated top calculation for launcher window
2020-05-14 13:52:48 -07:00
Clint Rutkas
48215c1eae Update README.md 2020-05-14 13:34:24 -07:00
Enrico Giordani
7399a978f5 Update icons for Settings v2 (#3023) 2020-05-14 21:45:44 +02:00
Lavius Motileng
3737ad6524 [Settings V2] Updated default color values for fz (#2972)
* updated default color values for fz

* moved default values to shared constants

Co-authored-by: Lavius Motileng <laviusmotileng-ms>
2020-05-14 11:58:56 -07:00
Clint Rutkas
b37695bc6f Update build-powertoys-steps.yml 2020-05-14 11:57:58 -07:00
Yevhenii Holovachov
6e97d588e4 Updated .dll's and .exe's in pipeline.user.windows.yml (#3012) 2020-05-14 21:22:13 +03:00
Enrico Giordani
17319b15b0 Update application icon (#2999) 2020-05-14 20:19:06 +02:00
Arjun Balgovind
0692afcd90 Hotfix - Fix broken Type Shortcut (#3006)
* Fix broken type shortcut
2020-05-14 10:56:36 -07:00
Arjun Balgovind
91ac3f7931 Add auto scroll when adding a remap (#2969) 2020-05-14 09:24:50 -07:00
Arjun Balgovind
9d5990311f Fixed overflow in Type Shortcut (#2930)
* Fixed overflow in Type Shortcut

* hide the stackpanel if it is not required

* changed loop
2020-05-14 09:23:51 -07:00
Andrey Nekrasov
6f38cdec5a Fix various MSI issues (#2985)
* wix: add Notice.md #2442

* wix: close PowerToys which might be running during installation process #2887

* wix: update dotnet core to 3.1.4
2020-05-14 18:20:06 +02:00
Lavius Motileng
7a1f3a0cb1 [Settings V2] Remove multiple pop-ups on double tap (#2928)
* remove multiple pop-ups on double tap

* removed e0l space and updated bool variable
2020-05-14 09:12:40 -07:00
Andrew Baker
99356f7880 Update URL so it points to the general repository rather than the issues page (#2996) 2020-05-14 08:45:48 -07:00
Yevhenii Holovachov
d38d7b8ff6 Version required warning label changed, rebuilded bundle.js (#2991) 2020-05-14 17:48:33 +03:00
htcfreek
834ac42d24 Change Auto-download settings' title (#2966)
* Change auto-download setting's title

The update don't get automatically downloaded when the user is connected over an metered connection.
This is something the user should known about. Because of not have to be afraid on having extra costs and to not being confused if it not works on metered connections.

* auto-download title (old settings)

Did the same change also for the old web-settings.
2020-05-14 15:30:18 +02:00
Yevhenii Holovachov
e80fac4900 Disabling toggles for Powertoys Run and Keyboard Manager (#2983)
* Disabling toggles for Powertoys Run and Keyboard Manager
2020-05-14 15:09:49 +03:00
Yevhenii Holovachov
a13c8cb71e Autoupdate option visible only for administrators group (#2945)
* Added isAdmin value to Settings.UI. Changed elevation check to user group check for AutoDownload toggle
2020-05-14 12:36:27 +03:00
Niels Laute
3dc61962de [Read me] Adding hero-image (including new icon) and module screenshots (#2946)
* Adding screenshots and hero image

* Added screenshots and KBM + Launcher descriptions

* Commented out 0.18 features (KBM + Launcher)

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Updated contribution link

* Linebreak added

* tweaks

Co-authored-by: Clint Rutkas <clint@rutkas.com>
2020-05-13 21:31:36 -07:00
Divyansh Srivastava
5c3acf61b4 Fixed powertoys run not reacting to change in settings (#2968)
* Fixed powertoys run project name in settings

* Rename save directory
2020-05-13 17:50:19 -07:00
Tomas Raies
953d835ded Revert "wix: Install .NET Core 3.0.x instead of .NET Core 3.1.x (#2943)"
This reverts commit 01f11d94b0.
2020-05-13 13:34:23 -07:00
Tomas Raies
1537ca4e71 [Launcher] Add missing Microsoft.Extensions.. dlls 2020-05-13 13:34:23 -07:00
Divyansh Srivastava
2d94ace89f Update Launcher naming settings (#2961)
* Renamed LAuncher to Run

* Updated Run to PowerToysRun

* Updated naming for settings v1
2020-05-13 13:16:34 -07:00
Alekhya
ea9c0b919f Remove Program Plugin dll (ShObjldITIb.dll) (#2952)
* Deleted the dll

* Added Shell Link helper class

* Add activation manager helper

* Use helper shell link and remove shell namespace

* removed using shell and added Activation helper namespace

* Removed the dll from the installer

* formatting

* nit formatting
2020-05-13 11:43:56 -07:00
Arjun Balgovind
d178fa5bdb KBM - Change behavior to hold enter to accept rather than hold and release (#2931)
* Changed to hold enter

* Changed code such that hold enter does not trigger a re-open

* Fixed tab ordering

* Changed text
2020-05-13 10:13:44 -07:00
Andrey Nekrasov
01f11d94b0 wix: Install .NET Core 3.0.x instead of .NET Core 3.1.x (#2943)
* wix: Install .NET Core 3.0.x instead of .NET Core 3.1.x

* fixup! review comments

* fixup! review comments
2020-05-13 18:23:56 +02:00
Arjun Balgovind
58f1a8e916 Fix failing build pipeline (#2932)
* Add extra libpath load statement

* Add QSpectre flags on Release

* Revert cmd change

* Added spectre flag for debug

* added flag for more projects
2020-05-12 20:52:02 -07:00
Tomas Agustin Raies
688fefc4dd [Launcher] Fix Copying of calculator value (#2929) 2020-05-12 16:41:49 -07:00
Arjun Balgovind
ce96e34d25 Fixed some warnings and added code to close active windows on disable (#2915) 2020-05-12 15:58:11 -07:00
Divyansh Srivastava
a1e1d663c3 Migrate Search box to WPF control (#2917)
* Replaced UWP searchbox with WPF

* Updated foreground color scheme for textbox

* Add focus on visibility changed

* Updated initial hiding of window

* Fixed list box border

* vis issue on start, fixing border

* Revert "Merge branch 'somil55/MigrateSearchBoxToWPF' into fewTweaks"

This reverts commit 3525171621, reversing
changes made to b5daffca55.

* Remove change in startup visibility

Co-authored-by: Clint Rutkas <clint@rutkas.com>
2020-05-12 15:42:21 -07:00
Clint Rutkas
245b52d8e2 Update pipeline.user.windows.yml 2020-05-12 13:12:36 -07:00
Arjun Balgovind
1de93be0f0 Fix KBM compile time warnings (#2912) 2020-05-12 11:32:17 -07:00
PrzemyslawTusinski
e723e87c74 PowerLauncher can be snapped to zone - fix (#2896) 2020-05-12 19:33:42 +02:00
Michiel Vermeersch
c9535749f5 Fixed tables in MarkDown previews displaying incorrectly. (#2883) 2020-05-12 10:20:39 -07:00
Arjun Balgovind
497a66ea38 Fixed KBM default window size not being DPI Aware (#2873)
* Fixed KBM default window size not being DPI Aware

* Fixed missing lib file on Release

* Changed to be only DPI dependent
2020-05-12 10:17:27 -07:00
Alekhya
62d9735a7e [Settings] Add Image Resizer Settings hyperlink on feature detection of older OS Versions (#2868)
* Added the settings hyperlink code back

* Moved the os detection code to a different file so that it can be imported by image resizer

* Added code to the Image resizer project to react to import the dll

* Added an empty dll project

* Added a dll which can be imported by image resizer

* ImageResizer binding works

* Added the setDllDirectory to load the os-detection dll

* Removed the OS detection files that has been added to the common project

* Added reference to os-detect and removed reference to common/OS-Detection.h

* Modified project files

* Revert "Modified project files"

This reverts commit 75f9d73f30.

* Removed unnecessary showAdvanced bool variables

* Removed OS Detection code from common project

* Cleaned configuration properties of soln and projects

* runner is dependent on os-detection

* Added the os-detection.dll to wxs file

* nit space formatting

* Added reference to os-detection

* Added os-detection header file

* Add os-detection reference

* Added os-detection.dll

* removed the set dll directory and using relative paths instead

* Add relative path
2020-05-12 09:58:29 -07:00
Seraphima Zykova
0f8fbf6a1e removed .net core dlls (#2897) 2020-05-12 18:37:33 +02:00
Arjun Balgovind
66c2d1cba1 Revert buttons on KBM Landing page (#2870)
* Revert buttons

* Fixed button placement
2020-05-12 09:21:54 -07:00
Andrey Nekrasov
69cde6092b build: use x64 platform for *Telemetry projects (#2895) 2020-05-12 15:27:19 +03:00
Seraphima Zykova
3e9face818 removed dlls causing build error in installer (#2889) 2020-05-12 13:55:36 +03:00
Tomas Agustin Raies
4dfac02065 KeyboardManager icon (#2875) 2020-05-11 20:13:07 -07:00
Arjun Balgovind
7551509f41 Fix inconsistent landing page remap list (#2866)
* Added pre-processing code

* Refactored code on c++ side to match

* Fixed comment
2020-05-11 17:18:12 -07:00
Tomas Agustin Raies
5f42866cea Add VC142 CRT MergeModules to installer (#2862) 2020-05-11 15:05:10 -07:00
Lavius Motileng
50d91670ec updated file explorer icon (#2863) 2020-05-11 14:43:13 -07:00
Tomas Agustin Raies
8c04421387 [Keyboard Manager] Confirmation Dialog for orphaned keys and partial remappings. (#2811)
* WIP Confirmation dialog for orphaned keys

* Confirmation Dialog for orphaned keys

* White OK button, Anyways capitalizef

* Change Apply to Ok for shortcuts

* Validate that mappings can be made before changing keyboardManagerState

* Set fixed MinWidth for OK button

* Fix typo

* Partial remappings confirmation dialog

Both for Shortcuts and SingleKey

* Remove warning icon callback in OnClickAccept

* Add text wrapping for OrphanKeys dialog
2020-05-11 12:45:55 -07:00
Niels Laute
c39be3dbc9 [Settings] Various UX tweaks (#2822)
* Updated the add button styles to a standard used in W10 settings

* Updated the "About this feature" text to About [Module name]

* Set larger changes to the Shortcut Guide opacity numberbox

* Re-organised the General page

* Improved width of the add button so it's inline with the corresponding listview.

* Seperated warning label from header. Re-organised general settings

* Consistent formatting of the word 'administrator'

* Typo fix

* Warning text is collapsed when the user runs the app as admin

* Removed underline of version number

* XAML fix
2020-05-11 12:36:55 -07:00
Andrey Nekrasov
8aa8c296e1 FancyZones: FZ & FZE now live in a dedicated dir (#2837) 2020-05-11 21:22:23 +03:00
Arjun Balgovind
592c55c524 Change warnings from icon to flyouts but it no longer interrupts searching (#2816)
* Fixed foreground issue and added arrow

* Tweaked Remap Keyboard UI

* Fix errors in warning handling and update UI layout

* Tweaked sizes and centered to screen

* Fixed flyouts appearing on search for Single key remaps

* Fixed flyouts appearing on search for Shortcut remaps

* Remove warning exclamation icon and tooltip

* Fixed a bug where setting None on a drop down which would create a shortcut with a conflict would cause a crash

* Remove IsTypeKey logic

* Changed warning text

* Resolve comments
2020-05-11 10:10:36 -07:00
Ivan Stošić
eafaf35790 [Settings] Updated text shown on the settings page of Shortcut Guide (#2840) 2020-05-11 14:46:32 +02:00
PrzemyslawTusinski
585c66a4d0 PowerRename settings bugfix (#2796)
* PowerRename settings bugfix

* Changed visibility to enability of PowerRename_Toggle_MaxDispListNum

* Added unit tests and changed maximum value
2020-05-11 14:37:29 +02:00
Arjun Balgovind
1ecedd5566 Hide xaml island loading icon for Settings and Launcher (#2827)
* Hide xaml island window

* Remove using WUC statement
2020-05-09 14:10:57 -07:00
Arjun Balgovind
3a0a5a7754 KBM - UI Tweaks (#2798)
* Fixed foreground issue and added arrow

* Tweaked Remap Keyboard UI

* Fix errors in warning handling and update UI layout

* Tweaked sizes and centered to screen

* Changed size to scale based on resolution

* Fixed comments
2020-05-08 17:34:24 -07:00
ryanbodrug-microsoft
d329406eb8 Adding Telemetry Events for svg and markdown enable/disable (#2814)
* Raising Telemetry events when svg and markdown preview pane is turned off

* Properly serializing Bool property.  This allows us to be backwards compatible with .17 settings but interact with the properties as boolean elements, and fire events on property changed notification
2020-05-08 16:12:37 -07:00
Divyansh Srivastava
e654999fdf Add support for win32 packaged apps to run as admin (#2812)
* Updated UWP app to set entry point type for each app

* Working run as admin for packaged app with permission

* Updated UWP to allow apps with mediumIl trust level to be run as admin

* cleanup variables not required
2020-05-08 14:31:15 -07:00
Clint Rutkas
efe98f7fad Fixing ordering in settings and text tweaks (#2809)
* ordering alphabetically.

* test tweaks
2020-05-08 14:13:48 -07:00
Clint Rutkas
87bc957662 adding in ignore for alt-space (#2799) 2020-05-08 13:59:49 -07:00
Tomas Agustin Raies
15e93d6304 [Launcher] Replace default app icons with MDL2 EB3B (#2797) 2020-05-08 13:34:21 -07:00
Arjun Balgovind
5471735419 Fix double compile issue for Launcher and Settings (#2759)
* Fix double compile issue

* Removed debugging code

* added prebuild event

* Updated output folders
2020-05-08 09:07:18 -07:00
Lavius Motileng
6b2955f135 [settings] loading powerpreview module from subfolder (#2709)
* loading module in sub-folders

* reverted un-related change
2020-05-08 08:23:18 -07:00
Lavius Motileng
1ab0a5182f [Settings V2] Upated Fancy Zone and Shortcut Guid default values. (#2786)
* upated Fancy Zone and Shortcut Guid default values.

* upated fz tests
2020-05-08 08:22:57 -07:00
Ivan Stošić
dad65998cc Update ImageResizerPage.xaml (#2794) 2020-05-08 13:32:13 +02:00
Tomas Agustin Raies
abd30f3e41 Change build order in build.cmd (#2787)
This seems to fix the missing Generated Files\version_gen.h error
2020-05-07 16:37:00 -07:00
Seraphima Zykova
7f42d9784e updated FancyZones checkboxes corresponding to settings (#2785) 2020-05-07 23:29:02 +03:00
Tomas Agustin Raies
1056dac070 Add WIL to common-md-flag nuget packages (#2780) 2020-05-07 12:02:37 -07:00
Andrey Nekrasov
c05622484d chore: add common project as a dependency for some C++ projects, so we have version_gen.h (#2781) 2020-05-07 21:31:00 +03:00
PrzemyslawTusinski
59659a13f1 Fancy zones settings - Color pickers saved ARGB value fix (now saves RGB) (#2776) 2020-05-07 20:24:19 +02:00
Andrey Nekrasov
73c6cbb562 wix: install dotnet 3 after installation if needed (#2775) 2020-05-07 17:39:32 +03:00
Ivan Stošić
9f724221fa Removed unsupported platforms in Visual Studio (#2768) 2020-05-07 15:12:57 +02:00
Seraphima Zykova
dfcd86ea09 multi-line input for excluded apps (#2770) 2020-05-07 16:11:10 +03:00
Seraphima Zykova
555393d328 Close Shortcut Guide on right Win release (#2751) 2020-05-07 12:21:29 +03:00
Yevhenii Holovachov
febacfcb79 Added informaton to notifications dll (#2687)
Added informaton to notifications dll
2020-05-07 12:01:01 +03:00
ryanbodrug-microsoft
1891bd494c Merge pull request #2760 from ryanbodrug-microsoft/merge/build-features-to-master-05062020
Merge/build features to master 05062020
2020-05-06 20:02:09 -07:00
ryanbodrug-microsoft
ba5d53914e Merge branch 'dev/build-features' into merge/build-features-to-master-05062020 2020-05-06 19:32:10 -07:00
ryanbodrug-microsoft
2ae38e20ab Merge pull request #2711 from ryanbodrug-microsoft/merge/build-features-to-master
Mege build features to master
2020-05-06 19:25:15 -07:00
ryanbodrug-microsoft
5f14b2e738 Merge branch 'master' into merge/build-features-to-master 2020-05-06 18:39:25 -07:00
Yevhenii Holovachov
bc53951648 Option to disable zones activation by mouse (#2717)
* Added option to enable/disable mouse to activate zones, added telemetry and unit tests
2020-05-07 02:21:32 +03:00
Tomas Agustin Raies
9a323e3387 [Launcher] Remove ASP .NET dependencies (#2697)
* Remove ASP .NET dependencies

* Replaced NLog.Web.AspNetCore with NLog.Extensions.Logging

* Remove NLog.Web.AspNetCore.dll from installer

* Add missing dlls
2020-05-06 15:55:53 -07:00
ryanbodrug-microsoft
72fe972cc0 fixing nit: comments 2020-05-06 15:10:22 -07:00
ryanbodrug-microsoft
88dfd90e3b Removing unecessary event name from SettingsEnabledModuleEvent 2020-05-06 15:10:22 -07:00
ryanbodrug-microsoft
1f9c1ce8e4 Removing unecceary EventName requirement. EventSource<T>.Write will use the type name of T if null is passed in. This saves us passing an extra string uneccesarily as the public property would be serialized into the event data as well as being specified as the EventName 2020-05-06 15:10:22 -07:00
ryanbodrug-microsoft
b4d75e3240 Adding telemetry events for Settings Enabled or Disabled Modules 2020-05-06 15:10:22 -07:00
ryanbodrug-microsoft
def0d7a519 Small refactor to use common powertoys telemetry event source accross modules. 2020-05-06 15:10:22 -07:00
ryanbodrug-microsoft
a9cc4dabb7 Adding launcher telemetry for context buttons clicked. 2020-05-06 15:10:22 -07:00
ryanbodrug-microsoft
e29e8ca0a3 Add launcher telemetry for show / hide, and query (elapsed time, num chars, num results). 2020-05-06 15:10:22 -07:00
ryanbodrug-microsoft
5cda4135b1 Add telemetry event for when the user presses delete within the first 2 seconds of showing the launcher. 2020-05-06 15:10:22 -07:00
ryanbodrug-microsoft
221e153f4c Adding BootEvent for load time telemetry 2020-05-06 15:10:22 -07:00
ryanbodrug-microsoft
3a24e4703d Adding PowerLauncherTelemetry events 2020-05-06 15:10:22 -07:00
ryanbodrug-microsoft
2b158c2b4e Removing unused reader namespace from telemetrybase. 2020-05-06 15:10:22 -07:00
ryanbodrug-microsoft
8b715ad9cd Link including telemetry base, to preview pane. 2020-05-06 15:10:22 -07:00
ryanbodrug-microsoft
07cf527ddf Moving TelemetryBase to common/Telemetry to be referenced for all Managed Telemtry hooks. 2020-05-06 15:10:22 -07:00
Alekhya
63f1429a69 Fix incorrect merge which had reverted some parts of the Microsoft.Launcher.rc file (#2728)
* Had reverted the changes made in the Microsoft.Launcher.rc file by mistake while resolving merge conflicts

* reverted company name to how it was before
2020-05-06 12:49:34 -07:00
Niels Laute
d881fc2fe0 Merge pull request #2700 from niels9001/users/niels9001/settingsV2UXtweaks
[Settings v2] UX tweaks
2020-05-06 21:12:39 +02:00
Arjun Balgovind
d5090ee24b KBM - Fix all descriptions and text and minor UI tweaks (#2705)
* Add new text for Remap Keyboard

* Added text in KBM windows

* Tweaked KBM landing page view

* Changed to transparent background

* Tweaked text

* Tweaked text
2020-05-06 08:34:26 -07:00
vldmr11080
56c0a78c64 [FancyZones] Only process windows located on currently active work area when moving them (#2691)
* Only process windows located on currently active work area when moving them.

* Move all editor exit handling into dedicated method.
2020-05-06 17:16:16 +02:00
ryanbodrug-microsoft
47037220e0 fix compile issues for missing <thread>. I'm not sure why this wasn't needed before or in master. 2020-05-06 00:54:06 -07:00
ryanbodrug-microsoft
640fade438 merge master 2020-05-06 00:49:46 -07:00
Clint Rutkas
98ede836d4 Merge branch 'dev/build-features' into users/niels9001/settingsV2UXtweaks 2020-05-05 21:28:44 -07:00
Arjun Balgovind
e75916fd92 Fixed SettingsV2 crash (#2704)
* Fixed crash

* Initialize theme string
2020-05-05 21:17:43 -07:00
Divyansh Srivastava
e01ed8ad3c Fix for indexer symbol error (#2702)
* Removed error sent as result in indexer plugin

* Added code to filter query based on reserved keyword regex
2020-05-05 16:07:32 -07:00
Tomas Agustin Raies
3beea79b38 Workaround for Settings ViewModel tests (#2693) 2020-05-05 16:01:55 -07:00
Alekhya
1a29870958 OS Detection and setting the old or new settings UI page accordingly (#2674)
* Added code to detect os build number

* To set the settings.exe according to the powerToys version that is running

* Modified the description of old UI for launcher and keyboard remapper

* Using API contracts instead of registry

* Removing file that was included by mistake
2020-05-05 15:53:30 -07:00
Niels Laute
7f3fae5a02 Re-order of the autocomplete setting (for Image resizer) under the right section 2020-05-05 23:43:56 +02:00
Lavius Motileng
c2adf56b2f updated header text and tests for PowerRename (#2607) 2020-05-05 14:28:44 -07:00
Niels Laute
7a8f5a606c Removed underline of the attribution links 2020-05-05 23:19:21 +02:00
Tomas Agustin Raies
462c17a0c3 Close Settings Window on runner exit (#2695) 2020-05-05 14:13:52 -07:00
Niels Laute
e59e3019e3 Typo fix 2020-05-05 23:03:34 +02:00
Lavius Motileng
d65e2ab2d4 FIX : [Settings] - Can start multiple settings dialogs (#2421)
* Launch new wpf process with same/old ipc names

* updated bring window to front

* reverted change

* removed unused string
2020-05-05 14:02:55 -07:00
Niels Laute
3f6120e122 Tweaked the vertical spacing of the module description so the module toggle switch stands out a bit more. 2020-05-05 22:58:48 +02:00
Niels Laute
e66e5e6f6e Fixed visual inconsistency for the image resizer sizes listview 2020-05-05 22:47:59 +02:00
Niels Laute
b0bc57466e Fixed inconsistency of the Image Resizer enable toggleswitch 2020-05-05 22:13:19 +02:00
Niels Laute
154dc555c5 Remove underline from sidepanel hyperlink buttons 2020-05-05 22:03:48 +02:00
Arjun Balgovind
36559d0264 Added telemetry to KBM (#2670)
* Added telemetry to KBM

* Reverted set_config change

* resolving comments
2020-05-05 12:30:50 -07:00
Lavius Motileng
a722ce460c [Settings UI] Updated General Settings (#2676)
* updated general settings view

* moved text to string resource

* Update App.xaml.cs

* set run-elevated as a start-up argument
2020-05-05 10:02:31 -07:00
Divyansh Srivastava
67b2f28064 Added code to sanitize folder path (#2673) 2020-05-05 09:41:11 -07:00
yuyoyuppe
8b988409e2 FancyZones: LowLevelKeyboardProc & other improvements 2020-05-05 15:16:37 +03:00
yuyoyuppe
57c4658021 FancyZones: prevent WinHookEventProc reentrancy bugs by serializing events to FancyZones::WndProc 2020-05-05 15:16:37 +03:00
Davide Giacometti
283bfde3d9 better layout alignment for image resizer (#2611)
Co-authored-by: Davide Giacometti <davide.giacometti@softwareuno.it>
2020-05-05 13:15:47 +02:00
vldmr11080
41935aa9aa Split general module settings and UI flags to separate files. (#2613) 2020-05-05 12:39:15 +02:00
stefansjfw
9206d1f5f1 Make transforming struct field names to dash case region invariant (#2679) 2020-05-05 11:39:18 +02:00
vldmr11080
f5381ae3e3 [FancyZones] Clean up resources taken by closed virtual desktops on module startup (#2616)
* Clean up resources taken by closed virtual desktops on FancyZones module startup.

* Overload GetVirtualDesktopIds to return wide string.

* Refactor OnDisplayChange method.
2020-05-05 10:13:50 +02:00
theaquamarine
95c4bf5854 Enable FancyZones to react to right Windows key (#2624)
Check the status of VK_RWIN as well as VK_LWIN

Fixes #436
2020-05-05 09:21:55 +02:00
vldmr11080
2b4b23f726 [ImageResizer] Migrate settings from registry to JSON. (#2604)
* Migrate ImageResizer settings from registry to JSON.

* Update last loaded time read/write IO operations.

* Rename registry helper functions.
2020-05-05 09:00:50 +02:00
ryanbodrug-microsoft
64c17767ed Reading correct json property for "Run" program. This prevents the Run (Previously PowerLauncher) from being opened when settings has it disabled. 2020-05-04 20:34:34 -07:00
ryanbodrug-microsoft
32d75749a0 Updating MSI installer to use Microsoft.Plugin.* directory paths. 2020-05-04 20:34:34 -07:00
ryanbodrug-microsoft
e776f9c7d8 Moving Plugins from Wox.Plugin.* to Microsoft.Plugin.*. This is to rename the assemblies that get saved to the settings directory. External plugins will get saved to their on assembly folder in the future. 2020-05-04 20:34:34 -07:00
ryanbodrug-microsoft
3bdcf1077b Updating wox infrastructure to save to "AppData\\Local\\Microsoft\\PowerToys\\Run" directory. 2020-05-04 20:34:34 -07:00
ryanbodrug-microsoft
da550a4a67 Moving launcher save settings under AppData/Local/Microsoft/PowerToys/Run 2020-05-04 20:34:34 -07:00
ryanbodrug-microsoft
1655594514 fix for crash when tabbing with no selected item 2020-05-04 20:33:52 -07:00
Arjun Balgovind
c4f884f104 Change behavior on Edit Keyboard screen to be physical keys (#2666)
* Commented out ToggleToMod and AppSpecific function calls

* Added logic to make sure key remaps don't occur on Edit Keyboard Window

* Changed behavior such that remappings only apply after window is closed
2020-05-04 15:49:37 -07:00
Divyansh Srivastava
855f3d74fe Remove WW module (#2664)
* Removed WW module from sln file

* Remove WW from product.wxs

* Removed WW from runner
2020-05-04 15:40:15 -07:00
Tomas Agustin Raies
7fc140af01 [Settings] Update version in General Settings (#2601)
* Update version in General Settings

* Set version in settings.json file

* Only overwrite the settings.json file if it is newer than the old version.

* Fix tests

* Fix test names and added comment
2020-05-04 14:40:32 -07:00
Arjun Balgovind
d401474981 Add post-build event for publishing Launcher (#2561)
* Added post build script

* Added comments

* Added unset statement

* Added debug checks

* added more debug statements

* Added dir and cat statements to check pipeline output

* revert installer change

* Moved nuget package reference from update to include

* Removed debug cat command

* Removed debugging statements

* Added build script for launcher

* Added launcher scripts

* Removed launcher scripts

* Fixed interop folder and added hacked powerlauncher script

* Added publish only for Release
2020-05-04 13:30:38 -07:00
Tomas Agustin Raies
0f6563e8e0 Fix crashing in Windows Insiders builds (#2562)
Added missing initialization of winrt apartment
2020-05-04 11:36:57 -07:00
Alekhya
6cd0f83496 Fix FancyZones issue of dlls being overwritten by PreviewPane's MarkDig (#2589)
* Added output folder

* Added FileExplorerPreview output folder for all projects

* Added extra dlls and FileExplorerPreview to path

* Added folder and modified path for registry setup of preview handlers
2020-05-04 07:42:05 -07:00
Lavius Motileng
b428fc97e9 fix: Start as Admin Error: Unable to open app when running elevated (#2411)
* fixed run-elevated error and powerpreview settings not working

* removed EXTENDED_STARTUPINFO_PRESENT flag

* removed test string

* Update Microsoft.PowerToys.Settings.UnitTest.csproj

* Rename PowerLauncher.cs to PowerLauncherViewModelTest.cs
2020-05-03 03:17:06 -07:00
Tom Dörr
c14c51f551 Fix license file (#2626)
By removing `(MIT)` from the `LICENSE` file, the license type is displayed on the PowerToys start page.
2020-05-02 15:59:18 -07:00
Arjun Balgovind
8e18104f38 [KBM] Constrain the buttons such that only one of the windows can be opened (#2566)
* Bypass XamlBridge Window focus handling

* Constrain only one window can be opened at a time

* Revert changes on files changed in another PR

* Changed WM_DESTROY to WM_NCDESTROY

Co-authored-by: Tomas Raies <tomas.raies@gmail.com>
2020-05-01 17:34:42 -07:00
Divyansh Srivastava
06fcc2bf46 Updated file path/description of plugins (#2593)
* Updated file path/description of plugins

* Updated file paths to include plugin tag

* Code cleanup
2020-05-01 17:26:02 -07:00
Tomas Agustin Raies
1656b4c5b9 [Launcher] Remove Win+R checkbox (#2513)
* Remove Win+R

* Comment out all unused options

* Fix PowerLauncherViewModel tests
2020-05-01 15:58:55 -07:00
Clint Rutkas
431f7ab37c Adjusting text for 2564 (#2606) 2020-05-01 15:25:56 -07:00
Divyansh Srivastava
f44109abae [launcher] Location and multi monitor support (#2446)
* Fixed left and top window

* Added dpi Aware launcher positioning code

* Code cleanup

* Added support to drag window

* Multi monitor support added

Remaining fix : Launcher doesn't open first time on changing monitor

* removed code handling change in DPI manually

* Code cleanup

* Fix to support multimonitor display

* Code cleanup

* Revert "Code cleanup"

This reverts commit 38f39924f0.

* Revert back to WOX helper for calculating normalized DPI
2020-05-01 14:25:06 -07:00
Arjun Balgovind
8cb134f56b Add post-build event for publishing SettingsV2 (#2473)
* Added post build script

* Added comments

* Added unset statement

* Added debug checks

* added more debug statements

* Added dir and cat statements to check pipeline output

* revert installer change

* Moved nuget package reference from update to include

* Removed debug cat command

* Removed debugging statements

* Added build script for launcher

* Added launcher scripts

* Removed launcher scripts

* Changed taskkill to throw error

* Added back old config properties
2020-05-01 13:17:30 -07:00
Clint Rutkas
032aa2d1d6 making teams launch, not updater. this will also fix a lot of cmd style lnks too. Made null ref on boot fix too. (#2598) 2020-05-01 10:55:01 -07:00
grahamaj
cbe20d9c96 Grammar update for the FZ README (#2592) 2020-05-01 18:21:52 +02:00
stefansjfw
e6b74b10eb [FancyZones] Make snapping windows using Windows Snap Hotkeys across monitors optional (#2583)
* Make moving window across monitors optional

* Update tests

* Address PR comment: Update description of the toggle
2020-05-01 16:17:16 +02:00
Andrey Nekrasov
8c4dbbfbec FZ: run AnimateWindow and InvalidateRect in a dedicated thread (#2582) 2020-05-01 17:14:35 +03:00
Andrey Nekrasov
9bde15d4ac FancyZones: subscribe only to handled WinHook events (#2584)
* FancyZones: subscribe only to handled WinHook events

* formatting fix
2020-05-01 17:13:52 +03:00
vldmr11080
fd32dad7eb [FancyZones] Send message from VirtualDesktopUpdates thread to FZ thread when update happens (#2568)
* Move part of the virtual desktops related logic from FancyZones to VirtualDesktopUtils.

* Post WM message from vritual desktop tracker thread to FZ thread.

* Minor improvements in RegisterVirtualDesktopUpdates method.

* Close registry key after HandleVirtualDesktopUpdates thread finishes execution.

* Remove comment explaining workaround to VirtualDesktopUtils namespace.

* Move HandleVirtualDesktopUpdates to VirtualDesktopUtils namespace. Resolve PR comments.

* Fix typos in window messages description.

* Remove lock from OnKeyDown method to avoid deadlock.
2020-05-01 16:13:16 +02:00
vldmr11080
64df515c63 [PowerRename] Use int type instead of long in PowerRename Settings (#2502)
* Fix signed/unsigned comparison in power rename Settings.

* Use int instead of long (same on 64-bit windows).
2020-05-01 13:26:38 +02:00
stefansjfw
8908bd9889 Remove unused ZoneSetPersistedDataOLD struct (#2581) 2020-05-01 12:35:37 +02:00
Divyansh Srivastava
5c3159cbca Update plugin ID for WW (#2512) 2020-04-30 18:47:03 -07:00
Clint Rutkas
9afe72d508 Update README.md 2020-04-30 11:53:52 -07:00
Tomas Agustin Raies
c002d2c99f Merge pull request #2510 from microsoft/dev/traies/merge-powerlauncher
Merge missing commits from power launcher
2020-04-30 10:19:45 -07:00
Nghia M. Luong
c768b6bd0c Remove unused headers (#2471) 2020-04-30 20:14:33 +03:00
Seraphima Zykova
7903fe52b4 FancyZones decomposition (#2485)
* FancyZones refactoring
Co-Authored-By: Andrey Nekrasov <yuyoyuppe@users.noreply.github.com>
2020-04-30 13:16:08 +03:00
Ivan Stošić
313b1b39a7 FancyZones now does its own event processing (#2347)
* FancyZones now does its own event processing

* Removed temporary variable
2020-04-30 11:40:13 +02:00
vldmr11080
648f3abcbd Handle scenario with only primary desktop and no desktop switch in current session. (#2339)
* Handle scenario with only primary desktop and no desktop swithc in current session.

* Add scoped lock when changing current desktop id. Address PR comments.

* Explain purpose of UpdatePrimaryDesktopData method.

* Fix typo in documentation.
2020-04-30 11:16:25 +02:00
Ivan Stošić
2db98715cc "Unhooked" the Shortcut guide module from the PT event dispatcher (#2318)
* "Unhooked" the Shortcut guide module from the PT event dispatcher

* Fixup: warning/undefined behavior/terrible bug

* SetWindowsHookEx and UnhookWindowsHookEx now fail silently

* Updated a comment in shortcut_guide.h

* Renamed a method, added an error message
2020-04-30 11:05:18 +02:00
Arjun Balgovind
5e3da57e21 Fix Keyboard Navigation and Xaml Island focus issues for KBM (dev/build-features) (#2429)
* Added XamlBridge code and implemented keyboard focus navigation for xaml islands

* Change global pointer to static
2020-04-29 17:58:31 -07:00
Tomas Raies
dceef35aac Merge branch 'dev/PowerLauncher' into dev/traies/merge-powerlauncher 2020-04-29 15:28:54 -07:00
vldmr11080
2d23952181 Don't poll for changes in HKEY_CURRENT_USER, but only for VirtualDesktops reg key. (#2496) 2020-04-30 00:10:53 +02:00
Tomas Agustin Raies
518da7e81d Merge pull request #2489 from microsoft/dev/traies/fix-bad-build-features-launcher-merge
Fix bad build-features/PowerLauncher merge
2020-04-29 14:45:34 -07:00
Clint Rutkas
8db1eb69dc Update README.md 2020-04-29 13:56:45 -07:00
Rafael Rivera
d16ebba9e0 Move from sdk-provided cppwinrt-1.x to cppwinrt-2.x nuget package (#2246) 2020-04-29 22:02:18 +02:00
Enrico Giordani
ee0420188c Now working on 0.17.1 (#2493) 2020-04-29 22:01:16 +02:00
Tomas Raies
b9d14d31ae Merge branch 'dev/traies/build_features_launcher_integration' into dev/traies/fix-bad-build-features-launcher-merge 2020-04-29 12:00:36 -07:00
Tomas Raies
c505875fef Settings + PowerLauncher integration
* Fix project references

* Fix MaxResultsToShow

* Fix Alt + Space display

* Fix settings defaults
2020-04-29 11:36:43 -07:00
Tomas Raies
6029f0ed36 Revert "Merge PowerLauncher branch (#2345)"
This reverts commit d9c4abe0df.
2020-04-29 11:32:00 -07:00
Clint Rutkas
734bed4821 Update README.md 2020-04-29 11:25:21 -07:00
Niels Laute
26b3185933 [Launcher] Fluent UX enhancements (#2477)
* Removed unnecessary styling resources.
Fixed searchbox overlay.
Fixed a bug where the command buttons would fall of the list

* Fixed a bug where the app icon could overlap the title/path textblocks

* Consistent background / border color

* Tweaked shadow, background color now theme depended
2020-04-29 10:33:58 -07:00
Clint Rutkas
5efa9ff0b2 correct spelling mistakes for en-us :) (#2475) 2020-04-29 10:29:31 -07:00
Enrico Giordani
ac6a013bf5 FZ Readme and backlog update (#2418) 2020-04-29 10:14:35 -07:00
Tomas Agustin Raies
d9c4abe0df Merge PowerLauncher branch (#2345)
* minor modifications in README

* Added launcher project and changed references to common

* Added the code to launch another process

* added shellapi header

* Added launcher to runner

* added functions to remove the abstract class error

* added the wox launcher dll

* Readded the reference to common

* modified the additional include directories for the release version

* changed the name to be displayed from Wox.Launcher to Launcher

* Localized the strings of Launcher

* Added a SearchResult Helper class

* Created a helper class to use indexer and return search results

* Added the main and settings file which declare most of the plugin interfaces

* Added references and renamed a class

* Added the images folder which contains the windows indexer icon

* Added the image

* Added the plugin.json file

* Minor changes in project files

* Added plugin.json to the project

* Modified the output paths to create the dll for the plugin in the correct location

* Refactored the code to make it unit testable

* Made the code unit testable and added unit tests for the indexer plugin

* Removed commented out code

* Code to terminate wox when we exit PowerToys

* Copy from Jeremy's fork PR

* Removed unnecessary plugins from source tree

* add missing files

* Fix postbuild event

* Added x64 for all Wox project - Debug mode

* Removed the AnyCPU config - Debug

* Added the build paths for release x64 (removed AnyCPU)

* Set warning level to 4 : Release

* Set warning level 4 : Debug

* set optimize code to false

* Removed notify icon component

* Removed setting UI XAML file and references

* Readded necessary callback functions

* Removed python path and python plugin functions

* Removed UI related to python path and the bindings related to that

* Remove python bindings

* Removed the localized string translations from pythonDirectory and SelectPythonDirectory

* Manually resolving conflicts

* Fix Wox build in project settings

* deleting unused project files

* Undo change internal

* Fix internal variable

* All wox exceptions in debug are getting rethrown, and thus causing the app to crash.  This change removes the debug specific code and allows exceptions to be handled the same was as release.

* Ported Indexer plugin to .net core 3

* Added the test project back

* Removed the .net framework indexer folder

* readding the plugin.json file

* Changed the anyCPU config to x64 for windows indexer plugin

* Adding dependency to wox project on the runner.  This should make sure the wox.exe can be build and launched by the runner so wox can run as a background process.

* Updating build dependencies.  Wox.Launcher wasn't built as part of the F5 Experience, and nor were the plugins

* removing locks from the ResultListBox code behind file.  All callbacks are accessed from the Main/UI thread.

* Remove anyCPU config and changed it to x64

* Removed anycpu of test proj

* Adding dependency

* Renaming executable to PowerLauncher.  Replaceing icons with placeholder. Deleting Docs folder

* Renaming AppData directory from 'Wox' to 'PowerLauncher'.  Also replacing issue link with powertoys github.

* adding support for xaml islands

* Added Neils UI code

* Replace Niels Code references

* Added assets and behaviours

* Add missing reference

* Add main view model binding

* Using proper executable name when closing 'PowerLauncher' process

* changed x:bind to Binding to avoid reference

* Updated bindings for launcher

* Added binding on searchBox

* Adding Directory.Build.targets file to kill the PowerLauncher pprocess on Build or Clean operations of all 'Launcher' projects.

* Fixed exception preventing result display

* Fixed issue with wpf marshalling events to a non UI thread

* Optimised result binding by inserting search result from multiple plugin in parallel

* copy resource files to output folder

* Corrected the output path for the indexer plugin

* windows indexer plugin is working

* Remove console print statement

* Added callback function for mouse click on search result

* Working App execution

* Cherry picked pinyin performance changes from jjw24's master branch

* change nuget package to msft for winrt compat

* Working up/down arrow key

* updating references and removing a few that seem uneeded for how stuff is referenced

* adding two back in

* Removing Squirrel dll.  unsure on updating so i kept that logic in

* Updated functionality on suggestion chosen in autosuggestbox

* Added the <useWPF> tag to remove the warning

* Removed an unnecessary <useWindowsForms> tag

* Removed the item group for properties from calculator plugin

* Removed the item group for properties from folder plugin

* Removed the item group for properties from indexer, program and shell plugin

* Removed itemgrp from wox.core and wox.test csprojs

* Removed the unnecessary wox files to clean up codebase

* Renamed Wox.Plugin.Indexer to Microsoft.Plugin.Indexer

* Renamed Wox.Launcher to Microsoft.Launcher

* To avoid DBNull to String typecast exception

* Added query submitted event to handle default action on clicking a list view item

* Merge pull request #42 from microsoft/AddPinyinPerformance

Cherry picked pinyin performance changes from jjw24's master branch

(cherry picked from commit b9e437c6cd)

* Rectyfying title display

* Title display working correctly

* Removed .yml files

* adding checks

* Making wox.csproj build wox assembly instead of powerlauncher

* Removing update logic from PowerLuanch App.xaml.cs as was done in Wox project.

* Making Query internals visible to wox.

* Update Powerlauncher nuget packages to be same version as wox.csproj.   Note:  FoxyWeavers.xsd change is automatically done as part of nuget package update.

* Updating build dependencies to so that wox.launcher depends on powerlauncher.csproj not wox.csproj

* Removing 'Wox' branded logos from powerlauncher.csproj as was done previously or wox.csproj

* Downgraded the library to the latest stable version

* single thread execution of the indexer plugin and InvalidOperationException due to connection being closed on ExecuteReader, handled separately

* Modified the test, the connection need not be null after being disposed. There is no direct way of checking if an object has been disposed other than to throw the InvalidOperationException

* Removing x86,ARM,ARM64, build configurations, as these were added accidentally when adding xaml island support.

* Removed STAThread

* Modified the output folder produced

* Renamed the dll produced

* Added dependency on PowerLauncher to the Microsoft.Launcher project

* modified the name of the dll in the indexer plugin

* Ignoring 128 errors from taskkill, as this means the process isn't running. We don't want htis to show up in the warnings list on build

* Added fix for closing wox on pressing escape and app execution (#75)

* adding useWPF to get rid of warning

* Launcher resize issue on selecting search result (#77)

* Added fix for closing wox on pressing escape and app execution

* Added fix to prevent autosuggestbox resize

* Fixing xaml catastrophic failure, based on Miguels suggestion here: https://github.com/windows-toolkit/Microsoft.Toolkit.Win32/issues/210

* suggested fix

* removing unused mutex string

* Searches for keyword only in title and not content to improve the quality of results

* Display the title from System.Title directly instead of extracting it from the path

* Removed additional README instructions before moving to the powerToys repo

* Fix Query builder test (#86)

* Revert base viewModel class to fix tests.

* Removing unused post build and deploy scripts.

* tweaked url

* Update plugin.json

* Update README.md

* removed unused dep (#2080)

* removed reference to everything (#2133)

* SearchIndexer - Modifying QueryContentProperties and QuerySelectColumns to use System.FileName

* Search result thumbnail for PowerLauncher (#2124)

* Replace WPF Imaging library with UWP

* Removed UWP and WPF namespace conflicting files from Wox

* Removed Image hashing as it wasn't used anywhere

* Updated formatting

* Set MainViewModel visibility to hidden on startup

* Enable CI build on PowerLauncher Branch (#2181)

* Enable CI build on PowerLauncher Branch

* Updated Nuget restore to latest and added AssetTargetFallback property

* tweak text (#2177)

* [Window Walker] Migrate to Launcher (#2093)

* Copy the existing calc. plugin foldeR

* Blindly rename a bunch of things to Window Walker

* Update the solution to reference the new plugin

* Get basic Yo returned

* Remove all the languages except english

* Lower quality of icon as well as test showing it

* Add the core non-ui parts to the plugin

* Delete calculator png

* Get it to compile

* Added the actual code which apparently doesn't work

* Finally start showing results

* Fix up strings

* Switch working

* Remove unused classes

* Remove unneeded async

* Added MSI support for Launcher (#2242)

* Fixed typo in output folder of calculator plugin

* Calculator plugin works

* Modified the name of the image to remove space as space is assumed to be a separator in wcx file

* Fixed typo in calculator dll

* Fixed typo in calculator plugin

* Shell, Program, Folde and indexer plugin working

* Added the ww plugin

* Fixed typos in the calculator plugin

* Delete file that was added unintentionally

* revert calculator rename changes

* Reverted other files changed

* Reverted renaming of file with space

* Pull changes from master to dev/powerLauncher (#2255)

* Dpi unaware placement bug (#2121)

Fix for bug when placing dpi unaware window such as Notepad++ in left of right part of monitor. In that application gap of about 7px was left or right.
This fixes only single-monitor scenario
It skips correction for dpi unaware window that leaves a gap

* Move markdown parsing logic outside control thread (#2099)

* Move markdown parsing logic outside control thread

* Update MarkdownPreviewHandlerControl.cs

* Remove trailing whitespace.

That'll teach me for trying to make an edit from the GitHub page.

* Migrate power rename MRU lists from registry to JSON (#2090)

* Handle most recently used search/replace strings within settings.

* Check for last modified time of json file and reload it if needed.

* Handle changes in MRU search / replace lists size.

* Improve handling of changes in MRU list size.

* Don't check for last modified time in every getter method. Load only when starting application.

* Add const identifier to getter methods.

* Address PR comments: Add const to reg and json file paths and set them in constructor initializer. Check pushIdx validity. Move implementation to cpp of PowerRenameUI constructor.

* Add error checking when getting values from registry.

* Implementing changes suggested in #1992 (#2116)

* Implementing changes suggested in #1992

* Update Product.wxs

Co-authored-by: Ebenezer Ewumi <ebenezer.ewumi@wsu.edu>

* Fix for issue #1532 - [PowerToys tray icon] Show version on tooltip (#2117)

* Fix for issue #1532

[PowerToys] Show version on tooltip

* Update src/runner/tray_icon.cpp

Co-Authored-By: Andrey Nekrasov <yuyoyuppe@users.noreply.github.com>

Co-authored-by: Andrey Nekrasov <yuyoyuppe@users.noreply.github.com>

* FZ editor: Splitted zones positioning (#2158)

* Added a mutex to ZoneWindow, ensured no data races occur (#2154)

* Added a mutex to ZoneWindow, ensured no data races occur

* Protected draggedWindow* members with a mutex

* Ensured that critical reads happen in a single transaction

* Dpi unaware placement bug - multimontior with same DPI settings fix (#2156)

* Dpi unaware placement bug - multimontior with same DPI settings fix

* Using different enumerating method

* Changed AllMonitorHaveSameDpiScaling method

* Removed accidental file

* small rename

* Changed some methods to CamelCase

* Review comments fixes

Co-authored-by: PrzemyslawTusinski <61138537+PrzemyslawTusinski@users.noreply.github.com>
Co-authored-by: Ben Randall <veleek@gmail.com>
Co-authored-by: vldmr11080 <57061786+vldmr11080@users.noreply.github.com>
Co-authored-by: eduardodextil <55205162+eduardodextil@users.noreply.github.com>
Co-authored-by: Ebenezer Ewumi <ebenezer.ewumi@wsu.edu>
Co-authored-by: Nghia M. Luong <32159519+sqrlmn@users.noreply.github.com>
Co-authored-by: Andrey Nekrasov <yuyoyuppe@users.noreply.github.com>
Co-authored-by: Seraphima Zykova <zykovas91@gmail.com>
Co-authored-by: Ivan Stošić <ivan100sic@gmail.com>

* Somil55/merge custom ui into launcher (#2271)

* Remove Autosuggest box (#2192)

* Update Settings.Designer.cs

* Revert "Update Settings.Designer.cs"

This reverts commit a1bc0dda56.

* Updated LauncherControl XAML to add textbox and listview

* List View displayed

* Hooking up execution on the selected index, removing two way binding on selection, and experimenting with popup that doesn't work

* Updated MainViewModel to Remove context menu and history

* Added Resultist XAML Island project

* Updated SelectedItem and SelectedList Binding.
Issues :  List box doesn't open when query is written for first time but opens in subsequent queries.

* 1. Mouse Click working
2. List View is can't be focused
3. Fixed width of Launcher

* Removed two way QueryText box binding

* Removed SelectedItem two way binding and replaced with a callback

* [Cleaning] Remove redundant UWP project

* [Cleaning] Updated files to keep only atomic changes against dev/powerLauncher

* Thmbnail fixed for NEW UI

* Removed PreviewMouseDown function required by older WOX code

Co-authored-by: ryanbodrug-microsoft <56318517+ryanbodrug-microsoft@users.noreply.github.com>

* Added the auto-complete feature

* Removing ContextMenuPluginInfo, and ContextMenuTopMost as these commands are not used int the new design.

* Fixed merge conflicts

* Set only when index is 0

* One way binding

* Removed unnecessary binding

* Deleting unused (commented out code) that was legacy from wox project.

* Binding Buttons to appropriate context menu commands.
1. Buttons are dynamically loaded in a listview based on the actions supported be each plugin.

This change also deletes unused commands.

Note:  Most button events don't seem to be getting routed to the Selected Item.  Currently using 'PointerEntered' to validate the behavior.  The actions should be trigged by the button command property in the future.

* manually handling tab in mainwindow

* Loading context buttons on Selecting a suggestion list item

* Allowing hover event to load content menu items and display them as well.

* Adding context buttons to Indexer plugin.  This allows for the following:
1. [Files] Open Containing folder
2. [Folders/Files] Copy Path

* Remove White background of list (#2218)

* Remove white background of list

* Removed comments

* Changed to ContainerContentChanging event

* add const variables instead of numbers

* Added comment before the updatelistSize function

* Search box UI (#2224)

* Added backdrop and rounded corner

* Fix for two alt+space press to bring searchbox issue

* Fixed merge conflict

* Clean Mainwindow.xaml code

* Fix for textbox focus on first visible

* Allowing users to tab between the context buttons for the selected resut.  Also allowing users to press 'enter' to action on the selected items.

* Renaming SelectedIndex to ContextMenuSelectedIndex

* Enabling key accelerators on context buttons.
1. Add new object ContextMenuResult instead instead of reusing Result for both query results and context menu results.
2. Binding KeyboardAccelerator keys to contextmenuitemviewmodel
3. Enabling and disabling contextmenu items when selecting or deselecting each row.  Because we are manually maintaining selectionwe can't use ScopeOwners as the textbox is really the only item ever in focus.

* Launching explorer instead of the UWP application when selecting 'open file location'.

* Added fix for border showing up when result count is zero

* Updated fix for border on no result

* Adding visibility  after clearing result in MainViewmodel

* Launcher Light/Dark mode (#2235)

* Fixed issue with list view background not updating with Windows theme change

* Added theme change for WPF

* updated ShadowDepth for dropshadow

* Updated border thicknes of searchbox and listview

* Diff issue with ResultList.xaml

* Removed change in result delay

* Added code to pull colors from UWP

* Updated border resource to use system based SystemControlHighlightAccentBrush

* Updated corner radius in dark mode

* Updated Launcher description text

Co-authored-by: ryanbodrug-microsoft <56318517+ryanbodrug-microsoft@users.noreply.github.com>
Co-authored-by: Alekhya Reddy <reddykalekhya@gmail.com>

* Changed to SystemChromeLow from Accent brush (#2272)

* Removed ListView animations

* Positioning ContextButtons and adding background.

* Disabling scrollbars for gridview items.

* Removed folder plugin

* removed deployment for uwp apps (#2298)

* Simulating Win+backspace key press, instead of Win+Control as it was launching WW (#2250)

* text is selected whenever launcher gets hidden and is then set to visible (#2315)

* Update nuget packages across solution to latest (#2334)

* simplifying the xaml and making things tighter (#2327)

* Setting runcommand as the default execution method, and turning off run as admin by default.

* Opening explorer if the user has types a file path.

* Enable PowerLauncher toggle

* Launcher MSI - Added a required dll and removed folder plugin (#2355)

* Modified the product.wxs file

* Added the x64 config

* Modify scoring algorithm for fuzzy search (#2361)

* Modify scoring

* modified to if else

* Fixes race conditions with PointerEnter/Exit events conflicting with Selection and unselection.   This change provides better encapsulation of the logic to enable a selected item for accelerator (hotkey) events, and allow mouse input on results where the pointer is over.

* Fixes an issue where PointerExit would hide the selected context buttons.

* Result List - Bad rebase overwrote margin and translation fields.

* Fixed process executing on clicking enter if no text in search box

* Codeflow cleanup when selectedItem is not null

* adjusting how programs are displayed. (#2369)

* Removing description from title

* adjusting subtitle

* removing accidently paste

* removing desc for uwp apps

* Revert "Removed folder plugin"

This reverts commit 064d638588.

We will use the folder plugin to better mimic the way the start menu and run prompt deal with directories

* Updating JetBrains.Annotations to 2020.1.0 to be consistent with other projects.

* Replacing submenu text with full path as 'Ctrl-Enter' doesn't do anything.  Also reducing the String of CreateOpenCurrentResult to fit in one line.

* - Making Open Directory subtitle fixed, and the title as the current directory.

* Adding back binding to QueryText and updating the cursor position similar to how wox originally did it.

* Add the folder plugin wxs back in (#2374)

* Deduping results for program plugin (#2375)

* Removing description from title

* adjusting subtitle

* removing accidently paste

* removing desc for uwp apps

* Getting dups removed from list if LNK exists

* adjusting subtitle

* removing accidently paste

* Getting dups removed from list if LNK exists

* changed to normal forloop

* Removing WinR (#2381)

* Updated program execution to call action on background thread. (#2370)

* PowerLauncher Settings integration

* Added cold start fix (#2385)

* - Fixes cursor jumping around issue.
- Seperating the ability to set the text from initiating a query.
- Plugins have to explicitly request the query be updated.
- Updating Folder plugin to explicty update the query on folder selection.
- Removing unused changes from 'Wox' that don't compile.

* Fixing gap in logic where query was triggering when programatically setting text.

Updating the binding and settext both will trigger the TextChanged event on a seperate event dispatcher.  For this reason we dynamically detect which eventhandler is most approapriate on the textchanging event.

* Updating the QueryText to the selected item when navigating up/down with the  arrow keys.

* Removing action on folder result, and displaying folder path on selecting a folder result from the folder plugin.

* Making folder results from the search indexer plugin behave like folder results from folder plugin.

* Folder Results open the explorer window when selected.

* The Open Current Folder result shouldn't change the query text to 'Open {folder path}' when selecting the results.

* Initializing query text strings.

* Defensive check for QueryText being empty

* Adding file watchers for UWP detecting when apps are installed or deleted and reindexing the uwp apps

* Removing unused namespace.

* Looking at files and not filtering is better because the timer is more likely to reset while an install is happening, preventing uneeded indexing

* Fix project references

* Fix MaxResultsToShow

* Fix Alt + Space display

* Fix settings defaults

Co-authored-by: Alekhya Reddy Kommuru <reddykalekhya@gmail.com>
Co-authored-by: bkudiess <bakudies@microsoft.com>
Co-authored-by: Divyansh <somm14divi@gmail.com>
Co-authored-by: ryanbodrug-microsoft <56318517+ryanbodrug-microsoft@users.noreply.github.com>
Co-authored-by: Barbara Kudiess <bkudiess@me.com>
Co-authored-by: Jeremy Wu <jeremy24wu@gmail.com>
Co-authored-by: Clint Rutkas <clint@rutkas.com>
Co-authored-by: udit3333 <udit3333@gmail.com>
Co-authored-by: Betsegaw (Beta) Tadele <betsegaw.ta@gmail.com>
Co-authored-by: PrzemyslawTusinski <61138537+PrzemyslawTusinski@users.noreply.github.com>
Co-authored-by: Ben Randall <veleek@gmail.com>
Co-authored-by: vldmr11080 <57061786+vldmr11080@users.noreply.github.com>
Co-authored-by: eduardodextil <55205162+eduardodextil@users.noreply.github.com>
Co-authored-by: Ebenezer Ewumi <ebenezer.ewumi@wsu.edu>
Co-authored-by: Nghia M. Luong <32159519+sqrlmn@users.noreply.github.com>
Co-authored-by: Andrey Nekrasov <yuyoyuppe@users.noreply.github.com>
Co-authored-by: Seraphima Zykova <zykovas91@gmail.com>
Co-authored-by: Ivan Stošić <ivan100sic@gmail.com>
2020-04-28 15:06:01 -07:00
Clint Rutkas
ae9e257e56 Update NOTICE.md 2020-04-28 10:42:16 -07:00
yuyoyuppe
bb82a9bcf4 FZ: remove RestoreOrginalTransparency() from ZoneWindow::~ZoneWindow() and from ZoneWindow::MoveSizeEnter() 2020-04-28 15:17:20 +03:00
yuyoyuppe
df61ea0a62 Revert "Added a mutex to ZoneWindow, ensured no data races occur (#2154)"
This reverts commit af4678ff18.
2020-04-28 15:17:20 +03:00
Niels Laute
371926b202 [Launcher] Fluent UX fixes for the results list (#2427)
* Fixed right margin

* Fixed issue where the background of the gridview would light up on pointerover.

* Fixed issue where application title/path run through command buttons. Centrally aligned image/icon.

* Updated the shadow so it looks more like a UWP ThemeShadow.
2020-04-27 17:35:33 -07:00
Tomas Raies
fe77a7e01a Merge branch 'dev/PowerLauncher' into dev/traies/build_features_launcher_integration 2020-04-27 11:52:20 -07:00
Tomas Raies
e6b43e19c2 Merge branch 'dev/build-features' into dev/traies/build_features_launcher_integration 2020-04-27 10:48:32 -07:00
Arjun
96b2145ba1 Merge branch 'master' into dev/build-features 2020-04-27 08:42:42 -07:00
Enrico Giordani
feb950be3c Increment version to 0.17.0 (#2415) 2020-04-27 16:25:25 +02:00
Andrey Nekrasov
5b02bda277 runner: download_updates_automatically option is disabled by default for non-admin users (#2412) 2020-04-27 16:02:28 +03:00
Andrey Nekrasov
ce4643d650 runner: autoupdate improvements (#2346) 2020-04-27 13:39:47 +03:00
Yevhenii Holovachov
55c311cd39 "Download updates automatically" toggle enabled only for administrator account (#2357)
* Added condition to disable auto updates toggle in settings for non-administrator accounts
2020-04-27 11:04:20 +03:00
Tomas Agustin Raies
8f8bfb9446 Make Edit Shortcut/Single Key window scrollable (#2409)
* Make Edit Shortcut/Single Key window scrollable

* Don't scroll header and buttons

* added margin beneath the add button
2020-04-26 21:57:51 -07:00
Lavius Motileng
8f2a33dcaa Added Image Resizer Settings (#2324)
* added image resizer settings

* updated string resource and binding

* added tests and removed sett advanced settings from image resizer

* fixed string resource spacing

* moved conbo box strings to string resource

* updated name of contributor

* Capitalized size names

* updated fallback encoder and sizers configs

* removed interence between settings | used static resource binding

* fixed build error
2020-04-26 17:34:03 -07:00
Tomas Agustin Raies
4946daeea4 Fix incompatible assemblies building issues (#2394)
* Remove reference to TwoWayIPCLib
* Downgraded System.Text.Json package in Settings.Lib
2020-04-26 16:44:14 -07:00
Arjun Balgovind
38ecc82e97 Improve warnings for KBM (dev/build-features) (#2386)
* Handled invalid input for single key remaps

* Added some functions

* Added better error message functions and finished warnings for edit keyboard

* Updated dropdown order of keys

* Added new warning template for shortcuts

* Added show warning on Apply code

* Removed old flyout code

* Fixed issue where tooltips were replaced on Apply

* Simplified == operator
2020-04-26 15:09:40 -07:00
Tomas Agustin Raies
7ec8d02c1f PowerLauncherSettings unit tests (#2276) 2020-04-26 13:15:40 -07:00
ryanbodrug-microsoft
a047ff2228 Looking at files and not filtering is better because the timer is more likely to reset while an install is happening, preventing uneeded indexing 2020-04-26 09:57:27 -07:00
ryanbodrug-microsoft
3dd181c912 Removing unused namespace. 2020-04-26 09:57:27 -07:00
ryanbodrug-microsoft
3753ecd8e5 Adding file watchers for UWP detecting when apps are installed or deleted and reindexing the uwp apps 2020-04-26 09:57:27 -07:00
ryanbodrug-microsoft
eaf05aa31a Defensive check for QueryText being empty 2020-04-25 12:24:57 -07:00
ryanbodrug-microsoft
ad0f965f3a Initializing query text strings. 2020-04-25 12:14:03 -07:00
ryanbodrug-microsoft
53e68c0567 The Open Current Folder result shouldn't change the query text to 'Open {folder path}' when selecting the results. 2020-04-25 12:14:03 -07:00
ryanbodrug-microsoft
9f609ac80f Folder Results open the explorer window when selected. 2020-04-25 12:14:03 -07:00
ryanbodrug-microsoft
2b04d7a92d Making folder results from the search indexer plugin behave like folder results from folder plugin. 2020-04-25 12:14:03 -07:00
ryanbodrug-microsoft
8f7305e347 Removing action on folder result, and displaying folder path on selecting a folder result from the folder plugin. 2020-04-25 12:14:03 -07:00
ryanbodrug-microsoft
9d3720557e Updating the QueryText to the selected item when navigating up/down with the arrow keys. 2020-04-25 12:14:03 -07:00
ryanbodrug-microsoft
aa79325d76 Fixing gap in logic where query was triggering when programatically setting text.
Updating the binding and settext both will trigger the TextChanged event on a seperate event dispatcher.  For this reason we dynamically detect which eventhandler is most approapriate on the textchanging event.
2020-04-25 12:14:03 -07:00
ryanbodrug-microsoft
15b7b20500 - Fixes cursor jumping around issue.
- Seperating the ability to set the text from initiating a query.
- Plugins have to explicitly request the query be updated.
- Updating Folder plugin to explicty update the query on folder selection.
- Removing unused changes from 'Wox' that don't compile.
2020-04-25 10:54:54 -07:00
Divyansh Srivastava
6290630787 Added cold start fix (#2385) 2020-04-25 10:27:36 -07:00
Tomas Raies
ad9e7b5eae Merge branch 'dev/PowerLauncher' into dev/traies/build_features_launcher_integration 2020-04-24 22:45:51 -07:00
Tomas Raies
fa31fbb343 PowerLauncher Settings integration 2020-04-24 22:29:42 -07:00
Arjun Balgovind
ca7b6f139f MSI update for SettingsV2 and KBM (#2351)
* Removed SettingsV2 deployment

* Adjusted project output directory

* Added all Settingsv2 and KBM files

* Added all Settingsv2 and KBM files

* Updated configuration and nuget packages

* Removed Interop.TwoWayIPCLib from MSI
2020-04-24 18:03:29 -07:00
Divyansh Srivastava
a6e8cbc50d Updated program execution to call action on background thread. (#2370) 2020-04-24 13:31:36 -07:00
Clint Rutkas
368640b59b Removing WinR (#2381) 2020-04-24 11:10:40 -07:00
Tomas Raies
22cb0b6afb Merge branch 'dev/build-features' into dev/traies/buld-features-integration 2020-04-24 10:26:06 -07:00
Clint Rutkas
08a7394c1b Deduping results for program plugin (#2375)
* Removing description from title

* adjusting subtitle

* removing accidently paste

* removing desc for uwp apps

* Getting dups removed from list if LNK exists

* adjusting subtitle

* removing accidently paste

* Getting dups removed from list if LNK exists

* changed to normal forloop
2020-04-24 09:35:21 -07:00
Tomas Agustin Raies
63d989cab4 Deprecate ATL based IPC wrapper library (#2248)
* Deprecate ATL based IPC wrapper library

* C# projects now use named pipe server implementations from two_way_pipe_message
through the interop C++/Cli library.

* Added Unit testing to interop library
2020-04-23 17:11:02 -07:00
Clint Rutkas
81551104ce stopping deployment (#2356) 2020-04-23 15:38:07 -07:00
Arjun Balgovind
b5bd2df814 Update the KBM UI to use a Grid based layout rather than stack panels (#2299)
* Added grid to edit keyboard

* Fixed all issues for Edit keyboard window with grid

* Added step to delete row definition and move row indices

* Handled grid operations for Edit Shortcuts

* Added dynamic layout for edit shortcuts

* Fixed resize windows message behaviour and removed warnings
2020-04-23 09:14:16 -07:00
Arjun Balgovind
32ddf3246c Add support for Common Win key in KBM (#2308)
* Added common win key to layoutmap

* Added common win key support for edit shortcuts

* Adjusted key names
2020-04-23 08:37:52 -07:00
Andrey Nekrasov
8ccc996e63 PreviewHandler: change install to per machine (#2320) 2020-04-23 17:33:56 +03:00
stefansjfw
bd7150d676 Use HKEY_CLASSES_ROOT for powertoys_toast_clsid (#2069)
* Use –HKEY_CLASSES_ROOT for powertoys_toast_clsid

* ImageResizer fix
2020-04-23 16:31:35 +02:00
Tomas Raies
c35e70173b Enable PowerLauncher toggle 2020-04-22 22:11:48 -07:00
Tomas Raies
4331e9ae80 Merge branch 'dev/PowerLauncher' into dev/traies/build_features_launcher_integration 2020-04-22 17:52:38 -07:00
Tomas Agustin Raies
d941b31c45 Display Key Mappings in Settings (#2314)
* Move changes

* Display Key Mapping in Settings

* Fix display of empty keys list

Co-authored-by: Udit Singh <udsing@microsoft.com>
2020-04-22 14:55:45 -07:00
Arjun
ca3a436fe5 Merge latest master: 4/22/20 2020-04-22 10:02:17 -07:00
Arjun Balgovind
d079f0ca44 Changed output dir to modules and resolved conflicts (#2233) 2020-04-21 14:14:50 -07:00
Arjun Balgovind
394f52a725 Fix issue where key list would change based on keyboard state (#2221) 2020-04-21 13:43:52 -07:00
Arjun Balgovind
5828508218 Fix colors in KBM UI and add support for light/dark theme (#2256)
* Fixed colors for Edit Keyboard

* Fixed colors for Edit Shortcuts
2020-04-21 13:42:06 -07:00
Arjun Balgovind
2f244bca85 Fix Ctrl/Alt/Shift single key remapping (#2217)
* Added preprocessing step for edit keyboard buffer

* Fixed Ctrl\Alt\Shift single key remapping
2020-04-21 13:40:31 -07:00
Tomas Agustin Raies
7856495d59 Fix compilation problems related to the Interop project (#2290)
* Added missing c++17 compile flag to common-md-flag
* Remove .NET native tool chain from Settings.UI release config
* This flag has to be removed because .Net Native does not support
  mixed assemblies, like PowerToysInterop.
2020-04-21 12:55:04 -07:00
Clint Rutkas
48d744b6bd updated app icons (#2289) 2020-04-21 11:02:39 -07:00
Clint Rutkas
6eba8130ba Adding community page (#2285)
* first pass for community

* tweak in language

* added in Raf's WinCPP upgrade
2020-04-21 11:02:26 -07:00
vldmr11080
5ac7eddd03 Compare window desktop id with currently active work area desktop id. (#2110)
* Compare window desktop id with currently active work area desktop id.

* Improve error handling and conform to coding guidelines.

* Move virtual desktop helper functions to ZoneWindowUtils namespace.

* Ensure thread safety when creating instance of VirtualDesktopManager.

* Remove static qualifier from ServiceProvider.

* Return instead of break, as there is no need to check for other monitors, virtual desktop is the same for all.

* Move virtual desktop related helper functions to separate files.

* Skip comparing desktop ids if zone window has empty GUID for desktop id.

* Add comment describion scenario for which we need this fix.
2020-04-21 19:57:21 +02:00
Andrey Nekrasov
b5dfe6320d msi: detect and set previous installation path via a custom action (#2108) 2020-04-21 20:52:28 +03:00
udit3333
19ee55a303 Enable CI for dev/build-features branch (#2186)
* Updated Yaml to include dev/build-feature

* Added default icons
2020-04-21 10:29:02 -07:00
Arjun Balgovind
b715a008c5 Fixed KBM interaction with Shortcut Guide (#2220) 2020-04-21 10:25:14 -07:00
Andrey Nekrasov
0354026292 runner: initial automatic update (#2141) 2020-04-21 10:30:12 +03:00
Tomas Agustin Raies
93752fb6cb Display Unicode character for keys in HotkeySettingsControl (#2249)
* Fix HotkeyControl virtual key display

* A new interop project was setup to provide wrappers for C# projects
  that want to access functionality in the common project.

* Add assembly info

* Remove WIN32 configurations
2020-04-20 21:01:21 -07:00
Mattwmaster58
e9ecdb3f56 update github releases to latest link (#2223) 2020-04-20 17:18:38 -07:00
Arjun
d45c4740ad Fixed a bug added in #2237 2020-04-20 11:03:32 -07:00
Arjun
62bae55fd1 Merge branch 'master' into dev/build-features 2020-04-20 09:15:32 -07:00
PrzemyslawTusinski
dcee505f6b Dpi unaware placement bug - multimontior with same DPI settings fix (#2156)
* Dpi unaware placement bug - multimontior with same DPI settings fix

* Using different enumerating method

* Changed AllMonitorHaveSameDpiScaling method

* Removed accidental file

* small rename

* Changed some methods to CamelCase

* Review comments fixes
2020-04-20 18:09:10 +02:00
Arjun Balgovind
ddf800de10 Move KBM warnings at Apply to Flyouts (#2237)
* Moved warning to Flyout

* Fixed formatting
2020-04-20 08:59:35 -07:00
udit3333
325db535c0 [Kbm] Save the remaps to file[part-1] (#2184)
* Added Inital FileWatcher Implementation

* Added logic to read remap from file

* Added remap logic save to file

* Refactor code

* Moved the strings to constant file

* Added logic to handle Win key

* Updated filewatcher logic to avoid duplicate events

* Added comments

* Fix spacing

* Fix spacing

* Update logic to accomodate upstream merge

* Added global property name for os level shortcuts

* Added subkey for inprocess keys

* Remove non required file

* Added Changes required after merge

* Fix spacing in Helper.cpp
2020-04-20 08:22:36 -07:00
Ivan Stošić
af4678ff18 Added a mutex to ZoneWindow, ensured no data races occur (#2154)
* Added a mutex to ZoneWindow, ensured no data races occur

* Protected draggedWindow* members with a mutex

* Ensured that critical reads happen in a single transaction
2020-04-20 16:32:49 +02:00
Lavius Motileng
cae77ae291 added shortcut guide settings (#2247) 2020-04-20 06:03:26 -07:00
Seraphima Zykova
cab5a97117 FZ editor: Splitted zones positioning (#2158) 2020-04-20 11:54:25 +03:00
Arjun Balgovind
0417b6266a Add drop down key selection support to Keyboard Manager UI (dev/build-features) (#2140)
* Added combobox

* Formatted and removed unused code

* Added drop down support for Edit Keyboard window

* Reordered the displayed key list

* Add shortcut stack panels and drop downs linked to detect shortcut

* Add more selected item logic

* Added complete dropdown support for edit shortcuts window

* Added Flyout warning for incorrect drop down input

* Tweaked warnings

* Removed MainWindow code

* Changed SelectedValue toSelectedIndex

* Removed unnecessary assignments

* Added a warning for two dropdowns and the first one is changed to an action key

* Added function comments in cpp file

* Fixed some comments

* Fixed all allocation and out of scope issues

* Fix most issues except reloading shortcuts

* Fixed issue while reloading shortcuts

* Fixed type cast warnings

* Changed delete to delete[]

* tweaked
2020-04-18 16:12:26 -07:00
Arjun Balgovind
fc7103f56e Keyboard Manager UI tweaks (dev/build-features) (#2179)
* Fix Issue 2163

* Commented out profiles UI

* Added banded list view rows

* Fixed spacing
2020-04-17 18:06:36 -07:00
Lavius Motileng
3fc738b53a Added Tests and Refactored code (#2129)
* Added Tests and Refactored code

* removed un-used file

* delete test files when test completes

* removed extra build configs

* added clean-up method

* removed unused variable

* re-added removed attributtion

* added error handling and move strings to string resource

* added error handling to file explorer view model

* moved varible assignment to if statement block

* removed savin of settings file from the UI

* re-added open source notice

* added missing controls for powerrename and fancy zones

* removed dead coded

* remove un-used configuration

* added error handling for file saving and updated powerreanme constructor

* removed added configurations

* added settings state
2020-04-17 15:25:08 -07:00
Udit Singh
7e1f554c4e Merge Master Latest in dev/build-features 4/17/20 2020-04-17 10:54:27 -07:00
Nghia M. Luong
5cfa8889f4 Fix for issue #1532 - [PowerToys tray icon] Show version on tooltip (#2117)
* Fix for issue #1532

[PowerToys] Show version on tooltip

* Update src/runner/tray_icon.cpp

Co-Authored-By: Andrey Nekrasov <yuyoyuppe@users.noreply.github.com>

Co-authored-by: Andrey Nekrasov <yuyoyuppe@users.noreply.github.com>
2020-04-17 11:47:24 +03:00
eduardodextil
0cbe7a16e3 Implementing changes suggested in #1992 (#2116)
* Implementing changes suggested in #1992

* Update Product.wxs

Co-authored-by: Ebenezer Ewumi <ebenezer.ewumi@wsu.edu>
2020-04-17 11:43:36 +03:00
Niels Laute
2cfcad6a50 [Settings V2] Release notes link + minor styling fixes (#2176)
* Added release notes link

* Minor styling fixes
2020-04-16 16:19:52 -07:00
Arjun Balgovind
13a8ac3e50 Handle RAlt, RCtrl and other extended keys correctly (dev/build-features) (#2145)
* Fixed SendInput for RAlt and RCtrl

* Fixed shortcuts containing Del, Arrow keys, etc
2020-04-16 15:17:57 -07:00
Lavius Motileng
10c0325f18 added Fancy Zones Settings (#2161) 2020-04-16 11:45:27 -07:00
Tomas Agustin Raies
c37884bdb7 Detect Shortcut: Hold Esc/Enter to Cancel/Accept (#2135)
* Detect Shortcut: Hold Esc/Enter to Discard/Apply changes

Bypass shorcut/single key remapping by holding the navigation keys
2020-04-16 09:16:48 -07:00
vldmr11080
aa6cb7d650 Migrate power rename MRU lists from registry to JSON (#2090)
* Handle most recently used search/replace strings within settings.

* Check for last modified time of json file and reload it if needed.

* Handle changes in MRU search / replace lists size.

* Improve handling of changes in MRU list size.

* Don't check for last modified time in every getter method. Load only when starting application.

* Add const identifier to getter methods.

* Address PR comments: Add const to reg and json file paths and set them in constructor initializer. Check pushIdx validity. Move implementation to cpp of PowerRenameUI constructor.

* Add error checking when getting values from registry.
2020-04-15 23:14:17 +02:00
Ben Randall
67e6688e69 Move markdown parsing logic outside control thread (#2099)
* Move markdown parsing logic outside control thread

* Update MarkdownPreviewHandlerControl.cs

* Remove trailing whitespace.

That'll teach me for trying to make an edit from the GitHub page.
2020-04-15 13:10:55 -07:00
Udit Singh
5d9b71b038 Merge Master Latest: 4/15/20 2020-04-15 07:55:17 -07:00
PrzemyslawTusinski
2077cd4864 Dpi unaware placement bug (#2121)
Fix for bug when placing dpi unaware window such as Notepad++ in left of right part of monitor. In that application gap of about 7px was left or right.
This fixes only single-monitor scenario
It skips correction for dpi unaware window that leaves a gap
2020-04-15 12:34:11 +02:00
Clint Rutkas
95eb17bdb7 xaml adjustments, including contributors (#2118)
* xaml adjustments

* verbage change.
2020-04-14 10:42:27 -07:00
udit3333
a88d66b48b Integrate keyboard manager with settings v2[Part-2] (#2107)
* Added CustomAction Data Models

* Updated data model

* Updated Button command trigger for keyboard manager

* Integerated custom actions in Keyboard manager module backend

* Allow Runner to launch windows on foreground

* Refactor and moved the execution logic to background thread

* Removed non-required unlock calls

* Fixed typo

* Resolve PR comments
2020-04-14 09:24:11 -07:00
Tomas Raies
79fcd45d5f Change key mappings according to Keyboard Layout 2020-04-13 11:41:32 -07:00
Arjun Balgovind
e0ddaa74d0 Add unicode naming for keys (dev/keyboardManager) (#1978)
* Added key names

* Display names in detect keyboard UI

* Added keyboard layout for edit keyboard window

* Removed commented code

* removed unused code

* fixed argument modifiers

* Added newline at EOF

* Added unicode changes to edit shortcuts window
2020-04-13 11:41:32 -07:00
Clint Rutkas
6fbed4ad5c Settingsv2 fix warnings (#2076)
* updating a ton of warnings.

* bunch of cleanup

* few smaller ones

* fixed naming

* reversing an oops

* adjusting json to use attribute

* more json properties
2020-04-10 15:22:07 -07:00
Niels Laute
3a46f4589b Updated KeyboardManager page to the right styles/margins. Updated visuals for the mapped keys. (#2031) 2020-04-10 12:11:21 -07:00
Udit Singh
2aa9f4c079 Updated Settings UI project output directory 2020-04-08 21:38:34 -07:00
Tomas Agustin Raies
70495d9ce9 Display keys in Shorcut modal as buttons (#1996)
* Display keys in Shorcut modal as buttons

* Refactor: rename currentShortcutUI and currentSingleKeyUI

* Change GetKeyVector signature
2020-04-08 21:17:20 -07:00
Arjun Balgovind
52c12731cb Refactor Shortcut remaps to distinguish modifiers and action keys (#1927)
* Added unique lock mutexes for thread safety

* Fixed a bug in detect key logic

* Changed dword to word

* Added early unlock statements to fix issue with shortcut guide

* Fixed type conversion warnings

* Migrated detect shortcut window to use Shortcut class

* made changes in Apply button logic

* Revert thread safety changes

* refactored code works on the UI side

* Refactored remapping code to use new Shortcut class

* Refactored to SetKeyEvent function

* Moved function to cpp file and added more comments

* Refactored map variable and handled common Win key

* Remove debug code

* Change arguments to const references
2020-04-08 14:49:00 -07:00
ryanbodrug-microsoft
cf54a4919b Adding a build dependency to the runner project for PowerKeys. This should allow developers to F5 with the runner as startup and have all the dependencies properly build, and thus make the PowerKeys UI functional. 2020-04-08 14:49:00 -07:00
Arjun Balgovind
ac26818005 Added unique lock mutexes to KeyboardManagerState (dev/keyboardManager) (#1789)
* Added unique lock mutexes for thread safety

* Fixed a bug in detect key logic

* Added early unlock statements to fix issue with shortcut guide

* Added comments for unlocks before SendInput and changed some unique_locks to lock_guards
2020-04-08 14:49:00 -07:00
Arjun Balgovind
467cf919be Removed ARM/x86 configs and minor refactors (dev/keyboardManager) (#1785)
* Removed ARM and x86 configs

* renamed files and references and localized strings
2020-04-08 14:49:00 -07:00
udit3333
f48040a4d7 Remap Keyboard UI (dev/keyboardManager) (#1698)
* Added initial UI implementation

* Added backend logic for remap key interaction

* Added single key remap control

* Updated Edit keyboardWindow UI

* Commented out ui logic

* Fixed issue with remap window UI and uncommented the code

* Updated customdialog window foreground color

* Updated buttons foreground color

* Added info header

* Added null check for detected key

* Removed fully qualified namespaces

* updated the background color as ligtht gray
2020-04-08 14:35:52 -07:00
Arjun Balgovind
90ddcb30bf Add support for shortcuts with >2 keys (dev/keyboardManager) (#1697)
* Added check keyboard state function

* Added keyboard state check to avoid n-key shortcuts being affected by 2 key shortcuts

* Added support for n key shortcuts in backend and UI

* Added a fix to ensure mouse buttons states are not checked

* reverted some debugging changes

* reverted some debugging changes
2020-04-08 14:35:52 -07:00
Arjun Balgovind
b713083574 Edit Shortcuts UI (dev/keyboardManager) (#1647)
* Added EditShortcuts Window and added Detecting shortcuts functionality

* Fixed build error

* Changed detection to take place only when window is in focus

* Added solution folder

* Added a common project and refactored shared variables to an object with wrapper functions

* Added dynamic addition of shortcuts

* Moved all shared variables in detection to state variable with wrapper functions

* Added code to re-load saved shortcuts in the UI

* Added comments

* Fixed argument modifiers in Helpers

* Updated arg modifiers in all functions

* Removed unused headers and added precompiled headers
2020-04-08 14:35:52 -07:00
Arjun Balgovind
fc7e7074ce Move keyboard manager POC code to dev branch (#1455)
* Created PowerKeys project

* Swapping tab with shift

* Added hash map and iterators for remapping code

* Added PowerKeys flag and added toggletomod function

* Added shortcut base code

* Fixed os level shortcut functionality

* Added 1 extra event

* Added check for same modifier and comments

* Added app-specific remapping for 4 apps including UWP apps

* Changed foreground window logic

* Added a separate hook for PowerKeys which can be re-hooked by enabling and disabling

* Added a separate hook for PowerKeys which can be re-hooked by enabling and disabling

* Fixed all priority issues and changed injection flags

* Added another msedge.exe shortcut

* Added a UI which is linked to the backend hook

* Cleaned code and added comments

* Added second button

* Renamed some files/variables and added an extra button
2020-04-08 14:28:39 -07:00
udit3333
bc4ea885dc Add keyboard manager settings ui[Part-1] (#1979)
* Added view and data models for keyboard remapper settings page

* Added intial UI of Keyboard manager settings page

* Fixed Sln file configs

* Resolve UI changes PR comments

* Added UId for UI elements

* Moved Ui strings to resx

* resolve stylecop warnings

* Fixed missing tag from resx file
2020-04-08 13:53:09 -07:00
Tomas Raies
c7774d3d6c Add Settings.UI as dependency of runner 2020-04-08 10:21:40 -07:00
Tomas Raies
a85b84fd56 Stylecop compliance 2020-04-08 10:21:40 -07:00
Tomas Raies
443b3c8b82 PowerLauncher Settings
* Cherry Picked commit branch due to merge conflicts
* add HotkeySettingsControl
* add localization strings
* add PowerLauncherPage ViewModel
* fix build dependency - settings.ui.runner depends on TwoWayIPCLib
* uncomment IPC settings propagation
2020-04-08 10:21:40 -07:00
Lavius Motileng
cea6b7067a added stylecop (#1933)
* added stylecop

* removed xml documentation

* used common stylecop file
2020-04-07 14:42:31 -07:00
Lavius Motileng
89b44f5126 User/lamotile/add powerrename settings (#1813)
* added powerrename settings

* removed pop-up message

* removed unused files

* revrted changes to old settings

* updated solution file

* added ToJsonString() method

* added JSON property for the powertoy name
2020-04-07 14:42:15 -07:00
Niels Laute
3015ffd950 Settings V2: new FancyZones, ImageResizer XAML, sidepanels are now in the settings pages for more flexibility (#1792)
* Added FZ settings page

* Added FZ page

* Added sidepanel to all settings pages + UX improvements. New Fancy zones page.

* Added ImageResizer page + sidepanel improvements

* Revert "Added ImageResizer page + sidepanel improvements"

This reverts commit 75bc37a6ba.

* Removed contributors on general page

* Added ImageResizer page
2020-04-07 14:42:14 -07:00
Lavius Motileng
8c465d22e0 updated general settings model 2020-04-07 14:42:14 -07:00
Lavius Motileng
f1951d0d5f Setting v2: added power preview settings (#1702)
* added power preview settings

* Added link to module oververview

* create settings file if one is not found

* removed run oon start up speficic callback

* Update src/core/Microsoft.PowerToys.Settings.UI.Lib/ModuleSettings.cs

Co-Authored-By: Andrey Nekrasov <yuyoyuppe@users.noreply.github.com>

* fixed merge conflicts

Co-authored-by: Andrey Nekrasov <yuyoyuppe@users.noreply.github.com>
2020-04-07 14:42:14 -07:00
Niels Laute
a84be2ba60 New settings pages (XAML) and improvements to ShellPage. Added more styles for typical margins and textblocks (#1735) 2020-04-07 14:42:14 -07:00
Lavius Motileng
4243feaf37 Added functionality for General Settings Page (#1664)
* archive

* formmated code

* reverted changes to test class file.

* reverted changes to test file: reverted name

* added class models and updated link

* removed test console project
2020-04-07 14:42:13 -07:00
Lavius Motileng
2a0e92e4e2 add two way IPC 2020-04-07 14:19:33 -07:00
Niels Laute
b351e60d52 Added a General tab page with XAML layout and controls according to spec (#1546) 2020-04-07 13:49:14 -07:00
Clint Rutkas
69e7a581fd fixed default loading. 2020-04-07 13:49:13 -07:00
Clint Rutkas
0a20be85ab just diff icons to make it much clearer. still hitting the xaml parse errror a ton ..... :( 2020-04-07 13:49:13 -07:00
Clint Rutkas
3f5a54f9f1 Added in generic ViewModel 2020-04-07 13:49:13 -07:00
Clint Rutkas
e2c7941542 using non-winui navview for stability, fixed revert error on runner's csproj 2020-04-07 13:49:13 -07:00
Clint Rutkas
8433119ac9 getting navview unbroke 2020-04-07 13:49:13 -07:00
Clint Rutkas
43589096c3 Revert "fixed runtime xaml load failure"
This reverts commit f5686cc154.
2020-04-07 13:49:13 -07:00
Clint Rutkas
05d14166e4 code directly borrowed from the WinUI app ... still same issue 2020-04-07 13:48:20 -07:00
Clint Rutkas
0d0f7724b6 checking in code for navview as a test 2020-04-07 13:48:20 -07:00
Lavius Motileng
d28152566d fixed runtime xaml load failure 2020-04-07 13:48:20 -07:00
Lavius Motileng
fb805de552 fixed 2020-04-07 13:47:55 -07:00
Lavius Motileng
5ade906a7b archive 2020-04-07 13:46:33 -07:00
Lavius Motileng
8f02cbc234 updated namespaces 2020-04-07 13:46:33 -07:00
Lavius Motileng
59a2415a0d Lavius / Base Project for New Settings Project (#1481)
* base WPF Project

* Added tests

* Update build configuration .sln file

* removed unnessesary asset files
2020-04-07 13:46:06 -07:00
3650 changed files with 293641 additions and 137208 deletions

18
.gitattributes vendored
View File

@@ -1 +1,19 @@
###############################################################################
# Set default behavior to automatically normalize line endings.
###############################################################################
* text=auto
*.cs text eol=crlf
###############################################################################
# diff behavior for common document formats
#
# Convert binary document formats to text before diffing them. This feature
# is only available from the command line. Turn it on by uncommenting the
# entries below.
###############################################################################
*.rc diff
*.gcode linguist-detectable=false
*.vsconfig linguist-language=json

View File

@@ -1,37 +0,0 @@
---
name: Bug report
about: Report errors or unexpected behavior
title: ''
labels: ''
assignees: ''
---
<!--
**Important: When reporting BSODs or security issues, DO NOT attach memory dumps, logs, or traces to Github issues**.
Instead, send dumps/traces to secure@microsoft.com, referencing this GitHub issue.
-->
# Environment
```
Windows build number: [run "ver" at a command prompt]
PowerToys version:
PowerToy module for which you are reporting the bug (if applicable):
```
# Steps to reproduce
<!-- A description of how to trigger this bug. -->
# Expected behavior
<!-- A description of what you're expecting, possibly containing screenshots or reference material. -->
# Actual behavior
<!-- What's actually happening? -->
# Screenshots
<!-- If applicable, add screenshots to help explain your problem. -->

97
.github/ISSUE_TEMPLATE/bug_report.yml vendored Normal file
View File

@@ -0,0 +1,97 @@
name: "🐛 Bug report"
description: Report errors or unexpected behavior
labels:
- Issue-Bug
- Needs-Triage
body:
- type: markdown
attributes:
value: |
Please make sure to [search for existing issues](https://github.com/microsoft/PowerToys/issues) before filing a new one!
- type: input
attributes:
label: Microsoft PowerToys version
placeholder: |
"0.53.0"
description: |
Hover over system tray icon or look at Settings
validations:
required: true
- type: checkboxes
attributes:
label: Running as admin
description: Are you running PowerToys as Admin?
options:
- label: "Yes"
- type: dropdown
attributes:
label: Area(s) with issue?
description: What things had an issue? Check all that apply.
multiple: true
options:
- General
- Always on Top
- Awake
- ColorPicker
- Developer file preview
- FancyZones
- FancyZones Editor
- Image Resizer
- Keyboard Manager
- MD Preview
- Mouse Utilities
- PDF Preview
- PDF Thumbnail
- G-code Preview
- G-code Thumbnail
- PowerRename
- PowerToys Run
- Quick Accent
- Screen ruler
- Shortcut Guide
- STL Thumbnail
- SVG Preview
- SVG Thumbnail
- Settings
- TextExtractor
- Video Conference Mute
- Welcome / PowerToys Tour window
- System tray interaction
- Installer
validations:
required: true
- type: textarea
attributes:
label: Steps to reproduce
description: We highly suggest including screenshots and a bug report log (System tray->Report bug).
placeholder: Tell us the steps required to trigger your bug.
validations:
required: true
- type: textarea
attributes:
label: ✔️ Expected Behavior
placeholder: What were you expecting?
validations:
required: false
- type: textarea
attributes:
label: ❌ Actual Behavior
placeholder: What happened instead?
validations:
required: false
- type: textarea
attributes:
label: Other Software
description: If you're reporting a bug about our interaction with other software, what software? What versions?
placeholder: |
vim 8.2 (inside WSL)
OpenSSH_for_Windows_8.1p1
My Cool Application v0.3 (include a code snippet if it would help!)
validations:
required: false

12
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@@ -0,0 +1,12 @@
blank_issues_enabled: false
contact_links:
- name: "\U0001F6A8 Microsoft Security Response Center (MSRC)"
url: https://msrc.microsoft.com/create-report
about: Report security bugs
- name: "\U0001F4DA PowerToys user documentation"
url: https://aka.ms/powertoys-docs
about: Documentation for users of PowerToys utilities
- name: "\U0001F4DA PowerToys dev documentation"
url: https://github.com/microsoft/PowerToys/tree/main/doc/devdocs
about: Documentation for people interested in developing and contributing for PowerToys

View File

@@ -1,10 +0,0 @@
---
name: Documentation Issue
about: Report issues in our documentation
title: ''
labels: ''
assignees: ''
---
<!-- Briefly describe which document needs to be corrected and why. -->

View File

@@ -0,0 +1,12 @@
name: "📚 Documentation Issue"
description: Report issues in our documentation
labels:
- Issue-Docs
- Needs-Triage
body:
- type: textarea
attributes:
label: Provide a description of requested docs changes
placeholder: Briefly describe which document needs to be corrected and why.
validations:
required: true

View File

@@ -1,21 +0,0 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: ''
assignees: ''
---
# Summary of the new feature/enhancement
<!--
A clear and concise description of what the problem is that the new feature would solve.
Describe why and how a user would use this new functionality (if applicable).
-->
# Proposed technical implementation details (optional)
<!--
A clear and concise description of what you want to happen.
-->

View File

@@ -0,0 +1,30 @@
name: "⭐ Feature / enhancement request"
description: Propose something new.
labels:
- Needs-Triage
body:
- type: textarea
attributes:
label: Description of the new feature / enhancement
placeholder: |
What is the expected behavior of the proposed feature?
validations:
required: true
- type: textarea
attributes:
label: Scenario when this would be used?
placeholder: |
What is the scenario this would be used? Why is this important to your workflow as a power user?
validations:
required: true
- type: textarea
attributes:
label: Supporting information
placeholder: |
Having additional evidence, data, tweets, blog posts, research, ... anything is extremely helpful. This information provides context to the scenario that may otherwise be lost.
validations:
required: false
- type: markdown
attributes:
value: |
Please limit one request per issue.

View File

@@ -0,0 +1,77 @@
name: "🌐 Localization/Translation issue"
description: Report incorrect translations.
labels:
- Issue-Bug
- Area-Localization
- Issue-Translation
- Needs-Triage
body:
- type: markdown
attributes:
value: |
Please make sure to [search for existing issues](https://github.com/microsoft/PowerToys/issues) before filing a new one!
- type: input
attributes:
label: Microsoft PowerToys version
placeholder: "0.53.0"
description: |
Hover over system tray icon or look at Settings
validations:
required: true
- type: dropdown
attributes:
label: Utility with translation issue
options:
- General
- Always on Top
- Awake
- ColorPicker
- Developer file preview
- FancyZones
- FancyZones Editor
- Image Resizer
- Keyboard Manager
- MD Preview
- Mouse Utilities
- PDF Preview
- PDF Thumbnail
- G-code Preview
- G-code Thumbnail
- Quick Accent
- PowerRename
- PowerToys Run
- Screen Ruler
- Shortcut Guide
- SVG Preview
- SVG Thumbnail
- Settings
- Video Conference Mute
- Welcome / PowerToys Tour window
- System tray interaction
- Installer
validations:
required: true
- type: input
attributes:
label: 🌐 Language affected
placeholder: "German"
validations:
required: true
- type: textarea
attributes:
label: ❌ Actual phrase(s)
placeholder: What is there? Please include a screenshot as that is extremely helpful.
validations:
required: true
- type: textarea
attributes:
label: ✔️ Expected phrase(s)
placeholder: What was expected?
validations:
required: true
- type: textarea
attributes:
label: Why is the current translation wrong
placeholder: Why do you feel this is incorrect?
validations:
required: true

6
.github/dependabot.yml vendored Normal file
View File

@@ -0,0 +1,6 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"

787
.github/fabricbot.json vendored Normal file
View File

@@ -0,0 +1,787 @@
{
"version": "1.0",
"tasks": [
{
"taskType": "trigger",
"capabilityId": "IssueResponder",
"subCapability": "IssuesOnlyResponder",
"version": "1.0",
"config": {
"taskName": "Add needs triage label to new issues",
"conditions": {
"operator": "and",
"operands": [
{
"name": "isAction",
"parameters": {
"action": "opened"
}
},
{
"operator": "not",
"operands": [
{
"name": "isPartOfProject",
"parameters": {}
}
]
},
{
"operator": "not",
"operands": [
{
"name": "isAssignedToSomeone",
"parameters": {}
}
]
}
]
},
"actions": [
{
"name": "addLabel",
"parameters": {
"label": "Needs-Triage"
}
}
],
"eventType": "issue",
"eventNames": [
"issues",
"project_card"
]
},
"id": "eUOhvA_62"
},
{
"taskType": "trigger",
"capabilityId": "IssueResponder",
"subCapability": "IssueCommentResponder",
"version": "1.0",
"config": {
"taskName": "Replace needs author feedback label with needs attention label when the author comments on an issue",
"conditions": {
"operator": "and",
"operands": [
{
"name": "isAction",
"parameters": {
"action": "created"
}
},
{
"name": "isActivitySender",
"parameters": {
"user": {
"type": "author"
}
}
},
{
"name": "hasLabel",
"parameters": {
"label": "Needs-Author-Feedback"
}
},
{
"name": "isOpen",
"parameters": {}
}
]
},
"actions": [
{
"name": "addLabel",
"parameters": {
"label": "Needs-Triage"
}
},
{
"name": "removeLabel",
"parameters": {
"label": "Needs-Author-Feedback"
}
},
{
"name": "addLabel",
"parameters": {
"label": "Needs-Team-Response"
}
}
],
"eventType": "issue",
"eventNames": [
"issue_comment"
]
},
"id": "kgfxdBIu_9"
},
{
"taskType": "trigger",
"capabilityId": "IssueResponder",
"subCapability": "IssuesOnlyResponder",
"version": "1.0",
"config": {
"taskName": "Remove no recent activity label from issues",
"conditions": {
"operator": "and",
"operands": [
{
"operator": "not",
"operands": [
{
"name": "isAction",
"parameters": {
"action": "closed"
}
}
]
},
{
"name": "hasLabel",
"parameters": {
"label": "Status-No recent activity"
}
}
]
},
"actions": [
{
"name": "removeLabel",
"parameters": {
"label": "Status-No recent activity"
}
}
],
"eventType": "issue",
"eventNames": [
"issues",
"project_card"
]
},
"id": "eR-TaGJJzW",
"disabled": false
},
{
"taskType": "trigger",
"capabilityId": "IssueResponder",
"subCapability": "IssueCommentResponder",
"version": "1.0",
"config": {
"taskName": "Remove no recent activity label when an issue is commented on",
"conditions": {
"operator": "and",
"operands": [
{
"name": "hasLabel",
"parameters": {
"label": "Status-No recent activity"
}
}
]
},
"actions": [
{
"name": "removeLabel",
"parameters": {
"label": "Status-No recent activity"
}
}
],
"eventType": "issue",
"eventNames": [
"issue_comment"
]
},
"id": "tXKeoDht_g",
"disabled": false
},
{
"taskType": "scheduled",
"capabilityId": "ScheduledSearch",
"subCapability": "ScheduledSearch",
"version": "1.1",
"config": {
"taskName": "Close stale issues",
"frequency": [
{
"weekDay": 0,
"hours": [
1,
7,
13,
19
]
},
{
"weekDay": 1,
"hours": [
1,
7,
13,
19
]
},
{
"weekDay": 2,
"hours": [
1,
7,
13,
19
]
},
{
"weekDay": 3,
"hours": [
1,
7,
13,
19
]
},
{
"weekDay": 4,
"hours": [
1,
7,
13,
19
]
},
{
"weekDay": 5,
"hours": [
1,
7,
13,
19
]
},
{
"weekDay": 6,
"hours": [
1,
7,
13,
19
]
}
],
"searchTerms": [
{
"name": "isIssue",
"parameters": {}
},
{
"name": "isOpen",
"parameters": {}
},
{
"name": "hasLabel",
"parameters": {
"label": "Needs-Author-Feedback"
}
},
{
"name": "hasLabel",
"parameters": {
"label": "Status-No recent activity"
}
},
{
"name": "noActivitySince",
"parameters": {
"days": 5
}
}
],
"actions": [
{
"name": "closeIssue",
"parameters": {}
}
]
},
"id": "8yr-nVZj9k",
"disabled": false
},
{
"taskType": "scheduled",
"capabilityId": "ScheduledSearch",
"subCapability": "ScheduledSearch",
"version": "1.1",
"config": {
"taskName": "Add no recent activity label to issues",
"frequency": [
{
"weekDay": 0,
"hours": [
2,
8,
14,
20
]
},
{
"weekDay": 1,
"hours": [
2,
8,
14,
20
]
},
{
"weekDay": 2,
"hours": [
2,
8,
14,
20
]
},
{
"weekDay": 3,
"hours": [
2,
8,
14,
20
]
},
{
"weekDay": 4,
"hours": [
2,
8,
14,
20
]
},
{
"weekDay": 5,
"hours": [
2,
8,
14,
20
]
},
{
"weekDay": 6,
"hours": [
2,
8,
14,
20
]
}
],
"searchTerms": [
{
"name": "isIssue",
"parameters": {}
},
{
"name": "isOpen",
"parameters": {}
},
{
"name": "hasLabel",
"parameters": {
"label": "Needs-Author-Feedback"
}
},
{
"name": "noActivitySince",
"parameters": {
"days": 5
}
},
{
"name": "noLabel",
"parameters": {
"label": "Status-No recent activity"
}
}
],
"actions": [
{
"name": "addLabel",
"parameters": {
"label": "Status-No recent activity"
}
},
{
"name": "addReply",
"parameters": {
"comment": "This issue has been automatically marked as stale because it has been marked as requiring author feedback but has not had any activity for **5 days**. It will be closed if no further activity occurs **within 5 days of this comment**."
}
}
]
},
"id": "DAhxoYjVcq",
"disabled": false
},
{
"taskType": "scheduled",
"capabilityId": "ScheduledSearch",
"subCapability": "ScheduledSearch",
"version": "1.1",
"config": {
"taskName": "Close duplicate issues",
"frequency": [
{
"weekDay": 0,
"hours": [
3,
9,
15,
21
]
},
{
"weekDay": 1,
"hours": [
3,
9,
15,
21
]
},
{
"weekDay": 2,
"hours": [
3,
9,
15,
21
]
},
{
"weekDay": 3,
"hours": [
3,
9,
15,
21
]
},
{
"weekDay": 4,
"hours": [
3,
9,
15,
21
]
},
{
"weekDay": 5,
"hours": [
3,
9,
15,
21
]
},
{
"weekDay": 6,
"hours": [
3,
9,
15,
21
]
}
],
"searchTerms": [
{
"name": "isIssue",
"parameters": {}
},
{
"name": "isOpen",
"parameters": {}
},
{
"name": "hasLabel",
"parameters": {
"label": "Resolution-Duplicate"
}
},
{
"name": "noActivitySince",
"parameters": {
"days": 1
}
}
],
"actions": [
{
"name": "addReply",
"parameters": {
"comment": "This issue has been marked as duplicate and has not had any activity for **1 day**. It will be closed for housekeeping purposes."
}
},
{
"name": "closeIssue",
"parameters": {}
}
]
},
"id": "xGhARy1H0w"
},
{
"taskType": "trigger",
"capabilityId": "InPrLabel",
"subCapability": "InPrLabel",
"version": "1.0",
"config": {
"taskName": "Add 'In-PR' label on issue when an open pull request is targeting it",
"inPrLabelText": "Status: In PR",
"fixedLabelText": "Status: Fixed",
"fixedLabelEnabled": true,
"label_fixed": "Resolution-Fix-Committed",
"label_inPr": "In progress"
},
"id": "Rn1tANe62T"
},
{
"taskType": "trigger",
"capabilityId": "EmailCleanser",
"subCapability": "EmailCleanser",
"version": "1.0",
"id": "X0O-6aZ1v3_DAmhUIcNb2",
"config": {
"taskName": "Clean the email stuff"
}
},
{
"taskType": "trigger",
"capabilityId": "IssueResponder",
"subCapability": "IssueCommentResponder",
"version": "1.0",
"id": "VyV9JJSA8SbOyeWEwjyfL",
"config": {
"conditions": {
"operator": "and",
"operands": [
{
"name": "commentContains",
"parameters": {
"commentPattern": "\\/(bugreport|reportbug)",
"isRegex": true
}
},
{
"operator": "or",
"operands": [
{
"name": "activitySenderHasAssociation",
"parameters": {
"permissions": "admin",
"association": "MEMBER"
}
},
{
"name": "activitySenderHasAssociation",
"parameters": {
"association": "OWNER"
}
},
{
"name": "activitySenderHasAssociation",
"parameters": {
"association": "COLLABORATOR"
}
}
]
}
]
},
"eventType": "issue",
"eventNames": [
"issue_comment"
],
"taskName": "Ask for bug report zip file",
"actions": [
{
"name": "removeLabel",
"parameters": {
"label": "Needs-Triage"
}
},
{
"name": "addLabel",
"parameters": {
"label": "Needs-Author-Feedback"
}
},
{
"name": "addReply",
"parameters": {
"comment": "Hi there!<br/><br/>We need a bit more information to really debug this issue. Can you add a \"Report Bug\" zip file here? You right click on our system tray icon and just go to report bug. Then drag the zipfile from your desktop onto the GitHub comment box in this issue. Thanks! <br/>![Report Bug](https://user-images.githubusercontent.com/11349917/133042052-4975be21-4699-4363-83c9-a8e1869d079d.png)"
}
},
{
"name": "removeLabel",
"parameters": {
"label": "Needs-Team-Response"
}
}
]
}
},
{
"taskType": "trigger",
"capabilityId": "IssueResponder",
"subCapability": "IssueCommentResponder",
"version": "1.0",
"id": "bvMkigH2HPgUniYFCNco8",
"config": {
"conditions": {
"operator": "and",
"operands": [
{
"name": "commentContains",
"parameters": {
"isRegex": true,
"commentPattern": "\\/dup(licate|e)?(\\s+of)?\\s+(#[\\d]+|https)"
}
},
{
"operator": "or",
"operands": [
{
"name": "activitySenderHasAssociation",
"parameters": {
"association": "OWNER"
}
},
{
"name": "activitySenderHasAssociation",
"parameters": {
"association": "MEMBER"
}
},
{
"name": "activitySenderHasAssociation",
"parameters": {
"association": "COLLABORATOR"
}
}
]
}
]
},
"eventType": "issue",
"eventNames": [
"issue_comment"
],
"taskName": "Helper to mark as duplicate",
"actions": [
{
"name": "addReply",
"parameters": {
"comment": "Hi! We've identified this issue as a duplicate of another one that already exists on this Issue Tracker. This specific instance is being closed in favor of tracking the concern over on the referenced thread. Thanks for your report!"
}
},
{
"name": "closeIssue",
"parameters": {}
},
{
"name": "removeLabel",
"parameters": {
"label": "Needs-Triage"
}
},
{
"name": "removeLabel",
"parameters": {
"label": "Needs-Team-Response"
}
},
{
"name": "addLabel",
"parameters": {
"label": "Resolution-Duplicate"
}
}
]
}
},
{
"taskType": "trigger",
"capabilityId": "IssueResponder",
"subCapability": "IssueCommentResponder",
"version": "1.0",
"id": "mgZxIoqeF7GWUo7-tZF56",
"config": {
"conditions": {
"operator": "and",
"operands": [
{
"name": "commentContains",
"parameters": {
"commentPattern": "\\/needinfo",
"isRegex": true
}
},
{
"operator": "or",
"operands": [
{
"name": "activitySenderHasAssociation",
"parameters": {
"association": "OWNER"
}
},
{
"name": "activitySenderHasAssociation",
"parameters": {
"association": "MEMBER"
}
},
{
"name": "activitySenderHasAssociation",
"parameters": {
"association": "COLLABORATOR"
}
}
]
}
]
},
"eventType": "issue",
"eventNames": [
"issue_comment"
],
"actions": [
{
"name": "removeLabel",
"parameters": {
"label": "Needs-Triage"
}
},
{
"name": "removeLabel",
"parameters": {
"label": "Needs-Team-Response"
}
},
{
"name": "addLabel",
"parameters": {
"label": "Needs-Author-Feedback"
}
}
],
"taskName": "Author Response needed"
}
}
],
"userGroups": []
}

View File

@@ -1,19 +1,24 @@
<!-- Enter a brief description/summary of your PR here. What does it fix/what does it change/how was it tested (even manually, if necessary)? -->
## Summary of the Pull Request
<!-- Other than the issue solved, is this relevant to any other issues/existing PRs? -->
## References
<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist
* [] Applies to #xxx
* [] CLA signed. If not, go over [here](https://cla.opensource.microsoft.com/microsoft/PowerToys) and sign the CLA
* [] Tests added/passed
* [] Requires documentation to be updated
* [] I've discussed this with core contributors already. If not checked, I'm ready to accept this work might be rejected in favor of a different grand plan. Issue number where discussion took place: #xxx
- [ ] **Closes:** #xxx
- [ ] **Communication:** I've discussed this with core contributors already. If work hasn't been agreed, this work might be rejected
- [ ] **Tests:** Added/updated and all pass
- [ ] **Localization:** All end user facing strings can be localized
- [ ] **Dev docs:** Added/updated
- [ ] **New binaries:** Added on the required places
- [ ] [JSON for signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json) for new binaries
- [ ] [WXS for installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs) for new binaries and localization folder
- [ ] [YML for CI pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml) for new test projects
- [ ] [YML for signed pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml)
- [ ] **Documentation updated:** If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys) and link it here: #xxx
<!-- Provide a more detailed description of the PR, other things fixed or any additional comments/features here -->
## Detailed Description of the Pull Request / Additional comments
<!-- Describe how you validated the behavior. Add automated tests wherever possible, but list manual validation steps taken as well -->
## Validation Steps Performed

View File

@@ -0,0 +1,60 @@
name: Submit Microsoft.PowerToys package to Windows Store
on:
workflow_dispatch:
release:
types: [published]
jobs:
microsoft_store:
name: Publish Microsoft Store
runs-on: ubuntu-latest
steps:
- name: Get latest URL from public releases
id: releaseVars
run: |
release=$(curl https://api.github.com/repos/Microsoft/PowerToys/releases | jq '[.[]|select(.name | contains("Release"))][0]')
assets=$(jq -n "$release" | jq '.assets')
powerToysSetup=$(jq -n "$assets" | jq '[.[]|select(.name | contains("PowerToysSetup"))]')
echo ::set-output name=powerToysInstallerX64Url::$(jq -n "$powerToysSetup" | jq -r '[.[]|select(.name | contains("x64"))][0].browser_download_url')
echo ::set-output name=powerToysInstallerArm64Url::$(jq -n "$powerToysSetup" | jq -r '[.[]|select(.name | contains("arm64"))][0].browser_download_url')
- name: Configure Store Credentials
uses: microsoft/store-submission@v1
with:
command: configure
type: win32
seller-id: ${{ secrets.SELLER_ID }}
product-id: ${{ secrets.PRODUCT_ID }}
tenant-id: ${{ secrets.TENANT_ID }}
client-id: ${{ secrets.CLIENT_ID }}
client-secret: ${{ secrets.CLIENT_SECRET }}
- name: Update draft submission
uses: microsoft/store-submission@v1
with:
command: update
product-update: '{
"packages":[
{
"packageUrl":"${{ steps.releaseVars.outputs.powerToysInstallerX64Url }}",
"languages":["zh-hans", "zh-hant", "en", "cs", "nl", "fr", "pt", "pt-br", "de", "hu", "it", "ja", "ko", "pl", "ru", "es", "tr"],
"architectures":["X64"],
"installerParameters":"/quiet /norestart",
"isSilentInstall":true
},
{
"packageUrl":"${{ steps.releaseVars.outputs.powerToysInstallerArm64Url }}",
"languages":["zh-hans", "zh-hant", "en", "cs", "nl", "fr", "pt", "pt-br", "de", "hu", "it", "ja", "ko", "pl", "ru", "es", "tr"],
"architectures":["Arm64"],
"installerParameters":"/quiet /norestart",
"isSilentInstall":true
}
]
}'
- name: Publish Submission
uses: microsoft/store-submission@v1
with:
command: publish

View File

@@ -0,0 +1,30 @@
name: Submit Microsoft.PowerToys package to Windows Package Manager Community Repository
# based off of https://github.com/nushell/nushell/blob/main/.github/workflows/winget-submission.yml
on:
workflow_dispatch:
release:
types: [published]
jobs:
winget:
name: Publish winget package
runs-on: windows-latest
steps:
- name: Submit package to Windows Package Manager Community Repository
run: |
$wingetPackage = "Microsoft.PowerToys"
$gitToken = "${{ secrets.PT_WINGET }}"
$github = Invoke-RestMethod -uri "https://api.github.com/repos/Microsoft/PowerToys/releases"
$targetRelease = $github | Where-Object -Property name -match 'Release'| Select -First 1
$installerUrl = $targetRelease | Select -ExpandProperty assets -First 1 | Where-Object -Property name -match 'PowerToysSetup.*x64' | Select -ExpandProperty browser_download_url
$installerUrlArm = $targetRelease | Select -ExpandProperty assets -First 1 | Where-Object -Property name -match 'PowerToysSetup.*arm64' | Select -ExpandProperty browser_download_url
$ver = $targetRelease.tag_name.Trim("v")
# getting latest wingetcreate file
iwr https://aka.ms/wingetcreate/latest -OutFile wingetcreate.exe
.\wingetcreate.exe update $wingetPackage -s -v $ver -u $installerUrl $installerUrlArm -t $gitToken

13
.gitignore vendored
View File

@@ -19,6 +19,7 @@
[Rr]eleases/
x64/
x86/
ARM64/
bld/
[Bb]in/
[Oo]bj/
@@ -336,4 +337,14 @@ src/settings/settings-html/200.html
src/settings/settings-html/404.html
# Temp telemetry files.
src/common/Telemetry/*.etl
src/common/Telemetry/*.etl
# Don't ignore MergeModules
!**/MergeModules/Release/
!**/MergeModules/Debug/
/src/modules/previewpane/SvgThumbnailProvider/$(SolutionDir)$(Platform)/$(Configuration)/modules/FileExplorerPreview/SvgThumbnailProvider.xml
/src/modules/powerrename/ui/RCa24464
/src/modules/powerrename/ui/RCb24464
# Generated installer file for Monaco source files.
/installer/PowerToysSetup/MonacoSRC.wxs

12
.gitmodules vendored Normal file
View File

@@ -0,0 +1,12 @@
[submodule "deps/spdlog"]
path = deps/spdlog
url = https://github.com/gabime/spdlog.git
[submodule "deps/cxxopts"]
path = deps/cxxopts
url = https://github.com/jarro2783/cxxopts.git
[submodule "deps/expected-lite"]
path = deps/expected-lite
url = https://github.com/martinmoene/expected-lite.git
[submodule "deps/cziplib"]
path = deps/cziplib
url = https://github.com/kuba--/zip.git

41
.pipelines/CIPolicy.xml Normal file
View File

@@ -0,0 +1,41 @@
<?xml version="1.0" encoding="utf-8"?>
<SiPolicy xmlns="urn:schemas-microsoft-com:sipolicy">
<VersionEx>10.0.0.0</VersionEx>
<PlatformID>{2E07F7E4-194C-4D20-B7C9-6F44A6C5A234}</PlatformID>
<Rules>
<Rule>
<Option>Enabled:Unsigned System Integrity Policy</Option>
</Rule>
<Rule>
<Option>Enabled:Audit Mode</Option>
</Rule>
<Rule>
<Option>Enabled:Advanced Boot Options Menu</Option>
</Rule>
<Rule>
<Option>Required:Enforce Store Applications</Option>
</Rule>
<Rule>
<Option>Disabled:Script Enforcement</Option>
</Rule>
</Rules>
<!--EKUS-->
<EKUs />
<!--File Rules-->
<FileRules />
<!--Signers-->
<Signers />
<!--Driver Signing Scenarios-->
<SigningScenarios>
<SigningScenario Value="131" ID="ID_SIGNINGSCENARIO_DRIVERS_1" FriendlyName="Auto generated policy on 01-26-2021">
<ProductSigners />
</SigningScenario>
<SigningScenario Value="12" ID="ID_SIGNINGSCENARIO_WINDOWS" FriendlyName="Auto generated policy on 01-26-2021">
<ProductSigners />
</SigningScenario>
</SigningScenarios>
<UpdatePolicySigners />
<CiSigners />
<HvciOptions>0</HvciOptions>
<PolicyTypeID>{A244370E-44C9-4C06-B551-F6016E563076}</PolicyTypeID>
</SiPolicy>

View File

@@ -0,0 +1,270 @@
{
"Version": "1.0.0",
"UseMinimatch": false,
"SignBatches": [
{
"MatchedPath": [
"*.resources.dll",
"PowerToys.ActionRunner.exe",
"PowerToys.Update.exe",
"PowerToys.BackgroundActivatorDLL.dll",
"Notifications.dll",
"os-detection.dll",
"PowerToys.exe",
"PowerToys.Interop.dll",
"BugReportTool\\PowerToys.BugReportTool.exe",
"WebcamReportTool\\PowerToys.WebcamReportTool.exe",
"StylesReportTool\\PowerToys.StylesReportTool.exe",
"Telemetry.dll",
"PowerToys.ManagedTelemetry.dll",
"PowerToys.ManagedCommon.dll",
"PowerToys.Common.UI.dll",
"PowerToys.Settings.UI.Lib.dll",
"modules\\AlwaysOnTop\\PowerToys.AlwaysOnTop.exe",
"modules\\AlwaysOnTop\\PowerToys.AlwaysOnTopModuleInterface.dll",
"modules\\ColorPicker\\PowerToys.ColorPicker.dll",
"modules\\ColorPicker\\PowerToys.ColorPickerUI.dll",
"modules\\ColorPicker\\PowerToys.ColorPickerUI.exe",
"modules\\PowerOCR\\PowerToys.PowerOCRModuleInterface.dll",
"modules\\PowerOCR\\PowerToys.PowerOCR.dll",
"modules\\PowerOCR\\PowerToys.PowerOCR.exe",
"modules\\Awake\\PowerToys.AwakeModuleInterface.dll",
"modules\\Awake\\PowerToys.Awake.exe",
"modules\\Awake\\PowerToys.Awake.dll",
"modules\\FancyZones\\fancyzones.dll",
"modules\\FancyZones\\PowerToys.FancyZonesEditor.exe",
"modules\\FancyZones\\PowerToys.FancyZonesEditor.dll",
"modules\\FancyZones\\PowerToys.FancyZonesModuleInterface.dll",
"modules\\FancyZones\\PowerToys.FancyZones.exe",
"modules\\FileExplorerPreview\\PowerToys.GcodePreviewHandler.dll",
"modules\\FileExplorerPreview\\PowerToys.GcodePreviewHandler.comhost.dll",
"modules\\FileExplorerPreview\\PowerToys.GcodeThumbnailProvider.dll",
"modules\\FileExplorerPreview\\PowerToys.GcodeThumbnailProvider.comhost.dll",
"modules\\FileExplorerPreview\\PowerToys.ManagedTelemetry.dll",
"modules\\FileExplorerPreview\\PowerToys.MarkdownPreviewHandler.dll",
"modules\\FileExplorerPreview\\PowerToys.MarkdownPreviewHandler.comhost.dll",
"modules\\FileExplorerPreview\\PowerToys.MonacoPreviewHandler.dll",
"modules\\FileExplorerPreview\\PowerToys.MonacoPreviewHandler.comhost.dll",
"modules\\FileExplorerPreview\\PowerToys.PdfPreviewHandler.dll",
"modules\\FileExplorerPreview\\PowerToys.PdfPreviewHandler.comhost.dll",
"modules\\FileExplorerPreview\\PowerToys.PdfThumbnailProvider.dll",
"modules\\FileExplorerPreview\\PowerToys.PdfThumbnailProvider.comhost.dll",
"modules\\FileExplorerPreview\\PowerToys.powerpreview.dll",
"modules\\FileExplorerPreview\\PowerToys.PreviewHandlerCommon.dll",
"modules\\FileExplorerPreview\\PowerToys.StlThumbnailProvider.dll",
"modules\\FileExplorerPreview\\PowerToys.StlThumbnailProvider.comhost.dll",
"modules\\FileExplorerPreview\\PowerToys.SvgPreviewHandler.dll",
"modules\\FileExplorerPreview\\PowerToys.SvgPreviewHandler.comhost.dll",
"modules\\FileExplorerPreview\\PowerToys.SvgThumbnailProvider.dll",
"modules\\FileExplorerPreview\\PowerToys.SvgThumbnailProvider.comhost.dll",
"modules\\ImageResizer\\PowerToys.ImageResizer.exe",
"modules\\ImageResizer\\PowerToys.ImageResizer.dll",
"modules\\ImageResizer\\PowerToys.ImageResizerExt.dll",
"modules\\ImageResizer\\PowerToys.ImageResizerContextMenu.dll",
"modules\\ImageResizer\\ImageResizerContextMenuPackage.msix",
"modules\\KeyboardManager\\PowerToys.KeyboardManager.dll",
"modules\\KeyboardManager\\KeyboardManagerEditor\\PowerToys.KeyboardManagerEditor.exe",
"modules\\KeyboardManager\\KeyboardManagerEngine\\PowerToys.KeyboardManagerEngine.exe",
"modules\\launcher\\PowerToys.Launcher.dll",
"modules\\launcher\\PowerToys.PowerLauncher.dll",
"modules\\launcher\\PowerToys.PowerLauncher.exe",
"modules\\launcher\\PowerToys.PowerLauncher.Telemetry.dll",
"modules\\launcher\\Wox.dll",
"modules\\launcher\\Wox.Infrastructure.dll",
"modules\\launcher\\Wox.Plugin.dll",
"modules\\launcher\\Plugins\\Calculator\\Microsoft.PowerToys.Run.Plugin.Calculator.dll",
"modules\\launcher\\Plugins\\Folder\\Microsoft.Plugin.Folder.dll",
"modules\\launcher\\Plugins\\Indexer\\Microsoft.Plugin.Indexer.dll",
"modules\\launcher\\Plugins\\OneNote\\Microsoft.PowerToys.Run.Plugin.OneNote.dll",
"modules\\launcher\\Plugins\\History\\Microsoft.PowerToys.Run.Plugin.History.dll",
"modules\\launcher\\Plugins\\Program\\Microsoft.Plugin.Program.dll",
"modules\\launcher\\Plugins\\Registry\\Microsoft.PowerToys.Run.Plugin.Registry.dll",
"modules\\launcher\\Plugins\\WindowsSettings\\Microsoft.PowerToys.Run.Plugin.WindowsSettings.dll",
"modules\\launcher\\Plugins\\Shell\\Microsoft.Plugin.Shell.dll",
"modules\\launcher\\Plugins\\Uri\\Microsoft.Plugin.Uri.dll",
"modules\\launcher\\Plugins\\WindowWalker\\Microsoft.Plugin.WindowWalker.dll",
"modules\\launcher\\Plugins\\UnitConverter\\Community.PowerToys.Run.Plugin.UnitConverter.dll",
"modules\\launcher\\Plugins\\VSCodeWorkspaces\\Community.PowerToys.Run.Plugin.VSCodeWorkspaces.dll",
"modules\\launcher\\Plugins\\Service\\Microsoft.PowerToys.Run.Plugin.Service.dll",
"modules\\launcher\\Plugins\\System\\Microsoft.PowerToys.Run.Plugin.System.dll",
"modules\\launcher\\Plugins\\TimeDate\\Microsoft.PowerToys.Run.Plugin.TimeDate.dll",
"modules\\launcher\\Plugins\\TimeZone\\Microsoft.PowerToys.Run.Plugin.TimeZone.dll",
"modules\\launcher\\Plugins\\WebSearch\\Community.PowerToys.Run.Plugin.WebSearch.dll",
"modules\\launcher\\Plugins\\WindowsTerminal\\Microsoft.PowerToys.Run.Plugin.WindowsTerminal.dll",
"modules\\MeasureTool\\PowerToys.MeasureToolModuleInterface.dll",
"modules\\MeasureTool\\PowerToys.MeasureToolCore.dll",
"modules\\MeasureTool\\PowerToys.MeasureToolUI.dll",
"modules\\MeasureTool\\PowerToys.MeasureToolUI.exe",
"modules\\MouseUtils\\PowerToys.FindMyMouse.dll",
"modules\\MouseUtils\\PowerToys.MouseHighlighter.dll",
"modules\\MouseUtils\\PowerToys.MousePointerCrosshairs.dll",
"modules\\PowerAccent\\PowerAccent.Core.dll",
"modules\\PowerAccent\\PowerAccent.dll",
"modules\\PowerAccent\\PowerAccent.exe",
"modules\\PowerAccent\\PowerToys.PowerAccent.dll",
"modules\\PowerAccent\\PowerToys.PowerAccent.exe",
"modules\\PowerAccent\\PowerToys.PowerAccentModuleInterface.dll",
"modules\\PowerAccent\\PowerToys.PowerAccentKeyboardService.dll",
"modules\\PowerRename\\PowerToys.PowerRenameExt.dll",
"modules\\PowerRename\\PowerToys.PowerRename.exe",
"modules\\PowerRename\\PowerToys.PowerRenameContextMenu.dll",
"modules\\PowerRename\\PowerRenameContextMenuPackage.msix",
"modules\\ShortcutGuide\\ShortcutGuide\\PowerToys.ShortcutGuide.exe",
"modules\\ShortcutGuide\\ShortcutGuideModuleInterface\\PowerToys.ShortcutGuideModuleInterface.dll",
"modules\\VideoConference\\PowerToys.VideoConferenceModule.dll",
"modules\\VideoConference\\PowerToys.VideoConferenceProxyFilter_x86.dll",
"modules\\VideoConference\\PowerToys.VideoConferenceProxyFilter_x64.dll",
"modules\\VideoConference\\PowerToys.VideoConferenceProxyFilter_arm64.dll",
"Settings\\PowerToys.Settings.dll",
"Settings\\PowerToys.Settings.exe"
],
"SigningInfo": {
"Operations": [
{
"KeyCode": "CP-230012",
"OperationSetCode": "SigntoolSign",
"Parameters": [
{
"parameterName": "OpusName",
"parameterValue": "Microsoft"
},
{
"parameterName": "OpusInfo",
"parameterValue": "http://www.microsoft.com"
},
{
"parameterName": "FileDigest",
"parameterValue": "/fd \"SHA256\""
},
{
"parameterName": "PageHash",
"parameterValue": "/NPH"
},
{
"parameterName": "TimeStamp",
"parameterValue": "/tr \"http://rfc3161.gtm.corp.microsoft.com/TSS/HttpTspServer\" /td sha256"
}
],
"ToolName": "sign",
"ToolVersion": "1.0"
},
{
"KeyCode": "CP-230012",
"OperationSetCode": "SigntoolVerify",
"Parameters": [],
"ToolName": "sign",
"ToolVersion": "1.0"
}
]
}
},
{
"MatchedPath": [
"ModernWpf.dll",
"ModernWpf.Controls.dll",
"System.IO.Abstractions.dll",
"Mono.Cecil.dll",
"Mono.Cecil.Mdb.dll",
"Mono.Cecil.Pdb.dll",
"Mono.Cecil.Rocks.dll",
"NLog.dll",
"HtmlAgilityPack.dll",
"Markdig.Signed.dll",
"HelixToolkit.dll",
"HelixToolkit.Core.Wpf.dll",
"Mages.Core.dll",
"JetBrains.Annotations.dll",
"NLog.Extensions.Logging.dll",
"concrt140_app.dll",
"msvcp140_1_app.dll",
"msvcp140_2_app.dll",
"msvcp140_app.dll",
"vcamp140_app.dll",
"vccorlib140_app.dll",
"vcomp140_app.dll",
"vcruntime140_1_app.dll",
"vcruntime140_app.dll",
"modules\\PowerAccent\\Vanara.Core.dll",
"modules\\PowerAccent\\Vanara.PInvoke.Gdi32.dll",
"modules\\PowerAccent\\Vanara.PInvoke.Kernel32.dll",
"modules\\PowerAccent\\Vanara.PInvoke.Shared.dll",
"modules\\PowerAccent\\Vanara.PInvoke.User32.dll",
"modules\\FileExplorerPreview\\Microsoft.Web.WebView2.Core.dll",
"modules\\FileExplorerPreview\\Microsoft.Web.WebView2.WinForms.dll",
"modules\\FileExplorerPreview\\Microsoft.Web.WebView2.Wpf.dll",
"modules\\FileExplorerPreview\\WebView2Loader.dll",
"modules\\launcher\\e_sqlite3.dll",
"modules\\launcher\\LazyCache.dll",
"modules\\launcher\\SQLitePCLRaw.batteries_v2.dll",
"modules\\launcher\\SQLitePCLRaw.core.dll",
"modules\\launcher\\SQLitePCLRaw.provider.e_sqlite3.dll",
"modules\\launcher\\ScipBe.Common.Office.OneNote.dll",
"modules\\launcher\\Interop.Microsoft.Office.Interop.OneNote.dll",
"Settings\\Microsoft.Graphics.Canvas.Interop.dll",
"ColorCode.Core.dll",
"ColorCode.UWP.dll",
"UnitsNet.dll"
],
"SigningInfo": {
"Operations": [
{
"KeyCode": "CP-231522",
"OperationSetCode": "SigntoolSign",
"Parameters": [
{
"parameterName": "OpusName",
"parameterValue": "Microsoft"
},
{
"parameterName": "OpusInfo",
"parameterValue": "http://www.microsoft.com"
},
{
"parameterName": "FileDigest",
"parameterValue": "/fd \"SHA256\""
},
{
"parameterName": "Append",
"parameterValue": "/as"
},
{
"parameterName": "PageHash",
"parameterValue": "/NPH"
},
{
"parameterName": "TimeStamp",
"parameterValue": "/tr \"http://rfc3161.gtm.corp.microsoft.com/TSS/HttpTspServer\" /td sha256"
}
],
"ToolName": "sign",
"ToolVersion": "1.0"
},
{
"KeyCode": "CP-231522",
"OperationSetCode": "SigntoolVerify",
"Parameters": [],
"ToolName": "sign",
"ToolVersion": "1.0"
}
]
}
}
]
}

View File

@@ -0,0 +1,52 @@
{
"Version": "1.0.0",
"UseMinimatch": false,
"SignBatches": [
{
"MatchedPath": [
"PowerToysSetupCustomActions.dll",
"PowerToysSetup-*.exe",
"PowerToysSetup-*.msi"
],
"SigningInfo": {
"Operations": [
{
"KeyCode": "CP-230012",
"OperationSetCode": "SigntoolSign",
"Parameters": [
{
"parameterName": "OpusName",
"parameterValue": "Microsoft"
},
{
"parameterName": "OpusInfo",
"parameterValue": "http://www.microsoft.com"
},
{
"parameterName": "FileDigest",
"parameterValue": "/fd \"SHA256\""
},
{
"parameterName": "PageHash",
"parameterValue": "/NPH"
},
{
"parameterName": "TimeStamp",
"parameterValue": "/tr \"http://rfc3161.gtm.corp.microsoft.com/TSS/HttpTspServer\" /td sha256"
}
],
"ToolName": "sign",
"ToolVersion": "1.0"
},
{
"KeyCode": "CP-230012",
"OperationSetCode": "SigntoolVerify",
"Parameters": [],
"ToolName": "sign",
"ToolVersion": "1.0"
}
]
}
}
]
}

View File

@@ -0,0 +1,50 @@
{
"Version": "1.0.0",
"UseMinimatch": false,
"SignBatches": [
{
"MatchedPath": [
"modules\\VideoConference\\PowerToys.VideoConferenceProxyFilter_x86.dll"
],
"SigningInfo": {
"Operations": [
{
"KeyCode": "CP-230012",
"OperationSetCode": "SigntoolSign",
"Parameters": [
{
"parameterName": "OpusName",
"parameterValue": "Microsoft"
},
{
"parameterName": "OpusInfo",
"parameterValue": "http://www.microsoft.com"
},
{
"parameterName": "FileDigest",
"parameterValue": "/fd \"SHA256\""
},
{
"parameterName": "PageHash",
"parameterValue": "/NPH"
},
{
"parameterName": "TimeStamp",
"parameterValue": "/tr \"http://rfc3161.gtm.corp.microsoft.com/TSS/HttpTspServer\" /td sha256"
}
],
"ToolName": "sign",
"ToolVersion": "1.0"
},
{
"KeyCode": "CP-230012",
"OperationSetCode": "SigntoolVerify",
"Parameters": [],
"ToolName": "sign",
"ToolVersion": "1.0"
}
]
}
}
]
}

View File

@@ -1,4 +0,0 @@
cd /D "%~dp0"
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat" -arch=amd64 -host_arch=amd64 -winsdk=10.0.18362.0
call msbuild ../installer/PowerToysSetup.sln /p:Configuration=Release /p:Platform=x64 || exit /b 1

View File

@@ -1,6 +0,0 @@
cd /D "%~dp0"
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat" -arch=amd64 -host_arch=amd64 -winsdk=10.0.18362.0
call msbuild ../src/common/notifications/notifications_dll.vcxproj /p:Configuration=Release /p:Platform=x64 || exit /b 1
call msbuild ../src/common/notifications_winrt/notifications.vcxproj /p:Configuration=Release /p:Platform=x64 || exit /b 1
call msbuild ../PowerToys.sln /p:Configuration=Release /p:Platform=x64 || exit /b 1

View File

@@ -2,8 +2,8 @@ trigger:
batch: true
branches:
include:
- master
- dev/PowerLauncher
- main
- stable
paths:
exclude:
- doc/*
@@ -13,8 +13,8 @@ trigger:
pr:
branches:
include:
- master
- dev/PowerLauncher
- main
- stable
# 0.0.yyMM.dd##
# 0.0.1904.0900
@@ -24,3 +24,6 @@ jobs:
- template: ./templates/build-powertoys-ci.yml
parameters:
platform: x64
- template: ./templates/build-powertoys-ci.yml
parameters:
platform: arm64

View File

@@ -1,7 +1,7 @@
parameters:
configuration: 'Release'
platform: ''
additionalBuildArguments: ''
additionalBuildArguments: '-m'
jobs:
- job: Build${{ parameters.platform }}${{ parameters.configuration }}
@@ -9,9 +9,22 @@ jobs:
variables:
BuildConfiguration: ${{ parameters.configuration }}
BuildPlatform: ${{ parameters.platform }}
pool: { vmImage: windows-2019 }
pool:
demands: ImageOverride -equals WinDevVS17-latest
${{ if eq(variables['System.CollectionUri'], 'https://dev.azure.com/ms/') }}:
name: WinDevPoolOSS-L
${{ if ne(variables['System.CollectionUri'], 'https://dev.azure.com/ms/') }}:
name: WinDevPool-L
timeoutInMinutes: 120
strategy:
maxParallel: 10
steps:
- template: build-powertoys-steps.yml
parameters:
additionalBuildArguments: ${{ parameters.additionalBuildArguments }}
additionalBuildArguments: ${{ parameters.additionalBuildArguments }}
# It appears that the Component Governance build task that gets automatically injected stopped working
# when we renamed our main branch.
- task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0
displayName: 'Component Detection'
condition: and(succeededOrFailed(), not(eq(variables['Build.Reason'], 'PullRequest')))

View File

@@ -0,0 +1,20 @@
parameters:
configuration: 'Release'
platform: ''
additionalBuildArguments: '-m'
jobs:
- job: Build${{ parameters.platform }}${{ parameters.configuration }}
displayName: Build ${{ parameters.platform }} ${{ parameters.configuration }}
variables:
BuildConfiguration: ${{ parameters.configuration }}
BuildPlatform: ${{ parameters.platform }}
pool:
name: WinDevPool-L
timeoutInMinutes: 120
strategy:
maxParallel: 10
steps:
- template: build-powertoys-steps.yml
parameters:
additionalBuildArguments: ${{ parameters.additionalBuildArguments }}

View File

@@ -3,19 +3,59 @@ parameters:
steps:
- checkout: self
fetchDepth: 1
submodules: true
clean: true
- task: NuGetToolInstaller@0
displayName: Ensure NuGet 5.5.0
- task: PowerShell@2
displayName: Verify Arm64 configuration for PowerToys.sln
inputs:
versionSpec: 5.5.0
filePath: '$(build.sourcesdirectory)\.pipelines\verifyArm64Configuration.ps1'
arguments: -solution '$(build.sourcesdirectory)\PowerToys.sln'
pwsh: true
- task: PowerShell@2
displayName: Verify Arm64 configuration for BugReportTool.sln
inputs:
filePath: '$(build.sourcesdirectory)\.pipelines\verifyArm64Configuration.ps1'
arguments: -solution '$(build.sourcesdirectory)\tools\BugReportTool\BugReportTool.sln'
pwsh: true
- task: PowerShell@2
displayName: Verify Arm64 configuration for WebcamReportTool.sln
inputs:
filePath: '$(build.sourcesdirectory)\.pipelines\verifyArm64Configuration.ps1'
arguments: -solution '$(build.sourcesdirectory)\tools\WebcamReportTool\WebcamReportTool.sln'
pwsh: true
- task: PowerShell@2
displayName: Verify Arm64 configuration for StylesReportTool.sln
inputs:
filePath: '$(build.sourcesdirectory)\.pipelines\verifyArm64Configuration.ps1'
arguments: -solution '$(build.sourcesdirectory)\tools\StylesReportTool\StylesReportTool.sln'
pwsh: true
- task: PowerShell@2
displayName: Verify Arm64 configuration for PowerToysSetup.sln
inputs:
filePath: '$(build.sourcesdirectory)\.pipelines\verifyArm64Configuration.ps1'
arguments: -solution '$(build.sourcesdirectory)\installer\PowerToysSetup.sln'
pwsh: true
- task: UseDotNet@2
displayName: 'Use .NET 6 SDK'
inputs:
packageType: sdk
version: '6.x'
- task: NuGetToolInstaller@1
displayName: Ensure NuGet Installer
- task: VisualStudioTestPlatformInstaller@1
displayName: Ensure VSTest Platform
- task: NuGetCommand@2
displayName: Restore NuGet packages
displayName: Restore NuGet packages for PowerToys.sln
inputs:
command: restore
feedsToUse: config
@@ -24,25 +64,160 @@ steps:
restoreDirectory: '$(Build.SourcesDirectory)\packages'
- task: VSBuild@1
displayName: 'Build solution **\PowerToys.sln'
displayName: 'Build PowerToys.sln'
inputs:
solution: '**\PowerToys.sln'
vsVersion: 16.0
vsVersion: 17.0
platform: '$(BuildPlatform)'
configuration: '$(BuildConfiguration)'
msbuildArgs: ${{ parameters.additionalBuildArguments }}
clean: true
maximumCpuCount: true
- task: NuGetCommand@2
displayName: Restore NuGet packages for BugReportTool.sln
inputs:
command: restore
feedsToUse: config
configPath: NuGet.config
restoreSolution: tools\BugReportTool\BugReportTool.sln
restoreDirectory: '$(Build.SourcesDirectory)\tools\BugReportTool\packages'
- task: VSBuild@1
displayName: 'Build BugReportTool.sln'
inputs:
solution: '**\BugReportTool.sln'
vsVersion: 17.0
platform: '$(BuildPlatform)'
configuration: '$(BuildConfiguration)'
msbuildArgs: ${{ parameters.additionalBuildArguments }}
maximumCpuCount: true
- task: NuGetCommand@2
displayName: Restore NuGet packages for WebcamReportTool.sln
inputs:
command: restore
feedsToUse: config
configPath: NuGet.config
restoreSolution: tools\WebcamReportTool\WebcamReportTool.sln
restoreDirectory: '$(Build.SourcesDirectory)\tools\WebcamReportTool\packages'
- task: VSBuild@1
displayName: 'Build WebcamReportTool.sln'
inputs:
solution: '**\WebcamReportTool.sln'
vsVersion: 17.0
platform: '$(BuildPlatform)'
configuration: '$(BuildConfiguration)'
msbuildArgs: ${{ parameters.additionalBuildArguments }}
maximumCpuCount: true
- task: NuGetCommand@2
displayName: Restore NuGet packages for StylesReportTool.sln
inputs:
command: restore
feedsToUse: config
configPath: NuGet.config
restoreSolution: tools\StylesReportTool\StylesReportTool.sln
restoreDirectory: '$(Build.SourcesDirectory)\tools\StylesReportTool\packages'
- task: VSBuild@1
displayName: 'Build StylesReportTool.sln'
inputs:
solution: '**\StylesReportTool.sln'
vsVersion: 17.0
platform: '$(BuildPlatform)'
configuration: '$(BuildConfiguration)'
msbuildArgs: ${{ parameters.additionalBuildArguments }}
maximumCpuCount: true
- task: PowerShell@2
displayName: Download and install WiX 3.14 development build
inputs:
targetType: filePath
filePath: '$(build.sourcesdirectory)\.pipelines\installWiX.ps1'
- task: NuGetCommand@2
displayName: Restore NuGet packages for PowerToysSetup.sln
inputs:
command: restore
feedsToUse: config
configPath: NuGet.config
restoreSolution: installer\PowerToysSetup.sln
restoreDirectory: '$(Build.SourcesDirectory)\installer\packages'
- task: VSBuild@1
displayName: 'Build PowerToys MSI'
inputs:
solution: '**\installer\PowerToysSetup.sln'
vsVersion: 17.0
platform: '$(BuildPlatform)'
configuration: '$(BuildConfiguration)'
msbuildArgs: /t:PowerToysInstaller ${{ parameters.additionalBuildArguments }}
maximumCpuCount: true
- task: VSBuild@1
displayName: 'Build PowerToys Bootstrapper'
inputs:
solution: '**\installer\PowerToysSetup.sln'
vsVersion: 17.0
platform: '$(BuildPlatform)'
configuration: '$(BuildConfiguration)'
msbuildArgs: /t:PowerToysBootstrapper ${{ parameters.additionalBuildArguments }}
clean: false
maximumCpuCount: true
# directly not doing WinAppDriver testing
- task: VSTest@2
displayName: 'MS Tests'
condition: ne(variables['BuildPlatform'], 'arm64') # No arm64 agents to run the tests.
inputs:
platform: '$(BuildPlatform)'
configuration: '$(BuildConfiguration)'
testSelector: 'testAssemblies'
testAssemblyVer2: |
**\PreviewPaneUnitTests.dll
**\UnitTests-SvgPreviewHandler.dll
**\UnitTests-GcodeThumbnailProvider.dll
**\UnitTests-StlThumbnailProvider.dll
**\UnitTests-PdfThumbnailProvider.dll
**\Settings.UI.UnitTests.dll
**\UnitTests-GcodePreviewHandler.dll
**\UnitTests-PdfPreviewHandler.dll
**\UnitTests-PreviewHandlerCommon.dll
**\powerpreviewTest.dll
!**\*TestAdapter.dll
**\Microsoft.PowerToys.Run.Plugin.Registry.UnitTests.dll
**\UnitTest-ColorPickerUI.dll
**\Microsoft.Interop.Tests.dll
**\ImageResizer.Test.dll
**\Community.PowerToys.Run.Plugin.UnitConverter.UnitTest.dll
**\Microsoft.Plugin.Folder.UnitTests.dll
**\Microsoft.Plugin.Program.UnitTests.dll
**\Microsoft.PowerToys.Run.Plugin.Calculator.UnitTest.dll
**\Microsoft.Plugin.Uri.UnitTests.dll
**\Wox.Test.dll
**\Microsoft.PowerToys.Run.Plugin.System.UnitTests.dll
**\Microsoft.PowerToys.Run.Plugin.TimeDate.UnitTests.dll
**\Microsoft.PowerToys.Run.Plugin.TimeZone.UnitTests.dll
**\Microsoft.Plugin.WindowsTerminal.UnitTests.dll
**\Microsoft.Plugin.WindowWalker.UnitTests.dll
!**\obj\**
!**\ref\**
# TODO: Enable these tests after figuring out what caused the tests that depend on WebView2 to start timing out in CI.
# **\PreviewPaneUnitTests.dll # It's UnitTests-MarkdownPreviewHandler
# **\UnitTests-SvgThumbnailProvider.dll
# **\UnitTests-SvgPreviewHandler.dll
# Native dlls
- task: VSTest@2
condition: ne(variables['BuildPlatform'],'arm64') # No arm64 agents to run the tests.
displayName: 'Native Tests'
inputs:
platform: '$(BuildPlatform)'
configuration: '$(BuildConfiguration)'
testSelector: 'testAssemblies'
testAssemblyVer2: |
**\KeyboardManagerEngineTest.dll
**\KeyboardManagerEditorTest.dll
**\UnitTests-CommonLib.dll
**\PowerRenameUnitTests.dll
**\powerpreviewTest.dll
**\UnitTests-FancyZones.dll
!**\obj\**

26
.pipelines/installWiX.ps1 Normal file
View File

@@ -0,0 +1,26 @@
$ProgressPreference = 'SilentlyContinue'
$WixDownloadUrl = "https://wixtoolset.org/downloads/v3.14.0.6526/wix314.exe"
$WixBinariesDownloadUrl = "https://wixtoolset.org/downloads/v3.14.0.6526/wix314-binaries.zip"
# Download WiX binaries and verify their hash sums
Invoke-WebRequest -Uri $WixDownloadUrl -OutFile "$($ENV:Temp)\wix314.exe"
$Hash = (Get-FileHash -Algorithm SHA256 "$($ENV:Temp)\wix314.exe").Hash
if ($Hash -ne 'FADEB00B1FCCD9BB2FDD6CE28D4C3ECDA339C8906A72586515C14A93CEADB6FE')
{
Write-Error "$WixHash"
throw "wix314.exe has unexpected SHA256 hash: $Hash"
}
Invoke-WebRequest -Uri $WixBinariesDownloadUrl -OutFile "$($ENV:Temp)\wix314-binaries.zip"
$Hash = (Get-FileHash -Algorithm SHA256 "$($ENV:Temp)\wix314-binaries.zip").Hash
if($Hash -ne '4C89898DF3BCAB13E12F7CA54399C35AD273475AD2CB6284611D00AE2D063C2C')
{
throw "wix314-binaries.zip has unexpected SHA256 hash: $Hash"
}
# Install WiX
Start-Process -Wait -FilePath "$($ENV:Temp)\wix314.exe" -ArgumentList "/install /quiet"
# Extract WiX binaries and copy wix.targets to the installed dir
Expand-Archive -Path "$($ENV:Temp)\wix314-binaries.zip" -Force -DestinationPath "$($ENV:Temp)"
Copy-Item -Path "$($ENV:Temp)\wix.targets" -Destination "C:\Program Files (x86)\WiX Toolset v3.14\"

52
.pipelines/loc/loc.yml Normal file
View File

@@ -0,0 +1,52 @@
trigger: none
pr: none
schedules:
- cron: "0 3 * * 2-6" # Run at 03:00 UTC Tuesday through Saturday (After the work day in Pacific, Mon-Fri)
displayName: "Nightly Localization Build"
branches:
include:
- main
always: false # only run if there's code changes!
pool:
vmImage: windows-2019
resources:
repositories:
- repository: self
type: git
ref: master
steps:
- checkout: self
clean: true
submodules: false
fetchDepth: 1 # Don't need a deep checkout for loc files!
persistCredentials: true
- task: MicrosoftTDBuild.tdbuild-task.tdbuild-task.TouchdownBuildTask@1
displayName: 'Touchdown Build - 37400, PRODEXT'
inputs:
teamId: 37400
authId: '$(TouchdownApplicationID)'
authKey: '$(TouchdownApplicationKey)'
resourceFilePath: |
**\Resources.resx
**\Resource.resx
**\Resources.resw
outputDirectoryRoot: LocOutput
appendRelativeDir: true
pseudoSetting: Included
# Saving one of these makes it really easy to inspect the loc output...
- powershell: 'tar czf LocOutput.tar.gz LocOutput'
displayName: 'PowerShell Script'
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: LocOutput'
inputs:
PathtoPublish: LocOutput.tar.gz
ArtifactName: LocOutput

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Microsoft.PowerToys.Telemetry" version="1.0" />
<package id="Microsoft.PowerToys.Telemetry" version="2.0" />
</packages>

View File

@@ -1,21 +0,0 @@
static_analysis_options:
fxcop_options:
disable_tool_scan: false
policheck_options:
fail_on_error: true
moderncop_options:
fail_on_error: true
files_to_scan:
- from: 'src'
exclude:
- '**/just.config.js'
- '**/webpack.config.js'
- '**/webpack.serve.config.js'
- '**/dist/bundle.js'
binskim_options:
disable_tool_scan: false
files_to_scan:
- from: 'installer/packages'
exclude:
- 'WiX.3.11.1/**/*.dll'
- 'Wix.3.11.1/**/*.exe'

View File

@@ -1,117 +0,0 @@
environment:
host:
os: 'windows'
flavor: 'server'
version: '2019'
runtime:
provider: 'appcontainer'
image: 'cdpxwinrs5.azurecr.io/global/vse2019:16.4.3'
source_mode: 'map'
version:
name: 'PowerToys'
major: 1
minor: 0
signing_options:
profile: 'external_distribution'
package_sources:
nuget:
feeds:
'Nuget': 'https://api.nuget.org/v3/index.json'
'PipelineBuildSupplement': 'https://msazure.pkgs.visualstudio.com/_packaging/PipelineBuildSupplement/nuget/v3/index.json'
restore:
commands:
- !!defaultcommand
name: 'Restore Power Toys Telemetry'
command: '.pipelines\restore-telemetry.cmd'
- !!defaultcommand
name: 'Restore Power Toys'
command: '.pipelines\restore.cmd'
- !!defaultcommand
name: 'Restore Installer'
command: '.pipelines\restore-installer.cmd'
build:
commands:
- !!buildcommand
name: 'Build Power Toys'
command: '.pipelines\build.cmd'
artifacts:
- from: 'x64/Release'
to: 'Build_Output'
include:
- 'PowerToys.exe'
- 'PowerToysSettings.exe'
- 'modules\FancyZonesEditor.exe'
- 'modules\fancyzones.dll'
- 'modules\shortcut_guide.dll'
- 'modules\PowerRenameExt.dll'
- 'modules\WindowWalker.exe'
- 'modules\WindowWalker.dll'
- 'modules\ImageResizerExt.dll'
- 'modules\ImageResizer.exe'
- 'modules\powerpreview.dll'
- 'modules\PreviewHandlerCommon.dll'
- 'modules\MarkdownPreviewHandler.dll'
- 'modules\SvgPreviewHandler.dll'
signing_options:
sign_inline: true # This does signing a soon as this command completes
- !!buildcommand
name: 'Build Power Toys Installer'
command: '.pipelines\build-installer.cmd'
artifacts:
- from: 'installer\PowerToysSetup\x64\Release'
to: 'Build_Installer_Output'
include:
- 'PowerToysSetup-*.msi'
signing_options:
sign_inline: true # This does signing a soon as this command completes
# - !!buildcommand
# name: 'Archive symbols to Symbol Server'
# artifacts:
# - to: 'x64 Symbols'
# include:
# - 'x64/Release/action_runner.pdb'
# - 'x64/Release/Notifications.pdb'
# - 'x64/Release/PowerRenameUWPUI.pdb'
# - 'x64/Release/PowerToys.pdb'
# - 'x64/Release/PowerToysSettings.pdb'
# - 'x64/Release/modules/fancyzones.pdb'
# - 'x64/Release/modules/FancyZonesEditor.pdb'
# - 'x64/Release/modules/PowerRenameExt.pdb'
# - 'x64/Release/modules/shortcut_guide.pdb'
package:
commands:
- !!buildcommand
name: 'Build MSIX package'
command: 'installer\msix\build_msix_cdpx.cmd'
artifacts:
- from: 'installer\msix\bin'
to: 'Build_MSIX_Package_Output'
include:
- '*.msix'
- '*.msixbundle'
signing_options:
profile: '400'
static_analysis_options:
binskim_options:
files_to_scan:
- from: 'installer/packages'
exclude:
- 'WiX.*/**/*.dll'
- 'Wix.*/**/*.exe'
moderncop_options:
files_to_scan:
- from: 'src'
exclude:
- '**/just.config.js'
- '**/webpack.config.js'
- '**/webpack.serve.config.js'
- '**/dist/bundle.js'

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<clear />
<add key="PowerToysCDPX_Feed" value="https://github-private.pkgs.visualstudio.com/microsoft/_packaging/PowerToysCDPX_Feed/nuget/v3/index.json" />
</packageSources>
<disabledPackageSources>
<clear />
</disabledPackageSources>
</configuration>

511
.pipelines/release.yml Normal file
View File

@@ -0,0 +1,511 @@
# This build should never run as CI or against a pull request.
trigger: none
pr: none
pool:
name: WinDevPool-L
demands: ImageOverride -equals WinDevVS17-latest
parameters:
- name: buildConfigurations
type: object
default:
- Release
- name: buildPlatforms
type: object
default:
- x64
- arm64
- name: versionNumber
type: string
default: '0.0.1'
variables:
IsPipeline: 1 # The installer uses this to detect whether it should pick up localizations
name: $(BuildDefinitionName)_$(date:yyMM).$(date:dd)$(rev:rrr)
resources:
repositories:
- repository: self
type: git
ref: main
jobs:
- job: Build
strategy:
matrix:
${{ each config in parameters.buildConfigurations }}:
${{ each platform in parameters.buildPlatforms }}:
${{ config }}_${{ platform }}:
BuildConfiguration: ${{ config }}
BuildPlatform: ${{ platform }}
displayName: Build
timeoutInMinutes: 120 # Some of the loc stuff adds quite a bit of time.
cancelTimeoutInMinutes: 1
steps:
- checkout: self
clean: true
submodules: true
persistCredentials: True
# Sets versions for all PowerToy created DLLs
- task: PowerShell@1
displayName: Set Versions.Prop
inputs:
scriptName: .pipelines/versionSetting.ps1
arguments: -versionNumber '${{ parameters.versionNumber }}' -DevEnvironment ''
# Guardian tool needs 'Microsoft.NETCore.App', version '2.1.0' (x64)
- task: UseDotNet@2
displayName: 'Use .NET Core 2.1 SDK'
inputs:
packageType: sdk
version: '2.1.x'
- task: UseDotNet@2
displayName: 'Use .NET 6 SDK'
inputs:
packageType: sdk
version: '6.x'
- task: NuGetAuthenticate@0
inputs:
nuGetServiceConnections: PowerToysCDPxFeed
- task: NuGetToolInstaller@1
displayName: Use NuGet Installer latest
# this will restore the following nugets:
# - main solution
# - Bug report tool
# - Webcam report tool
# - Installer
# - Bootstrapper Installer
- task: NuGetCommand@2
displayName: NuGet restore solutions dependencies
inputs:
command: restore
restoreSolution: '**/*.sln'
selectOrConfig: config
nugetConfigPath: .pipelines/release-nuget.config
- task: PowerShell@2
displayName: Download and install WiX 3.14 development build
inputs:
targetType: filePath
filePath: '$(build.sourcesdirectory)\.pipelines\installWiX.ps1'
- task: MicrosoftTDBuild.tdbuild-task.tdbuild-task.TouchdownBuildTask@1
displayName: 'Download Localization Files -- PowerToys 37400'
inputs:
teamId: 37400
authId: '$(TouchdownApplicationID)'
authKey: '$(TouchdownApplicationKey)'
resourceFilePath: |
**\Resources.resx
**\Resource.resx
**\Resources.resw
appendRelativeDir: true
localizationTarget: false
# pseudoSetting: Included
- task: PowerShell@2
displayName: Move Loc files into correct locations
inputs:
targetType: inline
script: >-
$VerbosePreference = "Continue"
./tools/build/move-and-rename-resx.ps1
./tools/build/move-uwp-resw.ps1
pwsh: true
- task: CmdLine@2
displayName: Moving telem files
inputs:
script: |
call nuget.exe restore -configFile .pipelines/release-nuget.config -PackagesDirectory . .pipelines/packages.config || exit /b 1
move /Y "Microsoft.PowerToys.Telemetry.2.0.0\build\include\TraceLoggingDefines.h" "src\common\Telemetry\TraceLoggingDefines.h" || exit /b 1
move /Y "Microsoft.PowerToys.Telemetry.2.0.0\build\include\TelemetryBase.cs" "src\common\Telemetry\TelemetryBase.cs" || exit /b 1
## ALL BUT INSTALLER BUILDING
- task: VSBuild@1
displayName: Build PowerToys main project
inputs:
solution: '**\PowerToys.sln'
vsVersion: 17.0
msbuildArgs: /p:CIBuild=true /bl:$(Build.SourcesDirectory)\msbuild.binlog
platform: $(BuildPlatform)
configuration: $(BuildConfiguration)
clean: true
maximumCpuCount: true
- task: VSBuild@1
displayName: Build BugReportTool
inputs:
solution: '**/tools/BugReportTool/BugReportTool.sln'
vsVersion: 17.0
msbuildArgs: /p:CIBuild=true /bl:$(Build.SourcesDirectory)\msbuild.binlog
platform: $(BuildPlatform)
configuration: $(BuildConfiguration)
clean: true
maximumCpuCount: true
- task: VSBuild@1
displayName: Build WebcamReportTool
inputs:
solution: '**/tools/WebcamReportTool/WebcamReportTool.sln'
vsVersion: 17.0
msbuildArgs: /p:CIBuild=true /bl:$(Build.SourcesDirectory)\msbuild.binlog
platform: $(BuildPlatform)
configuration: $(BuildConfiguration)
clean: true
maximumCpuCount: true
- task: VSBuild@1
displayName: Build StylesReportTool
inputs:
solution: '**/tools/StylesReportTool/StylesReportTool.sln'
vsVersion: 17.0
msbuildArgs: /p:CIBuild=true /bl:$(Build.SourcesDirectory)\msbuild.binlog
platform: $(BuildPlatform)
configuration: $(BuildConfiguration)
clean: true
maximumCpuCount: true
- task: VSBuild@1
displayName: Build PowerToysSetupCustomActions
inputs:
solution: '**/installer/PowerToysSetup.sln'
vsVersion: 17.0
msbuildArgs: /target:PowerToysSetupCustomActions /p:CIBuild=true /bl:$(Build.SourcesDirectory)\msbuild.binlog
platform: $(BuildPlatform)
configuration: $(BuildConfiguration)
clean: true
maximumCpuCount: true
- task: VSBuild@1
displayName: Publish Settings for Packaging
inputs:
solution: 'src/settings-ui/Settings.UI/PowerToys.Settings.csproj'
vsVersion: 17.0
msbuildArgs: >-
/target:Publish
/p:Configuration=$(BuildConfiguration);Platform=$(BuildPlatform);AppxBundle=Never
/p:VCRTForwarders-IncludeDebugCRT=false
/p:PowerToysRoot=$(Build.SourcesDirectory)
/p:PublishProfile=InstallationPublishProfile.pubxml
platform: $(BuildPlatform)
configuration: $(BuildConfiguration)
maximumCpuCount: true
- task: VSBuild@1
displayName: Publish Launcher for Packaging
inputs:
solution: 'src/modules/launcher/PowerLauncher/PowerLauncher.csproj'
vsVersion: 17.0
# The arguments should be the same as the ones for Settings; make sure they are.
msbuildArgs: >-
/target:Publish
/p:Configuration=$(BuildConfiguration);Platform=$(BuildPlatform);AppxBundle=Never
/p:VCRTForwarders-IncludeDebugCRT=false
/p:PowerToysRoot=$(Build.SourcesDirectory)
/p:PublishProfile=InstallationPublishProfile.pubxml
platform: $(BuildPlatform)
configuration: $(BuildConfiguration)
maximumCpuCount: true
- task: VSBuild@1
displayName: Publish Monaco Preview Handler for Packaging
inputs:
solution: 'src/modules/previewpane/MonacoPreviewHandler/MonacoPreviewHandler.csproj'
vsVersion: 17.0
# The arguments should be the same as the ones for Settings; make sure they are.
msbuildArgs: >-
/target:Publish
/p:Configuration=$(BuildConfiguration);Platform=$(BuildPlatform);AppxBundle=Never
/p:VCRTForwarders-IncludeDebugCRT=false
/p:PowerToysRoot=$(Build.SourcesDirectory)
/p:PublishProfile=InstallationPublishProfile.pubxml
platform: $(BuildPlatform)
configuration: $(BuildConfiguration)
maximumCpuCount: true
- task: VSBuild@1
displayName: Publish Markdown Preview Handler for Packaging
inputs:
solution: 'src/modules/previewpane/MarkdownPreviewHandler/MarkdownPreviewHandler.csproj'
vsVersion: 17.0
# The arguments should be the same as the ones for Settings; make sure they are.
msbuildArgs: >-
/target:Publish
/p:Configuration=$(BuildConfiguration);Platform=$(BuildPlatform);AppxBundle=Never
/p:VCRTForwarders-IncludeDebugCRT=false
/p:PowerToysRoot=$(Build.SourcesDirectory)
/p:PublishProfile=InstallationPublishProfile.pubxml
platform: $(BuildPlatform)
configuration: $(BuildConfiguration)
maximumCpuCount: true
- task: VSBuild@1
displayName: Publish Svg Preview Handler for Packaging
inputs:
solution: 'src/modules/previewpane/SvgPreviewHandler/SvgPreviewHandler.csproj'
vsVersion: 17.0
# The arguments should be the same as the ones for Settings; make sure they are.
msbuildArgs: >-
/target:Publish
/p:Configuration=$(BuildConfiguration);Platform=$(BuildPlatform);AppxBundle=Never
/p:VCRTForwarders-IncludeDebugCRT=false
/p:PowerToysRoot=$(Build.SourcesDirectory)
/p:PublishProfile=InstallationPublishProfile.pubxml
platform: $(BuildPlatform)
configuration: $(BuildConfiguration)
maximumCpuCount: true
- task: VSBuild@1
displayName: Publish Svg Thumbnail Provider for Packaging
inputs:
solution: 'src/modules/previewpane/SvgThumbnailProvider/SvgThumbnailProvider.csproj'
vsVersion: 17.0
# The arguments should be the same as the ones for Settings; make sure they are.
msbuildArgs: >-
/target:Publish
/p:Configuration=$(BuildConfiguration);Platform=$(BuildPlatform);AppxBundle=Never
/p:VCRTForwarders-IncludeDebugCRT=false
/p:PowerToysRoot=$(Build.SourcesDirectory)
/p:PublishProfile=InstallationPublishProfile.pubxml
platform: $(BuildPlatform)
configuration: $(BuildConfiguration)
maximumCpuCount: true
- task: VSBuild@1
displayName: Publish Measure Tool UI for Packaging
inputs:
solution: 'src/modules/MeasureTool/MeasureToolUI/MeasureToolUI.csproj'
vsVersion: 17.0
# The arguments should be the same as the ones for Settings; make sure they are.
msbuildArgs: >-
/target:Publish
/p:Configuration=$(BuildConfiguration);Platform=$(BuildPlatform);AppxBundle=Never
/p:VCRTForwarders-IncludeDebugCRT=false
/p:PowerToysRoot=$(Build.SourcesDirectory)
/p:PublishProfile=InstallationPublishProfile.pubxml
platform: $(BuildPlatform)
configuration: $(BuildConfiguration)
maximumCpuCount: true
- task: VSBuild@1
displayName: Build PowerToysSetupCustomActions DLL # This dll needs to be build and signed before building the MSI.
inputs:
solution: '**/installer/PowerToysSetup.sln'
vsVersion: 17.0
msbuildArgs: /p:CIBuild=true /bl:$(Build.SourcesDirectory)\msbuild.binlog /t:PowerToysSetupCustomActions
platform: $(BuildPlatform)
configuration: $(BuildConfiguration)
maximumCpuCount: true
#### MAIN SIGNING AREA
# reference https://dev.azure.com/microsoft/Dart/_git/AppDriver?path=/ESRPSigning.json&version=GBarm64-netcore&_a=contents for winappdriver
# https://dev.azure.com/microsoft/Dart/_git/AppDriver?path=/CIPolicy.xml&version=GBarm64-netcore&_a=contents
- task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@1
displayName: Sign PowerToysSetupCustomActions DLL
inputs:
ConnectedServiceName: 'Terminal/Console/WinAppDriver Team Code Signing Connection'
FolderPath: 'installer/PowerToysSetupCustomActions/$(BuildPlatform)\$(BuildConfiguration)'
signType: batchSigning
batchSignPolicyFile: '$(build.sourcesdirectory)\.pipelines\ESRPSigning_installer.json'
ciPolicyFile: '$(build.sourcesdirectory)\.pipelines\CIPolicy.xml'
- task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@1
displayName: Sign Core PT
inputs:
ConnectedServiceName: 'Terminal/Console/WinAppDriver Team Code Signing Connection'
FolderPath: '$(BuildPlatform)/$(BuildConfiguration)' # Video conf uses x86 and x64.
signType: batchSigning
batchSignPolicyFile: '$(build.sourcesdirectory)\.pipelines\ESRPSigning_core.json'
ciPolicyFile: '$(build.sourcesdirectory)\.pipelines\CIPolicy.xml'
- task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@1
displayName: Sign x86 directshow VCM
inputs:
ConnectedServiceName: 'Terminal/Console/WinAppDriver Team Code Signing Connection'
FolderPath: 'x86/$(BuildConfiguration)' # Video conf uses x86 and x64.
signType: batchSigning
batchSignPolicyFile: '$(build.sourcesdirectory)\.pipelines\ESRPSigning_vcm.json'
ciPolicyFile: '$(build.sourcesdirectory)\.pipelines\CIPolicy.xml'
#### END SIGNING
## END MAIN
## INSTALLER START
#### MSI BUILDING AND SIGNING
- task: VSBuild@1
displayName: Build MSI
inputs:
solution: '**/installer/PowerToysSetup.sln'
vsVersion: 17.0
msbuildArgs: /p:CIBuild=true /target:PowerToysInstaller /bl:$(Build.SourcesDirectory)\msbuild.binlog
platform: $(BuildPlatform)
configuration: $(BuildConfiguration)
clean: false # don't undo our hard work above by deleting the CustomActions dll
maximumCpuCount: true
- task: CmdLine@2
displayName: 'Extracting MSI to verify contents'
inputs:
script: |
"C:\Program Files (x86)\WiX Toolset v3.14\bin\dark.exe" -x $(build.sourcesdirectory)\extractedMsi installer\PowerToysSetup\$(BuildPlatform)\$(BuildConfiguration)\PowerToysSetup-${{ parameters.versionNumber }}-$(BuildPlatform).msi
dir $(build.sourcesdirectory)\extractedMsi
# Did we sign all files
- task: PowerShell@1
displayName: Verifying entire build is signed and version set
inputs:
scriptName: .pipelines/versionAndSignCheck.ps1
arguments: -targetDir '$(build.sourcesdirectory)\extractedMsi\File'
- task: PowerShell@1
displayName: Verifying MSI Custom Actions DLL is signed
inputs:
scriptName: .pipelines/versionAndSignCheck.ps1
arguments: -targetDir '$(build.sourcesdirectory)\extractedMsi\Binary'
- task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@1
displayName: Sign MSI
inputs:
ConnectedServiceName: 'Terminal/Console/WinAppDriver Team Code Signing Connection'
FolderPath: 'installer/PowerToysSetup/$(BuildPlatform)\$(BuildConfiguration)'
signType: batchSigning
batchSignPolicyFile: '$(build.sourcesdirectory)\.pipelines\ESRPSigning_installer.json'
ciPolicyFile: '$(build.sourcesdirectory)\.pipelines\CIPolicy.xml'
#### END MSI
#### BOOTSTRAP BUILDING AND SIGNING
- task: VSBuild@1
displayName: Build Bootstrapper
inputs:
solution: '**/installer/PowerToysSetup.sln'
vsVersion: 17.0
msbuildArgs: /p:CIBuild=true /bl:$(Build.SourcesDirectory)\msbuild.binlog /t:PowerToysBootstrapper
platform: $(BuildPlatform)
configuration: $(BuildConfiguration)
clean: false # don't undo our hard work above by deleting the MSI
maximumCpuCount: true
- task: CmdLine@2
displayName: 'Insignia: Extract Engine from Bundle'
inputs:
script: '"C:\Program Files (x86)\WiX Toolset v3.14\bin\insignia.exe" -ib installer\PowerToysSetup\$(BuildPlatform)\$(BuildConfiguration)\PowerToysSetup-${{ parameters.versionNumber }}-$(BuildPlatform).exe -o installer\engine.exe'
- task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@1
displayName: 'ESRP CodeSigning (Engine)'
inputs:
ConnectedServiceName: 'Terminal/Console/WinAppDriver Team Code Signing Connection'
FolderPath: 'installer'
Pattern: engine.exe
signConfigType: inlineSignParams
inlineOperation: |
[
{
"KeyCode": "CP-230012",
"OperationCode": "SigntoolSign",
"Parameters": {
"OpusName": "Microsoft",
"OpusInfo": "http://www.microsoft.com",
"FileDigest": "/fd \"SHA256\"",
"PageHash": "/NPH",
"TimeStamp": "/tr \"http://rfc3161.gtm.corp.microsoft.com/TSS/HttpTspServer\" /td sha256"
},
"ToolName": "sign",
"ToolVersion": "1.0"
},
{
"KeyCode": "CP-230012",
"OperationCode": "SigntoolVerify",
"Parameters": {},
"ToolName": "sign",
"ToolVersion": "1.0"
}
]
- task: CmdLine@2
displayName: 'Insignia: Merge Engine into Bundle'
inputs:
script: '"C:\Program Files (x86)\WiX Toolset v3.14\bin\insignia.exe" -ab installer\engine.exe installer\PowerToysSetup\$(BuildPlatform)\$(BuildConfiguration)\PowerToysSetup-${{ parameters.versionNumber }}-$(BuildPlatform).exe -o installer\PowerToysSetup\$(BuildPlatform)\$(BuildConfiguration)\PowerToysSetup-${{ parameters.versionNumber }}-$(BuildPlatform).exe'
- task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@1
displayName: Sign Bootstrapper
inputs:
ConnectedServiceName: 'Terminal/Console/WinAppDriver Team Code Signing Connection'
FolderPath: 'installer/PowerToysSetup/$(BuildPlatform)\$(BuildConfiguration)'
signType: batchSigning
batchSignPolicyFile: '$(build.sourcesdirectory)\.pipelines\ESRPSigning_installer.json'
ciPolicyFile: '$(build.sourcesdirectory)\.pipelines\CIPolicy.xml'
#### END BOOTSTRAP
## END INSTALLER
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: binlog'
condition: failed()
continueOnError: True
inputs:
PathtoPublish: $(Build.SourcesDirectory)\msbuild.binlog
ArtifactName: binlog-$(BuildPlatform)
- task: ComponentGovernanceComponentDetection@0
displayName: Component Detection
- task: CopyFiles@2
displayName: Copying files for symbols
inputs:
contents: >-
**/*.pdb
flattenFolders: True
targetFolder: $(Build.ArtifactStagingDirectory)/Symbols-$(BuildPlatform)/
- task: PowerShell@2
displayName: 'Remove unneeded files from ArtifactStagingDirectory'
inputs:
targetType: 'inline'
script: |
cd $(Build.ArtifactStagingDirectory)/Symbols-$(BuildPlatform)/
Remove-Item vc143.pdb
Remove-Item *test*
- task: PublishSymbols@2
displayName: Publish symbols path
continueOnError: True
inputs:
SearchPattern: |
$(Build.ArtifactStagingDirectory)/Symbols-$(BuildPlatform)/**/*.*
IndexSources: false
SymbolServerType: TeamServices
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: Symbols'
inputs:
PathtoPublish: $(System.ArtifactsDirectory)/Symbols-$(BuildPlatform)/
ArtifactName: Symbols-${{ parameters.versionNumber }}-$(BuildPlatform)
- task: DeleteFiles@1
displayName: 'Remove symbols from ArtifactStagingDirectory'
inputs:
Contents: '*'
SourceFolder: $(Build.ArtifactStagingDirectory)/Symbols-$(BuildPlatform)/
RemoveSourceFolder: True
- task: CopyFiles@2
displayName: Copying setup file over
inputs:
contents: '**/PowerToysSetup-*.exe'
flattenFolders: True
targetFolder: $(Build.ArtifactStagingDirectory)
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: PowerToySetup'
inputs:
PathtoPublish: $(System.ArtifactsDirectory)
ArtifactName: setup-$(BuildPlatform)
...

View File

@@ -1,3 +0,0 @@
cd /D "%~dp0"
nuget restore ../installer/PowerToysSetup.sln || exit /b 1

View File

@@ -1,5 +0,0 @@
cd /D "%~dp0"
call nuget.exe restore -PackagesDirectory . packages.config || exit /b 1
move /Y "Microsoft.PowerToys.Telemetry.1.0.0\build\include\TraceLoggingDefines.h" "..\src\common\Telemetry\TraceLoggingDefines.h" || exit /b 1

View File

@@ -1,3 +0,0 @@
cd /D "%~dp0"
nuget restore ../PowerToys.sln || exit /b 1

View File

@@ -0,0 +1,63 @@
[CmdletBinding()]
Param(
[Parameter(Mandatory=$True,Position=1)]
[string]$solution
)
Write-Output "Verifying Arm64 configuration for $solution"
$errorTable = @{}
$MSBuildLoc = & "C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe" -prerelease -requires Microsoft.Component.MSBuild -find MSBuild\**\Bin\Microsoft.Build.dll
if ($null -eq $MSBuildLoc) {
throw "Unable to locate Microsoft.Build.dll"
}
try {
Add-Type -Path $MSBuildLoc
}
catch {
# Catching because it may error on loading all the types from the assembly, but we only need one
}
$solutionFile = [Microsoft.Build.Construction.SolutionFile]::Parse($solution);
$arm64SlnConfigs = $solutionFile.SolutionConfigurations | Where-Object {
$_.PlatformName -eq "ARM64"
};
# Should have two configurations. Debug and Release.
if($arm64SlnConfigs.Length -lt 2) {
Write-Host -ForegroundColor Red "Missing Solution-level Arm64 platforms"
exit 1;
}
# List projects only.
$projects = $solutionFile.ProjectsInOrder | Where-Object {
$_.ProjectType -eq "KnownToBeMSBuildFormat"
};
# Enumerate through the projects and add any project with a mismatched platform and project configuration
foreach ($project in $projects) {
foreach ($slnConfig in $arm64SlnConfigs.FullName) {
if ($project.ProjectConfigurations.$slnConfig.FullName -ne $slnConfig) {
$errorTable[$project.ProjectName] += @(""
| Select-Object @{n = "Configuration"; e = { $project.ProjectConfigurations.$slnConfig.FullName } },
@{n = "ExpectedConfiguration"; e = { $slnConfig } })
}
}
}
if ($errorTable.Count -gt 0) {
Write-Host -ForegroundColor Red "Verification failed for the following projects:`n"
$errorTable.Keys | ForEach-Object {
Write-Host -ForegroundColor Red $_`:;
$errorTable[$_] | ForEach-Object {
Write-Host -ForegroundColor Red "$($_.ExpectedConfiguration)=$($_.Configuration)";
};
Write-Host -ForegroundColor Red `r
}
exit 1;
}
Write-Output "Verification Complete"
exit 0;

View File

@@ -0,0 +1,87 @@
[CmdletBinding()]
# todo: send in arch / conf, could send in actual path
Param(
[Parameter(Mandatory=$True,Position=1)]
[AllowEmptyString()]
[string]$targetDir = $PSScriptRoot + '/../extractedMsi/File'
)
$DirPath = $targetDir; #this file is in pipeline, we need root.
$items = Get-ChildItem -Path $DirPath -File -Include *.exe,*.dll,*.ttf,PTCustomActions -Recurse -Force -ErrorAction SilentlyContinue
$totalFailure = 0;
Write-Host $DirPath;
if(-not (Test-Path $DirPath))
{
Write-Host "Folder does not exist!"
}
Write-Host "Total items: " $items.Count
if($items.Count -eq 0)
{
# no items means something bad happened. We should fail ASAP
exit 1;
}
$items | ForEach-Object {
if($_.VersionInfo.FileVersion -eq "1.0.0.0" )
{
# These items are exceptions that actually have the 1.0.0.0 version.
if ((-not $_.Name.EndsWith("Microsoft.Windows.ApplicationModel.DynamicDependency.Projection.dll")) -and
(-not $_.Name.EndsWith("Microsoft.Windows.ApplicationModel.Resources.Projection.dll")) -and
(-not $_.Name.EndsWith("Microsoft.Windows.ApplicationModel.WindowsAppRuntime.Projection.dll")) -and
(-not $_.Name.EndsWith("Microsoft.Windows.AppLifecycle.Projection.dll")) -and
(-not $_.Name.EndsWith("Microsoft.Windows.System.Power.Projection.dll")) -and
(-not $_.Name.EndsWith("Microsoft.WindowsAppRuntime.Bootstrap.Net.dll")) -and
(-not $_.Name.EndsWith("Microsoft.Xaml.Interactions.dll")) -and
(-not $_.Name.EndsWith("Microsoft.Xaml.Interactivity.dll")) -and
(-not $_.Name.EndsWith("Microsoft.WindowsAppRuntime.Release.Net.dll"))
)
{
Write-Host "Version set to 1.0.0.0: " + $_.FullName
$totalFailure++;
}
}
}
$items | ForEach-Object {
if($_.VersionInfo.FileVersion -eq $null )
{
# These items are exceptions that actually a version not set.
if ((-not $_.Name.EndsWith("codicon.ttf")) -and
(-not $_.Name.EndsWith("e_sqlite3.dll")) -and
(-not $_.Name.EndsWith("vcamp140_app.dll")) -and
(-not $_.Name.EndsWith("marshal.dll")) -and
(-not $_.Name.EndsWith("Microsoft.UI.Composition.OSSupport.dll")) -and
(-not $_.Name.EndsWith("Microsoft.UI.Xaml.Internal.dll")) -and
(-not $_.Name.EndsWith("Microsoft.Windows.ApplicationModel.Resources.dll")) -and
(-not $_.Name.EndsWith("Microsoft.WindowsAppRuntime.dll")) -and
(-not $_.Name.EndsWith("Microsoft.WindowsAppRuntime.Bootstrap.dll")) -and
(-not $_.Name.EndsWith("MRM.dll")) -and
(-not $_.Name.EndsWith("PushNotificationsLongRunningTask.ProxyStub.dll")) -and
(-not $_.Name.EndsWith("WindowsAppSdk.AppxDeploymentExtensions.Desktop.dll"))
)
{
Write-Host "Version not set: " + $_.FullName
$totalFailure++;
}
}
}
$items | ForEach-Object {
$auth = Get-AuthenticodeSignature $_.FullName
if($auth.SignerCertificate -eq $null)
{
Write-Host "Not Signed: " + $_.FullName
$totalFailure++;
}
}
if($totalFailure -gt 0)
{
exit 1
}
exit 0

View File

@@ -0,0 +1,42 @@
[CmdletBinding()]
Param(
[Parameter(Mandatory=$True,Position=1)]
[string]$versionNumber = "0.0.1",
[Parameter(Mandatory=$True,Position=2)]
[AllowEmptyString()]
[string]$DevEnvironment = "Local"
)
Write-Host $PSScriptRoot
$versionRegex = "(\d+)\.(\d+)\.(\d+)"
if($versionNumber -match $versionRegEx)
{
#$buildDayOfYear = (Get-Date).DayofYear;
#$buildTime = Get-Date -Format HH;
#$buildTime = Get-Date -Format HHmmss;
#$buildYear = Get-Date -Format yy;
#$revision = [string]::Format("{0}{1}{2}", $buildYear, $buildDayOfYear, $buildTime )
# max UInt16, 65535
#$revision = [string]::Format("{0}{1}", $buildDayOfYear, $buildTime )
#Write-Host "Revision" $revision
$versionNumber = [int]::Parse($matches[1]).ToString() + "." + [int]::Parse($matches[2]).ToString() + "." + [int]::Parse($matches[3]).ToString() # + "." + $revision
Write-Host "Version Number" $versionNumber
}
else
{
throw "Build format does not match the expected pattern (buildName_w.x.y.z)"
}
$verPropWriteFileLocation = $PSScriptRoot + '/../src/Version.props';
$verPropReadFileLocation = $verPropWriteFileLocation;
[XML]$verProps = Get-Content $verPropReadFileLocation
$verProps.Project.PropertyGroup.Version = $versionNumber;
$verProps.Project.PropertyGroup.DevEnvironment = $DevEnvironment;
Write-Host "xml" $verProps.Project.PropertyGroup.Version
$verProps.Save($verPropWriteFileLocation);

15
.vsconfig Normal file
View File

@@ -0,0 +1,15 @@
{
"version": "1.0",
"components": [
"Microsoft.VisualStudio.Component.CoreEditor",
"Microsoft.VisualStudio.Workload.CoreEditor",
"Microsoft.VisualStudio.Workload.NativeDesktop",
"Microsoft.VisualStudio.Workload.ManagedDesktop",
"Microsoft.VisualStudio.Workload.Universal",
"Microsoft.VisualStudio.Component.Windows10SDK.19041",
"Microsoft.VisualStudio.Component.Windows10SDK.20348",
"Microsoft.VisualStudio.ComponentGroup.UWP.VC",
"Microsoft.VisualStudio.Component.VC.Runtimes.x86.x64.Spectre",
"Microsoft.VisualStudio.Component.VC.ATL.Spectre"
]
}

102
COMMUNITY.md Normal file
View File

@@ -0,0 +1,102 @@
# Community
The PowerToys team is extremely grateful to have the support of an amazing active community. The work you do is incredibly important. PowerToys wouldnt be near what it is without your help filing bugs, updating documentation, guiding the design, or writing features. We want to say thanks and to recognize your work. This is a living document dedicated to highlighting the high impact community members and their contributions.
Names are in alphabetical order based on first name.
## High impact community members
### [@Aaron-Junker](https://github.com/Aaron-Junker) - [Aaron Junker](https://aaron-junker.github.io)
Aaron has helped triaging, discussing, and creating a substantial number of issues and contributed features/fixes. Aaron was the primary person for helping build the File Explorer preview pane handler for developer files.
### [@CleanCodeDeveloper](https://github.com/CleanCodeDeveloper)
CleanCodeDeveloper helped do massive amounts of code stability and image resizer work.
### [@damienleroy](https://github.com/damienleroy) - [Damien Leroy](https://www.linkedin.com/in/Damien-Leroy-b2734416a/)
Damien has helped out by developing and contributing the Quick Accent utility.
### [@davidegiacometti](https://github.com/davidegiacometti) - [Davide Giacometti](https://www.linkedin.com/in/davidegiacometti/)
Davide has helped fix multiple bugs, added new features, as well as help us with the ARM64 effort by porting applications to .NET Core.
### [@franky920920](https://github.com/franky920920) - [Franky Chen](https://frankychen.net)
Franky has helped triaging, discussing, and creating a substantial number of issues and contributed features/fixes to PowerToys.
### [@htcfreek](https://github.com/htcfreek) - Heiko
Heiko has helped triaging, discussing, and creating a substantial number of issues and contributed features/fixes to PowerToys.
### [@Jay-o-Way](https://github.com/Jay-o-Way) - Jay
Jay has helped triaging, discussing, creating a substantial number of issues and PRs.
### [@jsoref](https://github.com/jsoref) - [Josh Soref](https://check-spelling.dev/)
Helping keep our spelling correct :)
### [@Niels9001](https://github.com/niels9001/) - [Niels Laute](https://nielslaute.com/)
Niels has helped drive large sums of our update toward a new [consistent and modern UX](https://github.com/microsoft/PowerToys/issues/891). This includes the [launcher work](https://github.com/microsoft/PowerToys/issues/44), color picker UX update and [icon design](https://github.com/microsoft/PowerToys/issues/1118).
### [@riverar](https://github.com/riverar) - [Rafael Rivera](https://withinrafael.com/)
Rafael has helped do the [upgrade from CppWinRT 1.x to 2.0](https://github.com/microsoft/PowerToys/issues/1907). He directly provided feedback to the CppWinRT team for bugs from this migration as well.
### [@royvou](https://github.com/royvou)
Roy has helped out contributing multiple features to PowerToys Run
### [@snickler](https://github.com/snickler) - [Jeremy Sinclair](http://sinclairinat0r.com)
Jeremy has helped drive large sums of the ARM64 support inside PowerToys
### [@TobiasSekan](https://github.com/TobiasSekan) - Tobias Sekan
Tobias Sekan has helped out contributing features to PowerToys Run such as Settings plugin, Registry plugin
### [@ThiefZero](https://github.com/ThiefZero)
ThiefZero has helped out contributing a features to PowerToys Run such as the unit converter plugin
## Open source projects
As PowerToys creates new utilities, some will be based off existing technology. We'll continue to do our best to contribute back to these projects but their efforts were the base of some of our projects. We want to be sure their work is directly recognized.
### [@jjw24](https://github.com/jjw24/) - Jeremy Wu
Their fork of Wox was the base of PowerToys Run.
### [WoX Launcher](https://github.com/Wox-launcher/Wox/)
Initial base of jjw24's fork, which makes it the base of PowerToys Run.
### [Text-Grab](https://github.com/TheJoeFin/Text-Grab) - Joseph Finney
Joe helped develop and contribute to the Text Extractor utility. It is directly based on his Text Grab application.
## Microsoft community members
We would like to also directly call out some extremely helpful Microsoft employees that have directly contributed to PowerToys. This isn't their day job and was work they did out of passion. We want to say thank you and recognize your work.
### [@betsegaw](https://github.com/betsegaw/) - [Betsegaw Tadele](http://www.dreamsofameaningfullife.com/)
Window Walker, inside PowerToys Run, is from Beta.
### [@TheMrJukes](https://github.com/TheMrJukes/) - Bret Anderson
The base of FancyZones and a lot of performance adjustments are from the hard work of Bret.
### [@bricelam](https://github.com/bricelam/) - [Brice Lambson](https://bricelam.net/)
Image Resizer is from Brice.
### [@chrdavis](https://github.com/chrdavis/) - Chris Davis
PowerRename is from Chris's SmartRename and icon rendering for SVGs in File Explorer
### [@dend](https://github.com/dend/) - Den Delimarsky
PowerToys Awake is a tool to keep your computer awake.
### [@martinchrzan](https://github.com/martinchrzan/) - Martin Chrzan
Color Picker is from Martin.
### [@oldnewthing](https://github.com/oldnewthing) - Raymond Chen
Find My Mouse is based on Raymond Chen's SuperSonar.
### Microsoft InVEST team
This amazing team helped PowerToys develop PowerToys Run and Keyboard manager as well as update our Settings to v2. @alekhyareddy28, @arjunbalgovind, @jyuwono @laviusmotileng-ms, @ryanbodrug-microsoft, @saahmedm, @somil55, @traies, @udit3333

68
CONTRIBUTING.md Normal file
View File

@@ -0,0 +1,68 @@
# PowerToys Contributor's Guide
Below is our guidance for how to report issues, propose new features, and submit contributions via Pull Requests (PRs). Our philosophy is heavily based around understanding the problem and scenarios first, this is why we follow this pattern before work has started.
1. There is an issue
2. There has been a conversation
3. There is agreement on the problem, the fit for PowerToys, and the solution to the problem (implementation)
## Filing an issue
Please follow this simple rule to help us eliminate any unnecessary wasted effort & frustration, and ensure an efficient and effective use of everyone's time - yours, ours, and other community members':
> 👉 If you have a question, think you've discovered an issue, would like to propose a new feature, etc., then find/file an issue **BEFORE** starting work to fix/implement it.
When requesting new features / enhancements, understanding problem and scenario around it is extremely important. Having additional evidence, data, tweets, blog posts, research, ... anything is extremely helpful. This information provides context to the scenario that may otherwise be lost.
* Don't know whether you're reporting an issue or requesting a feature? File an issue
* Have a question that you don't see answered in docs, videos, etc.? File an issue
* Want to know if we're planning on building a particular feature? File an issue
* Got a great idea for a new utility or feature? File an issue/request/idea
* Don't understand how to do something? File an issue/Community Guidance Request
* Found an existing issue that describes yours? Great - upvote and add additional commentary / info / repro-steps / etc.
A quick search before filing an issue also could be helpful. It is likely someone else has found the problem you're seeing, and someone may be working on or have already contributed a fix!
### How to tell the PowerToys team this is an interesting thing to focus on
Upvote the original issue by clicking its [+😊] button and hitting 👍 (+1) icon or a different one. This way allows us to measure how impactful different issues are compared to others. The issue with comments like "+1", "me too", or similar is they actually make it harder to have a conversation and harder to quickly determine trending important requests.
---
## Contributing fixes / features
Please comment on an issue to let us know you're interested in working on something before you start the work. Not only does this avoid multiple people unexpectedly working on the same thing at the same time but it enables us to make sure everyone is clear on what should be done to implement any new functionality. It's less work for everyone, in the long run, to establish this up front.
### To Spec or not to Spec
A key point is for everyone to understand the approach that will be taken. We want to be sure if anyone does work, we will accept it in. Items that are larger in scope we'll want some type of spec to understand what is being planned and have a discussion. Specs help collaborators discuss different approaches to solve a problem, describe how the feature will behave, how the feature will impact the user, what happens if something goes wrong, etc. Driving towards agreement in a spec, before any code is written, often results in simpler code, and less wasted effort in the long run.
For such scenarios, once a team member has agreed with your approach, skip ahead to the section headed "Development" section below.
Team members will be happy to help review specs and guide them to completion.
### Help Wanted
Once the team has approved an issue/spec approach to solving, development can proceed. If no developers are immediately available, the spec can be parked ready for a developer to get started. Parked specs' issues will be labeled "Help Wanted". To find a list of development opportunities waiting for developer involvement, visit the Issues and filter on [the Help-Wanted label](https://github.com/microsoft/PowerToys/labels/Help%20Wanted).
---
## Development
Follow the [development guidelines](https://github.com/microsoft/PowerToys/blob/main/doc/devdocs/readme.md).
### Naming of features and functionality
Naming should be descriptive and straight forward. We want names to be clear about functionality and usefulness moving forward.
### How can I become a collaborator on the PowerToys team
Be a great community member. Just help out a lot and make useful additions, filing bugs/suggestions, help develop fixes and features, code reviews, and always, docs. Lets continue to make the PowerToys repository a great spot to learn and make a great set of utilities.
When the time comes, Microsoft will reach out and help make you a formal team member. Just make sure they can reach out to you :)
---
## Thank you
Thank you in advance for your contribution!

115
Cpp.Build.props Normal file
View File

@@ -0,0 +1,115 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- Project configurations -->
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|ARM64">
<Configuration>Debug</Configuration>
<Platform>ARM64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ARM64">
<Configuration>Release</Configuration>
<Platform>ARM64</Platform>
</ProjectConfiguration>
</ItemGroup>
<!-- Props that should be disabled while building on CI server -->
<ItemDefinitionGroup Condition="'$(CIBuild)'!='true'">
<ClCompile>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<PrecompiledHeader>Use</PrecompiledHeader>
</ClCompile>
</ItemDefinitionGroup>
<!-- C++ source compile-specific things for all configurations -->
<PropertyGroup>
<PreferredToolArchitecture>x64</PreferredToolArchitecture>
<VcpkgEnabled>false</VcpkgEnabled>
<ExternalIncludePath>$(MSBuildThisFileFullPath)\..\deps\;$(ExternalIncludePath)</ExternalIncludePath>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
<WarningLevel>Level3</WarningLevel>
<DisableAnalyzeExternal >true</DisableAnalyzeExternal>
<ExternalWarningLevel>TurnOffAllWarnings</ExternalWarningLevel>
<ConformanceMode>false</ConformanceMode>
<TreatWarningAsError>true</TreatWarningAsError>
<LanguageStandard>stdcpplatest</LanguageStandard>
<AdditionalOptions>/await %(AdditionalOptions)</AdditionalOptions>
<PreprocessorDefinitions>_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
</Link>
<Lib>
<TreatLibWarningAsErrors>true</TreatLibWarningAsErrors>
</Lib>
</ItemDefinitionGroup>
<!-- C++ source compile-specific things for Debug/Release configurations -->
<ItemDefinitionGroup Condition="'$(Configuration)'=='Debug'">
<ClCompile>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)'=='Release'">
<ClCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Optimization>MaxSpeed</Optimization>
<SDLCheck>false</SDLCheck>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
<!-- Global props -->
<PropertyGroup Label="Globals"
Condition="'$(OverrideWindowsTargetPlatformVersion)'!='True'">
<WindowsTargetPlatformVersion>10.0.19041.0</WindowsTargetPlatformVersion>
<TargetPlatformVersion>10.0.19041.0</TargetPlatformVersion>
</PropertyGroup>
<!-- Props that are constant for both Debug and Release configurations -->
<PropertyGroup Label="Configuration">
<PlatformToolset Condition="'$(OverridePlatformToolset)'!='True'">v143</PlatformToolset>
<IntDir>$(SolutionDir)$(Platform)\$(Configuration)\obj\$(ProjectName)\</IntDir>
<CharacterSet>Unicode</CharacterSet>
<DesktopCompatible>true</DesktopCompatible>
</PropertyGroup>
<!-- Debug/Release props -->
<PropertyGroup Condition="'$(Configuration)'=='Debug'"
Label="Configuration">
<UseDebugLibraries>true</UseDebugLibraries>
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'"
Label="Configuration">
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
</Project>

45
Directory.Build.props Normal file
View File

@@ -0,0 +1,45 @@
<Project>
<PropertyGroup>
<Copyright>Copyright (C) 2022 Microsoft Corporation</Copyright>
<AssemblyCompany>Microsoft Corp.</AssemblyCompany>
<AssemblyCopyright>Copyright (C) 2022 Microsoft Corporation</AssemblyCopyright>
<AssemblyProduct>PowerToys</AssemblyProduct>
<Company>Microsoft Corporation</Company>
<NeutralLanguage>en-US</NeutralLanguage>
<Platforms>x64;ARM64</Platforms>
<PackageTags>PowerToys</PackageTags>
<EnableNETAnalyzers>true</EnableNETAnalyzers>
<AnalysisMode>Recommended</AnalysisMode>
<PlatformTarget>$(Platform)</PlatformTarget>
</PropertyGroup>
<PropertyGroup Condition="'$(MSBuildProjectExtension)' == '.csproj'">
<RepositoryUrl>https://github.com/microsoft/PowerToys</RepositoryUrl>
<RepositoryType>GitHub</RepositoryType>
</PropertyGroup>
<PropertyGroup Condition="'$(MSBuildProjectExtension)' == '.csproj'">
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
</PropertyGroup>
<PropertyGroup>
<_PropertySheetDisplayName>PowerToys.Root.Props</_PropertySheetDisplayName>
<ForceImportBeforeCppProps>$(MsbuildThisFileDirectory)\Cpp.Build.props</ForceImportBeforeCppProps>
</PropertyGroup>
<ItemGroup Condition="'$(MSBuildProjectExtension)' == '.csproj'">
<PackageReference Include="StyleCop.Analyzers" Version="1.1.118">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<Compile Include="$(MSBuildThisFileDirectory)\src\codeAnalysis\GlobalSuppressions.cs" Link="GlobalSuppressions.cs" />
<AdditionalFiles Include="$(MSBuildThisFileDirectory)\src\codeAnalysis\StyleCop.json" Link="StyleCop.json" />
<PackageReference Include="Microsoft.CodeAnalysis.NetAnalyzers" Version="6.0.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
</ItemGroup>
</Project>

View File

@@ -1,4 +1,4 @@
The MIT License (MIT)
The MIT License
Copyright (c) Microsoft Corporation. All rights reserved.

248
NOTICE.md
View File

@@ -1,24 +1,72 @@
# NOTICES AND INFORMATION
Do Not Translate or Localize
This software incorporates material from third parties.
This software incorporates material from third parties. Microsoft makes certain
open source code available at http://3rdpartysource.microsoft.com, or you may
send a check or money order for US $5.00, including the product name, the open
source component name, and version number, to:
- Color Picker
- File Explorer Add-ins
- ImageResizer
- PowerToys Run
- Installer/Runner
- Measure tool
```
Source Code Compliance Team
Microsoft Corporation
One Microsoft Way
Redmond, WA 98052
USA
```
## Utility: Color Picker
Notwithstanding any other terms, you may reverse engineer this software to the
extent required to debug changes to any libraries licensed under the GNU Lesser
General Public License.
### Martin Chrzan's Color Picker
## PowerToy: ImageResizer
**Source**: https://github.com/martinchrzan/ColorPicker
MIT License
Copyright (c) 2020 martinchrzan
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
## Utility: File Explorer Add-ins
### Monaco Editor
**Source**: https://github.com/Microsoft/monaco-editor
**Additional third party notifications:** https://github.com/microsoft/monaco-editor/blob/main/ThirdPartyNotices.txt
The MIT License (MIT)
Copyright (c) 2016 - present Microsoft Corporation
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
## Utility: ImageResizer
### Brice Lams's Image Resizer License
@@ -46,11 +94,12 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
## PowerToy: Launcher
## Utility: PowerToys Run
### Wox License
**Source**: https://github.com/Wox-launcher/Wox
**Fork project source**: https://github.com/jjw24/Wox/
**Base project source**: https://github.com/Wox-launcher/Wox
The MIT License (MIT)
@@ -87,33 +136,7 @@ The above copyright notice and this permission notice shall be included in all c
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
### Squirrel.Windows License
**Source**: https://github.com/Squirrel/Squirrel.Windows/
The MIT License (MIT)
Copyright (c) 2012 GitHub, Inc.
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"),
to deal in the Software without restriction, including without limitation
the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
## PowerToy: PowerRename
## Utility: PowerRename
### Chris Davis's SmartRename License
@@ -140,3 +163,138 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
## PowerToy: Installer/Runner
### spdlog
**Source**: https://github.com/gabime/spdlog
The MIT License (MIT)
Copyright (c) 2016 Gabi Melman.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
-- NOTE: Third party dependency used by this software --
This software depends on the fmt lib (MIT License),
and users must comply to its license: https://github.com/fmtlib/fmt/blob/master/LICENSE.rst
### cxxopts
**Source**: https://github.com/jarro2783
Copyright (c) 2014 Jarryd Beck
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
### expected-lite
**Source**: https://github.com/martinmoene/expected-lite
Boost Software License - Version 1.0 - August 17th, 2003
Permission is hereby granted, free of charge, to any person or organization
obtaining a copy of the software and accompanying documentation covered by
this license (the "Software") to use, reproduce, display, distribute,
execute, and transmit the Software, and to prepare derivative works of the
Software, and to permit third-parties to whom the Software is furnished to
do so, all subject to the following:
The copyright notices in the Software and this entire statement, including
the above license grant, this restriction and the following disclaimer,
must be included in all copies of the Software, in whole or in part, and
all derivative works of the Software, unless such copies or derivative
works are solely in the form of machine-executable object code generated by
a source language processor.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
### zip
**Source**: https://github.com/kuba--/zip
This is free and unencumbered software released into the public domain.
Anyone is free to copy, modify, publish, use, compile, sell, or
distribute this software, either in source code form or as a compiled
binary, for any purpose, commercial or non-commercial, and by any
means.
In jurisdictions that recognize copyright laws, the author or authors
of this software dedicate any and all copyright interest in the
software to the public domain. We make this dedication for the benefit
of the public at large and to the detriment of our heirs and
successors. We intend this dedication to be an overt act of
relinquishment in perpetuity of all present and future rights to this
software under copyright law.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.
For more information, please refer to <http://unlicense.org/>
## Utility: Measure tool
### sse2neon
We adopted some functions from it.
**Source**: https://github.com/DLTcollab/sse2neon
sse2neon is freely redistributable under the MIT License.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

File diff suppressed because it is too large Load Diff

307
README.md
View File

@@ -1,155 +1,210 @@
# Overview
# Microsoft PowerToys
<img align="right" width="200" src="./doc/images/Logo.jpg" />
![Hero image for Microsoft PowerToys](doc/images/overview/PT_hero_image.png)
Microsoft PowerToys is a set of utilities for power users to tune and streamline their Windows experience for greater productivity. Inspired by the [Windows 95 era PowerToys project](https://en.wikipedia.org/wiki/Microsoft_PowerToys), this reboot provides power users with ways to squeeze more efficiency out of the Windows 10 shell and customize it for individual workflows. A great overview of the Windows 95 PowerToys can be found [here](https://socket3.wordpress.com/2016/10/22/using-windows-95-powertoys/).
[How to use PowerToys][usingPowerToys-docs-link] | [Downloads & Release notes][github-release-link] | [Contributing to PowerToys](#contributing) | [What's Happening](#whats-happening) | [Roadmap](#powertoys-roadmap)
## Build Status
## Build status
[![Build Status](https://dev.azure.com/ms/PowerToys/_apis/build/status/microsoft.PowerToys?branchName=master)](https://dev.azure.com/ms/PowerToys/_build?definitionId=219)
| Architecture | Solution (Main) | Solution (Stable) | Installer (Main) |
|--------------|-----------------|-------------------|------------------|
| x64 | [![Build Status for Main](https://dev.azure.com/ms/PowerToys/_apis/build/status/microsoft.PowerToys?branchName=main&jobName=Build%20x64%20Release)](https://dev.azure.com/ms/PowerToys/_build/latest?definitionId=219&branchName=main&jobName=Build%20x64%20Release) | [![Build Status for Stable](https://dev.azure.com/ms/PowerToys/_apis/build/status/microsoft.PowerToys?branchName=stable&jobName=Build%20x64%20Release)](https://dev.azure.com/ms/PowerToys/_build/latest?definitionId=219&branchName=stable) | [![Build Status Installer pipeline](https://dev.azure.com/microsoft/Dart/_apis/build/status/PowerToys/PowerToys%20Signed%20YAML%20Release%20Build?branchName=main&jobName=Build&configuration=Build%20Release_x64)](https://dev.azure.com/microsoft/Dart/_build/latest?definitionId=76541&branchName=main) |
| ARM64 | [![Build Status for Main](https://dev.azure.com/ms/PowerToys/_apis/build/status/microsoft.PowerToys?branchName=main&jobName=Build%20arm64%20Release)](https://dev.azure.com/ms/PowerToys/_build/latest?definitionId=219&branchName=main) | [![Build Status for Main](https://dev.azure.com/ms/PowerToys/_apis/build/status/microsoft.PowerToys?branchName=main&jobName=Build%20arm64%20Release)](https://dev.azure.com/ms/PowerToys/_build/latest?definitionId=219&branchName=stable) | [![Build Status Installer pipeline](https://dev.azure.com/microsoft/Dart/_apis/build/status/PowerToys/PowerToys%20Signed%20YAML%20Release%20Build?branchName=main&jobName=Build&configuration=Build%20Release_arm64)](https://dev.azure.com/microsoft/Dart/_build/latest?definitionId=76541&branchName=main) |
## Installing and running Microsoft PowerToys 0.16
👉 **Note:** Microsoft PowerToys requires Windows 10 1803 (build 17134) or later.
## About
### Via Github with MSI [Recommended]
Microsoft PowerToys is a set of utilities for power users to tune and streamline their Windows experience for greater productivity. For more info on [PowerToys overviews and how to use the utilities][usingPowerToys-docs-link], or any other tools and resources for [Windows development environments](https://docs.microsoft.com/windows/dev-environment/overview), head over to [docs.microsoft.com][usingPowerToys-docs-link]!
Install from the [Microsoft PowerToys GitHub releases page][github-release-link]. Click on `Assets` to show the files available in the release and then click on `PowerToysSetup-0.16.0-x64.msi` to download the PowerToys installer.
| | Current utilities: | |
|--------------|--------------------|--------------|
| [Always on Top](https://aka.ms/PowerToysOverview_AoT) | [PowerToys Awake](https://aka.ms/PowerToysOverview_Awake) | [Color Picker](https://aka.ms/PowerToysOverview_ColorPicker) |
| [FancyZones](https://aka.ms/PowerToysOverview_FancyZones) | [File Explorer Add-ons](https://aka.ms/PowerToysOverview_FileExplorerAddOns) | [Image Resizer](https://aka.ms/PowerToysOverview_ImageResizer) |
| [Keyboard Manager](https://aka.ms/PowerToysOverview_KeyboardManager) | [Mouse utilities](https://aka.ms/PowerToysOverview_MouseUtilities) | [PowerRename](https://aka.ms/PowerToysOverview_PowerRename) |
| [PowerToys Run](https://aka.ms/PowerToysOverview_PowerToysRun) | [Quick Accent](https://aka.ms/PowerToysOverview_QuickAccent) | [Screen Ruler](https://aka.ms/PowerToysOverview_ScreenRuler) |
| [Shortcut Guide](https://aka.ms/PowerToysOverview_ShortcutGuide) | [Text Extractor](https://aka.ms/PowerToysOverview_TextExtractor) | [Video Conference Mute](https://aka.ms/PowerToysOverview_VideoConference) |
## Installing and running Microsoft PowerToys
### Requirements
- Windows 11 or Windows 10 version 2004 (code name 20H1 / build number 19041) or newer.
- Our installer will install the following items:
- [.NET 6.0.8 Desktop Runtime](https://dotnet.microsoft.com/download/dotnet/6.0#runtime-desktop-6.0.8) or a newer 6.0.x runtime.
- [Microsoft Edge WebView2 Runtime](https://go.microsoft.com/fwlink/p/?LinkId=2124703) bootstrapper. This will install the latest version.
- [Microsoft Visual C++ Redistributable](https://docs.microsoft.com/cpp/windows/latest-supported-vc-redist?view=msvc-170#visual-studio-2015-2017-2019-and-2022) installer. This will install one of the latest versions available.
### Via GitHub with EXE [Recommended]
[Microsoft PowerToys GitHub releases page][github-release-link], click on `Assets` at the bottom to show the files available in the release. Please use the appropriate the PowerToys installer that matches your machine's architecture. For most people, it is `x64`.
- **For x64 processors (most common):** [PowerToysSetup-0.62.0-x64.exe](https://github.com/microsoft/PowerToys/releases/download/v0.62.0/PowerToysSetup-0.62.0-x64.exe)
- **For ARM64 processors:** [PowerToysSetup-0.62.0-arm64.exe](https://github.com/microsoft/PowerToys/releases/download/v0.62.0/PowerToysSetup-0.62.0-arm64.exe)
This is our preferred method.
### Via Microsoft Store
Install from the [Microsoft Store's PowerToys page][microsoft-store-link]. You must be using the [new Microsoft Store](https://blogs.windows.com/windowsExperience/2021/06/24/building-a-new-open-microsoft-store-on-windows-11/) which will be available for both Windows 11 and Windows 10.
### Via WinGet (Preview)
Download PowerToys from [WinGet][winget-link]. To install PowerToys, run the following command from the command line / PowerShell:
```powershell
winget install Microsoft.PowerToys -s winget
```
### Other install methods
##### MSIX / Store Build Update
- We put in a lot of effort here but currently our plan of record is to make the MSI our only installer option and built-in auto-upgrade. MSIX is a great installer / container tech but there are few spots we are working with the team to improve so we can adopt.
#### Via Chocolatey - ⚠ Unofficial ⚠
Download and upgrade PowerToys from [Chocolatey](https://chocolatey.org). If you have any issues when installing/upgrading the package please go to the [package page](https://chocolatey.org/packages/powertoys) and follow the [Chocolatey triage process](https://chocolatey.org/docs/package-triage-process)
To install PowerToys, run the following command from the command line / PowerShell:
```powershell
choco install powertoys
```
To upgrade PowerToys, run the following command from the command line / PowerShell:
```powershell
choco upgrade powertoys
```
### Processor support
We currently support the matrix below.
| x64 | x86 | ARM |
|:---:|:---:|:---:|
| [Supported][github-release-link] | [Issue #602](https://github.com/microsoft/PowerToys/issues/602) | [Issue #490](https://github.com/microsoft/PowerToys/issues/490) |
## Current PowerToy Utilities
### FancyZones
[FancyZones](/src/modules/fancyzones/) - FancyZones is a window manager that makes it easy to create complex window layouts and quickly position windows into those layouts.
### Shortcut Guide
[Windows key shortcut guide](/src/modules/shortcut_guide) - The shortcut guide appears when a user holds the Windows key down for more than one second and shows the available shortcuts for the current state of the desktop.
### PowerRename
[PowerRename](/src/modules/powerrename) - PowerRename is a Windows Shell Extension for advanced bulk renaming using search and replace or regular expressions. PowerRename allows simple search and replace or more advanced regular expression matching. While you type in the search and replace input fields, the preview area will show what the items will be renamed to. PowerRename then calls into the Windows Explorer file operations engine to perform the rename. This has the benefit of allowing the rename operation to be undone after PowerRename exits.
This code is based on [Chris Davis's SmartRename](https://github.com/chrdavis/SmartRename).
### File Explorer (Preview Panes)
[File Explorer](/src/modules/previewpane) add-ons right now are just limited to Preview Pane additions for File Explorer. Preview Pane is an existing feature in the File Explorer. To enable it, you just click the View tab in the ribbon and then click "Preview Pane".
PowerToys will now enable two types of files to be previewed:
- Markdown files (.md)
- SVG (.svg)
### Image Resizer
[Image Resizer](/src/modules/imageresizer) is a Windows Shell Extension for quickly resizing images. With a simple right click from File Explorer, resize one or many images instantly.
This code is based on [Brice Lambson's Image Resizer](https://github.com/bricelam/ImageResizer).
### Window Walker (Text based alt-tab alternative)
[Window Walker](src/modules/windowwalker/) is an app that lets you search and switch between windows that you have open, all from the comfort of your keyboard. As you are searching for an app, you can use the keyboard up and down arrows to see an Alt-Tab style preview of the windows. In the future, this will be merged into the Launcher project.
This code is based on [Beta Tadele's Window Walker](https://github.com/betsegaw/windowwalker).
### Version 1.0 plan
Our plan for all the [goals and utilities for v1.0 detailed over here in the wiki][v1].
## What's Happening
### March 2020 Update
Our mantra for the 0.16 was adding in new features along with a continual push for quality and stability. We are working toward getting a way to auto-update PowerToys and have a good plan for this. We want to proactively thank the community for quickly identifying a few bugs inside 0.15 and allowing us to quickly release 0.15.1 and 0.15.2.
Below are just a few of the bullet items from this release.
- We shipped [v0.16][github-release-link]!
- FancyZone improvement:
- Multi-Monitor improvement: Zone flipping switching now works between monitors!
- Simplified UX: Removed layout hot-swap and flashing feature due to need to improve multi-monitor support
- New Utilities!
- Markdown Preview pane extension
- SVG Preview pane extension
- Image Resizer Window Shell extension
- Window Walker, an alt-tab alternative
- Fixed over 100 issues!
- Testing improvements
- 54 UX Functional tests
- 161 new Unit tests
For [0.17](https://github.com/microsoft/PowerToys/issues?q=is%3Aopen+is%3Aissue+project%3Amicrosoft%2FPowerToys%2F3), we are proactively working on:
- Auto-updating
- Win+R replacement (Launcher)
- Keyboard remapping
- Performance improvements with FancyZones
- A testing utility for FancyZones to be sure we can test different window configurations.
Future release work, we are proactively working on:
- Settings v2 / Fix bug #243
## Developer Guidance
Please read the [developer docs](/doc/devdocs) for a detailed breakdown.
There are [community driven install methods](./doc/unofficialInstallMethods.md) such as Chocolatey and Scoop. If these are your preferred install solutions, this will have the install instructions.
## Contributing
This project welcomes contributions of all times. Help spec'ing, design, documentation, finding bugs are ways everyone can help on top of coding features / bug fixes. We are excited to work with the power user community to build a set of tools for helping you get the most out of Windows.
This project welcomes contributions of all types. Help spec'ing, design, documentation, finding bugs are ways everyone can help on top of coding features / bug fixes. We are excited to work with the power user community to build a set of tools for helping you get the most out of Windows.
We ask that **before you start work on a feature that you would like to contribute**, please read our [Contributor's Guide](contributing.md). We will be happy to work with you to figure out the best approach, provide guidance and mentorship throughout feature development, and help avoid any wasted or duplicate effort.
We ask that **before you start work on a feature that you would like to contribute**, please read our [Contributor's Guide](CONTRIBUTING.md). We will be happy to work with you to figure out the best approach, provide guidance and mentorship throughout feature development, and help avoid any wasted or duplicate effort.
### ⚠ State of code ⚠
Most contributions require you to agree to a [Contributor License Agreement (CLA)][oss-CLA] declaring that you have the right to, and actually do, grant us the rights to use your contribution.
PowerToys is still a very fluidic project and the team is actively working out of this repository. We will be periodically re-structuring/refactoring the code to make it easier to comprehend, navigate, build, test, and contribute to, so **DO expect significant changes to code layout on a regular basis**.
For guidance on developing for PowerToys, please read the [developer docs](/doc/devdocs) for a detailed breakdown. This includes how to setup your computer to compile.
### License Info
## What's Happening
Most contributions require you to agree to a [Contributor License Agreement (CLA)][oss-CLA] declaring that you have the right to, and actually do, grant us the rights to use your contribution.
### PowerToys Roadmap
Our [prioritized roadmap][roadmap] of features and utilities that the core team is focusing on.
### 0.62 - August 2022 Update
In this release, we focused on releasing three new PowerToys.
**Highlights**
- New utility: Screen Ruler is a quick and easy way to measure pixels on your screen.
- New utility: Quick Accent is an easy way to write letters with accents. Thanks [@damienleroy](https://github.com/damienleroy)!
- New utility: Text Extractor works like Snipping Tool, but copies the text out of the selected region using OCR and puts it on the clipboard. Thanks [@TheJoeFin](https://github.com/TheJoeFin)!
- PowerToy Run ships with a new Plugin letting you search in past query results. Thanks [@jefflord](https://github.com/jefflord)!
### Known issues
- The Text Extractor utility [fails to recognize text in some cases on ARM64 devices running Windows 10](https://github.com/microsoft/PowerToys/issues/20278).
- After installing PowerToys, [the new Windows 11 context menu entries for PowerRename and Image Resizer might not appear before a system restart](https://github.com/microsoft/PowerToys/issues/19124).
- There are reports of users who are [unable to open the Settings window](https://github.com/microsoft/PowerToys/issues/18015). This is being caused by incompatibilities with some applications (RTSS RivaTuner Statistics Server and MSI AfterBurner are known examples of this). If you're affected by this, please check the linked issue to verify if any of the presented solutions works for you.
### General
- Added a new utility: Screen Ruler.
- Added a new utility: Quick Accent. Thanks [@damienleroy](https://github.com/damienleroy)!
- Added a new utility: Text Extractor. Thanks [@TheJoeFin](https://github.com/TheJoeFin)!
- Upgraded the Windows App SDK runtimes to 1.1.4.
### Always on Top
- Fixed a bug causing the border to linger when closing an Outlook popup window.
### Color Picker
- Fixed the HSB color format to correctly track HSV instead of HSL.
- Fixed an issue where the zoom factor wasn't reset when reopening the zoom window. Thanks [@FWest98](https://github.com/FWest98)!
### FancyZones
- Removed the button to open Settings from the FancyZones Editor, as it was opening behind the overlay.
- Changed the Highlight distance control to a slider in the FancyZones Editor, to address accessibility issues with screen readers.
- Fixed an issue where the FancyZones Editor would duplicate or edit the wrong layout.
- Fixed an issue that caused canvas layout width/height to be changed without even opening the layout in FancyZones Editor.
### File explorer add-ons
- Quality of life improvements to Developer Files preview, including a progress bar while loading, performance improvements, an improved dark mode, and logs. Thanks [@Aaron-Junker](https://github.com/Aaron-Junker)!
- Fixed possible WebView related vulnerabilities in the SVG and Markdown handlers.
- Fixed some race conditions in Developer Files preview causing the loading bar to hang.
- Added localization support to the Developer Files preview messages.
- It's now possible to configure default color for Stl Thumbnails. Thanks [@pedrolamas](https://github.com/pedrolamas)!
- Added an option to format JSON and XML files before rendering. Thanks [@davidegiacometti](https://github.com/davidegiacometti)!
### PowerRename
- Fixed an issue that was generating a silent crash when the context menu was triggered when not selecting any file or folder. (This was a hotfix for 0.61)
- Improved performance when loading a big number of files.
- Fixed a specific case in which PowerRename tried to rename a file to an empty string.
- The UI now shows when a file can't be renamed due to its name being too long or containing invalid characters.
### PowerToys Run
- Added a fix to the VSCodeWorkspaces plugin to better support portable installations. Thanks [@bkmeneguello](https://github.com/bkmeneguello)!
- The Folder plugin now expands `%HOMEPATH%` correctly.
- Fixed a case where a previous result was being activated when searching for new results. Added a setting to better control input throttling. Thanks [@jefflord](https://github.com/jefflord)!
- Added support for port numbers in the URI plugin. Thanks [@KohGeek](https://github.com/KohGeek)!
- Fixed query errors when the search delay option was turned off.
- New History plugin to search for old search results. Thanks [@jefflord](https://github.com/jefflord)!
- Changed the default TimeDate activation keyword to `)`, as queries starting by `(` are expected as Calculator global queries, and added information in Settings so users know that some activation keywords may conflict with normal usage of some plugins when trying to do a global query. Thanks [@htcfreek](https://github.com/htcfreek)!
- The Unit Converter plugin updated its UnitsNet dependency and now supports plural units. Thanks [@FWest98](https://github.com/FWest98)!
- Improved the validation logic in the Calculator plugin. Thanks [@htcfreek](https://github.com/htcfreek)!
### Runner
- Improved: Clean up old install folders and logs at startup. Thanks [@davidegiacometti](https://github.com/davidegiacometti)!
### Settings
- Image and phrasing adjustments.
- Icon and image updates for the new utilities. Thanks [@niels9001](https://github.com/niels9001)!
### Shortcut Guide
- Fixed the Narrator shortcut to include the newly added Control key.
### Installer
- Fixed a regression that was causing the PowerToys shortcut to be deleted on update. (This was a hotfix for 0.61)
- Updated the .NET dependency to 6.0.8.
### Documentation
- Fixed wrong links to installers in README. Thanks [@unuing](https://github.com/unuing)!
### Development
- Removed FXCop leftovers. Thanks [@CleanCodeDeveloper](https://github.com/CleanCodeDeveloper)!
- Added version number to missing binaries and added a CI script to verify that all binaries have their version numbers set correctly.
- Updated a dependency to fix building on Visual Studio 17.3 C++ tools.
- Fixed and reactivated the CI unit tests for FancyZones.
- Cleaned up and removed dead code from PowerRename code base.
- Added a script for verifying the solution targets match the expected CPU architectures. Thanks [@snickler](https://github.com/snickler)!
- Obsolete package Castle.Core was removed. Thanks [@davidegiacometti](https://github.com/davidegiacometti)!
- Language typos were corrected across the PowerToys assets. Thanks [@pea-sys](https://github.com/pea-sys), [@eltociear](https://github.com/eltociear) and [@obairka](https://github.com/obairka)!
#### What is being planned for v0.63
For [v0.63][github-next-release-work], we'll work on below:
- Environment Variables Editor PowerToy
- GPO policies for PowerToys
- Stability / bug fixes
## PowerToys Community
The PowerToys team is extremely grateful to have the [support of an amazing active community][community-link]. The work you do is incredibly important. PowerToys wouldnt be nearly what it is today without your help filing bugs, updating documentation, guiding the design, or writing features. We want to say thank you and take time to recognize your work. Month over month, you directly help make PowerToys a better piece of software.
## Code of Conduct
This project has adopted the [Microsoft Open Source Code of Conduct][oss-conduct-code].
This project has adopted the [Microsoft Open Source Code of Conduct][oss-conduct-code].
## Privacy Statement
The application logs basic telemetry. Our Telemetry Data page (Coming Soon) has the trends from the telemetry. Please read the [Microsoft privacy statement][privacyLink] for more information.
The application logs basic telemetry. Our Telemetry Data page (Coming Soon) has the trends from the telemetry. Please read the [Microsoft privacy statement][privacy-link] for more information.
[oss-CLA]: https://cla.opensource.microsoft.com
[oss-conduct-code]: CODE_OF_CONDUCT.md
[github-release-link]: https://github.com/microsoft/PowerToys/releases/
[v1]: https://github.com/microsoft/PowerToys/wiki/Version-1.0-Strategy
[privacyLink]: http://go.microsoft.com/fwlink/?LinkId=521839
[community-link]: COMMUNITY.md
[github-release-link]: https://aka.ms/installPowerToys
[microsoft-store-link]: https://aka.ms/getPowertoys
[winget-link]: https://github.com/microsoft/winget-cli#installing-the-client
[roadmap]: https://github.com/microsoft/PowerToys/wiki/Roadmap
[privacy-link]: http://go.microsoft.com/fwlink/?LinkId=521839
[vidConfOverview]: https://aka.ms/PowerToysOverview_VideoConference
[loc-bug]: https://github.com/microsoft/PowerToys/issues/new?assignees=&labels=&template=translation_issue.md&title=
[usingPowerToys-docs-link]: https://aka.ms/powertoys-docs
<!-- items that need to be updated release to release -->
[github-next-release-work]: https://github.com/microsoft/PowerToys/issues?q=is%3Aopen+is%3Aissue+project%3Amicrosoft%2FPowerToys%2F36
[github-current-release-work]: https://github.com/microsoft/PowerToys/issues?q=is%3Aopen+is%3Aissue+project%3Amicrosoft%2FPowerToys%2F35

41
SECURITY.md Normal file
View File

@@ -0,0 +1,41 @@
<!-- BEGIN MICROSOFT SECURITY.MD V0.0.2 BLOCK -->
## Security
Microsoft takes the security of our software products and services seriously, which includes all source code repositories managed through our GitHub organizations, which include [Microsoft](https://github.com/Microsoft), [Azure](https://github.com/Azure), [DotNet](https://github.com/dotnet), [AspNet](https://github.com/aspnet), [Xamarin](https://github.com/xamarin), and [many more](https://opensource.microsoft.com/).
If you believe you have found a security vulnerability in any Microsoft-owned repository that meets Microsoft's [definition](https://docs.microsoft.com/en-us/previous-versions/tn-archive/cc751383(v=technet.10)) of a security vulnerability, please report it to us as described below.
## Reporting Security Issues
**Please do not report security vulnerabilities through public GitHub issues.**
Instead, please report them to the Microsoft Security Response Center (MSRC) at [https://msrc.microsoft.com/create-report](https://msrc.microsoft.com/create-report).
If you prefer to submit without logging in, send email to [secure@microsoft.com](mailto:secure@microsoft.com). If possible, encrypt your message with our PGP key; please download it from the [Microsoft Security Response Center PGP Key page](https://www.microsoft.com/en-us/msrc/pgp-key-msrc).
You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Additional information can be found at [microsoft.com/msrc](https://www.microsoft.com/msrc).
Please include the requested information listed below (as much as you can provide) to help us better understand the nature and scope of the possible issue:
* Type of issue (e.g. buffer overflow, SQL injection, cross-site scripting, etc.)
* Full paths of source file(s) related to the manifestation of the issue
* The location of the affected source code (tag/branch/commit or direct URL)
* Any special configuration required to reproduce the issue
* Step-by-step instructions to reproduce the issue
* Proof-of-concept or exploit code (if possible)
* Impact of the issue, including how an attacker might exploit the issue
This information will help us triage your report more quickly.
If you are reporting for a bug bounty, more complete reports can contribute to a higher bounty award. Please visit our [Microsoft Bug Bounty Program](https://microsoft.com/msrc/bounty) page for more details about our active programs.
## Preferred Languages
We prefer all communications to be in English.
## Policy
Microsoft follows the principle of [Coordinated Vulnerability Disclosure](https://www.microsoft.com/en-us/msrc/cvd).
<!-- END MICROSOFT SECURITY.MD BLOCK -->

24
SUPPORT.md Normal file
View File

@@ -0,0 +1,24 @@
# Support
## How to use Microsoft PowerToys
For more info on [PowerToys overviews and how to use the utilities][usingPowerToys-docs-link], or any other tools and resources for [Windows development environments](https://docs.microsoft.com/windows/dev-environment/overview), head over to [docs.microsoft.com][usingPowerToys-docs-link]!
## How to file issues and get help
This project uses [GitHub Issues][gh-issue] to [track bugs][gh-bug] and [feature requests][gh-feature]. Please search the existing issues before filing new issues to avoid duplicates. For new issues, file your bug or
feature request as a new Issue.
For help and questions about using this project, please look at our Wiki for using PowerToys and our [Contributor's Guide][contributor] if you want to work on PowerToys.
## Microsoft Support Policy
Support for PowerToys is limited to the resources listed above.
[gh-issue]: https://github.com/microsoft/PowerToys/issues/new/choose
[gh-bug]: https://github.com/microsoft/PowerToys/issues/new?assignees=&labels=Issue-Bug&template=bug_report.md&title=
[gh-feature]: https://github.com/microsoft/PowerToys/issues/new?assignees=&labels=&template=feature_request.md&title=
[wiki]: https://github.com/microsoft/PowerToys/wiki
[contributor]: https://github.com/microsoft/PowerToys/blob/main/CONTRIBUTING.md
[usingPowerToys-docs-link]: https://aka.ms/powertoys-docs

6
Solution.props Normal file
View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<GeneratedFilesDir>$(IntDir)Generated Files\</GeneratedFilesDir>
</PropertyGroup>
</Project>

View File

@@ -1,128 +0,0 @@
# Power Toys Contributor's Guide
Below is our guidance for how to report issues, propose new features, and submit contributions via Pull Requests (PRs).
## Before you start, file an issue
Please follow this simple rule to help us eliminate any unnecessary wasted effort & frustration, and ensure an efficient and effective use of everyone's time - yours, ours, and other community members':
> 👉 If you have a question, think you've discovered an issue, would like to propose a new feature, etc., then find/file an issue **BEFORE** starting work to fix/implement it.
### Search existing issues first
Before filing a new issue, search existing open and closed issues first: It is likely someone else has found the problem you're seeing, and someone may be working on or have already contributed a fix!
If no existing item describes your issue/feature, great - please file a new issue:
### File a new Issue
* Don't know whether you're reporting an issue or requesting a feature? File an issue
* Have a question that you don't see answered in docs, videos, etc.? File an issue
* Want to know if we're planning on building a particular feature? File an issue
* Got a great idea for a new utility or feature? File an issue/request/idea
* Don't understand how to do something? File an issue/Community Guidance Request
* Found an existing issue that describes yours? Great - upvote and add additional commentary / info / repro-steps / etc.
### Complete the template
**Please include as much information as possible in your issue**. The more information you provide, the more likely your issue/ask will be understood and implemented. Helpful information includes:
* What device you're running (inc. CPU type, memory, disk, etc.)
* What build of Windows your device is running
👉 Tip: Run the following in PowerShell Core
```powershell
C:\> $PSVersionTable.OS
Microsoft Windows 10.0.18909
```
... or in Windows PowerShell
```powershell
C:\> $PSVersionTable.BuildVersion
Major Minor Build Revision
----- ----- ----- --------
10 0 18912 1001
```
... or Cmd:
```cmd
C:\> ver
Microsoft Windows [Version 10.0.18900.1001]
```
* What tools and apps you're using (e.g. VS 2019, VSCode, etc.)
* Don't assume we're experts in setting up YOUR environment and don't assume we are experts in YOUR workflow. Teach us to help you!
* **We LOVE detailed repro steps!** What steps do we need to take to reproduce the issue? Assume we love to read repro steps. As much detail as you can stand is probably _barely_ enough detail for us!
* Prefer error message text where possible or screenshots of errors if text cannot be captured
* **If you intend to implement the fix/feature yourself then say so!** If you do not indicate otherwise we will assume that the issue is our to solve, or may label the issue as `Help-Wanted`.
### DO NOT post "+1" comments
> ⚠ DO NOT post "+1", "me too", or similar comments - they just add noise to an issue.
If you don't have any additional info/context to add but would like to indicate that you're affected by the issue, upvote the original issue by clicking its [+😊] button and hitting 👍 (+1) icon. This way we can actually measure how impactful an issue is.
---
## Contributing fixes / features
For those able & willing to help fix issues and/or implement features ...
### To Spec or not to Spec
Some issues/features may be quick and simple to describe and understand. For such scenarios, once a team member has agreed with your approach, skip ahead to the section headed "Fork, Branch, and Create your PR", below.
Small issues that do not require a spec will be labelled Issue-Bug or Issue-Task.
However, some issues/features will require careful thought & formal design before implementation. For these scenarios, we'll request that a spec is written and the associated issue will be labeled Issue-Feature.
Specs help collaborators discuss different approaches to solve a problem, describe how the feature will behave, how the feature will impact the user, what happens if something goes wrong, etc. Driving towards agreement in a spec, before any code is written, often results in simpler code, and less wasted effort in the long run.
Specs will be managed in a very similar manner as code contributions so please follow the "Fork, Branch and Create your PR" below.
### Writing / Contributing-to a Spec
To write/contribute to a spec: fork, branch and commit via PRs, as you would with any code changes.
Specs are written in markdown, stored under the `doc/specs` folder and named `[issue id] - [spec description].md`.
👉 **It is important to follow the spec templates and complete the requested information**. The available spec templates will help ensure that specs contain the minimum information & decisions necessary to permit development to begin. In particular, specs require you to confirm that you've already discussed the issue/idea with the team in an issue and that you provide the issue ID for reference.
Team members will be happy to help review specs and guide them to completion.
### Help Wanted
Once the team have approved an issue/spec, development can proceed. If no developers are immediately available, the spec can be parked ready for a developer to get started. Parked specs' issues will be labeled "Help Wanted". To find a list of development opportunities waiting for developer involvement, visit the Issues and filter on [the Help-Wanted label](https://github.com/microsoft/PowerToys/labels/Help-Wanted).
---
## Development
### Fork, Clone, Branch and Create your PR
Once you've discussed your proposed feature/fix/etc. with a team member, and you've agreed an approach or a spec has been written and approved, it's time to start development:
1. Fork the repo if you haven't already
1. Clone your fork locally
1. Create & push a feature branch
1. Create a [Draft Pull Request (PR)](https://github.blog/2019-02-14-introducing-draft-pull-requests/)
1. Work on your changes
### Code Review
When you'd like the team to take a look, (even if the work is not yet fully-complete), mark the PR as 'Ready For Review' so that the team can review your work and provide comments, suggestions, and request changes. It may take several cycles, but the end result will be solid, testable, conformant code that is safe for us to merge.
### Merge
Once your code has been reviewed and approved by the requisite number of team members, it will be merged into the master branch. Once merged, your PR will be automatically closed.
---
## Thank you
Thank you in advance for your contribution!

1
deps/cxxopts vendored Submodule

Submodule deps/cxxopts added at 12e496da3d

7
deps/cxxopts.props vendored Normal file
View File

@@ -0,0 +1,7 @@
<Project>
<ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>$(MSBuildThisFileDirectory)cxxopts\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
</ItemDefinitionGroup>
</Project>

1
deps/cziplib vendored Submodule

Submodule deps/cziplib added at 692cbcf8ca

1
deps/expected-lite vendored Submodule

Submodule deps/expected-lite added at 95b9cb015f

7
deps/expected.props vendored Normal file
View File

@@ -0,0 +1,7 @@
<Project>
<ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>$(MSBuildThisFileDirectory)expected-lite\include\nonstd\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
</ItemDefinitionGroup>
</Project>

1
deps/spdlog vendored Submodule

Submodule deps/spdlog added at 616866fcf4

8
deps/spdlog.props vendored Normal file
View File

@@ -0,0 +1,8 @@
<Project>
<ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>$(MSBuildThisFileDirectory)spdlog\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>SPDLOG_WCHAR_TO_UTF8_SUPPORT;SPDLOG_COMPILED_LIB;SPDLOG_WCHAR_FILENAMES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
</ItemDefinitionGroup>
</Project>

47
doc/devdocs/akaLinks.md Normal file
View File

@@ -0,0 +1,47 @@
# Full list of aka links
| ShortUrl | TargetUrl |
|----------|----------|
| getpowertoys | ms-windows-store://pdp/?productid=XP89DCGQ3K6VLD |
| installpowertoys | https://github.com/microsoft/PowerToys/releases/latest |
| powertoys-license | https://github.com/microsoft/PowerToys/blob/main/LICENSE |
| powertoys | https://github.com/microsoft/PowerToys |
| PowerToysAppCompat | https://github.com/microsoft/PowerToys/wiki/Application-Compatibility |
| powerToysCannotRemapKeys | https://docs.microsoft.com/windows/powertoys/keyboard-manager#keys-that-cannot-be-remapped |
| powerToysColorPickerImageSmall | https://github.com/microsoft/PowerToys/wiki/images/overview/ColorPicker_small.png |
| powerToysColorPickerSettingImage | https://raw.githubusercontent.com/microsoft/PowerToys/main/doc/images/overview/ColorPicker_large.png |
| powertoysDetectedElevatedHelp | https://docs.microsoft.com/windows/powertoys/administrator |
| powertoys-docs | https://docs.microsoft.com/windows/powertoys/?WT.mc_id=twitter-0000-docsmsft |
| powerToysFancyZoneImageSmall | https://github.com/microsoft/PowerToys/wiki/images/overview/FancyZones_small.png |
| powerToysFancyZoneSettingImage | https://raw.githubusercontent.com/microsoft/PowerToys/main/doc/images/overview/FancyZones_large.png |
| powerToysGiveFeedback | https://github.com/microsoft/PowerToys/issues |
| powerToysImageResizerImageSmall | https://github.com/microsoft/PowerToys/wiki/images/overview/ImageResizer_small.png |
| powerToysImageResizerSettingImage | https://raw.githubusercontent.com/microsoft/PowerToys/main/doc/images/overview/ImageResizer_large.png |
| powerToysKBMImageSmall | https://github.com/microsoft/PowerToys/wiki/images/overview/KBM_small.png |
| powerToysKBMSettingImage | https://raw.githubusercontent.com/microsoft/PowerToys/main/doc/images/overview/KBM_large.png |
| PowerToysOverview | https://docs.microsoft.com/windows/powertoys/ |
| PowerToysOverview_ColorPicker | https://docs.microsoft.com/windows/powertoys/color-picker |
| PowerToysOverview_FancyZones | https://docs.microsoft.com/windows/powertoys/fancyzones |
| PowerToysOverview_FileExplorerAddOns | https://docs.microsoft.com/windows/powertoys/file-explorer |
| PowerToysOverview_ImageResizer | https://docs.microsoft.com/windows/powertoys/image-resizer |
| PowerToysOverview_KeyboardManager | https://docs.microsoft.com/windows/powertoys/keyboard-manager |
| PowerToysOverview_MouseUtilities | https://docs.microsoft.com/windows/powertoys/mouse-utilities |
| PowerToysOverview_PowerRename | https://docs.microsoft.com/windows/powertoys/powerrename |
| PowerToysOverview_PowerToysRun | https://docs.microsoft.com/windows/powertoys/run |
| PowerToysOverview_ShortcutGuide | https://docs.microsoft.com/windows/powertoys/shortcut-guide |
| PowerToysOverview_VideoConference | https://docs.microsoft.com/windows/powertoys/video-conference-mute |
| powerToysPowerLauncherImageSmall | https://github.com/microsoft/PowerToys/wiki/images/overview/PowerLauncher_small.png |
| powerToysPowerLauncherSettingImage | https://raw.githubusercontent.com/microsoft/PowerToys/main/doc/images/overview/PowerLauncher_large.png |
| powerToysPowerPreviewImageSmall | https://github.com/microsoft/PowerToys/wiki/images/overview/PowerPreview_small.png |
| powerToysPowerPreviewSettingImage | https://raw.githubusercontent.com/microsoft/PowerToys/main/doc/images/overview/PowerPreview_large.png |
| powerToysPowerRenameImageSmall | https://github.com/microsoft/PowerToys/wiki/images/overview/PowerRename_small.png |
| powerToysPowerRenameSettingImage | https://raw.githubusercontent.com/microsoft/PowerToys/main/doc/images/overview/PowerRename_large.png |
| powerToysPTImageSmall | https://github.com/microsoft/PowerToys/wiki/images/overview/PT_small.png |
| powerToysPTSettingImage | https://raw.githubusercontent.com/microsoft/PowerToys/main/doc/images/overview/PT_large.png |
| powerToysReportBug | https://github.com/microsoft/PowerToys/issues/new?assignees=&labels=Issue-Bug%2CTriage-Needed&template=bug_report.yml&title= |
| powerToysRequestFeature | https://github.com/microsoft/PowerToys/issues/new?assignees=&labels=&template=feature_request.md&title= |
| powerToysShortcutGuideImageSmall | https://github.com/microsoft/PowerToys/wiki/images/overview/ShortcutGuide_small.png |
| powerToysShortcutGuideSettingImage | https://raw.githubusercontent.com/microsoft/PowerToys/main/doc/images/overview/ShortcutGuide_large.png |
| powerToysVideoConferenceImageSmall | https://github.com/microsoft/PowerToys/wiki/images/overview/VideoConference_small.png |
| powerToysVideoConferenceSettingImage | https://github.com/microsoft/PowerToys/wiki/images/overview/VideoConference_large.png |
| powertoyswiki | https://github.com/microsoft/PowerToys/wiki |

View File

@@ -9,15 +9,6 @@ Header-only asynchronous message queue. Used by `TwoWayPipeMessageIPC`.
#### class TwoWayPipeMessageIPC: [header](/src/common/two_way_pipe_message_ipc.h)
Header-only asynchronous IPC messaging class. Used by the runner to communicate with the settings window.
#### class D2DSVG: [header](/src/common/d2d_svg.h) [source](/src/common/d2d_svg.cpp)
Class for loading, rendering and for some basic modifications of SVG graphics.
#### class D2DText: [header](/src/common/d2d_text.h) [source](/src/common/d2d_text.cpp)
Class for rendering text using DirectX.
#### class D2DWindow: [header](/src/common/d2d_window.h) [source](/src/common/d2d_window.cpp)
Base class for creating borderless windows, with DirectX enabled rendering pipeline.
#### class DPIAware: [header](/src/common/dpi_aware.h) [source](/src/common/dpi_aware.cpp)
Helper class for creating DPI-aware applications.

View File

@@ -0,0 +1,30 @@
# How to integrate new MSIX module with PowerToys Settings and WiX installer
[`issue_11705_with_example` branch](https://github.com/microsoft/PowerToys/tree/issue_11705_with_example) contains HelloWorld UWP C# MSIX application which reads its module settings and is installed along PowerToys.
## Steps
- uncomment everything near "TODO: Use to activate embedded MSIX" comments
- build PowerToys solution
- deploy HelloModule module and sign it with a self-signed certificate (don't forget to put it into a trusted store)
- build PowerToysSetup solution and install it
Type HelloModule into start search and observe that it was installed:
<img src="../images/msix/hello-module-start.png">
Open PowerToys settings and change the stub setting to something:
<img src="../images/msix/hello-module-settings-page.png">
Open HelloModule:
<img src="../images/msix/hello-module-screen.png">
First time you press "Load Settings", it'll detect that it doesn't have permissions to access local file system and open its system settings window, toggle it there:
<img src="../images/msix/hello-module-app-permissions.png">
(it's a known uwp limitation, see https://stackoverflow.com/a/53533414/657390)
HelloModule will close then, restart it, press "Load Settings" and you should see that the application was able to load the setting string which was set by the settings app:
<img src="../images/msix/hello-module-loaded-settings.png">

View File

@@ -28,8 +28,6 @@ END
```cpp
#include <common.h>
extern "C" IMAGE_DOS_HEADER __ImageBase;
std::wstring GET_RESOURCE_STRING(IDS_MODULE_DISPLAYNAME)
```

165
doc/devdocs/localization.md Normal file
View File

@@ -0,0 +1,165 @@
# Localization
> **NOTE**: THIS DOCUMENT IS OUTDATED.
> Follow [issue 15243](https://github.com/microsoft/PowerToys/issues/15243) for updates.
## Table of Contents
1. [Localization on the pipeline (CDPX)](#localization-on-the-pipeline-cdpx)
1. [UWP Special case](#uwp-special-case)
2. [Enabling localization on a new project](#enabling-localization-on-a-new-project)
1. [C++](#c)
2. [C#](#c-1)
3. [UWP](#uwp)
3. [Lcl Files](#lcl-files)
4. [Possible Issues in localization PRs (LEGO)](#possible-issues-in-localization-prs-lego)
5. [Enabling localized MSI for a new project](#enabling-localized-msi-for-a-new-project)
## Localization on the pipeline (CDPX)
[The localization step](https://github.com/microsoft/PowerToys/blob/86d77103e9c69686c297490acb04775d43ef8b76/.pipelines/pipeline.user.windows.yml#L45-L52) is run on the pipeline before the solution is built. This step runs the [build-localization](https://github.com/microsoft/PowerToys/blob/main/.pipelines/build-localization.cmd) script, which generates resx files for all the projects with localization enabled using the `Localization.XLoc` package.
The [`Localization.XLoc`](https://github.com/microsoft/PowerToys/blob/86d77103e9c69686c297490acb04775d43ef8b76/.pipelines/build-localization.cmd#L24-L25) tool is run on the repo root, and it checks for all occurrences of `LocProject.json`. Each localized project has a `LocProject.json` file in the project root, which contains the location of the English resx file, list of languages for localization, and the output path where the localized resx files are to be copied to. In addition to this, some other parameters can be set, such as whether the language ID should be added as a folder in the file path or in the file name. When the CDPX pipeline is run, the localization team is notified of changes in the English resx files. For each project with localization enabled, a `loc` folder (see [this](https://github.com/microsoft/PowerToys/tree/main/src/modules/launcher/Microsoft.Launcher/loc) for example) is created in the same directory as the `LocProject.json` file. The folder contains language specific folders which in turn have a nested folder path equivalent to `OutputPath` in the `LocProject.json`. Each of these folders contain one `lcl` file. The `lcl` files contain the English resources along with their translation for that language. These are described in more detail [here](#lcl-files). Once the `.resx` files are generated, they will be used during the `Build PowerToys` step for localized versions of the modules.
Since the localization script requires certain nuget packages, the [`restore-localization`](https://github.com/microsoft/PowerToys/blob/main/.pipelines/restore-localization.cmd) script is run before running `build-localization` to install all the required packages. This script must [run in the `restore` step](https://github.com/microsoft/PowerToys/blob/86d77103e9c69686c297490acb04775d43ef8b76/.pipelines/pipeline.user.windows.yml#L37-L39) of pipeline because [the host is network isolated](https://onebranch.visualstudio.com/Pipeline/_wiki/wikis/Pipeline.wiki/2066/Consuming-Packages-in-a-CDPx-Pipelinhttps://onebranch.visualstudio.com/Pipeline/_wiki/wikis/Pipeline.wiki/2066/Consuming-Packages-in-a-CDPx-Pipeline?anchor=overview) at the `build` step. The [Toolset package source](https://github.com/microsoft/PowerToys/blob/86d77103e9c69686c297490acb04775d43ef8b76/.pipelines/pipeline.user.windows.yml#L23) is used for this.
The process and variables that can be tweaked on the pipeline are described in more detail [here](https://onebranch.visualstudio.com/Pipeline/_wiki/wikis/Pipeline.wiki/290/Localization).
The localized resource dlls for C# projects are added to the MSI only for build on the pipeline. This is done by checking if the [`IsPipeline` variable is defined](https://github.com/microsoft/PowerToys/blob/f92bd6ffd38014c228544bb8d68d0937ce4c2b6d/installer/PowerToysSetup/Product.wxs#L804-L805), which gets defined before building the installer on the pipeline [here](https://github.com/microsoft/PowerToys/blob/f92bd6ffd38014c228544bb8d68d0937ce4c2b6d/.pipelines/build-installer.cmd#L4). This is done because the localized resx files are only present on the pipeline, and not having this check would result in the installer project failing to build locally.
## Enabling localization on a new project
To enable localization on a new project, the first step is to create a file `LocProject.json` in the project root.
For example, for a project in the folder `src\path` where the resx file is present in `resources\Resources.resx`, the LocProject.json file will contain the following:
```
{
"Projects": [
{
"LanguageSet": "Azure_Languages",
"LocItems": [
{
"SourceFile": "src\\path\\resources\\Resources.resx",
"CopyOption": "LangIDOnName",
"OutputPath": "src\\path\\resources"
}
]
}
]
}
```
The rest of the steps depend on the project type and are covered in the sections below. The steps to add the localized files to the MSI can be found [here](#Enabling-localized-MSI-for-a-new-project).
### C++
C++ projects do not support `resx` files, and instead use `rc` files along with `resource.h` files. The CDPX pipeline however doesn't support localizing `rc` files and the other alternative they support is directly translating the resources from the binary which makes it harder to maintain resources. To avoid this, a custom script has been added which expects a resx file and converts the entries to an rc file with a string table and adds resource declarations to a resource.h file so that the resources can be compiled with the C++ project.
If you already have a .rc file, copy the string table to a separate txt file and run the [convert-stringtable-to-resx.ps1](https://github.com/microsoft/PowerToys/blob/main/tools/build/convert-stringtable-to-resx.ps1) script on it. This script is not very robust to input, and requires the data in a specific format, where `IDS_ResName L"ResourceValue"` and any number of spaces can be present in between. The script converts this file to the format expected by [`resgen`](https://docs.microsoft.com/en-us/dotnet/framework/tools/resgen-exe-resource-file-generator#Convert), which will convert it to resx. The resource names are changed from all uppercase to title case, and the `IDS_` prefix is removed. Escape characters might have to be manually replaced, for example .rc files would have escaped double quotes as `""`, so this should be replaced with just `"` before converting to the resx files.
After generating the resx file, rename the existing rc and h files to ProjName.base.rc and resource.base.h. In the rc file remove the string table which is to be localized and in the .h file remove all `#define`s corresponding to localized resources. In the vcxproj of the C++ project, add the following build event:
```
<Target Name="GenerateResourceFiles" BeforeTargets="PrepareForBuild">
<Exec Command="powershell -NonInteractive -executionpolicy Unrestricted $(SolutionDir)tools\build\convert-resx-to-rc.ps1 $(MSBuildThisFileDirectory) resource.base.h resource.h ProjName.base.rc ProjName.rc" />
</Target>
```
This event runs a script which generates a resource.h and ProjName.rc in the `Generated Files` folder using the strings in all the resx files along with the existing information in resource.base.h and ProjName.base.rc. The script can be found [here](https://github.com/microsoft/PowerToys/blob/main/tools/build/convert-resx-to-rc.ps1). The script uses [`resgen`](https://docs.microsoft.com/en-us/dotnet/framework/tools/resgen-exe-resource-file-generator#Convert) to convert the resx file to a string table expected in the .rc file format. When the resources are added to the rc file the `IDS_` prefix is added and resource names are in upper case (as it was originally). Any occurrences of `"` in the string resource is escaped as `""` to prevent build errors. The string tables are added to the rc file in the following format:
```
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
STRINGTABLE
BEGIN
strings
END
#endif
```
Since there is no API to identify the `AFX_TARG_*`, `LANG_*` or `SUBLANG_*` values from each langId from the pipeline, these are hardcoded in the script (for each language) as done [here](https://github.com/microsoft/PowerToys/blob/f92bd6ffd38014c228544bb8d68d0937ce4c2b6d/tools/build/convert-resx-to-rc.ps1#L50-L77). **If any other languages are added in the future, this script will have to be updated.** In order to determine what are the language codes, you can open the rc file in Resource View, right click the string table and press `Insert Copy` and choose the corresponding language. This autogenerates the required code and can be used to figure out the language codes. The files also add the resource declarations to a resource.h file, starting from 101 by default(this can be changed by an optional argument). Since the output files will be generated in `Generated Files`, any includes in these two files will require an additional `..\` and wherever resource.h is used, it will have to be included as `Generated Files\resource.h`. While adding `resource.base.h` and `ProjName.base.rc` to the vcxproj, these should be modified to not participate in the build to avoid build errors:
```
<None Include="Resources.resx" />
```
Some rc/resource.h files might be used in multiple projects (for example, KBM). To ensure the projects build for these cases, the build event can be added to the entire directory so that the rc files are generated before any project is built. See [Directory.Build.targets](https://github.com/microsoft/PowerToys/blob/main/src/modules/keyboardmanager/Directory.Build.targets) for an example.
Check [this PR](https://github.com/microsoft/PowerToys/pull/6104) for an example for making these changes for a C++ project.
### C#
Since C# projects natively support `resx` files, the only step required here is to include all the resx files in the build. For .NET Core projects this is done automatically and the .csproj does not need to be modified. For other projects, the following line needs to be added:
```
<EmbeddedResource Include="Properties\Resources.*.resx" />
```
**Note:** Building with localized resources may cause a build warning `Referenced assembly 'mscorlib.dll' targets a different processor` which is a VS bug. More details can be found [here](https://github.com/microsoft/PowerToys/issues/7269).
**Note:** If a project needs to be migrated from XAML resources to resx, the easiest way to convert the resources would be to change to format to `=` separates resources by either manually (by Ctrl+H on a text editor), or by a script, and then running [`resgen`](https://docs.microsoft.com/en-us/dotnet/framework/tools/resgen-exe-resource-file-generator#Convert) on `Developer Command Prompt for VS` to convert it to resx format.
```
<system:String x:Key="wox_plugin_calculator_plugin_name">Calculator</system:String>
<system:String x:Key="wox_plugin_calculator_plugin_description">Allows to do mathematical calculations.(Try 5*3-2 in Wox)</system:String>
<system:String x:Key="wox_plugin_calculator_not_a_number">Not a number (NaN)</system:String>
```
to
```
wox_plugin_calculator_plugin_name=Calculator
wox_plugin_calculator_plugin_description=Allows to do mathematical calculations.(Try 5*3-2 in Wox)
wox_plugin_calculator_not_a_number=Not a number (NaN)
```
After adding the resx file to the project along with the resource generator, references to the strings will have to be replaced with `Properties.Resources.resName` rather than the custom APIs. Check [this PR](https://github.com/microsoft/PowerToys/pull/6165) for an example of the changes required.
### UWP
UWP projects expect `resw` files rather than `resx` (the format is almost the same). Unlike other C# projects, the files are expected in the format `fullLangId\Resources.resw`. To include these files in the build, replace the following line in the csproj:
```
<PRIResource Include="Strings\en-us\Resources.resw" />
```
to
```
<PRIResource Include="Strings\*\Resources.resw" />
```
## Lcl Files
Lcl files contain all the resources that are present in the English resx file, along with a translation if it has been added.
For example, an entry for a resource in the lcl file looks like this:
```
<Item ItemId=";EditKeyboard_WindowName" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Remap keys]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Remapper des touches]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
```
The `<Tgt>` element would not be present in the initial commits of the lcl files, as only the English version of the string would be present.
**Note:** The CDPX Localization system has a fail-safe check on the lcl files, where if the English string value which is present inside `<Val><![CDATA[*]]></Val>` does not match the value present in the English Resources.resx file then the translated value will not be copied to the localized resx file. This is present so that obsolete translations would not be loaded when the English resource has changed, and the English string will be used rather than the obsolete translation.
## Possible Issues in localization PRs (LEGO)
Since the LEGO PRs update some of the strings in LCL files at a time, there can be multiple PRs which modify the same files, leading to merge conflicts. In most cases this would show up on GitHub as a merge conflict, but sometimes a bad git merge may occur, and the file could end up with incorrect formatting, such as two `<Tgt>` elements for a single resource. These can be fixed by ensuring the elements follow the format described in [this section](#lcl-files). To catch such errors, the build farm should be run for every LEGO PR and if any error occurs in the localization step, we should check the corresponding resx/lcl files for conflicts.
## Enabling localized MSI for a new project
For C++ and UWP projects no additional files are generated with localization that need to be added to the MSI. For C++ projects all the resources are added to the dll/exe, while for UWP projects they are added to the `resources.pri` file (which is present even for an unlocalized project). To verify if the localized resources are added to the `resources.pri` file the following steps can be done:
- Open `Developer Command Prompt for VS`
- After navigating to the folder containing the pri file, run the following command:
makepri.exe dump /if .\resources.pri
- Check the contents of the `resources.pri.xml` file that is generated from the command. The last section of the file will contain the resources with the strings in all the languages:
```
<NamedResource name="GeneralSettings_RunningAsAdminText" uri="ms-resource://f4f787a5-f0ae-47a9-be89-5408b1dd2b47/Resources/GeneralSettings_RunningAsAdminText">
<Candidate qualifiers="Language-FR" type="String">
<Value>Running as administrator</Value>
</Candidate>
<Candidate qualifiers="Language-EN-US" isDefault="true" type="String">
<Value>Running as administrator</Value>
</Candidate>
</NamedResource>
```
For C# projects, satellite dlls are generated when the project is built. For a project named `ProjName`, files are created in the format `langId\ProjName.resources.dll` where `langId` is in the same format as the lcl files. The satellite dlls need to be included with the MSI, but they must be added only if the solution is built from the build farm, as the localized resx files will not be present on local machines (and that could cause local builds of the installer to fail).
This can be done by adding the directory name of the project [here](https://github.com/microsoft/PowerToys/blob/f92bd6ffd38014c228544bb8d68d0937ce4c2b6d/installer/PowerToysSetup/Product.wxs#L806) and a resource component for the project can be created [here](https://github.com/microsoft/PowerToys/blob/f92bd6ffd38014c228544bb8d68d0937ce4c2b6d/installer/PowerToysSetup/Product.wxs#L845-L847) in this format:
```
<Component Id="ProjName_$(var.IdSafeLanguage)_Component" Directory="Resource$(var.IdSafeLanguage)ProjNameInstallFolder">
<File Id="ProjName_$(var.IdSafeLanguage)_File" Source="$(var.BinX64Dir)modules\ProjName\$(var.Language)\ProjName.resources.dll" />
</Component>
```
We should also ensure the new dlls are signed by the pipeline. Currently all dlls of the form [`*.resources.dll` are signed](https://github.com/microsoft/PowerToys/blob/f92bd6ffd38014c228544bb8d68d0937ce4c2b6d/.pipelines/pipeline.user.windows.yml#L68).
**Note:** The resource dlls should be added to the MSI project only after the initial commit with the lcl files has been done by the Localization team. Otherwise the pipeline will fail as there wouldn't be any resx files to generate the dlls.

9
doc/devdocs/logging.md Normal file
View File

@@ -0,0 +1,9 @@
# How to use
We use the awesome [spdlog](https://github.com/gabime/spdlog) library for logging as a git submodule under the `deps` directory. To use it in your project, just include [spdlog.props](../../deps/spdlog.props) in a .vcxproj like this:
```xml
<Import Project="..\..\..\deps\spdlog.props" />
```
It'll add the required include dirs and link the library binary itself.

View File

@@ -1,5 +0,0 @@
#### [`dllmain.cpp`](/src/modules/example_powertoy/dllmain.cpp)
Contains DLL boilerplate code and implementation of the [PowerToys interface](/src/modules/interface/).
#### [`trace.cpp`](/src/modules/example_powertoy/trace.cpp)
Contains code for telemetry.

View File

@@ -15,7 +15,7 @@ TODO
#### [`ZoneSet.cpp`](/src/modules/fancyzones/lib/ZoneSet.cpp)
TODO
#### [`ZoneWindow.cpp`](/src/modules/fancyzones/lib/ZoneWindow.cpp)
#### [`WorkArea.cpp`](/src/modules/fancyzones/lib/WorkArea.cpp)
TODO
## FancyZones Editor

View File

@@ -11,9 +11,6 @@ public:
virtual void enable() = 0;
virtual void disable() = 0;
virtual bool is_enabled() = 0;
virtual intptr_t signal_event(const wchar_t* name, intptr_t data) = 0;
virtual void register_system_menu_helper(PowertoySystemMenuIface* helper) = 0;
virtual void signal_system_menu_action(const wchar_t* name) = 0;
virtual void destroy() = 0;
};
@@ -28,7 +25,6 @@ The PowerToys runner will, for each PowerToy DLL:
On the received object, the runner will call:
- [`get_name()`](#get_name) to get the name of the PowerToy,
- [`get_events()`](#get_events) to get the list of the events the PowerToy wants to subscribe to,
- [`enable()`](#enable) to initialize the PowerToy.
While running, the runner might call the following methods between create_powertoy()
@@ -37,9 +33,6 @@ and destroy():
- [`get_config()`](#get_config) to get the available configuration settings,
- [`set_config()`](#set_config) to set settings after they have been edited in the Settings editor,
- [`call_custom_action()`](#call_custom_action) when the user selects a custom action in the Settings editor,
- [`signal_event()`](#signal_event) to send an event the PowerToy registered to.
- [`register_system_menu_helper()`](#register_system_menu_helper) to pass object, responsible for handling customized system menus, to module.
- [`signal_system_menu_action()`](#signal_system_menu_action) to send an event when action is taken on system menu item.
When terminating, the runner will:
- call [`disable()`](#disable),
@@ -67,18 +60,6 @@ The returned PowerToy should be in the disabled state. The runner will call the
In case of errors returns `nullptr`.
Sample code from [`the example PowerToy`](/src/modules/example_powertoy/dllmain.cpp):
```cpp
extern "C" __declspec(dllexport) PowertoyModuleIface* __cdecl powertoy_create() {
return new ExamplePowertoy();
}
ExamplePowertoy::ExamplePowertoy() {
init_settings();
}
```
## get_name
```cpp
@@ -87,36 +68,6 @@ virtual const wchar_t* get_name()
Returns the name of the PowerToy, it will be cached by the runner.
Sample code from [`the example PowerToy`](/src/modules/example_powertoy/dllmain.cpp):
```cpp
virtual const wchar_t* get_name() override {
return L"Example Powertoy";
}
```
## get_events
```cpp
virtual const wchar_t** get_events()
```
Returns a null-terminated table of the names of the events the PowerToy wants to subscribe to. Available events:
* ll_keyboard
* win_hook_event
A nullptr can be returned to signal that the PowerToy does not want to subscribe to any event.
Sample code from [`the example PowerToy`](/src/modules/example_powertoy/dllmain.cpp):
```cpp
virtual const wchar_t** get_events() override {
static const wchar_t* events[] = { ll_keyboard,
win_hook_event,
nullptr };
return events;
}
```
## get_config
```
@@ -129,44 +80,6 @@ If `buffer` is a null pointer or the buffer size is not large enough sets the re
Returns true if successful.
Sample code from [`the example PowerToy`](/src/modules/example_powertoy/dllmain.cpp):
```cpp
virtual bool get_config(wchar_t* buffer, int* buffer_size) override {
HINSTANCE hinstance = reinterpret_cast<HINSTANCE>(&__ImageBase);
// Create a Settings object.
PowerToysSettings::Settings settings(hinstance, get_name());
settings.set_description(L"Serves as an example powertoy, with example settings.");
// Add an overview link to show in the Settings.
settings.set_overview_link(L"https://github.com/microsoft/PowerToys");
// Add a video link to show in the Settings.
settings.set_video_link(L"https://www.youtube.com/watch?v=d3LHo2yXKoY&t=21462");
// Add a bool property with a toggle editor.
settings.add_bool_toogle(
L"test_bool_toggle", // property name.
L"This is what a BoolToggle property looks like", // description or resource id of the localized string.
test_bool_prop // property value.
);
// More settings
...
// Add a custom action property. When using this settings type, the "call_custom_action()" method should be overriden as well.
settings.add_custom_action(
L"test_custom_action", // action name.
L"This is what a CustomAction property looks like", // label above the field.
L"Call a custom action", // button text.
L"Press the button to call a custom action in the Example PowerToy" // display values / extended info.
);
return settings.serialize_to_buffer(buffer, buffer_size);
}
```
## set_config
```cpp
@@ -175,31 +88,6 @@ virtual void set_config(const wchar_t* config)
After the user has changed the module settings in the Settings editor, the runner calls this method to pass to the module the updated values. It's a good place to save the settings as well.
Sample code from [`the example PowerToy`](/src/modules/example_powertoy/dllmain.cpp):
```cpp
virtual void set_config(const wchar_t* config) override {
try {
// Parse the PowerToysValues object from the received json string.
PowerToysSettings::PowerToyValues _values =
PowerToysSettings::PowerToyValues::from_json_string(config);
// Update the bool property.
if (_values.is_bool_value(L"test bool_toggle")) {
test_bool_prop = _values.get_bool_value(L"test bool_toggle");
}
// More settings
...
save_settings();
}
catch (std::exception ex) {
// Improper JSON.
}
}
```
## call_custom_action
```cpp
@@ -209,31 +97,6 @@ Sample code from [`the example PowerToy`](/src/modules/example_powertoy/dllmain.
Calls a custom action in response to the user pressing the custom action button in the Settings editor.
This can be used to spawn custom editors defined by the PowerToy.
Sample code from [`the example PowerToy`](/src/modules/example_powertoy/dllmain.cpp):
```cpp
virtual void call_custom_action(const wchar_t* action) override {
try {
// Parse the action values, including name.
PowerToysSettings::CustomActionObject action_object =
PowerToysSettings::CustomActionObject::from_json_string(action);
if (action_object.get_name() == L"test_custom_action") {
// Custom action code to increase and show a counter.
++this->test_custom_action_num_calls;
std::wstring msg(L"I have been called ");
msg += std::to_wstring(this->test_custom_action_num_calls);
msg += L" time(s).";
MessageBox(NULL, msg.c_str(), L"Custom action call.", MB_OK | MB_TOPMOST);
}
}
catch (std::exception ex) {
// Improper JSON.
}
}
```
## enable
```cpp
@@ -242,14 +105,6 @@ Sample code from [`the example PowerToy`](/src/modules/example_powertoy/dllmain.
Enables the PowerToy.
Sample code from [`the example PowerToy`](/src/modules/example_powertoy/dllmain.cpp):
```cpp
virtual void enable() {
m_enabled = true;
}
```
## disable
```cpp
@@ -258,14 +113,6 @@ Sample code from [`the example PowerToy`](/src/modules/example_powertoy/dllmain.
Disables the PowerToy, should free as much memory as possible.
Sample code from [`the example PowerToy`](/src/modules/example_powertoy/dllmain.cpp):
```cpp
virtual void disable() {
m_enabled = false;
}
```
## is_enabled
```cpp
@@ -274,63 +121,6 @@ Sample code from [`the example PowerToy`](/src/modules/example_powertoy/dllmain.
Returns the PowerToy state.
Sample code from [`the example PowerToy`](/src/modules/example_powertoy/dllmain.cpp):
```cpp
virtual bool is_enabled() override {
return m_enabled;
}
```
## signal_event
```cpp
virtual intptr_t signal_event(const wchar_t* name, intptr_t data) = 0;
```
Handle event. Only the events the PowerToy subscribed to will be signaled.
The data argument and return value meaning are event-specific:
* ll_keyboard: see [`lowlevel_keyboard_event_data.h`](./lowlevel_keyboard_event_data.h).
* win_hook_event: see [`win_hook_event_data.h`](./win_hook_event_data.h)
Please note that some of the events are currently being signalled from a separate thread.
Sample code from [`the example PowerToy`](/src/modules/example_powertoy/dllmain.cpp):
```cpp
virtual intptr_t signal_event(const wchar_t* name, intptr_t data) override {
if (wcscmp(name, ll_keyboard) == 0) {
auto& event = *(reinterpret_cast<LowlevelKeyboardEvent*>(data));
// Return 1 if the keypress is to be suppressed (not forwarded to Windows),
// otherwise return 0.
return 0;
} else if (wcscmp(name, win_hook_event) == 0) {
auto& event = *(reinterpret_cast<WinHookEvent*>(data));
// Return value is ignored
return 0;
}
return 0;
}
```
## register_system_menu_helper
```cpp
virtual void register_system_menu_helper(PowertoySystemMenuIface* helper) = 0;
```
Register helper class to handle all system menu items related actions. Creation, deletion
and all other actions taken on system menu item will be handled by provided class.
Module will be informed when action is taken on any item created on request of the module.
## signal_system_menu_action
```cpp
virtual void signal_system_menu_action(const wchar_t* name) = 0;
```
Runner invokes this API when action is taken on item created on request from the module.
Item name is passed as an argument, so that module can distinguish between different menu items.
## destroy
```cpp
@@ -338,70 +128,7 @@ Item name is passed as an argument, so that module can distinguish between diffe
```
Destroy the PowerToy and free all memory.
Sample code from [`the example PowerToy`](/src/modules/example_powertoy/dllmain.cpp):
```cpp
virtual void destroy() override {
delete this;
}
```
## Powertoys system menu helper interface
Interface for helper class responsible for handling all system menu related actions.
```cpp
class PowertoySystemMenuIface {
public:
struct ItemInfo {
std::wstring name{};
bool enable{ false };
bool checkBox{ false };
};
virtual void SetConfiguration(PowertoyModuleIface* module, const std::vector<ItemInfo>& config) = 0;
virtual void ProcessSelectedItem(PowertoyModuleIface* module, HWND window, const wchar_t* itemName) = 0;
};
```
## ItemInfo
```cpp
struct ItemInfo {
std::wstring name{};
bool enable{ false };
bool checkBox{ false };
};
```
Structure containing all relevant information for system menu item: name (and hotkey if available), item
status at creation (enabled/disabled) and whether check box will appear next to item name when action is taken.
## SetConfiguration
```cpp
virtual void SetConfiguration(PowertoyModuleIface* module, const std::vector<ItemInfo>& config) = 0;
```
Module should use this interface to inform system menu helper class which custom system menu items to create.
## ProcessSelectedItem
```cpp
virtual void ProcessSelectedItem(PowertoyModuleIface* module, HWND window, const wchar_t* itemName) = 0;
```
Process action taken on specific system menu item.
# Code organization
### [`powertoy_module_interface.h`](/src/modules/example_powertoy/powertoy_module_interface.h)
### [`powertoy_module_interface.h`](/src/modules/interface/powertoy_module_interface.h)
Contains the PowerToys interface definition.
### [`powertoy_system_menu.h`](/src/modules/example_powertoy/powertoy_system_module.h)
Contains the PowerToys system menu helper interface definition.
### [`lowlevel_keyboard_event_data.h`](/src/modules/example_powertoy/lowlevel_keyboard_event_data.h)
Contains the `LowlevelKeyboardEvent` structure that's passed to `signal_event` for `ll_keyboard` events.
### [`win_hook_event_data.h`](/src/modules/example_powertoy/win_hook_event_data.h)
Contains the `WinHookEvent` structure that's passed to `signal_event` for `win_hook_event` events.

View File

@@ -0,0 +1,6 @@
# Table of Contents
The devdocs for Keyboard Manager have been divided into the following modules:
1. [Keyboard Manager Module](keyboardmanager.md)
2. [Keyboard Event Handlers](keyboardeventhandlers.md)
3. [Keyboard Manager UI](keyboardmanagerui.md)
4. [Keyboard Manager Common](keyboardmanagercommon.md)

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

View File

@@ -0,0 +1,84 @@
# Keyboard Event Handlers (Remapping Logic)
This file contains documentation for all the methods involved in key/shortcut remapping.
## Table of Contents:
1. [HandleSingleKeyRemapEvent](#HandleSingleKeyRemapEvent)
2. [HandleShortcutRemapEvent](#HandleShortcutRemapEvent)
3. [HandleOSLevelShortcutRemapEvent](#HandleOSLevelShortcutRemapEvent)
4. [HandleAppSpecificShortcutRemapEvent](#HandleAppSpecificShortcutRemapEvent)
5. [HandleSingleKeyToggleToModEvent (Obsolete))](#HandleSingleKeyToggleToModEvent-(Obsolete---Code-from-PoC-which-is-commented-out))
6. [Tests](#Tests)
1. [MockedInput](#MockedInput)
2. [Tests for single key remaps and shortcut remaps](#Tests-for-single-key-remaps-and-shortcut-remaps)
## HandleSingleKeyRemapEvent
[This method](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/dll/KeyboardEventHandlers.cpp#L13-L124) is used for handling the key to key and key to shortcut remapping logic. The general logic is as follows:
- Check if the `dwExtraInfo` field contains the `KEYBOARDMANAGER_INJECTED_FLAG` bit set. This bit is used to indicate that the key event was generated by KBM using `SendInput`. This ensures that we don't read events generated by the key or shortcut remap methods.
- Check if the current key is present in the list of remaps. If it isn't, return 0 (i.e. do not suppress the event).
- If it is remapped to Disable, suppress the event.
- If it is remapped to a key, we send the key down/up message for the target key and suppress the current key event. We have a check for filtering artificial keys, such as `VK_WIN` (which is a keycode added by us), so that it is translated to `VK_LWIN` instead.
- If it is remapped to a shortcut, for key down we set the target modifiers first, followed by the target action key, and for key up we release the action key first, followed by the modifiers.
- All the remapped key events that we send above are sent with `KEYBOARDMANAGER_SINGLEKEY_FLAG` on the `dwExtraInfo` field.
## HandleShortcutRemapEvent
[This method](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/dll/KeyboardEventHandlers.cpp#L178-L739) is used for handling the shortcut to shortcut and shortcut to key remapping logic. The general logic is as follows:
- Check if any shortcut remap is currently invoked. This is required to ensure that two remaps don't occur simultaneously at a time, and we send key up events for the shortcuts only if they are actually invoked and not for artificial key up events. In addition to that, while a remap is in the middle of execution, the keyboard state will not match the physical keys, so we do not want a remap <kbd>Ctrl+A</kbd> to <kbd>Ctrl+V</kbd> to also trigger the remap from <kbd>Ctrl+V</kbd> to <kbd>Alt+V</kbd> on pressing <kbd>Ctrl+A</kbd> on the keyboard.
- Get the remap table as per the `activatedApp` argument (i.e. if it is empty, we get the global shortcut remap table and otherwise we get the corresponding app-specific shortcut remap table).
- Iterate over the list of remaps in descending order of number of keys in the shortcut. This is required **for shortcut to key remaps** to ensure that if a user has both <kbd>Ctrl+A</kbd> and <kbd>Ctrl+Shift+A</kbd> remapped to some keys, and the user presses <kbd>Ctrl+Shift+A</kbd>, then we prefer the <kbd>Ctrl+Shift+A</kbd> remap. This logic would not be required if there were only shortcut to shortcut remaps, as they are invoked only on exact match.
- If any shortcut was found to be invoked (from the first step), then we skip till we find the matching shortcut remap. If not we check if the modifiers of the original shortcut are pressed down. If they are, we check if the current key event is a key down event and it matches the action key of the original shortcut. For shortcut to shortcut and for disabling a shortcut [we have an additional step](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/dll/KeyboardEventHandlers.cpp#L208-L212) where we check if any other key is pressed apart from the original shortcut. This is required because for these two features we allow the remaps only if those exact keys are pressed. The method used for this is described in detail [here](keyboardmanagercommon.md#IsKeyboardStateClearExceptShortcut). If a win key was pressed, we store whether it was the left or the right one, in order to determine which key to set for remaps from/to the common Win key code which we added. This is so that pressing and releasing Left Win key results in that Win key getting modified and not the Right Win key.
- If the remap is to a key, we send a dummy key event followed by releasing the original shortcut's modifiers and setting the target key (or doing nothing if it is remapped to disable) and we suppress the event.
- If the remap is to a shortcut, if the modifiers in the original shortcut are present in the target, we only set the additional modifiers and the action key of the target. If it isn't, we send a dummy key event followed by releasing the modifiers which are not common, and setting the remaining ones in the target along with the action key.
- For both cases, we set the `isShortcutInvoked` flag to true, and set the `KeyboardManagerState.activatedApp` if it is an app-specific shortcut remap.
- For the `isShortcutInvoked` is true scenario (i.e. the initial remap keydown section is done) there are several cases depending on the key pressed or released:
- [**Case 1:**](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/dll/KeyboardEventHandlers.cpp#L339-L430) If a modifier in the original shortcut is released, we need to reset back to the physical keys pressed.
- For remap to shortcut, we release the target action key if it is currently pressed, and depending on whether all the modifiers of the original shortcut are present in the target, we release the target modifiers that are not common, and set the remaining original shortcut modifiers except the one that was released. We do not need to send the original action key as that will get generate it's own key event if it is held down.
- For remap to key, we release the target key if it is pressed (and it is not remapped to Disable), and we set the original shortcut modifiers.
- For both the cases we send a dummy key event at the end, since we are setting modifiers without any other key after that, and we reset all the remap variables.
- [**Case 2:**](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/dll/KeyboardEventHandlers.cpp#L435-L461) If the original shortcut's action key is pressed again, we send the target shortcut's action key or the target key again (or for disable we just suppress the event).
- [**Case 3:**](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/dll/KeyboardEventHandlers.cpp#L463-L527) If the original shortcut's action key is released
- For remap to shortcut, we just release the target shortcut's action key
- For remap to disable, we suppress the event
- For remap to key, we check if any other keys are pressed apart from the target key. If not, we just release the target key. If there are, we reset back to the physical keys by releasing the target key and setting the original shortcut's modifiers along with a dummy key, and we reset all the remap variables. This behavior is different from remap to shortcut because if the action key is released while other keys are pressed the remap should be inactive, but such a state can't occur for shortcut to shortcut remaps since they happen only when the exact keys are pressed.
- [**Case 4:**](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/dll/KeyboardEventHandlers.cpp#L529-L551) If a modifier in the original shortcut is pressed, suppress the event
- [**Case 5:**](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/dll/KeyboardEventHandlers.cpp#L553-L732) If any other key is pressed
- For remap to shortcut, we need to reset back to physical keys as the shortcut remaps can't be pressed in combination with other keys. We release the target action key if it was pressed, and we release the modifier keys of the target shortcut that are not common and set the remaining ones in the original shortcut. We then send the original shortcut's action key if the target action key was found to be pressed, and we send the current key press at the end.
- For remap to key, if it is remapped to disable or if the target key is not found to be pressed, we reset to the physical keys, we set the original shortcut's modifiers and if is remap to Disable and the original shortcut's action key is physically pressed (this is checked by the `isOriginalActionKeyPressed` flag which we keep track of whenever the action key is pressed or released for remap to Disable), then we set the original shortcut's action key, followed by the current key press. If it is not remapped to disable and the target key is pressed, then we don't suppress the event as we allow shortcut to key remappings to be pressed along with other keys.
- For all the above cases, dummy key isn't required as we want the current key press to behave like a normal key.
- [**Case 6:**](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/dll/KeyboardEventHandlers.cpp#L733) If any other key is released, do not suppress the event as this event didn't appear with a corresponding key down event (such as an app sending a key up event) or we processed the key down and let it continue (for shortcut to key scenario).
- All the remapped key events that we send above are sent with `KEYBOARDMANAGER_SHORTCUT_FLAG` on the `dwExtraInfo` field, except the usage of the current key press in Case 5, for which we don't send any extra info so that it is considered as a normal key event which may in turn invoke some other remap.
**Note:** Shortcuts are considered valid if they have modifiers and an action key. The reason why we haven't supported key combinations of just modifiers (which is requested in this [issue](https://github.com/microsoft/PowerToys/issues/5670)) (like remapping <kbd>Ctrl+Alt</kbd>) is because this would require more cases and handling as these remappings have to take place only on press and release and if there is no key pressed in between similar to what Start Menu does. The remapping would have to be invoked only for this specific sequence <kbd>Ctrl</kbd> key down, <kbd>Alt</kbd> key down, <kbd>Alt</kbd> key up, <kbd>Ctrl</kbd> key up (ordering between Ctrl and Alt can be swapped). If any other key is pressed in between it shouldn't be invoked, and since this logic requires tracking exact states instead of using GetAsyncKeyStates, this could cause false positives if a user is not running as admin.
## HandleOSLevelShortcutRemapEvent
[This method](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/dll/KeyboardEventHandlers.cpp#L741-L752) is used for handling global shortcut to shortcut and shortcut to key remaps. The general logic is as follows:
- Check if the `dwExtraInfo` field is set to `KEYBOARDMANAGER_SHORTCUT_FLAG`. This indicates that the key event was generated by the KBM shortcut remap method using `SendInput`. This ensures that we don't read events generated by the shortcut remap method, but we still read events which are generated by the key remap method.
- Call `HandleShortcutRemapEvent` without the `activatedApp` argument so that global shortcut remapping takes place if it applies for the current key event.
## HandleAppSpecificShortcutRemapEvent
[This method](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/dll/KeyboardEventHandlers.cpp#L754-L809) is used for handling app-specific shortcut to shortcut and shortcut to key remaps. The general logic is as follows:
- Check if the `dwExtraInfo` field is set to `KEYBOARDMANAGER_SHORTCUT_FLAG`. This indicates that the key event was generated by the KBM shortcut remap method using `SendInput`. This ensures that we don't read events generated by the shortcut remap method, but we still read events which are generated by the key remap method.
- Get the name of the process in the foreground. This is done using `GetCurrentApplication` which uses `GetForegroundWindow` to get the window handle and `get_process_path` from the common lib. This approach can fail for UWP apps in full screen, so for that scenario we use the `GetGUIThreadInfo` approach to find the correct window handle, and hence the correct process name. This method is described in more detail [here](keyboardmanagercommon.md#Foreground-app-detection)
- By checking `KeyboardManagerState.GetActivatedApp` we check if an app-specific shortcut is currently invoked. If so, we consider this application to be the activated app. This is required because some shortcut remaps could cause the current app to lose focus and hence until the shortcut is completely released we should allow that remap to continue, otherwise the user could end up in a state where some keys do not get released. For example: remap <kbd>Ctrl+A</kbd> to <kbd>Alt+Tab</kbd> for Edge, when a user presses <kbd>Ctrl+A</kbd> the window loses focus as <kbd>Alt+Tab</kbd> gets executed.
- If there is no app-specific shortcut currently invoked, we check if the foreground process is present in the list of app-specific remaps, either with or without the file extension and case insensitive. If it is, this is considered to be the activated app.
- Call `HandleShortcutRemapEvent` with the `activatedApp` argument so that app-specific shortcut remapping takes place if it applies for the current key event.
## HandleSingleKeyToggleToModEvent (Obsolete - Code from PoC which is commented out)
[This method](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/dll/KeyboardEventHandlers.cpp#L126-L176) was added to support a feature for converting the behavior of a key from behaving like a toggle (like Caps Lock/Num Lock) to a modifier (like Ctrl), such that when you hold Caps Lock it would behave as if Caps Lock was active, and when it was not pressed Caps Lock would be off. For Caps Lock this would be similar to behaving like Shift, but for Num Lock there is no existing key which can substitute for this. This was added while testing out remapping for the KBM PoC, but wasn't added as a feature since it wasn't a priority.
## Tests
In order to test the remapping logic, a mocked keyboard input handler had to be created because otherwise the tests would process and send actual key events. For this the [`InputInterface`](https://github.com/microsoft/PowerToys/blob/main/src/modules/keyboardmanager/common/InputInterface.h) was made, and in production code the methods are implemented using [`SendInput`](https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-sendinput) and [`GetAsyncKeyState`](https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-getasynckeystate). In addition to this, [`GetCurrentApplication`](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/common/Helpers.cpp#L226-L268) had to be mocked so that app-specific remapping can be tested.
### MockedInput
The [`MockedInput`](https://github.com/microsoft/PowerToys/blob/main/src/modules/keyboardmanager/test/MockedInput.h) class uses a 256 size `bool` vector to store the key state for each key code. Identifying the foreground process is mocked by simply setting and getting a string value for the name of the current process.
[To mock the `SendInput` method](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/test/MockedInput.cpp#L10-L110), the steps for processing the input are as follows. This implementation is based on public documentation for SendInput and the behavior of key messages and keyboard hooks:
- Iterate over all the inputs in the INPUT array argument
- If the event is a key up event, then it is considered [`WM_SYSKEYUP`](https://docs.microsoft.com/en-us/windows/win32/inputdev/wm-syskeyup) if Alt is held down, otherwise it is `WM_KEYUP`.
- If the event is a key down event, then it is considered [`WM_SYSKEYDOWN`](https://docs.microsoft.com/en-us/windows/win32/inputdev/wm-syskeydown) if either Alt is held down or if it is F10, otherwise it is `WM_KEYDOWN`.
- An optional function which can be set on the `MockedInput` handler can be used to test for the number of times a key event is received by the system with a particular condition using [`sendVirtualInputCallCondition`](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/test/MockedInput.cpp#L48-L52).
- The hook logic for a low level hook which returns 0 or 1 can be set on the `MockedInput` handler such that it behaves like a low level hook would behave with actual keyboard input. If the method returns 1, then the keyboard state is not updated, and if it returns 0 the corresponding key event is used to update the key state. This works in the recursive way as well similar to low level hooks, as `SendVirtualInput` can be called from within the hook, thus simulating identical behavior to calling `SendInput` in a low level hook (as soon as SendInput is called, the low level hook is called for the new input event, and only after those are processed it returns back to the current event, check this [blog](https://devblogs.microsoft.com/oldnewthing/20140213-00/?p=1773) for more details).
- For updating the keyboard state, KEYUP messages result in the state for that key code being set to false, and KEYDOWN result in the state for that key code being set to true.
- For modifiers the behavior is slightly different as if the key state of the L/R version is modified, it should also modify the common version, and if a common version is released, it should release both the L and R versions.
### Tests for single key remaps and shortcut remaps
Using the MockedInput handler, all the expected (and known) key scenarios that can occur for while pressing a [remapped key](https://github.com/microsoft/PowerToys/blob/main/src/modules/keyboardmanager/test/SingleKeyRemappingTests.cpp) or [remapped shortcut](https://github.com/microsoft/PowerToys/blob/main/src/modules/keyboardmanager/test/OSLevelShortcutRemappingTests.cpp) are tested. The foreground app behavior which is specific to app-specific shortcuts is tested [here](https://github.com/microsoft/PowerToys/blob/main/src/modules/keyboardmanager/test/AppSpecificShortcutRemappingTests.cpp).

View File

@@ -0,0 +1,193 @@
# Keyboard Manager module
This file contains the documentation for the KeyboardManager PowerToy module which is called by the runner.
## Table of Contents:
1. [Class members](#Class-members)
2. [Enable/Disable](#Enable/disable)
3. [Settings format](#Settings-format)
4. [Loading settings](#Loading-settings)
5. [Low level keyboard hook handler](#Low-level-keyboard-hook-handler)
6. [Custom Action to launch KBM UI](#Custom-Action-to-launch-KBM-UI)
7. [SendInput Special Scenarios](#SendInput-Special-Scenarios)
1. [Extended keys](#Extended-keys)
2. [Scan code](#Scan-code)
8. [Special Scenarios](#Special-Scenarios)
1. [Dummy key events](#Dummy-key-events)
2. [Suppressing Num Lock in a keyboard hook](#Suppressing-Num-Lock-in-a-keyboard-hook)
3. [Modifier-Caps Lock interaction on Japanese IME keyboards](#Modifier-Caps-Lock-interaction-on-Japanese-IME-keyboards)
4. [UIPI Issues (not resolved)](#UIPI-Issues-(not-resolved))
9. [Other remapping approaches](#Other-remapping-approaches)
1. [Registry approach](#Registry-approach)
2. [Driver approach](#Driver-approach)
10. [Telemetry](#Telemetry)
## Class members
The `KeyboardManager` module has [3 main class members](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/dll/dllmain.cpp#L54-L61):
- A static pointer to the current object of `KeyboardManager`. This is required for using the `KeyboardManager` object in the low level keyboard hook handler as that method must be static. This is described in more detail in [this section](#Low-level-keyboard-hook-handler).
- An object of type `Input`, which is used for all the operations that involving getting or setting keyboard states. This is wrapped in an object to allow testing the remapping methods.
- An object of type `KeyboardManagerState`. This object contains all the data related to remappings and is also used in the sense of a View Model as it used to communicate common data that is shared between the KBM UI and the backend. This class is described in more detail [here](keyboardmanagercommon.md#keyboardmanagerstate).
## Enable/Disable
On enabling KBM, the low level keyboard hook is started, and it is unhooked on disable. This is done to allow users to manually restart KBM if some other application which registers a keyboard hook was launched after PowerToys, so that it can be brought back to the highest priority hook (as the last hook to be registered receives the input first as mentioned [here](https://docs.microsoft.com/en-us/windows/win32/winmsg/about-hooks#hook-procedures)).
In addition to stopping the hook, any active KBM UI windows are also closed on disabling. This is done because the KBM UI uses the same keyboard hook for the Type button where you can type a key/shortcut, so if KBM is disabled the windows would not be completely functional.
The enable/disable code can be found [here](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/dll/dllmain.cpp#L301-L322)
## Settings format
KBM uses two sets of settings files.
- The main `settings.json` is of the following format:
{
"properties":
{
"activeConfiguration":
{
"value":"default"
},
"keyboardConfigurations":
{
"value":["default"]
}
},
"name":"Keyboard Manager",
"version":"1"
}
- The `activeConfiguration` attribute stores the current remapping profile, while `keyboardConfigurations` stores all the profiles that the user has. This was added to avoid any future breaking changes for the [profiles feature](https://github.com/microsoft/PowerToys/issues/1881), which would allow users to switch between remappings
- The profile format (`default.json`) is of the following format:
{
"remapKeys":
{
"inProcess":
[
{
"originalKeys":"91",
"newRemapKeys":"162;70"
},
{
"originalKeys":"92",
"newRemapKeys":"162;70"
}
]
},
"remapShortcuts":
{
"global":
[
{
"originalKeys":"164;37",
"newRemapKeys":"162;65"
},
{
"originalKeys":"162;68",
"newRemapKeys":"91"
}
],
"appSpecific":
[
{
"originalKeys":"91;162;65",
"newRemapKeys":"162;86",
"targetApp":"msedge"
}
]
}
}
- `originalKeys` stores the key/shortcut which is to be pressed for the remap, and `newKeys` stores the key/shortcut which is to be executed.
- Both contain semi-colon separated virtual key codes. For `remapKeys`, `originalKeys` must have only one key code, whereas for `remapShortcuts` it must have atleast two key codes.
- `inProcess` sub-key was added in `remapKeys` because there was a possibility of adding the registry based remapping approach (used by [SharpKeys](https://github.com/randyrants/sharpkeys)), so that would be under a separate sub-key while `inProcess` would be for keyboard hook based remaps. This was deprioritized as there weren't enough requests for it.
- `remapShortcuts` is split into `global` and `appSpecific`, where `global` remaps would apply to all applications, whereas `appSpecific` would apply on when the `targetApp` is in focus. `targetApp` must be the process name of the app (with or without it's extension), e.g. `msedge` or `msedge.exe` for Microsoft Edge.
## Loading settings
KBM settings are loaded only on the C++ side only at start up, in the [constructor](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/dll/dllmain.cpp#L67-L68). The settings file may get modified from the KBM UI on applying new remappings, but the file is not read again. The files are read from the PowerToys Settings process whenever a change is made to the file (using a FileWatcher) or whenever the KBM page is opened. The settings are updated only when the user presses the OK button from either of the Remap Keys or Remap Shortcuts windows. This is described in more detail [here](keyboardmanagerui.md#ok-and-cancel-button).
## Low level keyboard hook handler
Since the [`hook_proc`](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/dll/dllmain.cpp#L330-L349) cannot be a member function in the class, this is declared `static` and a `static pointer` to the `KeyboardManager` project is used ([`keyboardmanager_object_ptr`](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/dll/dllmain.cpp#L54-L55)).
As seen in the code for `hook_proc`, similar to other keyboard hooks in PowerToys it consists of a main method `HandleKeyboardHookEvent` which computes whether the key needs to be suppressed and accordingly returns 1 or calls the `CallNextHook` method.
`HandleKeyboardHookEvent` is covered in the [next section](#HandleKeyboardHookEvent). The `SetNumLockToPreviousState` code in the above snippet is required for a special scenario with keyboard input, which is covered in [this section](#Suppressing-Num-Lock-in-a-keyboard-hook).
## HandleKeyboardHookEvent
The [`HandleKeyboardHookEvent`](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/dll/dllmain.cpp#L384-L458) is the method which calls the corresponding remapping methods in the required order. The following checks are executed in order:
- **`KeyboardManagerState.AreRemappingsEnabled`:** This returns false while the KBM remap tables are getting updated. If it is in this state, `HandleKeyboardHookEvent` returns `0`, i.e. the key event is not suppressed and is forwarded normally.
- **Check for `KEYBOARDMANAGER_SUPPRESS_FLAG`:** If the key event has the suppress flag, the method returns 1 to suppress the key event.
- **[`KeyboardManagerState.DetectSingleRemapKeyUIBackend`](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/dll/dllmain.cpp#L399-L408):** This method is used for handling hook operations for the single key Type UI in the Remap keys window. If the Remap keys window is open, then `HandleKeyboardHookEvent` returns `0` and the key event is forwarded normally. If the left column Type button is clicked on the Remap keys window and the window is in focus, then the key event is suppressed and the UI is updated with the latest key from the recent key events. This method is described in more detail [here](keyboardmanagercommon.md#DetectSingleRemapKeyUIBackend-and-DetectShortcutUIBackend).
- **[`KeyboardManagerState.DetectShortcutUIBackend(data, true)`](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/dll/dllmain.cpp#L410-L419):** This method is used for handling hook operations for the shortcut Type UI in the Remap keys window (when `isRemapKey` arg is `true`). If the Remap keys window is open, then `HandleKeyboardHookEvent` returns `0` and the key event is forwarded normally. If the right column Type button is clicked on the Remap keys window and the window is in focus, then the key event is suppressed and the UI is updated with the shortcut from the recent key events. This method is described in more detail [here](keyboardmanagercommon.md#DetectSingleRemapKeyUIBackend-and-DetectShortcutUIBackend).
- **`HandleSingleKeyRemapEvent`:** This method handles the single key remap logic. If a remapping takes place, the key event is suppressed. This method is described in more detail [here](keyboardeventhandlers.md#HandleSingleKeyRemapEvent).
- **[`KeyboardManagerState.DetectShortcutUIBackend(data, false)`](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/dll/dllmain.cpp#L430-L439):** This method is used for handling hook operations for the shortcut Type UI in the Remap shortcuts window (when `isRemapKey` arg is `false`). If the Remap shortcuts window is open, then `HandleKeyboardHookEvent` returns `0` and the key event is forwarded normally. If the Type button is clicked on the Remap shortcuts window and the window is in focus, then the key event is suppressed and the UI is updated with the shortcut from the recent key events. **Since this is executed after the single key remap method, all single key remappings are applied when the user is on the Remap shortcuts window.**
- **`HandleAppSpecificShortcutRemapEvent`:** This method handles the app-specific shortcut remap logic. If a remapping takes place, the key event is suppressed. This method is described in more detail [here](keyboardeventhandlers.md#HandleAppSpecificShortcutRemapEvent). **Since this is executed after the single key remap method, single key remappings have precedence over shortcut remaps and are correspondingly reflected in shortcut remaps.**
- **`HandleOSLevelShortcutRemapEvent`:** This method handles the global shortcut remap logic. If a remapping takes place, the key event is suppressed. This method is described in more detail [here](keyboardeventhandlers.md#HandleOSLevelShortcutRemapEvent). The app-specific remap method is executed before this because if a shortcut is remapped to different keys/shortcuts for a particular app and globally, the app-specific variant should be preferred if that app is in focus. **Since this is executed after the single key remap method, single key remappings have precedence over shortcut remaps and are correspondingly reflected in shortcut remaps.**
**Note:** Single key remaps need to be executed before shortcut remaps, because otherwise there can be several logical issues. For example if a user has Ctrl remapped to X and Ctrl+A remapped to Y, we can't detect Ctrl+A because the moment Ctrl is pressed it would be remapped to X before the system ever sees Ctrl+A. This is why the design decision was made to separate Remap keys and Remap shortcuts, and all key remaps are reflected in the shortcut remaps.
## Custom Action to launch KBM UI
KBM uses the [`call_custom_action`](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/dll/dllmain.cpp#L249-L280) method from the `PowertoyModuleIface` in order to launch the KBM UI when the user clicks the Remap a key or Remap a shortcut button from the KBM settings page. On clicking the button, we check if there is already any active KBM UI window, and if there is it is brought to the foreground. If not, the corresponding KBM UI window is launched on a separate detached thread. The UI is described in more detail [here](keyboardmanagerui.md).
## SendInput Special Scenarios
### Extended keys
Certain keys such as the arrow keys, <kbd>right Ctrl/Alt</kbd>, and <kbd>Del/Home/Ins</kbd>, etc need to be sent with the `KEYEVENTF_EXTENDEDKEY` flag because otherwise the NumPad versions get sent, which can cause weird behavior when NumLock is on. The code can be found [here](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/common/Helpers.cpp#L190-L194) and the list of extended keys in code can be found [here](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/common/Helpers.cpp#L73-L98). Docs about extended keys can be found [here](https://docs.microsoft.com/en-us/windows/win32/inputdev/about-keyboard-input#extended-key-flag).
The weird behavior that is caused by this can be found at these issues:
- https://github.com/microsoft/PowerToys/issues/3478
- https://github.com/microsoft/PowerToys/issues/3647
- https://github.com/microsoft/PowerToys/issues/3981
### Scan code
Certain applications (such as Windows Terminal) may filter out key events which are set to scan code 0. Even though the `KEYEVENTF_SCANCODE` flag is not set, the `wScan` field is still sent, which defaults to 0. To avoid this issue we use the `MapVirtualKey` API to find the scan code from the virtual key code. Code can be found [here](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/common/Helpers.cpp#L196-L198).
## Special Scenarios
Since we are using low level keyboard hooks and not actual OS level input handling certain scenarios with input require workarounds as do they not interact well with the OS input logic directly. These are covered in the sub-sections below.
### Dummy key events
To prevent the behavior that some modifiers have that occur when you press and release the modifier without pressing any key in between, we need to send a dummy key event in between the two states. Some examples of this behavior are Win key for Start Menu and Alt key to focus the menu bar. We need to send the dummy key events at any point where an unintentional modifier press/release sequence may occur. We use the undocumented `0xFF` virtual key code for this as we haven't found any side effects of using this key code yet. Initially we used only a key up message, but it has been tweaked now to send a key down followed by key up (code can be found (here)[https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/common/Helpers.cpp#L201-L208]), as without the key down there were [compatibility issues with some apps](https://github.com/microsoft/PowerToys/issues/7133) (like Slack).
The dummy key event is currently used in the following places (the linked code snippets contains an example scenario of why it is required):
- https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/dll/KeyboardEventHandlers.cpp#L251-L253
- https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/dll/KeyboardEventHandlers.cpp#L289-L291
- https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/dll/KeyboardEventHandlers.cpp#L382-L383
- https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/dll/KeyboardEventHandlers.cpp#L409-L410
- https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/dll/KeyboardEventHandlers.cpp#L509-L510
### Suppressing Num Lock in a keyboard hook
The <kbd>Num Lock</kbd> key state is updated by the OS before it is intercepted by low level hooks. This causes the issue that even if you suppress a <kbd>Num Lock</kbd> key event, <kbd>Num Lock</kbd> will still get toggled. In order to work around this, in the [`hook_proc`](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/dll/dllmain.cpp#L340-L344) whenever we suppress a <kbd>Num Lock</kbd> key down event, we send an additional <kbd>Num Lock</kbd> key up followed by key down so that the <kbd>Num Lock</kbd> state is reverted to it's previous value before the suppressed event. These are sent with a `KEYBOARDMANAGER_SUPPRESS_FLAG` in the `dwExtraInfo` field, so that we suppress them at the start of the hook (see code [here](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/dll/KeyboardEventHandlers.cpp#L811-L825)). Since these events will update the <kbd>Num Lock</kbd> state before the low level hooks, by suppressing them we ensure that these are not sent to any other hooks/applications and hence are only processed by the OS.
This assumes that KBM is the last hook to be registered (since another hook-based app like AutoHotkey could remap NumLock to some other key which could mess up this logic).
### Modifier-Caps Lock interaction on Japanese IME keyboards
While using Japanese IME on Windows, shortcuts like <kbd>Shift/Alt/Ctrl</kbd> + <kbd>Caps Lock</kbd> can be used to switch IME options.
![japanese-ime](japanese-ime.png)
These shortcuts are detected before low level hooks, and hence cause issues while remapping <kbd>Caps Lock</kbd> to <kbd>Shift/Alt/Ctrl</kbd> or vice-versa, as there could be an intermediate state where the system detects both the keys as being pressed. This results in a state where the modifier key does not get released since the OS suppresses the key up messages before they reach the low level hooks.
In order to work around this when a key down for the modifier is being processed, we send a key up for the modifier key with the `KEYBOARDMANAGER_SUPPRESS_FLAG` in the `dwExtraInfo` field, so that we suppress them at the start of the hook, and this key event would only be processed by the OS, without getting forwarded to other hooks/apps. The approach is described in more detail at [this comment](https://github.com/microsoft/PowerToys/issues/3397#issuecomment-640136416), as discussed with the AutoHotkey team. The code for the workaround can be found [here](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/dll/KeyboardEventHandlers.cpp#L827-L846). Tests for these scenarios have also been added at:
- [Tests for workaround on single key remaps](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/test/SingleKeyRemappingTests.cpp#L110-L219)
- [Tests for workaround on shortcut remaps](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/test/OSLevelShortcutRemappingTests.cpp#L1935-L2144)
For example, while [remapping <kbd>Ctrl</kbd> to <kbd>Caps Lock</kbd>](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/dll/KeyboardEventHandlers.cpp#L59-L63), before sending the <kbd>Caps Lock</kbd> key down message and suppressing <kbd>Ctrl</kbd>, we send a suppressed <kbd>Ctrl</kbd> key up, so that the OS doesn't see <kbd>Ctrl</kbd> and <kbd>Caps Lock</kbd> pressed together at any point. For the [<kbd>Caps Lock</kbd> to <kbd>Ctrl</kbd> scenario](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/dll/KeyboardEventHandlers.cpp#L104-L116), we send a suppressed C<kbd>Ctrl</kbd>trl key up message after sending <kbd>Ctrl</kbd> key down before <kbd>Caps Lock</kbd> suppressed. Similar logic is added for such scenarios in shortcut remapping.
While the above work around fixes most of the cases, there are still some scenarios where the modifier can get stuck, mentioned at this [comment](https://github.com/microsoft/PowerToys/issues/3397#issuecomment-663729278), which is why the issue is still open. This occurs if a modifier is pressed after the remap has been invoked before releasing the remapped key and it is a harder scenario to solve which requires refactoring the single key remap code.
### UIPI Issues (not resolved)
`SendInput` does not work directly with certain key codes such as Play/Pause Media, Calculator key, etc as it requires UAC privileges to be injected to the OS and accordingly play the active media app or launch the Calculator app. In order to resolve this the correct approach is that the executable which calls `SendInput` needs to have the [UIAccess flag](https://docs.microsoft.com/en-us/windows/win32/winauto/uiauto-securityoverview) set to true, which will also avoid the requirement of KBM having to run as administrator to intercept key events when an elevated window is in focus. The UIAccess flag has many constraints such as it must be a signed executable and must be located in a protected path like Program Files. Since KBM currently runs out of the runner process, it would make more sense to do this work after KBM is moved to a separate executable, and it could be enabled by a separate toggle in settings only if PowerToys is installed in Program Files. [This comment](https://github.com/microsoft/PowerToys/issues/3192#issuecomment-646323661) has more details on this approach and (this)[https://github.com/microsoft/PowerToys/issues/3255] is the tracking issue.
## Other remapping approaches
Other approaches for remapping which were deprioritized are:
### Registry approach
This method is used by [SharpKeys](https://github.com/randyrants/sharpkeys) and involves using the [Microsoft Keyboard Scancode mapper registry key](https://github.com/randyrants/sharpkeys) to remap keys based on their scan codes. This has the advantage of being applied in all scenarios and not facing any elevation or UAC issues, however the disadvantages are that for modifying the settings the process must run elevated (as it modifies HKLM registry) and it requires a reboot to get applied. Another issue which is an advantage/disadvantage for users is that the process does not need to be running, so the remaps are applied all the time, including at the password prompt on logging in to the user's Windows account, which could get a user stuck if they orphaned a key in their password. This registry doesn't have any support for remapping shortcuts either, so the hook approach was prioritized over this.
### Driver approach
Using a driver approach has the benefit of not depending on precedence orders as KBM could always run before low level hooks, and it also has the benefit of differentiating between different keyboards, allowing [multi keyboard-specific remaps](https://github.com/microsoft/PowerToys/issues/1460). The disadvantages are however that any bug or crash could have system level consequences. [Interception](https://github.com/oblitum/Interception) is an open source driver that could be used for implementing this. The approach was deprioritized due to the potential side effects.
## Telemetry
Keyboard Manager emits the following telemetry events (implemented in [trace.h](https://github.com/microsoft/PowerToys/blob/main/src/modules/keyboardmanager/common/trace.h) and [trace.cpp](https://github.com/microsoft/PowerToys/blob/main/src/modules/keyboardmanager/common/trace.cpp)):
- **`KeyboardManager_EnableKeyboardManager`:** Logs a `boolean` value storing the KBM toggle state. It is logged whenever KBM is enabled or disabled (emitted [here](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/dll/dllmain.cpp#L305-L316)).
- **`KeyboardManager_KeyRemapCount`:** Logs the number of key to key and key to shortcut remaps (i.e. all the remaps on the Remap a key window). This gets logged on saving new settings in the Remap a key window (emitted [here](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/ui/LoadingAndSavingRemappingHelper.cpp#L159-L163)).
- **`KeyboardManager_OSLevelShortcutRemapCount`:** Logs the number of global shortcut to shortcut and shortcut to key remaps. This gets logged on saving new settings in the Remap a shortcut window (emitted [here](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/ui/LoadingAndSavingRemappingHelper.cpp#L220)).
- **`KeyboardManager_AppSpecificShortcutRemapCount`:** Logs the number of app-specific shortcut to shortcut and shortcut to key remaps. This gets logged on saving new settings in the Remap a shortcut window (emitted [here](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/ui/LoadingAndSavingRemappingHelper.cpp#L221)).
- **`KeyboardManager_Error`:** Logs the occurrence of an error in KBM with the name of the method, error code and the corresponding error message. This is currently used only for logging `SetWindowsHookEx` failures (emitted [here](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/dll/dllmain.cpp#L364-L369)).

View File

@@ -0,0 +1,63 @@
# Keyboard Manager Common
This project contains any code that is to be shared between the backend and UI projects. This file covers any functionality in this project which hasn't been covered along with the other modules.
## Table of Contents
1. [KeyboardManagerState](#KeyboardManagerState)
1. [UI States](#UI-States)
2. [DetectSingleRemapKeyUIBackend and DetectShortcutUIBackend](#DetectSingleRemapKeyUIBackend-and-DetectShortcutUIBackend)
3. [HandleKeyDelayEvent](#HandleKeyDelayEvent)
4. [Saving remappings to file](#Saving-remappings-to-file)
5. [Concurrent Access to remap tables](#Concurrent-Access-to-remap-tables)
2. [KeyDelay](#KeyDelay)
3. [Shortcut and RemapShortcut classes](#Shortcut-and-RemapShortcut-classes)
1. [IsKeyboardStateClearExceptShortcut](#IsKeyboardStateClearExceptShortcut)
2. [CheckModifiersKeyboardState](#CheckModifiersKeyboardState)
3. [Tests](#Tests)
4. [Helpers](#Helpers)
1. [Foreground App Detection](#Foreground-App-Detection)
## KeyboardManagerState
[This class](https://github.com/microsoft/PowerToys/blob/main/src/modules/keyboardmanager/common/KeyboardManagerState.cpp) stores all the data related to remappings and is also used in the sense of a View Model as it used to communicate common data that is shared between the KBM UI and the backend. They are accessed on the UI controls using static class members of `SingleKeyRemapControl` and `ShortcutControl`.
### UI States
[UI states](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/common/KeyboardManagerState.h#L27-L42) are used to keep track in which step of the UI flow is the user at, such as which Remap window they are on, or if they have one of the Type windows open. This is required because the hook needs to suppress input and update UI in some cases, and in some cases remappings have to be disabled altogether.
### DetectSingleRemapKeyUIBackend and DetectShortcutUIBackend
[These methods](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/common/KeyboardManagerState.cpp#L374-L446) are [called on the low level hook](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/dll/dllmain.cpp#L399-L408) in the main keyboard event handler. When the user opens any UI window the UI states are updated and in this case some remappings have to be disabled. On the Remap keys window, all remappings are disabled, while on the Remap shortcuts window, shortcut remappings are disabled.
In addition to this, if the user has opened the Type window, and the window is in focus, [whenever a key event is received we have to update the set of selected keys in the TextBlock](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/common/KeyboardManagerState.cpp#L266-L329) in the ContentDialog. These methods also call the `KeyDelay` handlers to check if the input is Esc/Enter and accordingly handle the Accessibility events for the Type window. When the user clicks the Type button, [variables in the KeyboardManagerState store the corresponding TextBlocks](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/ui/SingleKeyRemapControl.cpp#L375-L376) which appear in the ContentDialog, so that these UI controls can be updated from the hook on the dispatcher thread.
### HandleKeyDelayEvent
[This method](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/common/KeyboardManagerState.cpp#L482-L498) checks if the UI is in the foreground, and if so runs the key delay handlers that have been registered.
### Saving remappings to file
The [`SaveConfigToFile`](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/common/KeyboardManagerState.cpp#L500-L607) method is called on clicking the OK button on the EditKeyboardWindow or EditShortcutsWindow. Since PowerToys Settings also reads the config JSON file, [a named mutex is used](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/common/KeyboardManagerState.cpp#L582-L600) before accessing the file, with a 1 second timeout. If the mutex is obtained the settings are written to the default.json file.
### Concurrent Access to remap tables
To prevent the UI thread and low level hook thread from concurrently accessing the remap tables we use an [`atomic bool` variable](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/common/KeyboardManagerState.h#L91-L92), which is set to `true` while the tables are getting updated. When this is `true` the hook will skip all remappings. Use of mutexes in the hook were removed to prevent re-entrant mutex bugs.
## KeyDelay
[This class](https://github.com/microsoft/PowerToys/blob/main/src/modules/keyboardmanager/common/KeyDelay.cpp) implements a queue based approach for processing key events and based on the time difference between key down and key up events [executes separate methods for `ShortPress`, `LongPress` or `LongPressReleased`](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/common/KeyDelay.h#L69-L72). The class is used for the hold Enter/Esc functionality required for making the Type window accessible and prevent keyboard traps (see [this](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/ui/SingleKeyRemapControl.cpp#L273-L292) for an example of it's usage). The `KeyEvents` are added to the queue from the hook thread of KBM, and a separate [`DelayThread`](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/common/KeyDelay.cpp#L142-L166) is used to process the key events by checking the `time` member in the key event. The thresholds for short vs long press and hold wait timeouts are `static` constants, but if the module is extended for other purposes these could be made into arguments.
**Note:** [Deletion of the `KeyDelay`](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/common/KeyDelay.cpp#L4-L12) object should never be called from the `DelayThread` i.e. from within one of the 3 handlers, as it can re-enter the mutex and would lead to a deadlock. This can be avoided by either deleting it on a separate thread or as done in the KBM UI, on the dispatcher thread. See [this PR](https://github.com/microsoft/PowerToys/pull/6959#issue-496583547) for more details on this issue.
## Shortcut and RemapShortcut classes
The [`Shortcut` class](https://github.com/microsoft/PowerToys/blob/main/src/modules/keyboardmanager/common/Shortcut.h) is a data structure for storing key combinations which are valid shortcuts and it contains several methods which are used for shortcut specific operations. [`RemapShortcut`](https://github.com/microsoft/PowerToys/blob/main/src/modules/keyboardmanager/common/RemapShortcut.h) consists of a shortcut/key union (`std::variant`), along with other boolean flags which are required on the hook side for storing any relevant keyboard states mid-execution.
### IsKeyboardStateClearExceptShortcut
[This method](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/common/Shortcut.cpp#L665-L813) is used by the `HandleShortcutRemapEvent` to check if any other keys on the keyboard have been pressed apart from the keys in the shortcut. This is required because shortcut to shortcut remaps should not be applied if the shortcut is pressed with other keys. The method iterates over all the possible key codes, except any keys that are considered reserved, unassigned, OEM-specific or undefined, as well as mouse buttons (see list [here](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/common/Shortcut.cpp#L628-L663)).
### CheckModifiersKeyboardState
[This method](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/common/Shortcut.cpp#L517-L614) uses `GetVirtualKeyState` (internally calls `GetAsyncKeyState` in production code), to check if all the modifiers of the current shortcut are being pressed. Since Win doesn't have a non-L/R key code we check this by checking both LWIN and RWIN.
### Tests
Tests for some methods in the `Shortcut` class can be found [here](https://github.com/microsoft/PowerToys/blob/main/src/modules/keyboardmanager/test/ShortcutTests.cpp).
## Helpers
[This namespace](https://github.com/microsoft/PowerToys/blob/main/src/modules/keyboardmanager/common/Helpers.cpp) has any methods which are used across either UI or the backend which aren't specific to either. Some of these methods have tests [here](https://github.com/microsoft/PowerToys/blob/main/src/modules/keyboardmanager/test/SetKeyEventTests.cpp).
### Foreground App Detection
[`GetCurrentApplication`](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/common/Helpers.cpp#L226-L268) is used for detecting the foreground process for App-specific shortcuts. The logic is very similar to that used for FZ's app exception feature, involving `GetForegroundWindow` and `get_process_path`. The one additional case which has been added is for full-screen UWP apps, where the above method fails and returns `ApplicationFrameHost.exe`. The [`GetFullscreenUWPWindowHandle`](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/common/Helpers.cpp#L210-L224) uses `GetGUIThreadInfo` API to find the window linked to the GUI thread. This logic is based on [this stackoverflow answer](https://stackoverflow.com/questions/39702704/connecting-uwp-apps-hosted-by-applicationframehost-to-their-real-processes/55353165#55353165).
**Note:** The [`GetForegroundProcess` method](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/dll/Input.cpp#L17-L21) performs string allocation in a weird way because of exceptions that were occurring while running tests as a result of memory being allocated or deallocated across dll boundaries. Here's the comment from the PR where this was added
> To make app-specific logic test-able, a GetForegroundProcess was added to the input interface which internally calls GetCurrentApplication. This allows us to mock this method in the test project by just setting some process name as the foreground process for that function. When I set this to just return the string name, it would goes runtime errors on the test project in debug_heap with `__acrt_first_block == header`. Based on [this stackoverflow answer](https://stackoverflow.com/a/35311928), this would happen if allocation happens in one dll's code space and deallocation happens in another. One way to avoid this is to change both the projects to MD (multi threaded dll) instead of MT(multi threaded), however that results in many compile-time errors since all the PT projects are configured as MT. To solve this, the GetForegroundProcess was rewritten such that its argument is the output variable, and we allocate memory for that string within the AppSpecificHandler method rather than in that function.

View File

@@ -0,0 +1,122 @@
# Keyboard Manager UI
## Table of Contents:
1. [C++ XAML Islands](#c---xaml-islands)
1. [Debugging exceptions in XAML Islands](#debugging-exceptions-in-xaml-islands)
2. [Build times](#build-times)
3. [Setting custom backgrounds for Xaml Controls using brushes](#setting-custom-backgrounds-for-xaml-controls-using-brushes)
2. [UI Structure](#ui-structure)
3. [EditKeyboardWindow/EditShortcutsWindow](#editkeyboardwindow-editshortcutswindow)
1. [OK and Cancel button](#ok-and-cancel-button)
2. [Delete button](#delete-button)
3. [Handling common modifiers in EditKeyboardWindow](#handling-common-modifiers-in-editkeyboardwindow)
4. [SingleKeyRemapControl](#singlekeyremapcontrol)
5. [ShortcutControl](#shortcutcontrol)
6. [KeyDropDownControl](#keydropdowncontrol)
1. [Localized key names](#localized-key-names)
2. [Single Key ComboBox Selection Handler](#single-key-combobox-selection-handler)
3. [Shortcut ComboBox Selection Handler](#shortcut-combobox-selection-handler)
## C++ XAML Islands
The KBM UI is implemented as a C++ XAML Island, but all the controls are implemented in code behind rather than .xaml and .xaml.cs files. This was done as per a XAML Island Code sample and it didn't require a separate UWP project, which could be limited in terms of using hooks. There is a [tech debt item](https://github.com/microsoft/PowerToys/issues/2027) for moving this to XAML. The reason it wasn't implemented in the C# Settings was because it required communication with the low level hook thread, which could be too slow if IPC is used, since the UI needs to update on every key event.
**Note:** For functions which take a XAML component as argument, pass it by value and not by reference. This is because `winrt` WinUI classes store their own internal references, so they are supposed to be passed by value (and internally ref counts are incremented). Passing by reference can lead to weird behavior where the object is `null`.
The windows are [created as C++ windows](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/ui/EditKeyboardWindow.cpp#L128-L140) and the window sizes are set to default by [scaling them as per DPI](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/ui/EditKeyboardWindow.cpp#L120-L126) using the `DPIAware::Convert` API from common lib. Since the UI is launched on a new thread, the window may not be in the foreground, so [we call `SetForegroundWindow`](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/ui/EditKeyboardWindow.cpp#L146-L150).
`DesktopWindowXamlSource` has to be declared and [it is initialized](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/ui/EditKeyboardWindow.cpp#L159-L162) using the [`XamlBridge`](https://github.com/microsoft/PowerToys/blob/main/src/modules/keyboardmanager/ui/XamlBridge.cpp), and [a second window handle](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/ui/EditKeyboardWindow.cpp#L161-L162) is generated for the internal Xaml Island window. Most of the code was based on the [Xaml Island Sample](https://github.com/microsoft/Xaml-Islands-Samples/blob/master/Samples/Win32/SampleCppApp/XamlBridge.cpp). The `XamlBridge` class contains code which handles initializing the Xaml Island containers as well as handling special messages like keyboard navigation, and focus between islands and between the C++ window and the island. It also has methods for clearing the xaml islands and closing the window.
Once the UI controls are created, the parent container is set as the content for the `DesktopWindowXamlSource` and the `XamlBridge.MessageLoop` is executed. Messages are processed by the C++ window handler like [`EditKeyboardWindowProc`](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/ui/EditKeyboardWindow.cpp#L364-L404). The general structure we use for this is, for any `WM_PAINT` or `WM_SIZE` message we resize the Xaml Island window. For `WM_GETMINMAXINFO` we set minimum widths so that the window cannot be resized beyond a minimum height and width. This is done to prevent the WinUI elements from overlapping and getting cropped. If it is neither of these cases we send the message to the [`XamlBridge.MessageHandler`](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/ui/XamlBridge.cpp#L291-L301) which handles Destroy, Activation and Focus. If `WM_NCDESTROY` is received when the `XamlBridge` is `nullptr`, the window thread is terminated.
**Note:** `ContentDialog` in Xaml Islands requires manually settings a `XamlRoot`. This can generally be done by passing the XamlRoot from a component in the main window, such as the button used to open the dialog ([`sender.as<Button>().XamlRoot()`](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/ui/ShortcutControl.cpp#L31-L32)). [These docs]((https://docs.microsoft.com/en-us/uwp/api/windows.ui.xaml.controls.contentdialog#contentdialog-in-appwindow-or-xaml-islands)) have more details about this.
### Debugging exceptions in XAML Islands
Sometimes if an exception occurs in XAML Islands, the stack trace may not always point to the correct code causing the exception and instead it will point to the Xaml Island message loop. In these cases the output window in VS will generally show the correct exception.
### Build times
C++ Xaml Islands generally take several minutes to build because the `pch` which contains the WinUI headers takes longer to build and compiles to a file of several GBs. To minimize the build times, multi-processor compilation within the projects have been enabled (files are distributed for compilation to the processors), and references to the Xaml headers have been removed from the .h headers files as much as possible. Since several classes of ours had class members with UI controls like `StackPanel` (which requires definitions of the classes in order to compile), we worked around this by declaring them as `IInspectable` (the equivalent of an object pointer in winrt), and initializing them to the actual control like `StackPanel` in the constructor and accessing all their member functions by inline typecasting (for `IInspectable x;` we do `x = StackPanel();` and `x.as<StackPanel>().MemberFunction()`). Check [this](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/ui/ShortcutControl.cpp#L19-L25) for this type of usage in `ShortcutControl`.
### Setting custom backgrounds for Xaml Controls using brushes
To access the brushes available on C# Xaml, it has to be done with the `Resources.Lookup` syntax:
`primaryButton.Background(Windows::UI::Xaml::Application::Current().Resources().Lookup(box_value(L"SystemControlBackgroundBaseMediumLowBrush")).as<Windows::UI::Xaml::Media::SolidColorBrush>());`
## UI Structure
The KBM UI consists of a [`Grid` with several columns](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/ui/EditKeyboardWindow.cpp#L200-L218). Rows are added dynamically when [the add button is pressed](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/ui/EditKeyboardWindow.cpp#L305-L309). [A vector of vector of unique pointers to `SingleKeyRemapControl`/`ShortcutControl`](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/ui/EditKeyboardWindow.cpp#L248-L249) is created so that references to the UI components and their data are not lost until the window is closed. [`SingleKeyRemapControl`](https://github.com/microsoft/PowerToys/blob/main/src/modules/keyboardmanager/ui/SingleKeyRemapControl.cpp) is the UI class for each row of the Remap keys table, and [`ShortcutControl`](https://github.com/microsoft/PowerToys/blob/main/src/modules/keyboardmanager/ui/ShortcutControl.cpp) is the UI class for each row of the Remap shortcuts table. [`KeyDropDownControl`](https://github.com/microsoft/PowerToys/blob/main/src/modules/keyboardmanager/ui/KeyDropDownControl.cpp) is used for handling the ComboBox operations. Each of these two classes [have vectors of unique pointers to the `KeyDropDownControl` objects](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/ui/ShortcutControl.h#L44-L45) so that references to the objects are active until the control is deleted.
When the UI windows are activated the `KeyboardManagerState` object [sets the `UIState` variable](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/ui/EditKeyboardWindow.cpp#L251-L252) which is used for distinguishing if the UI is up from the keyboard hook thread. The [states are also updated](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/ui/SingleKeyRemapControl.cpp#L53) on opening and closing the Type window.
Clicking the Type Button [opens a content dialog](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/ui/SingleKeyRemapControl.cpp#L206-L380) which registers key delays using the [`KeyDelay` class](keyboardmanagercommon.md#KeyDelay) for Enter and Esc keys and sets the UI states such that when a key event occurs the TextBlocks on the ContentDialog are updated accordingly. On accepting the dialog the selected keys are copied into the ComboBoxes from the TextBlocks, and on closing the window the key delays are unregistered and UI states are reset.
Since ComboBoxes are added dynamically, handlers have been added which [update the accessible names for these controls](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/ui/KeyDropDownControl.cpp#L69-L74), which get executed whenever a drop down is added or removed.
When the `EditKeyboardWindow`/`EditShortcutsWindow` is created, [we iterate through the remappings](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/ui/EditKeyboardWindow.cpp#L254-L262) stored in `KeyboardManagerState` and add rows to the UI Grid. For both the windows we have `static` buffers [`singleKeyRemapBuffer`](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/ui/SingleKeyRemapControl.h#L39-L40) and [`shortcutRemapBuffer`](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/ui/ShortcutControl.h#L42-L43) which store the corresponding key/shortcuts as per the selections in the UI if they are valid with no warnings.
## EditKeyboardWindow/EditShortcutsWindow
### OK and Cancel button
[On pressing the OK button](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/ui/EditKeyboardWindow.cpp#L66-L89) in `EditKeyboardWindow`, first the [`CheckIfRemappingsAreValid` method](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/ui/LoadingAndSavingRemappingHelper.cpp#L10-L44) is executed which performs basic validity checks on the current remappings in the remap buffer (`static SingleKeyRemapControl::singleKeyRemapBuffer`), such as if there are no NULL columns and none of the source keys are repeated. All other validity checks are assumed to happen while the user adds the remapping. If this is found to be invalid a ContentDialog is displayed which shows that some remappings are invalid and if the user proceeds only the valid ones will be applied. If it is valid [`GetOrphanedKeys`](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/ui/LoadingAndSavingRemappingHelper.cpp#L46-L75) is executed which checks if any keys are orphaned (i.e. the key has been remapped and no other key has been remapped to it, so there is no way to send that key code), and a dialog is shown for notifying the user with a list of orphaned keys. After this the settings are [applied by adding it to the `KeyboardManagerState.singleKeyReMap` member](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/ui/LoadingAndSavingRemappingHelper.cpp#L102-L164) and they are saved to the JSON file. `EditShortcutsWindow` differs slightly from this, as there is no orphaned keys check, and [on pressing OK](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/ui/EditShortcutsWindow.cpp#L32-L47) both the global and app-specific shortcuts are validated and [updated](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/ui/LoadingAndSavingRemappingHelper.cpp#L166-L223).
The code used for updating the remapping tables in `KeyboardManagerState` can be found [here](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/common/KeyboardManagerState.cpp#L104-L183). For shortcut remaps, the `sortedKeys` vectors are updated and re-sorted whenever an element is added to them (like [this](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/common/KeyboardManagerState.cpp#L135-L136)).
On pressing OK (after confirmation dialogs) or Cancel, the window is closed and UI states are reset.
### Delete button
Since there is no single method to delete the elements in a row for a Grid, [the logic](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/ui/SingleKeyRemapControl.cpp#L143-L188) we use involves decrementing the rowIndex for all the UI controls that appearing after the row to be deleted, and removing each of the items of the row from the Grid, followed by deleting that row definition. We also update the accessible names for all the rows since the indexing has changed. After this the corresponding row in the remap buffer is also deleted, and `SingleKeyRemapControl`/`ShortcutControl` objects are deleted from the vector.
### Handling common modifiers in EditKeyboardWindow
In the SingleKeyRemap table for a remapping of the form Ctrl->X, where Ctrl is the common version and not L/R, we can't store it directly as Ctrl->X because when the hook receives the key event it only gets LCtrl or RCtrl specifically and not `VK_CONTROL`. To simplify the backend code, when [single key remappings are applied](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/ui/LoadingAndSavingRemappingHelper.cpp#L116-L143), any remapping of the form Ctrl->X is split into Ctrl(L)->X and Ctrl(R)->X (i.e. both L and R versions are remapped to the same target), and when remappings are loaded in EditKeyboardWindow, we [pre-process the remap table](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/ui/LoadingAndSavingRemappingHelper.cpp#L77-L100) such that if the L and R versions of a modifier are remapped to the same key/shortcut we combine them. This also results in the behavior where a user adds LCtrl->X and RCtrl->X and after closing and re-opening KBM UI it appears combined as Ctrl->X.
## SingleKeyRemapControl
The left drop down column uses a single ComboBox and the Type button is linked to `createDetectKeyWindow`, whereas the right column is linked to `createDetectShortcutWindow` as the column can accept a key or a shortcut (required to support key to key and key to shortcut). The `KeyDropDownControl` for the left column in the window uses a smaller key list, without `None`.
## ShortcutControl
Both the columns in are linked to `createDetectShortcutWindow`, however the drop down selection handlers differ in their logic as the left column only allows shortcuts, and the drop downs do not contain the `Disable` key, whereas the right column allows you to select both shortcuts and keys (to support shortcut to shortcut and shortcut to key), and it allows selection of `Disable`.
For the app-specific shortcut target app text-box, we had to validate that the shortcut row is still valid when the target app is changed (for example, <kbd>Ctrl+A</kbd> is remapped for Chrome, and another remapping for <kbd>Ctrl+A</kbd> was remapped to Edge, but the target was changed to Chrome.). For this we didn't use the TextChanged handler as every time a letter is typed it would get executed. Instead we used the [`LostFocus` handler](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/ui/ShortcutControl.cpp#L108-L167) which gets executed whenever you focus into the box (by clicking or tabbing) and then tabbing or clicking out. In the method we perform the same shortcut buffer validation used for selections in the drop down menus and update the buffers accordingly.
## KeyDropDownControl
Each ComboBox has a linked flyout, which is used to show warnings to the users whenever a user selects an invalid key from the drop down. When the warning is displayed the ComboBox is also reset to -1, i.e. no selection.
For selection handlers on the ComboBoxes we couldn't use just the SelectionChanged handler directly as it gets executed even on searching for elements in the drop down. Instead we used DropDownClosed (when a user opens the drop down and searches and selects something) and SelectionChanged when the drop down is not open (for setting selections programmatically or selection made by searching with tab focus on the drop down without opening it). This was required because if we execute the selection handlers while users are searching, it could cause false positive flyout warnings if the search causes an invalid value to be selected, and flyouts cause the drop down to close leading to bad UI experience.
### Localized key names
For getting localized key names and symbols for each virtual key code, whenever the key lists are accessed, i.e. [whenever the drop down is opened](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/ui/KeyDropDownControl.cpp#L56-L60) or when `GetKeyName` is called in the Type window, the current `KeyboardLayout` is retrieved to ensure that the displayed key names are always updated. Since the `WM_INPUTLANGCHANGED` event was having some issues with XAML islands we weren't able to use this to update the keyboard layout. In addition to this we do not refresh the UI, so the key lists get updated only on opening/interacting with them.
### Single Key ComboBox Selection Handler
On making a selection in the drop down, [the selection handler](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/ui/KeyDropDownControl.cpp#L91-L130) validates the input with the buffer from the other column and other rows. Error messages are shown using flyouts if the selection is not considered valid and the drop down and buffer for that entry are reset to empty selection. The errors that can occur on the single key ComboBox are:
- Remap to same key (A->A)
- Same key previously remapped (A->B and A->C)
- Conflicting modifier previously remapped (Ctrl->A and Ctrl(left)->B, since Ctrl also includes Ctrl(left))
If the selection is found to be valid, the `singleKeyRemapBuffer` is updated accordingly.
For handling `Shortcut` and key in the remap buffer for the right column, we use `std::variant`, which allows us to store either of the two types and check which one of them is present in the buffer by using the `index` method.
[`ValidateAndUpdateKeyBufferElement`](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/ui/BufferValidationHelpers.cpp#L8-L66) does not reference any UI components and instead takes all the relevant data as arguments. This method [has tests](https://github.com/microsoft/PowerToys/blob/main/src/modules/keyboardmanager/test/BufferValidationTests.cpp) which covers all the cases that could arise from making selections on the UI.
### Shortcut ComboBox Selection Handler
On making a selection in the drop down, [the selection handler](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/ui/KeyDropDownControl.cpp#L215-L295) validates the input with the buffer from the other column and other rows. Error messages are shown using flyouts if the selection is not considered valid and the drop down and buffer for that entry are reset to empty selection.
This differs from the Single Key ComboBox handler in the sense that after validating the current selection we may perform [a set of actions](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/ui/KeyDropDownControl.cpp#L160-L204) such as:
- Adding a drop down (if a modifier is selected)
- Removing a drop down (if None is selected)
- Clearing terminal empty drop downs (if an action key is selected in a non-last drop down and the remaining ones are empty)
After performing the corresponding action, if any, we check if the drop down resulted in an error, in which case we do [a second level of validation](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/ui/KeyDropDownControl.cpp#L224-L229) on all the drop downs in that list of drop downs. This is done because there can be cases where an error in one drop down results us setting it to empty, and the remaining selection is also invalid. For example, you have Ctrl+A -> Ctrl+Shift+A, and you change Shift to Ctrl. This would show a warning for having two Ctrls in the shortcut being invalid, after which setting that to empty would result in Ctrl+A->Ctrl+Empty+A, which is a case of remapping a shortcut to itself.
Once this second level of validation is done, we proceed with [updating the buffer](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/ui/KeyDropDownControl.cpp#L231-L251). Depending on the number of drop downs with valid values, this could be either a key or a shortcut (for the right columns). We also [set the buffer value for the target app](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/ui/KeyDropDownControl.cpp#L252-L267) while doing this.
Unlike the Single Key handler, there is a different set of errors that can occur here which are related to making a selection that is considered as a valid shortcut. The `isHybridControl` argument is used to distinguish between the differing behaviors for the two types of columns (shortcut only or shortcut/key column). The errors that can occur for this handler are:
- Shortcut must start with modifier (selecting A on the first drop for the left column is invalid)
- Shortcut can't have a repeated modifier (Ctrl+Ctrl(left)+A is not a shortcut)
- Shortcut can only have up to 2 modifiers (Ctrl+Shift+Alt is not supported as we have enforced a 3 key constraint (**not a backend limitation, there is [an issue](https://github.com/microsoft/PowerToys/issues/3936) requesting to remove this**))
- Shortcut must contain an action key (Ctrl+A and change A to None, only for left column)
- Shortcut must have at least two keys (Ctrl+A and change Ctrl to None, only for left column)
- Disable can't be a modifier or action key (Ctrl+Disable is invalid)
- Shortcut can't have more than one action key (Ctrl+Shift+A, change Shift to B)
- Remap to same shortcut(Ctrl+A->Ctrl+A)
- Same shortcut previously remapped for same target app (Ctrl+A->B and Ctrl+A->C)
- Conflicting shortcut previously remapped for same target app (Ctrl+A->B and Ctrl(left)+A->C, since Ctrl also includes Ctrl(left))
- Illegal shortcut remaps like Win+L or Ctrl+Alt+Del (since these cannot be remapped using LL hooks)
[`ValidateShortcutBufferElement`](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/ui/BufferValidationHelpers.cpp#L68-L304) does not reference any UI components and instead takes all the relevant data as arguments. This method [has tests](https://github.com/microsoft/PowerToys/blob/main/src/modules/keyboardmanager/test/BufferValidationTests.cpp) which covers all the cases that could arise from making selections on the UI.
**Note:** After updating the buffer we have [code to handle a special case](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/ui/KeyDropDownControl.cpp#L269-L279), which was required to prevent scenarios where a drop down can get deleted but the corresponding `KeyDropDownControl` object isn't deleted. The code checks if the drop down is still linked to the parent and accordingly deletes the `KeyDropDownControl` object from the vector.
**IgnoreKeyToShortcutWarning special case:** [An additional](https://github.com/microsoft/PowerToys/blob/b80578b1b9a4b24c9945bddac33c771204280107/src/modules/keyboardmanager/ui/KeyDropDownControl.cpp#L177-L181) check was added to ignore the Map to Same key error when an existing remapping is loaded. This was because a remapping like Ctrl->Ctrl+A has an intermediate step of Ctrl->Ctrl, which could lead to an error of invalid input, even though Ctrl+A is valid. The only way to actually add this is from the Type button or by adding them in a different order (like typing Shift+A and then changing Shift to Ctrl). Since the intermediate check could fail, this was causing the app to crash since the Xaml Island wouldn't be completely loaded at that point and the Flyout can't be displayed. [This](https://github.com/microsoft/PowerToys/issues/6695) is the linked issue which describes the repro scenario.

View File

@@ -0,0 +1,48 @@
# Architecture
## Overview
`PowerToys Run` is a plugin-based .net core desktop application. It is written in WPF using `Model-View-ViewModel (MVVM)` structural design pattern. This article provides an overview of `PowerToys Run` architecture and introduces major components in the data flow.
Note : We refer to base application without plugins as `PowerLauncher`, which is same as the name of startup WPF project.
## UI
PowerToys Run UI is written in the WPF framework. The UI code is present in the Powerlauncher project and is spanned across three high-level components: [`MainWindow.xaml`](/src/modules/launcher/PowerLauncher/MainWindow.xaml), [`LauncherControl.xaml`](/src/modules/launcher/PowerLauncher/LauncherControl.xaml) and [`ResultList.xaml`](/src/modules/launcher/PowerLauncher/LauncherControl.xaml). These components are discussed below.
![Image of PowerToys Run UI](/doc/images/launcher/pt_run_ui.png)
**Fig 1: PowerToys Run UI architecture**
1. **[`MainWindow.xaml`](/src/modules/launcher/PowerLauncher/MainWindow.xaml)**: This is the outermost-level UI control. It is composed of lower-level UI components such as [`LauncherControl.xaml`](/src/modules/launcher/PowerLauncher/LauncherControl.xaml) and [`ResultList.xaml`](/src/modules/launcher/PowerLauncher/LauncherControl.xaml). The corresponding code-behind file implements all the UI related functionalities such as autosuggest, key-bindings, toggling visibility of WPF window and animations.
2. **[`LauncherControl.xaml`](/src/modules/launcher/PowerLauncher/LauncherControl.xaml)**: This control implements the UI component for editing query text.(marked in red in Fig 1) It consists of two overlapping WPF controls, `TextBox` and `TextBlock`. The outer `TextBox` is used for editing query whereas the inner `TextBlock` is used to display autosuggest text.
3. **[`ResultList.xaml`](/src/modules/launcher/PowerLauncher/LauncherControl.xaml)**: This control implements the UI component for displaying results (marked in green in Fig 1). It consists of a `ListView` WPF control with a custom `ItemTemplate` to display application logo, name, tooltip text, and context menu.
## Data flow
The backend code is written using the `Model-View-ViewModel (MVVM)` structural design pattern. Plugins act as `Model` in this project. A detailed overview of the project's structure is given [here](/doc/devdocs/modules/launcher/project_structure.md).
#### Flow of data between UI(view) and ViewModels
Data flow between View and ViewModel follows typical `MVVM` scheme. Properties in viewModels are bound to WPF controls and when these properties are updated, `INotifyPropertyChanged` handler is invoked, which in turn updates UI. The diagram below provides a rough sketch of the components involved.
![Flow of data between UI(view) and ViewModels](/doc/images/launcher/ui_vm_interaction.PNG)
**Fig 2: Flow of data between UI and ViewModels.**
#### Flow of data between ViewModels and Plugins(Model)
`PowerLauncher` interact with plugins using [`IPlugin`](/src/modules/launcher/Wox.Plugin/IPlugin.cs) and `IDelayedExecutionPlugin` interface. [`IPlugin`](/src/modules/launcher/Wox.Plugin/IPlugin.cs) is used for initialization and making queries which are fast (typically return results in less than 100ms).[`IDelayedExecutionPlugin`](/src/modules/launcher/Wox.Plugin/IDelayedExecutionPlugin.cs) is used for long-running queries and is implemented only when required. For example, [`IDelayedExecutionPlugin`](/src/modules/launcher/Wox.Plugin/IDelayedExecutionPlugin.cs) is implemented by indexer plugin for searching files with names of form \*abc\*.
```
public interface IPlugin
{
// Query plugin
List<Result> Query(Query query);
// Initialize plugin
void Init(PluginInitContext context);
}
public interface IDelayedExecutionPlugin : IFeatures
{
// Query plugin
List<Result> Query(Query query, bool delayedExecution);
}
```
![Flow of data between UI(view) and ViewModels](/doc/images/launcher/vm_plugin_interaction.PNG)
**Fig 3: Flow of data between ViewModels and Plugins.**
#### Requesting services from powerlauncher
Plugins could use the [`IPublicAPI`](/src/modules/launcher/Wox.Plugin/IPublicAPI.cs) interface to request services such as getting the current theme (for deciding logo background), displaying messages to the user, and toggling the visibility of PowerLauncher.

View File

@@ -0,0 +1,20 @@
# Debugging
`PowerToys Run` is a single exe file associated with `launcher.exe` process and debugger should be attached to this process. There are two approaches to debug `PowerToys Run`. Both these approaches differ in the compile-time and the range of functionalities that could be debugged. These methods are discussed in detail in the following sections.
## Debugging Prerequisite
Setup development environment for PowerToys by following instruction [here.](https://github.com/microsoft/PowerToys/tree/main/doc/devdocs#prerequisites-for-compiling-powertoys)
## Direct debugging
This approach is used to test UI, plugins, and core `PowerToys Run` functionality. This **cannot** be used to test `PowerToys Run` settings. The approach is significantly faster compared to `Debugging with runner`, as it requires compiling projects relevant to `PowerToys Run`. Please follow the steps below for direct debugging.
1. Right-click on `modules->launcher->PowerLauncher` and select `Set as startup Project`.
2. Press `F5` to start debugging.
## Debugging with runner
This approach can be used to test UI, plugins, core `PowerToys Run` functionality and `PowerToys Run` settings. This approach **cannot** be used to debug functions that execute on starting `launcher.exe` process. This requires building runner along with all the other modules on first compile, making it slower than `Direct debugging` approach. The subsequent compilations should be fast.
1. Right-click on `runner` and select `Set as startup Project`.
2. Press `F5` to start debugging.
3. Attach debugger to `launcher.exe` process.
1. Go to `Debug->Attach to process..`
2. Filter and select `launcher.exe` process.
3. Click on `Attach`.

View File

@@ -0,0 +1,35 @@
# New plugin checklist
- [ ] The plugin is a project under `modules\launcher\Plugins`
- [ ] Microsoft plugin project name pattern: `Microsoft.PowerToys.Run.Plugin.{PluginName}`
- [ ] Community plugin project name pattern: `Community.PowerToys.Run.Plugin.{PluginName}`
- [ ] The project file should import `Version.props` and specify `<Version>$(Version).0</Version>`
- [ ] Make sure `*.csproj` specify only x64 platform target
- [ ] The plugin has to contain a `plugin.json` file of the following format in its root folder
```
{
"ID": string, // GUID string
"ActionKeyword": string, // Direct activation phrase
"IsGlobal": boolean,
"Name": string, // Has to be unique, same as 'PluginName' in the project name pattern
"Author": string,
"Version": "1.0.0", // For future compatibility
"Language": "csharp", // So far we support only csharp
"Website": "https://aka.ms/powertoys",
"ExecuteFileName": string, // Should be {Type}.PowerToys.Run.Plugin.{PluginName}.dll
"IcoPathDark": string, // Path to dark theme icon. The path is relative to the root plugin folder
"IcoPathLight": string // Path to light theme icon. The path is relative to the root plugin folder
}
```
- [ ] Do not use plugin name or PowerToys as prefixes for entities inside of the plugin project
- [ ] The plugin has to have Unit tests. Use MSTest framework
- [ ] Plugin's output code and assets have to be included in the installer [`Product.wxs`](/installer/PowerToysSetup/Product.wxs)
- [ ] Test the plugin with a local build. Build the installer, install, check that the plugin works as expected
- [ ] All plugin's binaries have to be included in the signed build [`pipeline.user.windows.yml`](/.pipelines/pipeline.user.windows.yml)
- [ ] The plugin target framework has to be .NET Core 3.1. All dependencies have to have .NET 5 version
Some localization steps can only be done after the first pass by the localization team to provide the localized resources.
In the PR that adds a new plugin, reference a new issue to track the work for fully enabling localization for the new plugin.
- [ ] Add the resource folder to https://github.com/microsoft/PowerToys/blob/21247c0bb09a1bee3d14d6efa53d0c247f7236af/installer/PowerToysSetup/Product.wxs#L825
- [ ] Add the resource files under the section https://github.com/microsoft/PowerToys/blob/21247c0bb09a1bee3d14d6efa53d0c247f7236af/installer/PowerToysSetup/Product.wxs#L882

View File

@@ -0,0 +1,59 @@
# Calculator Plugin
The Calculator plugin as the name suggests is used to perform calculations on the user entered query.
![Image of Calculator plugin](/doc/images/launcher/plugins/calculator.png)
## Optional plugin settings
* We have the following settings that the user can configure to change the behavior of the plugin:
| Key | Default value | Name | Description |
|--------------|-----------|------------|------------|
| `InputUseEnglishFormat` | `false` | Use English (United States) number format for input | Ignores your system setting and expects numbers in the format '1,000.50' |
| `OutputUseEnglishFormat` | `false` | Use English (United States) number format for output | Ignores your system setting and returns numbers in the format '1000.50' |
* The optional plugin settings are implemented via the [`ISettingProvider`](/src/modules/launcher/Wox.Plugin/ISettingProvider.cs) interface from `Wox.Plugin` project. All available settings for the plugin are defined in the [`Main`](/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.Calculator/Main.cs) class of the plugin.
## Technical details
### [`BracketHelper`](/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.Calculator/BracketHelper.cs)
- This helper validates the bracket usage in the input string.
### [`CalculateHelper`](/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.Calculator/CalculateHelper.cs)
- The [`CalculateHelper.cs`](src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.Calculator/CalculateHelper.cs) class checks to see if the user entered query is a valid input to the calculator and only if the input is valid does it perform the operation.
- It does so by matching the user query to a valid regex.
### [`CalculateEngine`](src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.Calculator/CalculateEngine.cs)
- The main computation is done in the [`CalculateEngine.cs`](src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.Calculator/CalculateEngine.cs) file using the `Mages` library.
```csharp
var result = CalculateEngine.Interpret(query.Search, CultureInfo.CurrentUICulture);
```
### [`CalculateResult`](src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.Calculator/CalculateResult.cs)
- The class which encapsulates the result of the computation.
- It comprises of the `Result` and `RoundedResult` properties.
### [`ErrorHandler`](/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.Calculator/ErrorHandler.cs)
- The class which encapsulates the code to log errors and format the user message.
- It returns an error result if the user searches with the activation command. This error result is shown to the user.
### Score
The score of each result from the calculator plugin is `300`.
## [Unit Tests](/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.Calculator.UnitTests)
We have a [Unit Test project](/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.Calculator.UnitTests) that executes various test to ensure that the plugin works as expected.
### [`BracketHelperTests`](/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.Calculator.UnitTests/BracketHelperTests.cs)
- The [`BracketHelperTests.cs`](/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.Calculator.UnitTests/BracketHelperTests.cs) class contains tests to validate that brackets are handled correctly.
### [`ExtendedCalculatorParserTests`](/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.Calculator.UnitTests/ExtendedCalculatorParserTests.cs)
- The [`ExtendedCalculatorParserTests.cs`](/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.Calculator.UnitTests/ExtendedCalculatorParserTests.cs) class contains tests to validate that the input is parsed correctly and the result is correct.
### [`NumberTranslatorTests`](/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.Calculator.UnitTests/NumberTranslatorTests.cs)
- The [`NumberTranslatorTests.cs`](/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.Calculator.UnitTests/NumberTranslatorTests.cs) class contains tests to validate that each number is converted correctly based on the defined locals.
### [`QueryTests`](/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.Calculator.UnitTests/QueryTests.cs)
- The [`QueryTests.cs`](/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.Calculator.UnitTests/QueryTests.cs) class contains tests to validate that the user gets the correct results when searching.

View File

@@ -0,0 +1,31 @@
# Unit Converter Plugin
The Unit Convert plugin as the name suggests is used to perform unit conversion on the user entered query.
This plugin uses a package called [UnitsNet](https://github.com/angularsen/UnitsNet).
![Image of Calculator plugin](/doc/images/launcher/plugins/community.unitconverter.png)
### Currently Supported Units
- [Acceleration](https://github.com/angularsen/UnitsNet/blob/master/UnitsNet/GeneratedCode/Units/AccelerationUnit.g.cs)
- [Angle](https://github.com/angularsen/UnitsNet/blob/master/UnitsNet/GeneratedCode/Units/AngleUnit.g.cs)
- [Area](https://github.com/angularsen/UnitsNet/blob/master/UnitsNet/GeneratedCode/Units/AreaUnit.g.cs)
- [Duration](https://github.com/angularsen/UnitsNet/blob/master/UnitsNet/GeneratedCode/Units/DurationUnit.g.cs)
- [Energy](https://github.com/angularsen/UnitsNet/blob/master/UnitsNet/GeneratedCode/Units/EnergyUnit.g.cs)
- [Information](https://github.com/angularsen/UnitsNet/blob/master/UnitsNet/GeneratedCode/Units/InformationUnit.g.cs)
- [Length](https://github.com/angularsen/UnitsNet/blob/master/UnitsNet/GeneratedCode/Units/LengthUnit.g.cs)
- [Mass](https://github.com/angularsen/UnitsNet/blob/master/UnitsNet/GeneratedCode/Units/MassUnit.g.cs)
- [Power](https://github.com/angularsen/UnitsNet/blob/master/UnitsNet/GeneratedCode/Units/PowerUnit.g.cs)
- [Pressure](https://github.com/angularsen/UnitsNet/blob/master/UnitsNet/GeneratedCode/Units/PressureUnit.g.cs)
- [Speed](https://github.com/angularsen/UnitsNet/blob/master/UnitsNet/GeneratedCode/Units/SpeedUnit.g.cs)
- [Temperature](https://github.com/angularsen/UnitsNet/blob/master/UnitsNet/GeneratedCode/Units/TemperatureUnit.g.cs)
- [Volume](https://github.com/angularsen/UnitsNet/blob/master/UnitsNet/GeneratedCode/Units/VolumeUnit.g.cs)
These are the ones that are currently enabled (though UnitsNet supports many more). They are defined in [`Main.cs`](/src/modules/launcher/Plugins/Community.PowerToys.Run.UnitConverter/Main.cs).
### [`InputInterpreter`](/src/modules/launcher/Plugins/Community.PowerToys.Run.UnitConverter/InputInterpreter.cs)
- Class which manipulates user input such that it may be interpreted correctly and thus converted.
- Uses a regex amongst other things to do this.
### [`UnitHandler`](/src/modules/launcher/Plugins/Community.PowerToys.Run.UnitConverter/UnitHandler.cs)
- Class that does the actual conversion.
- Supports abbreviations in user input (single, double, or none).

View File

@@ -0,0 +1,17 @@
# Folder Plugin
The Folder plugin is used to navigate the directory structure and display the sub-folders and files within a folder.
![Image of Folder plugin](/doc/images/launcher/plugins/folder.png)
### [`FolderHelper.cs`](src/modules/launcher/Plugins/Microsoft.Plugin.Folder/Sources/Path/FolderHelper.cs)
- The [`FolderHelper`](src/modules/launcher/Plugins/Microsoft.Plugin.Folder/Sources/Path/FolderHelper.cs) class leverages the `DriveInformation` and `folderLinks` to get the folder results for a user query.
- The [`DriveInformation`](src/modules/launcher/Plugins/Microsoft.Plugin.Folder/Sources/Path/DriveInformation.cs) class gets the list of all drives on the system.
- The [`FolderLink`](src/modules/launcher/Plugins/Microsoft.Plugin.Folder/Sources/FolderLink.cs) object corresponds to a user created link for frequently accessed projects. This was inherited from Wox but is presently not functional as we don't have the UI setup in settings to get this user input. Each folderLink object has a `nickname`, which is the name of the folder and this can be used to directly access that folder instead of entering the entire path.
### [`IFolderProcessor.cs`](src/modules/launcher/Plugins/Microsoft.Plugin.Folder/Sources/IFolderProcessor.cs)
The `IFolderProcessor` utilizes the `FolderHelper` class to extract the folders and return the results.
There are two types of Folder Processors, based on the type of information they are processing -
1. [`UserFolderProcessor`](src/modules/launcher/Plugins/Microsoft.Plugin.Folder/UserFolderProcessor.cs) - This Processor is currently not used in PT Run but it is used to process the user created folder links.
2. [`InternalDirectoryProcessor`](src/modules/launcher/Plugins/Microsoft.Plugin.Folder/InternalDirectoryProcessor.cs) - This processor is used to retrieve the files and folders located within the current drive or shared folder.
### Score
The first result is of score 500 and the following results are scored 10.

View File

@@ -0,0 +1,103 @@
# History Plugin
The History Plugin allows users to search or display results they have used (selected).
## How it works
The plugin uses data that was already being captured which is, what results were clicked, and how many times. We do add a little more data to this set now.
When this plugin is queried, it creates results based on this previously selected results data.
In order to make sure selected results in the history are still valid, we re-query the plugin the relevant plug using the PluginManager. If there are no results,
this history item is not included. This usually means that the result is no longer valid. For instance, if a file was deleted, but it's still in the selected history
we don't want to show it as a selectable result.
Because the results from the History Plugin are actually created from calls to the PluginManager, they will be exactly the same is if they did not come from the History Plugin.
## Special notes
While the results returned from the plugin are from the PluginManager, they are sometimes modified before returning. One example is the Calculator plugin.
Since the Calculator plugin operates on the current query input by the user, the results from Calculator plugin don't include that in the title. However, as a history item,
the query is very important. In this case, and maybe others in the future, we modify the tile to also include the search.
### Modified title example:
This is what the Calculator plugin normally might show:
![image](https://user-images.githubusercontent.com/4396667/184661303-4f8cf0da-2956-46b9-bdc1-ed879cd0b7cc.png)
But this is how it will look returned from the History plugin
![image](https://user-images.githubusercontent.com/4396667/184661450-9ec3c416-66df-40c8-b004-da8b0cebc5c5.png)
As you can see, here and maybe other places, other non-history plugin might be able to include extra data for the History plugin to use later.
For example, in future, plugins might be able to also set a "History Title", "History Icon", etc... But for now, it's not needed.
## Duplicates from the History Plugin in global results
If the History plugin is set to show in the global results, it might return a result that is also returned from another plugin. If a match is found,
the result from the history plugin is discarded.
## Removing items from history
A new context menu item is added to each History result, which can be used to delete it from the history.
![image](https://user-images.githubusercontent.com/4396667/184656195-6d9f1a49-652c-4027-a424-535e9fb1f2a8.png)
## Context menus
Because these results are coming from the History plugin, this plugin must invoke each menu items `LoadContextMenus` method.
We then also add the "Remove this from history" context menu action.
## Results score
When the plugin is used with the activation command, the scores are configured so the results show with the more recently selected items at the top.
If the history results are shown in the global results, the scores are not modified from that the original plugin set.
## Old Data
Items selected before this plugin was created will not show in the history because they don't contain enough data.
## Important for developers
### Important plugin values (meta-data)
| Name | Value |
| --------------- | ---------------------------------------------------- |
| ActionKeyword | `!!` |
| ExecuteFileName | `Microsoft.PowerToys.Run.Plugin.History.dll` |
| ID | `C88512156BB74580AADF7252E130BA8D` |
### Interfaces used by this plugin
The plugin uses only these interfaces (all inside the `Main.cs`):
* `Wox.Plugin.IPlugin`
* `Wox.Plugin.IContextMenu`
* `Wox.Plugin.IPluginI18n`
### Program files
| File | Content |
| ------------------------------------- | ----------------------------------------------------------------------- |
| `Images\history.dark.png` | Symbol for the results for the dark theme |
| `Images\history.light.png` | Symbol for the results for the light theme |
| `Properties\Resources.Designer.resx` | File that contain all translatable keys |
| `Properties\Resources.resx` | File that contains all translatable strings in the neutral language |
| `Main.cs` | Main class, the only place that implements the WOX interfaces |
| `ErrorHandler.cs` | Class to build error result on plugin failure |
| `plugin.json` | All meta-data for this plugin |
### Important project values (*.csproj)
| Name | Value |
| --------------- | ------------------------------------------------- |
| TargetFramework | `net6.0-windows10.0.19041.0` |
### Project dependencies
#### Projects
* `Wox.Infrastructure`
* `Wox.Plugin`
* `PowerToys.PowerLauncher`
#### Build Dependency
Access to PluginManager was needed to make this plugin work. Because of this a reference to PowerToys.PowerLauncher was needed.
Since History Plugin needs a reference to PowerToys.PowerLauncher, it can not be set as a dependency reference in PowerToys.PowerLauncher project (else a circular reference would exist).
This means that if you build PowerToys.PowerLauncher only it will not build History Plugin. You will need to manually build History Plugin at least once and again manually if you change it.
### Caching
Right now, there is no caching. But since this plugin does cause more queries than expected to many plugins, the `BuildResult` method is likely to be improved with some level of caching.

View File

@@ -0,0 +1,39 @@
# Indexer Plugin
The indexer plugin is used to search for files within the indexed locations of the system.
![Image of Indexer plugin](/doc/images/launcher/plugins/indexer.png)
### [Drive Detection](src/modules/launcher/Plugins/Microsoft.Plugin.Indexer/DriveDetection)
- There are two indexing modes in Windows:
1. **Classic mode**: Only the desktop and certain customizable locations in the system are indexed. All the systems have the classic mode enabled by default.
2. **Enhanced Mode**: This mode indexes the entire PC when enabled. The user can exclude certain locations from being indexed in this mode from the Windows Search settings options.
- A drive detection warning is displayed to the users when only the custom mode is enabled on the system informing the user that not all the locations on their PC are indexed as this could lead to some results not showing up.
- The [`IndexerDriveDetection.cs`](src/modules/launcher/Plugins/Microsoft.Plugin.Indexer/DriveDetection/IndexerDriveDetection.cs) file gets the status of the drive detection checkbox in the settings UI and depending on whether the enhanced mode is enabled or disabled, displays the warning.
- To determine whether the `EnhancedMode` is enabled or not, we check the local machine registry entry for `EnableFindMyFiles`. If it is set to 1, the enhanced mode is enabled.
### [`OleDBSearch`](src/modules/launcher/Plugins/Microsoft.Plugin.Indexer/SearchHelper/OleDBSearch.cs)
- The `Query` function within the [`OleDBSearch.cs`](src/modules/launcher/Plugins/Microsoft.Plugin.Indexer/SearchHelper/OleDBSearch.cs) class takes in the query and the connection string to the SystemIndex catalog as arguments and returns a list of results.
- It first opens a [connection][OLEDBConnection] to the Windows Indexer database, creates an [OleDB command][OLEDBCommand] and executes the command to get a list of results.
### [`WindowsSearchAPI`](src/modules/launcher/Plugins/Microsoft.Plugin.Indexer/SearchHelper/WindowsSearchAPI.cs)
- The [`WindowsSearchAPI`](src/modules/launcher/Plugins/Microsoft.Plugin.Indexer/SearchHelper/WindowsSearchAPI.cs) class leverages the [`OleDBSearch.cs`](src/modules/launcher/Plugins/Microsoft.Plugin.Indexer/SearchHelper/OleDBSearch.cs) class to execute the query.
- It initializes the `QueryHelper` in the `InitQueryHelper()` function by creating a catalog manager to the SystemIndex catalog.
- The metadata is initialized within the query helper, such as the number of results to retrieve, the type of information to retrieve for each file (currently we retrieve the item URL, the file name and the file attributes).
- The query helper matches results using the name of the file only and they are sorted by the last modified date, ensuring that the recently modified files are ranked higher.
- The File attributes are utilized to filter out hidden files from being displayed.
### Additional Information
- There are two major types of queries generated by the indexer plugin:
1. Full Text predicates - eg: [CONTAINS][Contains]
2. Non-Full Text predicates - eg: [LIKE][Like]
- The Full text predicates are much faster than non-full text predicates as they are based on finding matches rather than comparing the query with each item in the indexer database. Hence, queries which have the `CONTAINS` keyword are much faster than those which contain the `LIKE` keyword.
- To prevent the indexer query from taking a long time and blocking the UI thread, there are two types of indexer queries which are executed. A simplified query and a full query, without and with the `LIKE` keyword respectively.
- The result list is updated with the results of the full query once they are obtained.
### Score
Each of the indexer plugin results has a score set to 0 so they are present at the bottom of the list.
[OLEDBCommand]: https://docs.microsoft.com/en-us/dotnet/api/system.data.oledb.oledbcommand?view=dotnet-plat-ext-3.1
[OLEDBConnection]: https://docs.microsoft.com/en-us/dotnet/api/system.data.oledb.oledbconnection?view=dotnet-plat-ext-3.1
[Contains]: https://docs.microsoft.com/en-us/windows/win32/search/-search-sql-contains
[Like]: https://docs.microsoft.com/en-us/windows/win32/search/-search-sql-like

View File

@@ -0,0 +1,38 @@
# OneNote Plugin
The OneNote plugin searches your locally synced OneNote notebooks based on the user query.
![Image of OneNote plugin](/doc/images/launcher/plugins/onenote.png)
The code itself is very simple, basically just a call into OneNote interop via the https://github.com/scipbe/ScipBe-Common-Office library.
```csharp
var pages = OneNoteProvider.FindPages(query.Search);
```
The query results will be cached for 1 day, and if cached results are found they'll be returned in the initial `Query()` call, otherwise OneNote itself will be queried in the `delayedExecution:true` overload.
If the user actions on a result, it'll open it in the OneNote app, and restore and/or focus the app as well if necessary.
```csharp
if (PInvoke.IsIconic(handle))
{
PInvoke.ShowWindow(handle, SHOW_WINDOW_CMD.SW_RESTORE);
}
PInvoke.SetForegroundWindow(handle);
```
The plugin attempts to call the library in the constructor, and if it fails with a COMException then it'll note that OneNote isn't available and not attempt to query it again.
```csharp
try
{
_ = OneNoteProvider.PageItems.Any();
_oneNoteInstalled = true;
}
catch (COMException)
{
// OneNote isn't installed, plugin won't do anything.
_oneNoteInstalled = false;
}
```

View File

@@ -0,0 +1,38 @@
# Structural Overview
The following basic functions are common to each of the plugins. They perform some rudimentary operations such as initialization of the plugin, executing the query that has been entered, loading context menu icons, updating settings when configurations are altered in the settings UI, and updating the theme of the icons when the theme changed event is triggered.
## IPlugin Interface
Each plugin implements the `IPlugin` interface which comprises of the `Init()` and `Query()` functions.
### `Init`
- The `Init()` function initializes the context, storage and settings of each plugin. This is equivalent to a constructor and is the first function to be called in the `Main.cs` file for each plugin.
### `Query`
- For every query that the user enters into PT Run, the `PluginManager.cs` executes the `Query()` function in the `Main.cs` file corresponding to each Plugin.
### Context Menu Icons
- The `ContextMenus` are loaded for each result based on the type of the result.
- The various types of `ContextMenu` functionalities are:
- Open containing folder
- Run as Administrator
- Open in console
- Copy path
### UpdateSettings
- This function updates the settings of each plugin based on the changes made by the user in the settings UI.
- Eg: To disable drive detection in the indexer plugin, when the user checks or unchecks the drive detection check box, the `UpdateSettings()` function dispatches the changes in the check box to the plugin.
### ThemeChanged
- This function is invoked when there is a change in the theme of PT Run.
- It is used to update the `IconPath` for each plugin based on the theme.
### Save
- This function saves the configurations of each plugin so that they can be loaded the next time.
### Score
- The user query is executed against each of the plugins and the result list view is updated with results from each of the plugins.
- The ordering of the results is based on the `Score` of each Result.
- Each plugin assigns a score to a result based on it's relevance. The results with higher scores are displayed higher in the list view and vice versa.
## Plugin settings
Plugin settings that are editable from the settings are stored in `PowerToys Run\settings.json`. In the very first run, those settings are populated from plugin' `plugin.json` file. Unlike Wox we do not support multiple action keywords. Instead, we have `ActionKeyword` and `IsGlobal` options.

View File

@@ -0,0 +1,43 @@
# Program Plugin
The program plugin as the name suggests is used to search for programs installed on the system.
![Image of Program plugin](/doc/images/launcher/plugins/program.png)
There are broadly two different categories of applications:
1. Packaged applications
2. Win32 applications
### [UWP](src/modules/launcher/Plugins/Microsoft.Plugin.Program/Programs/UWP.cs)
- The logic for indexing Packaged applications is present within the [`UWP.cs`](src/modules/launcher/Plugins/Microsoft.Plugin.Program/Programs/UWP.cs) file.
- There can be multiple applications present within a package. The [`UWPApplication.cs`](src/modules/launcher/Plugins/Microsoft.Plugin.Program/Programs/UWPApplication.cs) file encapsulates the properties of a packaged application.
- To index packaged applications, the `PackageManager` retrieves all the packages for the current user and indexes all the applications.
- To retrieve the app icon for packaged applications, the assets path is retrieved from the `Application Manifest` file. There are multiple icons corresponding to each scale, target size and theme. The best icon is chosen given the theme of powerToys Run.
### [Win32Program](src/modules/launcher/Plugins/Microsoft.Plugin.Program/Programs/Win32Program.cs)
- Win32 programs in the following locations are indexed by PT Run-
1. Desktop
2. Public Desktop (Applications present on the desktop of all the users)
3. Registry (Some programs)
4. Start Menu
5. Common start menu (Applications which are common to all users)
8. Locations pointed to by the PATH environment variable.
- To prevent applications and shortcuts present in multiple locations from showing up as duplicate results, we consider apps with the same name, executable name and full path to be the same.
- The subtitle of the application result is set based on it's application type. It could be one of the following:
1. Lnk Shortcuts
2. Appref files
3. Internet shortcut - steam and epic games
4. PWAs
5. Run commands - these are indexed by the PATH environment variable
### Score
- The score for each application result is based on the how many letters are matched, how close the matched letters are to the actual word and the index of the matched characters.
- There is a threshold score to decide the apps which are to be displayed and applications which have a lower score are not displayed by PT Run.
### Update Program List in Runtime
- Packaged and Win32 app helpers exist to reflect changes in the list of indexed apps when applications are installed on the system while PT Run is executing.
- Packaged applications trigger events when the package is being installed and uninstalled. PT Run listens to those events to index applications which are newly installed or to delete an app which no longer exists from the database.
- No such events exist for Win32 applications. We therefore use FileSystem Watchers to monitor the locations that we index for newly created, deleted or renamed application files and update the indexed Win32 catalog accordingly.
### Additional Notes
- Arguments can be provided to the program plugin by entering them after `--` (a double dash).

View File

@@ -0,0 +1,92 @@
# Registry Plugin
The registry plugin allows users to search the Windows registry.
## Special functions (differ from the regular functions)
* Support full base keys and short base keys (e.g. `HKLM` for `HKEY_LOCALE_MACHINE`).
* Show count of subkeys and count of values in the second result line.
* Search for value names and value data inside a registry key (syntax: `[RegistryKey]\\[ValueName]` and `[RegistryKey]\\[ValueData]`)
## The Windows Registry
The registry contains all settings for the Windows operating system and many settings of the installed (Windows only) programs.
*Note: Linux and macOS program ports typical store the settings in it's own configuration files and not in the Windows registry.*
For more information about the Windows registry, see [the official documentation](https://docs.microsoft.com/en-us/windows/win32/sysinfo/registry).
For advanced information about the Windows registry, see [Windows registry information for advanced users](https://docs.microsoft.com/en-us/troubleshoot/windows-server/performance/windows-registry-advanced-users).
## Score
The score is currently not set on the results.
## Important for developers
### General
* The assembly name is cached into `_assemblyName` (to avoid to many calls of `Assembly.GetExecutingAssembly()`)
### Results
* All results override the visible search result via `QueryTextDisplay` to avoid problems with short registry base keys (e.g. `HKLM`).
* The length of a `Title` and `Subtitle` is automatic truncated, when it is to long.
## Microsoft.Plugin.Registry project
### Important plugin values (meta-data)
| Name | Value |
| --------------- | --------------------------------------------- |
| ActionKeyword | `:` |
| ExecuteFileName | `Microsoft.PowerToys.Run.Plugin.Registry.dll` |
| ID | `303417D927BF4C97BCFFC78A123BE0C8` |
### Interfaces used by this plugin
The plugin use only these interfaces (all inside the `Main.cs`):
* `Wox.Plugin.IPlugin`
* `Wox.Plugin.IContextMenu`
* `Wox.Plugin.IPluginI18n`
* `System.IDisposable`
### Program files
| File | Content |
| ------------------------------------ | ------------------------------------------------------------------------ |
| `Classes\RegistryEntry.cs` | Wrapper class for a registry key with a possible exception on access |
| `Constants\KeyName.cs` | Static used short registry key names (to avoid code and string doubling) |
| `Constants\MaxTextLength.cs` | Contain all maximum text lengths (for truncating) |
| `Enumeration\TruncateSide.cs` | Contain the possible truncate sides |
| `Helper\ContextMenuHelper.cs` | All functions to build the context menu (for each result entry) |
| `Helper\QueryHelper.cs` | All functions to analyze the search query |
| `Helper\RegistryHelper.cs` | All functions to search into the Windows registry (via `Win32.Registry`) |
| `Helper\ResultHelper.cs` | All functions to convert internal results into WOX results |
| `Helper\ValueHelper.cs` | All functions to convert values into human readable values |
| `Images\reg.dark.png` | Symbol for the results for the dark theme |
| `Images\reg.light.png` | Symbol for the results for the light theme |
| `Properties\Resources.Designer.resx` | File that contain all translatable keys |
| `Properties\Resources.resx` | File that contain all translatable strings in the neutral language |
| `Main.cs` | Main class, the only place that implement the WOX interfaces |
| `plugin.json` | All meta-data for this plugin |
### Important project values (*.csproj)
| Name | Value |
| --------------- | ------------------------------------------------------------------------------ |
| TargetFramework | `net6.0-windows` (.NET 5) or `net6.0-windows10.0.19041.0` (OS version specific)|
| LangVersion | `8.0` (mean C# 8.0) |
| Platforms | `x64` |
| Nullable | `true` |
| Output | `..\..\..\..\..\x64\Debug\modules\launcher\Plugins\Microsoft.Plugin.Registry\` |
| RootNamespace | `Microsoft.PowerToys.Run.Plugin.Registry` |
| AssemblyName | `Microsoft.PowerToys.Run.Plugin.Registry` |
### Project dependencies
#### Projects
* `Wox.Infrastructure`
* `Wox.Plugin`

View File

@@ -0,0 +1,14 @@
# Shell Plugin
- Shell plugin emulates the Windows Run Prompt (Win+R).
- Shell Plugin is one of the non-global plugins which has an action keyword set to `>`.
![Image of Shell plugin](/doc/images/launcher/plugins/shell.png)
### Functionality
- The Shell command expands environment variables, so `>%appdata%` works as expected.
- On inheriting the Shell plugin from Wox, there are three different ways of executing a command, using the command prompt, powershell or the run prompt. To uphold the name of PT Run, the Shell plugin always executes commands as the Run prompt would.
- The Shell plugin has a concept of history where the previously executed commands show up in the drop down list along with the number of times they have been executed.
- The Run prompt has the folder plugin function where we can navigate to different locations and entering the path to a directory displays all the sub-directories. To prevent reimplementing this logic, the shell plugin references the folder plugin to implement this functionality.
### Score
The Shell plugin results have a very high score of 5000. Hence, they are one of the first results in the list.

View File

@@ -0,0 +1,84 @@
# Windows System Commands Plugin
As the name suggests, the Windows System Commands Plugin is used to directly run Windows system commands that have been entered by the user as a query. This is done by parsing the entry and validating the command, followed by executing it.
The user can change the behavior of the plugin (language, confirmation dialog, ...) with optional plugin settings.
![Image of System Commands plugin](/doc/images/launcher/plugins/sys.gif)
Available commands:
* Shutdown
* Restart
* Sign Out
* Lock
* Sleep
* Hibernate
* Empty Recycle Bin
* UEFI Firmware Settings (Only available on systems, that boot in UEFI mode.)
* IP / MAC / Address => Show informations about network connections.
## Optional plugin settings
* We have the following settings that the user can configure to change the behavior of the plugin:
| Key | Default value | Name/Description |
|--------------|-----------|------------|
| `ConfirmSystemCommands` | `false` | Show a dialog to confirm system commands |
| `LocalizeSystemCommands` | `true` | Use localized system commands instead of English ones |
| `ReduceNetworkResultScore` | `true` | Reduce the priority of 'IP' and 'MAC' results to improve the order in the global results |
* The optional plugin settings are implemented via the [`ISettingProvider`](/src/modules/launcher/Wox.Plugin/ISettingProvider.cs) interface from `Wox.Plugin` project. All available settings for the plugin are defined in the [`Main`](/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.System/Main.cs) class of the plugin.
## Technical details
### [`Main`](/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.System/Main.cs)
* Tries to parse the user input and returns a specific Windows system command by using a [`Result`](/src/modules/launcher/Wox.Plugin/Result.cs) list.
* While parsing, the plugin uses [`FuzzyMatch`](/src/modules/launcher/Wox.Infrastructure/StringMatcher.cs) to get characters matching a result in the list.
### [`Commands.cs`](/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.System/Components/Commands.cs)
- The [`Commands`](/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.System/Components/Commands.cs) class contains the definition of all available commands/results.
### [`ResultHelper.cs`](/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.System/Components/ResultHelper.cs)
- The [`ResultHelper`](/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.System/Components/ResultHelper.cs) class contains methods for working with the results and some of the result features (tool tip, copy to clipboard, execute command).
### [`NetworkConnectionProperties.cs`](/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.System/Components/NetworkConnectionProperties.cs)
- The [`NetworkConnectionProperties`](/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.System/Components/NetworkConnectionProperties.cs) class contains methods to get the properties of a network interface/connection.
- An instance of this class collects/provides all required informations about one connection/adapter.
### [`SystemPluginContext.cs`](/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.System/Components/SystemPluginContext.cs)
- An instance of the class [`SystemPluginContext`](/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.System/Components/SystemPluginContext.cs) contains/defines the context data of a system plugin result. We select the context menu based on the defined properties.
- It is used for the `ContextData` property of the [`Wox.Plugin.Result`](/src/modules/launcher/Wox.Plugin/Result.cs).
### UEFI command
* The UEFI command is only available on systems, that boot in UEFI mode.
* This is validated by checking the result of the method [`GetSystemFirmwareType`](/src/modules/launcher/Wox.Plugin/Common/Win32/Win32Helpers.cs), which uses the native method [`GetFirmwareType`](/src/modules/launcher/Wox.Plugin/Common/Win32/NativeMethods.cs) in `kernel32.dll`.
## Search
### Score
* [`CalculateSearchScore`](/src/modules/launcher/Wox.Infrastructure/StringMatcher.cs) A match found near the beginning of a string is scored more than a match found near the end. A match is scored more if the characters in the patterns are closer to each other, while the score is lower if they are more spread out.
* For network results (IP address and MAC address) the score is reduced by 25 percent.
### Network results on global queries
- The network results (IP and MAC address) are only shown on global queries, if the search term starts with either IP, MAC or Address. (We compare case-insensitive.)
### Returning results
We return the results in two steps:
1. All results which we can create very fast like shutdown or logoff via [`Main.Query(Query query)`](/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.System/Main.cs).
2. All results which need some time to create like the network results (IP, MAC) via [`Main.Query(Query query, bool delayedExecution)`](/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.System/Main.cs).
## [Unit Tests](/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.System.UnitTests)
We have a [Unit Test project](/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.System.UnitTests) that executes various test to ensure that the plugin works as expected.
### [`ImageTests.cs`](/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.System.UnitTests/ImageTests.cs)
- The [`ImageTests.cs`](/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.System.UnitTests/ImageTests.cs) class contains tests to validate that each result shows the expected and correct image.
### [`QueryTests.cs`](/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.System.UnitTests/QueryTests.cs)
- The [`QueryTests.cs`](/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.System.UnitTests/QueryTests.cs) class contains tests to validate that the user gets the correct results when searching.

View File

@@ -0,0 +1,141 @@
# Time Zone Plugin
The Time Zone plugin allows users to search a time zone.
## Special functions (differ from the regular functions)
* Search for a country, like Kamchatka, Prince Edward Island, France
* Search for a shortcuts, like WEST, UTC, PST
* Search for a offset, like -12:00, -7, 5, 9:30
* Search for a military time zone name (must activate in plugin settings)
## How to add a new time zone or change one
All time zones are located in `TimeZone.json` in root folder of the project.
The `TimeZone.json` use a JSON schema file that make it easier to edit it.
| Key | Optional | Value type |
| ------------------- | -------- | ----------------- |
| `Offset` | **No** | String |
| `Name` | Yes | String |
| `MilitaryName` | Yes | String |
| `Shortcut` | Yes | String |
| `TimeNamesStandard` | Yes | List with strings |
| `TimeNamesDaylight` | Yes | List with strings |
| `ShortcutsStandard` | Yes | List with strings |
| `ShortcutsDaylight` | Yes | List with strings |
| `CountriesStandard` | Yes | List with strings |
| `CountriesDaylight` | Yes | List with strings |
A minimum entry for the `TimeZone.json` looks like:
```json
{
"Offset": "11:55",
"Name": "My crazy time zone",
}
```
A full entry for the `TimeZone.json` looks like:
```json
{
"Offset": "11:55",
"Name": "My crazy time zone",
"Shortcut" : "MYTZ",
"MilitaryName" : "Order Time Zone",
"TimeNamesStandard": [
"My crazy standard time"
],
"ShortcutsStandard": [
"MCST"
],
"TimeNamesDaylight": [
"My crazy daylight time"
],
"ShortcutsDaylight": [
"MCDT"
],
"CountriesStandard": [
"Crazy Land East"
],
"CountriesDaylight": [
"Crazy Land West"
]
}
```
### Remarks
* At minimum one of the optional value should be filled.
## Scores
* Scores are not used
## Important for developers
### General
* The assembly name is cached into `_assemblyName` (to avoid to many calls of `Assembly.GetExecutingAssembly()`)
## Microsoft.PowerToys.Run.Plugin.TimeZone project
### Important plugin values (meta-data)
| Name | Value |
| --------------- | ---------------------------------------------------- |
| ActionKeyword | `&` |
| ExecuteFileName | `Microsoft.PowerToys.Run.Plugin.TimeZone.dll` |
| ID | `BADD1B06EF0A4B61AD95395F24241D69` |
### Interfaces used by this plugin
The plugin use only these interfaces (all inside the `Main.cs`):
* `Wox.Plugin.IPlugin`
* `Wox.Plugin.IContextMenu`
* `Wox.Plugin.IPluginI18n`
* `Wox.Plugin.ISettingProvider`
* `IDisposable`
### Program files
| File | Content |
| -------------------------------------- | ----------------------------------------------------------------------- |
| `Classes\TimeZoneProperties.cs` | A class that represent one time zone |
| `Classes\TimeZones.cs` | A wrapper class that only contains a list with time zones (see 1) |
| `Classes\TimeZoneSettings.cs` | A class that contains all settings for the Time Zone plugin |
| `Extensions\StringBuilderExtension.cs` | Extension methods for `StringBuilder` Objects |
| `Helper\ContextMenuHelper.cs` | All functions to build the context menu (for each result entry) |
| `Helper\JsonHelper.cs` | All functions to load the time zones from a JSON file |
| `Helper\ResultHelper.cs` | All functions to convert internal results into WOX results |
| `Helper\TranslationHelper.cs` | All functions to translate the result in the surface language |
| `Images\timeZone.dark.png` | Symbol for the results for the dark theme |
| `Images\timeZone.light.png` | Symbol for the results for the light theme |
| `Properties\Resources.Designer.resx` | File that contain all translatable keys |
| `Properties\Resources.resx` | File that contain all translatable strings in the neutral language |
| `Main.cs` | Main class, the only place that implement the WOX interfaces |
| `plugin.json` | All meta-data for this plugin |
| `timezones.json` | File that contains all time zone information |
| `timeZones.schema.json` | JSON schema for `timezones.json` |
1. We need this extra wrapper class to make it possible that the JSON file can have and use a JSON schema file.
Because the JSON file must have a object as root type, instead of a array.
### Important project values (*.csproj)
| Name | Value |
| --------------- | ------------------------------------------------------------- |
| TargetFramework | `net6.0-windows` |
| Platforms | `x64` |
| Output | `..\..\..\..\..\x64\Debug\modules\launcher\Plugins\TimeZone\` |
| RootNamespace | `Microsoft.PowerToys.Run.Plugin.TimeZone` |
| AssemblyName | `Microsoft.PowerToys.Run.Plugin.TimeZone` |
### Project dependencies
#### Projects
* `Wox.Infrastructure`
* `Wox.Plugin`

View File

@@ -0,0 +1,148 @@
# 'Time and Date' plugin
The 'Time and Date' plugin shows the date and time in different formats. For the date and time formats the plugin uses the culture setting in Windows, if the format is not commonly defined. The user can search for the system date/time or a custom date/time. The value of each result can be copied to clipboard.
**Query examples:**
- Format: `time`
- Date/time: `10:30 AM`
- Format and date/time: `Week number::10/10/2022`
!['Time and Date' plugin](/doc/images/launcher/plugins/timedate.png)
![Search for a date in a specified format](/doc/images/launcher/plugins/timedate2.png)
## Formats
### Available formats
**Remarks**
- The following formats requires a prefix in the query:
- Unix Timestamp: `u`
- Windows file time: `ft`
- On invalid number inputs we show a warning that tells the user which prefixes are allowed/required.
**List of available formats**
The following formats are currently available:
| Format | Example (Based on default settings) | As result | As input |
|--------------|-----------|------------|------------|
| Time | 5:10 PM | x | x |
| Date | 3/5/2022 | x | x |
| Now | 3/5/2022 5:10 PM | x | x |
| Time UTC | 4:10 PM | x | x |
| Now UTC | 3/5/2022 4:10 PM | x | x |
| Unix Timestamp | 1646496622 | x | x |
| Hour | 10 | x | |
| Minute | 30 | x | |
| Second | 45 | x | |
| Millisecond | 678 | x | |
| Day (Week day) | Saturday | x | |
| Day of the week | 6 | x | |
| Day of the month | 5 | x | |
| Day of the year | 64 | x | |
| Week of the month | 1 | x | |
| Week of the year (Calendar week, Week number) | 10 | x | |
| Month | March | x | |
| Month of the year | 3 | x | |
| Month and day | March 7 | x | x |
| Year | 2022 | x | |
| Era | AD | x | |
| Era abbreviation | A | x | |
| Month and year | March 2022 | x | x |
| Windows file time (Int64 number) | 637820976123938199 | x | x |
| Universal time format: YYYY-MM-DD hh:mm:ss| 2022-03-05 16:20:12Z | x | x |
| ISO 8601 | 2022-03-05T17:23:04 | x | x |
| ISO 8601 UTC | 2022-03-05T16:23:04 | x | x |
| ISO 8601 with time zone | 2022-03-05T17:23:04+01:00 | x | x |
| ISO 8601 UTC with time zone | 2022-03-05T16:23:04Z | x | x |
| RFC1123 | Sat, 05 Mar 2022 16:23:04 GMT | x | x |
### Add new formats
- To add a new formats you have to add them to the method `GetList()` of the [`AvailableResultsList`](/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate/Components/AvailableResultsList.cs) class.
- Please add the new formats in the second range. The first one is reserved for the three main formats (Time, Date, Now).
- After adding the new formats you have to update the Unit Tests!
## Optional plugin settings
- The optional plugin settings are implemented via the [`ISettingProvider`](/src/modules/launcher/Wox.Plugin/ISettingProvider.cs) interface from `Wox.Plugin` project.
- All available settings for the plugin are defined in the [`TimeDateSettings`](/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate/Components/TimeDateSettings.cs) class of the plugin. The settings can be accessed everywhere in the plugin code via the static class instance `TimeDateSettings.Instance`.
- We have the following settings that the user can configure to change the behavior of the plugin:
| Key | Default value | Name | Description |
|--------------|-----------|------------|------------|
| `OnlyDateTimeNowGlobal` | `true` | Show only 'Time', 'Date', and 'Now' result for system time on global queries | Regardless of this setting, for global queries the first word of the query has to be a complete match. |
| `TimeWithSeconds` | `false` | Show time with seconds | This setting applies to the 'Time' and 'Now' result. |
| `DateWithWeekday` | `false` | Show date with weekday and name of month | This setting applies to the 'Date' and 'Now' result. |
| `HideNumberMessageOnGlobalQuery` | `false` | Hide 'Invalid number input' error message on global queries | |
## Classes
### [`AvailableResult.cs`](/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate/Components/AvailableResult.cs)
- Each instance of the [`AvailableResult`](/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate/Components/AvailableResult.cs) class represents a time/date result/format that the user can search for.
- The results/formats are defined in the `AvailableResultsList` class.
### [`AvailableResultsList.cs`](/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate/Components/AvailableResultsList.cs)
- The [`AvailableResultsList`](/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate/Components/AvailableResultsList.cs) class contains the list of available formats/results in its method `GetList()`.
### [`ResultHelper.cs`](/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate/Components/ResultHelper.cs)
- The [`ResultHelper`](/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate/Components/ResultHelper.cs) class contains methods for some of the result features (tool tip, copy to clipboard) and the error result on incorrect number input.
- And it contains the `SelectStringFromResources()` method for getting the resource strings based on the user input.
- The method has a parameter for the `stringId` which is the name of the string in the resource file. By default the word `Now` is automatically added at the end to get the string for a system time/date search.
- If a different/custom string is needed for a system time/date search the parameter `stringIdNow` can be used to override the default behavior of the method.
- If only a string for the system time/date search is required, you can set `stringId` to `string.Empty` and only `stringIdNow` to a valid string id.
### [`TimeAndDateHelper.cs`](/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate/Components/TimeAndDateHelper.cs)
- The [`TimeAndDateHelper`](/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate/Components/TimeAndDateHelper.cs) class contains methods to format/convert date and time formats/strings.
### [`TimeDateSettings.cs`](/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate/Components/TimeDateSettings.cs)
- The [`TimeDateSettings`](/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate/Components/TimeDateSettings.cs) class provides access to all optional plugin settings.
- The class has a static property called `Instance` that holds an instance of the class itself. This allows us to access the settings from everywhere in the plugin code without having additional parameters in our methods.
### [`SearchController.cs`](/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate/Components/SearchController.cs)
- The [`SearchController`](/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate/Components/SearchController.cs) encapsulates the methods needed to search and find matches.
## Search
### Tags
- We compare the user input with the label of each results. If it doesn't match we search the tags of the result too.
- For each result two tag strings are defined. One for a search with system time/date and one for a search with a custom time/date. Most of the results (except the era results) are using one of the generic tag lists: Date, Time or Format
- The selection of the tag (for "system time/date" or "custom time/date") is happening at search time in the `AvailableResultsList.cs` class.
- The different tags in a list are split by the `;` character.
### Score
- The plugin uses `FuzzyMatching` to get the matching formats, if the user searches for a specific format. The score is set based on the `FuzzySearch` result.
- To achieve a better balance between sub title matches and tag matches the score of tag matches is divided by two.
### Match requirements for global queries
On global queries the high score returned by `FuzzySearch` has negative impacts on the user experience and the search results priority/order of other plugins. To mitigate this we defined some matching requirements:
- If the query is a word of the following conjunction list, we don't return any results: for, and, nor, but, or, so
- We don't have 'yet' (synonym of 'now') on the list, because this could block results in some languages.
- The first word of the query has to be a full match with a word in the label or tag list.
- For both requirements we compare case-insensitive.
## [Unit Tests](/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate.UnitTests)
We have a [Unit Test project](/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate.UnitTests) that executes various test to ensure that the plugin works as expected.
### [`TimeDateResultTests.cs`](/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate.UnitTests/TimeDateResultTests.cs)
- The [`TimeDateResultTests.cs`](/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate.UnitTests/TimeDateResultTests.cs) class contains tests to validate that the time and date values are correctly formatted/calculated.
- That we can execute the tests at any time on any machine, we use a specified date/time value and set the thread culture always to `en-us` while executing the tests.
- Some tests contain checks that calculate the expected result at runtime instead of using an expected value written fix in the code. This is done to get valid results on every machine at any time.
### [`ImageTests.cs`](/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate.UnitTests/ImageTests.cs)
- The [`ImageTests.cs`](/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate.UnitTests/ImageTests.cs) class contains tests to validate that each result shows the expected and correct image.
- That we can execute the tests at any time on any machine, we set the thread culture always to `en-us` while executing the tests.
### [`PluginSettingsTests.cs`](/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate.UnitTests/PluginSettingsTests.cs)
- The [`PluginSettingsTests.cs`](/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate.UnitTests/PluginSettingsTests.cs) class contains tests to validate that all settings exist and that they have the correct default values.
### [`QueryTests.cs`](/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate.UnitTests/QueryTests.cs)
- The [`QueryTests.cs`](/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate.UnitTests/QueryTests.cs) class contains tests to validate that the user gets the correct results when searching.,
- That we can execute the tests at any time on any machine, we set the thread culture always to `en-us` while executing the tests.
### [`StringParserTests.cs`](/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate.UnitTests/StringParserTests.cs)
- The [`StringParserTests.cs`](/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate.UnitTests/StringParserTests.cs) class contains tests to validate that the typed string gets converted correctly into a `DateTime` object.
- That we can execute the tests at any time on any machine, we set the thread culture always to `en-us` while executing the tests.

View File

@@ -0,0 +1,19 @@
# URI Plugin
The URI Plugin, as the name suggests is used to directly run the URI that has been entered by the user as a query. This is done by parsing the entry and validating the URI, followed by executing it.
![Image of URI plugin](/doc/images/launcher/plugins/uri.png)
### [`URI Parser`](src/modules/launcher/Plugins/Microsoft.Plugin.Uri/UriHelper/ExtendedUriParser.cs)
- The [`ExtendedUriParser.cs`](src/modules/launcher/Plugins/Microsoft.Plugin.Uri/UriHelper/ExtendedUriParser.cs) file tries to parse the user input and returns a `System.Uri` result by using the `UriBuilder`.
- It also captures other cases which the UriBuilder does not handle such as when the input ends with a `:`, `.` or `:/`.
### [`URI Resolver`](src/modules/launcher/Plugins/Microsoft.Plugin.Uri/UriHelper/UriResolver.cs)
- The [`UriResolver.cs`](src/modules/launcher/Plugins/Microsoft.Plugin.Uri/UriHelper/UriResolver.cs) file returns true for Valid hosts.
- Currently there is no additional logic for filtering out invalid hosts and it always returns true for a valid Uri that was created by parsing the user query. It can be expanded in the future to filter out certain hosts.
### Default Browser Icon
- The icon for each uri result is that of the default browser set by the user.
- These details are obtained from the user registry and updated each time the theme of PT Run is changed.
### Score
- All uri plugin results have a score of 0 which indicates that they would show up after each of the other plugins, other than the indexer plugin which also has a score of 0.

View File

@@ -0,0 +1,11 @@
## Web Search Plugin
The Web Search Plugin, as the name suggests, is used to perform a web search - in the default search engine in the default browser - on the query that has been entered by the user.
![Image of Web Search plugin](/doc/images/launcher/plugins/WebSearch.png)
## Default Browser Icon
- The icon for each web search result is that of the default browser set by the user.
- It, and the browser path, are obtained from the user registry and updated each time the theme of PT Run is changed.
## Score
- The web search result always has a score of 0 which indicates that it would show up after each of the other plugins, other than the indexer plugin and possibly the uri plugin which both have a score of 0.

View File

@@ -0,0 +1,153 @@
# Windows Settings Plugin
The Windows settings Plugin allows users to search the Windows settings.
## Special functions (differ from the regular functions)
* Support modern Windows settings (Windows 10+)
* Support legacy Windows settings (Windows 7, 8.1)
* Support extra programs for setting (like ODBC)
* Support search by the area of the setting (like `Privacy`)
* Support search for alternative names of a setting
## How to add a new Windows Setting or change one
All Windows settings are located in `WindowsSettings.json` in root folder of the project.
The `WindowsSettings.json` use a JSON schema file that make it easier to edit it.
| Key | Optional | Value type | String prefix |
| ------------------- | -------- | ----------------- | ------------- |
| `Name` | **No** | String | |
| `Type` | **No** | String | `App` |
| `Command` | **No** | String | |
| `Areas` | Yes | List with strings | `Area` |
| `AltNames` | Yes | List with strings | |
| `Note` | Yes | String | `Note` |
| `IntroducedInBuild` | Yes | Integer | |
| `DeprecatedInBuild` | Yes | Integer | |
| `ShowAsFirstResult` | Yes | Boolean | |
A minimum entry for the `WindowsSettings.json` looks like:
```json
{
"Name": "mySetting",
"Type": "AppSettingsApp",
"Command": "ms-settings:mySetting"
}
```
A full entry for the `WindowsSettings.json` looks like:
```json
{
"Name": "mySetting",
"Type": "AppSettingsApp",
"Command": "ms-settings:mySetting",
"Areas": [ "AreaMySettingArea" ],
"AltNames": [ "NiceSetting" ],
"Note": "NoteMySettingNote",
"IntroducedInBuild" : 1903,
"DeprecatedInBuild" : 2004,
"ShowAsFirstResult" : true
}
```
### Remarks
* The `Command` for modern Windows settings should start with `ms-settings:`
* The `Command` for legacy Windows settings should start with `control`
* The integer value for `IntroducedInBuild` and `DeprecatedInBuild` must be in range of `0` to `4294967295`
* The strings for `Name`, `AltNames`, `Areas`, `Type` and `Note` must not contain whitespace(s) or special characters (#, €, $, etc.)
* The strings for `Name`, `AltNames`, `Areas`, `Type` and `Note` are used as ids for the resource file under `Properties\Resources.resx`
* When you add new strings make sure you have added all translations for it.
## Scores
There are three different score types with different start values.
| Score type | Start value |
| ------------------ | ------------ |
| First result score | 10500 |
| High score | 10000 |
| Medium score | 5000 |
| Low score | 1000 |
Each score will decreased by one when a condition match.
| Priority | Condition | Score type |
| -------- | ----------------------------------------------------------------- | ------------ |
| 1. | Settings name starts with the search value | High score |
| 2. | Settings name contain the search value | Medium score |
| 3. | Setting has no area | Low score |
| 4. | One area of the settings starts with the search value | Low score |
| 5. | Setting has no alternative name | Low score |
| 6. | One alternative name of the settings starts with the search value | Medium score |
| x. | no condition match | Low score |
### Remarks
* For each score condition we check if the property "ShowAsFirstResult" of the setting is true. If yes we use the firstResultScore instead of condition`s score.
## Important for developers
### General
* The assembly name is cached into `_assemblyName` (to avoid to many calls of `Assembly.GetExecutingAssembly()`)
## Microsoft.PowerToys.Run.Plugin.WindowsSettings project
### Important plugin values (meta-data)
| Name | Value |
| --------------- | ---------------------------------------------------- |
| ActionKeyword | `$` |
| ExecuteFileName | `Microsoft.PowerToys.Run.Plugin.WindowsSettings.dll` |
| ID | `5043CECEE6A748679CBE02D27D83747A` |
### Interfaces used by this plugin
The plugin use only these interfaces (all inside the `Main.cs`):
* `Wox.Plugin.IPlugin`
* `Wox.Plugin.IContextMenu`
* `Wox.Plugin.IPluginI18n`
### Program files
| File | Content |
| ------------------------------------- | ----------------------------------------------------------------------- |
| `Classes\WindowsSetting.cs` | A class that represent one Windows setting |
| `Classes\WindowsSettings.cs` | A wrapper class that only contains a list with Windows settings (see 1) |
| `Helper\ContextMenuHelper.cs` | All functions to build the context menu (for each result entry) |
| `Helper\JsonSettingsListHelper.cs` | All functions to load the windows settings from a JSON file |
| `Helper\ResultHelper.cs` | All functions to convert internal results into WOX results |
| `Helper\TranslationHelper.cs` | All functions to translate the result in the surface language |
| `Helper\UnsupportedSettingsHelper.cs` | All functions to filter not supported Windows settings out |
| `Helper\WindowsSettingsPathHelper.cs` | All functions to build the area paths |
| `Images\WindowsSettings.dark.png` | Symbol for the results for the dark theme |
| `Images\WindowsSettings.light.png` | Symbol for the results for the light theme |
| `Properties\Resources.Designer.resx` | File that contain all translatable keys |
| `Properties\Resources.resx` | File that contain all translatable strings in the neutral language |
| `Main.cs` | Main class, the only place that implement the WOX interfaces |
| `plugin.json` | All meta-data for this plugin |
1. We need this extra wrapper class to make it possible that the JSON file can have and use a JSON schema file.
Because the JSON file must have a object as root type, instead of a array.
### Important project values (*.csproj)
| Name | Value |
| --------------- | --------------------------------------------------------------------------------------------------- |
| TargetFramework | `net6.0-windows` (.NET 5) or `net6.0-windows10.0.19041.0` (OS version specific) |
| Platforms | `x64` |
| Output | `..\..\..\..\..\x64\Debug\modules\launcher\Plugins\Microsoft.PowerToys.Run.Plugin.WindowsSettings\` |
| RootNamespace | `Microsoft.PowerToys.Run.Plugin.WindowsSettings` |
| AssemblyName | `Microsoft.PowerToys.Run.Plugin.WindowsSettings` |
### Project dependencies
#### Projects
* `Wox.Infrastructure`
* `Wox.Plugin`

View File

@@ -0,0 +1,84 @@
# Window Walker plugin
The window walker plugin matches the user entered query with the open windows on the system.
The user can switch to the found windows, close them or kill their process.
![Image of Window Walker plugin](/doc/images/launcher/plugins/windowwalker.png)
## Remarks
### UWP Apps
- The process of an UWP app can't be detected correctly for windows that are minimized while searching. At this time they are assigned to the generic process `ApplicationFrameHost.exe`. If the user searches for such an window while it is not minimized, then the process gets assigned correctly/updated.
### Killing processes
- Killing the Explorer process is only allowed, if each folder window is running in its own process. (See section `File Explorer setting` below.)
- You can only kill elevated processes, if you have admin permissions (UAC).
- If you kill the process of an UWP app window, you kill all instances of the app. All windows are assigned to the same process.
- Windows of UWP apps don't know their process, until they are searched in non-minimized state.
### File Explorer setting
- To kill the Process of an Explorer window, each window has to run in a separate process. Otherwise the process is the same one as the shell process and killing the shell process will crash the shell (Windows ui).
- To enable this behavior the setting `Launch folder windows in a separate process` under `Folder Options > View` has to be enabled.
- From PowerToys Run you can open the `Folder options` dialog by clicking the information message in the search results. The information message is only shown when searching with action keyword for explorer windows and can be hidden in the plugin settings.
- Note: The folder option/process is evaluated in real time. After changing the setting it is enough to search again for the windows.
![Folder options for Window Walker](/doc/images/launcher/plugins/windowwalker_folder_options.png)
## Optional plugin settings
- The optional plugin settings are implemented via the [`ISettingProvider`](/src/modules/launcher/Wox.Plugin/ISettingProvider.cs) interface from `Wox.Plugin` project.
- All available settings for the plugin are defined in the [`WindowWalkerSettings`](/src/modules/launcher/Plugins/Microsoft.Plugin.WindowWalker/Components/WindowWalkerSettings.cs) class of the plugin. The settings can be accessed everywhere in the plugin code via the static class instance `WindowWalkerSettings.Instance`.
- We have the following settings that the user can configure to change the behavior of the plugin:
| Key | Default value | Name/Description |
|--------------|-----------|------------|
| `ResultsFromVisibleDesktopOnly` | `false` | Show only results from visible desktop |
| `SubtitleShowPid` | `false` | Show process id in subtitle |
| `SubtitleShowDesktopName` | `true` | Show desktop name in subtitle (If two or more desktops exist) |
| `ConfirmKillProcess` | `true` | Request confirmation when killing a process |
| `KillProcessTree` | `false` | Kill process and it's child processes |
| `OpenAfterKillAndClose` | `false` | Stay open after closing windows and killing processes (Not working with kill process confirmation) |
| `HideKillProcessOnElevatedProcesses` | `false` | Hide "kill process" button if additional permissions required |
| `HideExplorerSettingInfo` | `false` | Hide Explorer process information |
## Technical details
### [`OpenWindows.cs`](/src/modules/launcher/Plugins/Microsoft.Plugin.WindowWalker/Components/OpenWindows.cs)
- The window walker plugin uses the `EnumWindows` function to enumerate all the open windows in the [`OpenWindows.cs`](/src/modules/launcher/Plugins/Microsoft.Plugin.WindowWalker/Components/OpenWindows.cs) class.
### [`SearchController.cs`](/src/modules/launcher/Plugins/Microsoft.Plugin.WindowWalker/Components/SearchController.cs)
- The [`SearchController`](/src/modules/launcher/Plugins/Microsoft.Plugin.WindowWalker/Components/SearchController.cs) encapsulates the functions needed to search and find matches.
- It is responsible for updating the search text and performing a fuzzy search on all the open windows.
### [`Window.cs`](/src/modules/launcher/Plugins/Microsoft.Plugin.WindowWalker/Components/Window.cs)
- The [`Window`](/src/modules/launcher/Plugins/Microsoft.Plugin.WindowWalker/Components/Window.cs) class represents a specific window and has functions to get the name of the window, the state of the window (whether it is visible or not), the `SwitchTowindow` function which switches the desktop focus to the selected window and the `CloseThisWindow` function which closes the window. The `SwitchTowindow` action is performed when the user clicks on a window walker plugin result.
- The `Window` class holds a static cache with the process information of all windows we know so far and each window instance has a property which holds its process information (name, file, ...). The process data in the cache and the window property are of the type `WindowProcess`.
- To get the desktop information for a window, we use the common [`VirtualDesktopHelper`](/src/modules/launcher/Wox.Plugin/Common/VirtualDesktop/VirtualDesktopHelper.cs) in `Wox.Plugin` project. The instance of `VirtualDesktopHelper` is cached in the [`Main`](/src/modules/launcher/Plugins/Microsoft.Plugin.WindowWalker/Main.cs) class of the plugin at runtime. The desktop information is stored in a property of the type [`VDesktop`](/src/modules/launcher/Wox.Plugin/Common/VirtualDesktop/VDesktop.cs).
### [`WindowProcess.cs`](/src/modules/launcher/Plugins/Microsoft.Plugin.WindowWalker/Components/WindowProcess.cs)
- The [`WindowProcess`](/src/modules/launcher/Plugins/Microsoft.Plugin.WindowWalker/Components/WindowProcess.cs) class represents a specific process for a window.
- It contains static methods to query process information from the system and instance methods/properties to hold/retrieve the process information we want to know about a window's process.
- Additionally, it contains the method `KillThisProcess` to kill the process. (If the user has not enough permissions to kill a process they are requested via UAC.)
### [`ResultHelper.cs`](/src/modules/launcher/Plugins/Microsoft.Plugin.WindowWalker/Components/ResultHelper.cs)
- The [`ResultHelper`](/src/modules/launcher/Plugins/Microsoft.Plugin.WindowWalker/Components/ResultHelper.cs) class contains the code to create the list with all results for PT Run based on the data returned from `SearchController` class.
- There is a special result that is added if the folder windows doesn't run in separate processes and the user searches for Explorer windows using the action keyword.
- This result informs the user that there is a setting that must be enabled to be able to kill Explorer processes.
- The result can be disabled in plugin options. When it is clicked it opens the folder options.
### [`ContextMenuHelper.cs`](/src/modules/launcher/Plugins/Microsoft.Plugin.WindowWalker/Components/ContextMenuHelper.cs)
- The [`ContextMenuHelper`](/src/modules/launcher/Plugins/Microsoft.Plugin.WindowWalker/Components/ContextMenuHelper.cs) class provides the code for the context menu items.
### [`WindowWalkerSettings.cs`](/src/modules/launcher/Plugins/Microsoft.Plugin.WindowWalker/Components/WindowWalkerSettings.cs)
- The [`WindowWalkerSettings`](/src/modules/launcher/Plugins/Microsoft.Plugin.WindowWalker/Components/WindowWalkerSettings.cs) class provides access to all optional plugin settings.
- The class has a static property called `Instance` that holds an instance of the class itself. This allows us to access the settings from everywhere in the plugin code without having additional parameters in our methods.
### Score
The window walker plugin uses [`FuzzyMatching`](/src/modules/launcher/Plugins/Microsoft.Plugin.WindowWalker/Components/FuzzyMatching.cs) to get the matching indices and calculates the score by creating a 2 dimensional array of the window and the query text.
## [Unit Tests](/src/modules/launcher/Plugins/Microsoft.Plugin.WindowWalker.UnitTests)
We have a [Unit Test project](/src/modules/launcher/Plugins/Microsoft.Plugin.WindowWalker.UnitTests) that executes various test to ensure that the plugin works as expected.
### [`PluginSettingsTests.cs`](/src/modules/launcher/Plugins/Microsoft.Plugin.WindowWalker.UnitTests/PluginSettingsTests.cs)
- The [`PluginSettingsTests.cs`](/src/modules/launcher/Plugins/Microsoft.Plugin.WindowWalker.UnitTests/PluginSettingsTests.cs) class contains tests to validate that all settings exist and that they have the correct default values.

View File

@@ -0,0 +1,24 @@
# Project Structure
## Overview
`PowerToys Run` is divided across several projects to keep a logical separation between plugins and core functionality. The following sections provide a brief overview of each project.
![Image of project dependency](/doc/images/launcher/launcher_dependency.PNG)
Fig 1. Project along with their dependencies in `PowerToys Run` ecosystem.
## Project Description
#### [`PowerLauncher`](/src/modules/launcher/PowerLauncher)
This is the startup project for the `PowerToys Run.` It is a WPF desktop application and follows the `Model-View-ViewModel (MVVM)` design pattern. Plugins play the role of `Model` and provide data to `ViewModel.`
#### [`PowerLauncher.Telemetry`](/src/modules/launcher/PowerLauncher.Telemetry)
[`PowerLauncher.Telemetry`](/src/modules/launcher/PowerLauncher.Telemetry) is a .net core project that contains telemetry events generated by `PowerLauncher.` These events have been discussed in detail [here](/doc/devdocs/modules/launcher/telemetry.md).
#### [`Wox.Core`](/src/modules/launcher/Wox.Core)
[`Wox.Core`](/src/modules/launcher/Wox.Core) is a .net core project that contains helper classes required by the `PowerLauncher` project. Two major functionalities encapsulated in this project are [`PluginManager`](/src/modules/launcher/Wox.Core/Plugin/PluginManager.cs) and [`Query Builder.`](/src/modules/launcher/Wox.Core/Plugin/QueryBuilder.cs) [`PluginManager`](/src/modules/launcher/Wox.Core/Plugin/PluginManager.cs) provides an interface for managing C# plugins. [`Query Builder.`](/src/modules/launcher/Wox.Core/Plugin/QueryBuilder.cs) decimate user-typed query string and creates a [`Query`](/src/modules/launcher/Wox.Plugin/Query.cs) object. [`Query`](/src/modules/launcher/Wox.Plugin/Query.cs) object contains the action keyword and cleaned query, which is then sent to all plugins.
#### [`Wox.Infrastructure`](/src/modules/launcher/Wox.Infrastructure)
[`Wox.Infrastructure`](/src/modules/launcher/Wox.Infrastructure) is a .net core project that contains helper classes required for image manipulation and storage by the `PowerLauncher` project and the plugins. [`ImageLoader.cs`](/src/modules/launcher/Wox.Infrastructure/Image/ImageLoader.cs) class is used to load icons for `Win32` program. It also provides caching functionality to speed up image loading for frequently queried programs.
#### [`Wox.Plugin`](/src/modules/launcher/Wox.Plugin)
[`Wox.Plugin`](/src/modules/launcher/Wox.Plugin) contains interfaces that facilitate communication between `PowerLauncher` and plugins. These interfaces have been discussed in detail [here](/doc/devdocs/modules/launcher/architecture.md#flow-of-data-between-viewmodels-and-pluginsmodel). It also contains a helper class for logging. [`Log.cs`](/src/modules/launcher/Wox.Plugin/Logger/Log.cs) provides an abstraction for logging error, information, and output to text files. These files are stored at `%userprofile%/appdata/local/microsoft/powertoys/powertoys run/Logs.`

View File

@@ -0,0 +1,19 @@
# Table of Contents
1. [Architecture](/doc/devdocs/modules/launcher/architecture.md)
2. [Debugging](/doc/devdocs/modules/launcher/debugging.md)
3. [Project Structure](/doc/devdocs/modules/launcher/project_structure.md)
4. [Telemetry](/doc/devdocs/modules/launcher/telemetry.md)
5. Plugins
- [Overview](/doc/devdocs/modules/launcher/plugins/overview.md)
- [Calculator](/doc/devdocs/modules/launcher/plugins/calculator.md)
- [Folder](/doc/devdocs/modules/launcher/plugins/folder.md)
- [Indexer](/doc/devdocs/modules/launcher/plugins/indexer.md)
- [OneNote](/doc/devdocs/modules/launcher/plugins/onenote.md)
- [Program](/doc/devdocs/modules/launcher/plugins/program.md)
- [Registry](/doc/devdocs/modules/launcher/plugins/registry.md)
- [Shell](/doc/devdocs/modules/launcher/plugins/shell.md)
- [Time and Date](/doc/devdocs/modules/launcher/plugins/timedate.md)
- [Windows System Commands](/doc/devdocs/modules/launcher/plugins/system.md)
- [Uri](/doc/devdocs/modules/launcher/plugins/uri.md)
- [Window Walker](/doc/devdocs/modules/launcher/plugins/windowwalker.md)
- [Web Search](/doc/devdocs/modules/launcher/plugins/WebSearch.md)

View File

@@ -0,0 +1,14 @@
# Telemetry
## Overview
`PowerLauncher.Telemetry` project contains telemetry events generated by `PowerToys Run.` These event classes are derived from the [`EventBase`](/src/common/ManagedTelemetry/Telemetry/Events/EventBase.cs) class and [`IEvent`](/src/common/ManagedTelemetry/Telemetry/Events/IEvent.cs) class. [`IEvent`](/src/common/ManagedTelemetry/Telemetry/Events/IEvent.cs) class provides the lowest level abstraction, containing attributes such as privacy tags needed for every telemetry data. [`EventBase`](/src/common/ManagedTelemetry/Telemetry/Events/EventBase.cs) class provides a higher-level abstraction, having attributes common to all `PowerToys` telemetry events.
## Events
The following events are generated by `PowerLauncher`:
1. [`LauncherBootEvent`](/src/modules/launcher/PowerLauncher.Telemetry/Events/LauncherBootEvent.cs): This event captures the time taken by `PowerLauncher` to load all plugins, perform cold start, and setup UI environment.
2. [`LauncherHideEvent`](/src/modules/launcher/PowerLauncher.Telemetry/Events/LauncherHideEvent.cs): This event is generated when the `PowerLauncher` window is hidden.
3. [`LauncherColdStateHotkeyEvent`](/src/modules/launcher/PowerLauncher.Telemetry/Events/LauncherColdStateHotkeyEvent.cs): This event logs time from the first Alt+Space press till the `PowerLauncher` window is visible.
4. [`LauncherFirstDeleteEvent`](/src/modules/launcher/PowerLauncher.Telemetry/Events/LauncherFirstDeleteEvent.cs): This event is generated after the first delete is pressed after `PowerLauncher` is visible.
5. [`LauncherQueryEvent`](/src/modules/launcher/PowerLauncher.Telemetry/Events/LauncherQueryEvent.cs): This event is generated for every query that is typed in the searchbox. It logs query time, number of results, and query length.
6. [`LauncherResultActionEvent`](/src/modules/launcher/PowerLauncher.Telemetry/Events/LauncherResultActionEvent.cs): This event is generated when a context menu action is triggered.
7. [`LauncherShowEvent`](/src/modules/launcher/PowerLauncher.Telemetry/Events/LauncherShowEvent.cs): This event is generated when the `PowerLauncher` window is shown.
8. [`LauncherWarmStateHotkeyEvent`](/src/modules/launcher/PowerLauncher.Telemetry/Events/LauncherWarmStateHotkeyEvent.cs): This event logs time from the Alt+Space press until the PT Run window is visible.

View File

@@ -0,0 +1,24 @@
# Developer Preview (Monaco)
Developer preview is based on [Microsofts Monaco Editor](https://microsoft.github.io/monaco-editor/) which is maintained by the Visual Studio Code team.
## Update monaco editor
1. Download Monaco editor with npm: `npm i monaco-editor`.
2. Delete everything except the `min` folder (the minimised code).
3. Copy the `min` folder inside the [`monacoSRC`](/src/modules/previewpane/MonacoPreviewHandler/monacoSRC) folder.
4. Generate the JSON file (see section below)
## monaco_languages.json
[`monaco_languages.json`](/src/modules/previewpane/MonacoPreviewHandler/monaco_languages.json) contains all extensions and Id's for the supported languages of Monaco. The [`FileHandler`](/src/modules/previewpane/MonacoPreviewHandler/FileHandler.cs) class and the installer are using this file.
### Generate monaco_languages.json file
After you updated monaco editor or adding a new language you should update the [`monaco_languages.json`](/src/modules/previewpane/MonacoPreviewHandler/monaco_languages.json) file.
You have to run the file on a local webserver!
1. Build monaco in debug mode.
2. Open [generateLanguagesJson.html](/src/modules/previewpane/MonacoPreviewHandler/generateLanguagesJson.html) in a browser.
3. Replace the old JSON file.

View File

@@ -21,6 +21,3 @@ TODO
#### [`trace.cpp`](/src/modules/powerrename/lib/trace.cpp)
TODO
#### [`PowerRenameUI.cpp`](/src/modules/powerrename/ui/PowerRenameUI.cpp)
TODO

View File

@@ -1,20 +1,31 @@
# Dev Documentation
## Fork, Clone, Branch and Create your PR
Once you've discussed your proposed feature/fix/etc. with a team member, and you've agreed an approach or a spec has been written and approved, it's time to start development:
1. Fork the repo if you haven't already
1. Clone your fork locally
1. Create & push a feature branch
1. Create a [Draft Pull Request (PR)](https://github.blog/2019-02-14-introducing-draft-pull-requests/)
1. Work on your changes
## Rules
- **Follow the pattern of what you already see in the code.**
- [Coding style](style.md).
- Try to package new ideas/components into libraries that have nicely defined interfaces.
- Package new ideas into classes or refactor existing ideas into a class as you extend.
- When adding new classes/methos/changing existing code: add new unit tests or update the existing tests.
- When adding new classes/methods/changing existing code: add new unit tests or update the existing tests.
## Github Workflow
## GitHub Workflow
- Before starting to work on a fix/feature, make sure there is an open issue to track the work.
- Add the `In progress` label to the issue, if not already present also add a `Cost-Small/Medium/Large` estimate and make sure all appropriate labels are set.
- If you are a community contributor, you will not be able to add labels to the issue, in that case just add a comment saying that you started to work on the issue and try to give an estimate for the delivery date.
- If the work item has a medium/large cost, using the markdown task list, list each sub item and update the list with a check mark after completing each sub item.
- When opening a PR, follow the PR template.
- When you'd like the team to take a look, (even if the work is not yet fully-complete), mark the PR as 'Ready For Review' so that the team can review your work and provide comments, suggestions, and request changes. It may take several cycles, but the end result will be solid, testable, conformant code that is safe for us to merge.
- When the PR is approved, let the owner of the PR merge it. For community contributions the reviewer that approved the PR can also merge it.
- Use the `Squash and merge` option to merge a PR, if you don't want to squash it because there are logically different commits, use `Rebase and merge`.
- We don't close issues automatically when referenced in a PR, so after the PR is merged:
@@ -22,56 +33,94 @@
- don't close the issue if it's a bug in the current released version since users tend to not search for closed issues, we will close the resolved issues when a new version is released.
- if it's not a code fix that effects the end user, the issue can be closed (for example a fix in the build or a code refactoring and so on).
## Repository Overview
## Compiling PowerToys
General project organization:
### Prerequisites for Compiling PowerToys
### The [`doc`](/doc) folder
1. Windows 10 April 2018 Update (version 1803) or newer
2. Visual Studio Community/Professional/Enterprise 2022
3. Install the [required Windows Apps SDK workloads](https://docs.microsoft.com/en-us/windows/apps/windows-app-sdk/set-up-your-development-environment?tabs=vs-2022-17-1-a%2Cvs-2022-17-1-b#required-workloads-and-components), the [Windows App SDK 1.0.3 C# Visual Studio 2022 extension](https://docs.microsoft.com/en-us/windows/apps/windows-app-sdk/downloads) and the [Windows Apps SDK 1.0.3 runtime](https://docs.microsoft.com/en-us/windows/apps/windows-app-sdk/downloads#windows-app-sdk-10).
4. Once you've cloned and started the `PowerToys.sln`, in the solution explorer, if you see a dialog that says `install extra components`, click `install`
Documentation for the project.
### Get Submodules to compile
We have submodules that need to be initialized before you can compile most parts of PowerToys. This should be a one time step.
### The [`Wiki`](/wiki)
1. Open a terminal
2. Navigate to the folder you cloned PowerToys to.
3. Run `git submodule update --init --recursive`
The Wiki contains the current specs for the project.
### Compiling Source Code
### The [`installer`](/installer) folder
- Open `PowerToys.sln` in Visual Studio, in the `Solutions Configuration` drop-down menu select `Release` or `Debug`, from the `Build` menu choose `Build Solution`.
- The PowerToys binaries will be in your repo under `x64\Release\`.
- You can run `x64\Release\PowerToys.exe` directly without installing PowerToys, but some modules (i.e. PowerRename, ImageResizer, File Explorer extension etc.) will not be available unless you also build the installer and install PowerToys.
Contains the source code of the PowerToys installer.
## Compile the installer
### The [`src`](/src) folder
Our installer is two parts, an EXE and an MSI. The EXE (Bootstrapper) contains the MSI and handles more complex installation logic.
- The EXE installs all prerequisites and installs PowerToys via the MSI. It has additional features such as the installation flags (see below).
- The MSI installs the PowerToys binaries.
Contains the source code of the PowerToys runner and of all of the PowerToys modules. **This is where the most of the magic happens.**
The installer can only be compiled in `Release` mode, step 1 and 2 must be done before the MSI will be able to be compiled.
### The [`tools`](/tools) folder
1. Compile `PowerToys.sln`. Instructions are listed above.
2. Compile `BugReportTool.sln` tool. Path from root: `tools\BugReportTool\BugReportTool.sln` (details listed below)
3. Compile `WebcamReportTool.sln` tool. Path from root: `tools\WebcamReportTool\WebcamReportTool.sln` (details listed below)
3. Compile `StylesReportTool.sln` tool. Path from root: `tools\StylesReportTool\StylesReportTool.sln` (details listed below)
4. Compile `PowerToysSetup.sln` Path from root: `installer\PowerToysSetup.sln` (details listed below)
Various tools used by PowerToys. Includes the Visual Studio 2019 project template for new PowerToys.
### Prerequisites for building the MSI installer
## Building code
1. Install the [WiX Toolset Visual Studio 2022 Extension](https://marketplace.visualstudio.com/items?itemName=WixToolset.WixToolsetVisualStudio2022Extension).
2. Install the [WiX Toolset build tools](https://wixtoolset.org/releases/v3-14-0-6526/).
3. Download [WiX binaries](https://wixtoolset.org/downloads/v3.14.0.6526/wix314-binaries.zip) and extract `wix.targets` to `C:\Program Files (x86)\WiX Toolset v3.14`.
### Build Prerequisites
### Locally building the installer prerequisite projects all at once from the command-line
- Windows 10 1803 (build 10.0.17134.0) or above to build and run PowerToys.
- Visual Studio 2019 Community edition or higher, with the 'Desktop Development with C++' component and the Windows 10 SDK version 10.0.18362.0 or higher.
1. Open a `Developer Command Prompt for VS 2022`
2. Ensure `nuget.exe` is in your `%path%`
3. In the repo root, run these commands:
```
nuget restore .\tools\BugReportTool\BugReportTool.sln
msbuild -p:Platform=x64 -p:Configuration=Release .\tools\BugReportTool\BugReportTool.sln
### Building the Code
nuget restore .\tools\WebcamReportTool\WebcamReportTool.sln
msbuild -p:Platform=x64 -p:Configuration=Release .\tools\WebcamReportTool\WebcamReportTool.sln
- Open `powertoys.sln` in Visual Studio, in the `Solutions Configuration` drop-down menu select `Release` or `Debug`, from the `Build` menu choose `Build Solution`.
- The PowerToys binaries will be in your repo under `x64\Release`.
- If you want to copy the `PowerToys.exe` binary to a different location, you'll also need to copy the `modules` and the `svgs` folders.
nuget restore .\tools\StylesReportTool\StylesReportTool.sln
msbuild -p:Platform=x64 -p:Configuration=Release .\tools\StylesReportTool\StylesReportTool.sln
```
### Building the .msi Installer
### Locally compiling the Bug reporting tool
* From the `installer` folder open `PowerToysSetup.sln` in Visual Studio, in the `Solutions Configuration` drop-down menu select `Release` or `Debug`, from the `Build` menu choose `Build Solution`.
* The resulting `PowerToysSetup.msi` installer will be available in the `installer\PowerToysSetup\x64\Release\` folder.
1. Open `tools\BugReportTool\BugReportTool.sln`
2. In Visual Studio, in the `Solutions Configuration` drop-down menu select `Release`
3. From the `Build` menu, choose `Build Solution`.
#### Prerequisites to Build the MSI Installer
### Locally compiling the Webcam reporting tool
* Install the [WiX Toolset Visual Studio 2019 Extension](https://marketplace.visualstudio.com/items?itemName=RobMensching.WiXToolset).
* Install the [WiX Toolset build tools](https://wixtoolset.org/releases/).
1. Open `tools\WebcamReportTool\WebcamReportTool.sln`
2. In Visual Studio, in the `Solutions Configuration` drop-down menu select `Release`
3. From the `Build` menu, choose `Build Solution`.
### Building the MSIX Installer
### Locally compiling the Window styles reporting tool
Please follow the [installer instructions](./installer/readme.md) which include items such as creating the self-signed cert for testing.
1. Open `tools\StylesReportTool\StylesReportTool.sln`
2. In Visual Studio, in the `Solutions Configuration` drop-down menu select `Release`
3. From the `Build` menu, choose `Build Solution`.
### Locally compiling the installer
1. Open `installer\PowerToysSetup.sln`
2. In Visual Studio, in the `Solutions Configuration` drop-down menu select `Release`
3. From the `Build` menu choose `Build Solution`.
The resulting `PowerToysSetup.msi` installer will be available in the `installer\PowerToysSetup\x64\Release\` folder.
#### Supported arguments for the .EXE Bootstrapper installer
Head over to the wiki to see the [full list of supported installer arguments][installerArgWiki].
## Debugging
@@ -79,15 +128,15 @@ The following configuration issue only applies if the user is a member of the Ad
Some PowerToys modules require being run with the highest permission level if the current user is a member of the Administrators group. The highest permission level is required to be able to perform some actions when an elevated application (e.g. Task Manager) is in the foreground or is the target of an action. Without elevated privileges some PowerToys modules will still work but with some limitations:
- the `FancyZones` module will be not be able to move an elevated window to a zone.
- the `Shortcut Guide` module will not appear if the foreground window belongs to an elevated application.
- The `FancyZones` module will be not be able to move an elevated window to a zone.
- The `Shortcut Guide` module will not appear if the foreground window belongs to an elevated application.
To run and debug PowerToys from Visual Studio when the user is a member of the Administrators group, Visual Studio has to be started with elevated privileges. If you want to avoid running Visual Studio with elevated privileges and don't mind the limitations described above, you can do the following: open the `runner` project properties and navigate to the `Linker -> Manifest File` settings, edit the `UAC Execution Level` property and change it from `highestAvailable (level='highestAvailable')` to `asInvoker (/level='asInvoker')`, save the changes.
## How to create new PowerToys
See the instructions on [how to install the PowerToys Module project template](tools/project_template). <br />
Specifications for the [PowerToys settings API](doc/specs/PowerToys-settings.md).
See the instructions on [how to install the PowerToys Module project template](/tools/project_template). <br />
Specifications for the [PowerToys settings API](/doc/devdocs/settings.md).
## Implementation details
@@ -111,42 +160,6 @@ Definition of the interface used by the [`runner`](/src/runner) to manage the Po
The common lib, as the name suggests, contains code shared by multiple PowerToys components and modules, e.g. [json parsing](/src/common/json.h) and [IPC primitives](/src/common/two_way_pipe_message_ipc.h).
### [`Settings`](settings.md)
### [`Settings`](settingsv2/)
WebView project for editing the PowerToys settings.
The html portion of the project that is shown in the WebView is contained in [`settings-html`](/src/settings/settings-heml).
Instructions on how build a new version and update this project are in the [Web project for the Settings UI](./settings-web.md).
While developing, it's possible to connect the WebView to the development server running in localhost by setting the `_DEBUG_WITH_LOCALHOST` flag to `1` and following the instructions near it in `./main.cpp`.
### [`Settings-web`](settings-web.md)
This project generates the web UI shown in the [PowerToys Settings](/src/editor).
It's a `ReactJS` project created using [UI Fabric](https://developer.microsoft.com/en-us/fabric#/).
## Current modules
### [`FancyZones`](modules/fancyzones.md)
The FancyZones PowerToy that allows users to create custom zones on the screen, to which the windows will snap when moved.
### [`PowerRename`](modules/powerrename.md)
PowerRename is a Windows Shell Context Menu Extension for advanced bulk renaming using simple search and replace or more powerful regular expression matching.
### [`Shortcut Guide`](modules/shortcut_guide.md)
The Windows Shortcut Guide, displayed when the WinKey is held for some time.
### _obsolete_ [`example_powertoy`](modules/example_powertoy.md)
An example PowerToy, that demonstrates how to create new ones. Please note, that this is going to become a Visual Studio project template soon.
This PowerToy serves as a sample to show how to implement the [PowerToys interface](/src/modules/interface/) when creating a PowerToy. It also showcases the currently implemented settings.
#### Options
This module has a setting to serve as an example for each of the currently implemented settings property:
- BoolToggle property
- IntSpinner property
- String property
- ColorPicker property
- CustomAction property
![Image of the Options](/doc/images/example_powertoy/settings.png)
Settings v2 is our current settings implementation. Please head over to the dev docs that goes into the current settings system.

Some files were not shown because too many files have changed in this diff Show More