Compare commits

...

385 Commits

Author SHA1 Message Date
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
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
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
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
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
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
1586 changed files with 78382 additions and 22337 deletions

View File

@@ -1,38 +0,0 @@
---
name: 🐛 Bug report
about: Report errors or unexpected behavior
title: ''
labels: Issue-Bug
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.
-->
## Computer information
- PowerToys version:
- PowerToy Utility:
- Running PowerToys as Admin:
- Windows build number: [run "winver"]
## 📝 Provide detailed reproduction steps (if any)
1.
2.
3.
### ✔️ Expected result
_What is the expected result of the above steps?_
### ❌ Actual result
_What is the actual result of the above steps?_
## 📷 Screenshots
_Are there any useful screenshots? WinKey+Shift+S and then just paste them directly into the form_

90
.github/ISSUE_TEMPLATE/bug_report.yml vendored Normal file
View File

@@ -0,0 +1,90 @@
name: "Bug report 🐛"
description: Report errors or unexpected behavior
title: ''
labels:
- Issue-Bug
- Triage-Needed
assignees: ''
issue_body: true
body:
- type: markdown
attributes:
value: |
Please make sure to [search for existing issues](https://github.com/microsoft/PowerToys/issues) before filing a new one!
We highly suggest including a screenshots and a bug report log (System tray->Report bug). To include, paste them into the markdown editor below the form or follow up with a separate comment.
- type: input
attributes:
label: Microsoft PowerToys version
placeholder: |
"0.33.1"
description: |
Hover over system tray icon or look at Settings
validations:
required: true
- type: dropdown
attributes:
label: Running as admin
description: Are you running PowerToys as Admin?
options:
- 'No'
- 'Yes'
validations:
required: true
- type: dropdown
attributes:
label: Area(s) with issue?
description: What things had an issue? Check all that apply.
multiple: true
options:
- General
- ColorPicker
- FancyZones
- FancyZones Editor
- Image Resizer
- Keyboard Manager
- MD Preview
- PowerRename
- PowerToys Run
- Shortcut Guide
- SVG Preview
- SVG Thumbnail
- Installer
- System tray interaction
- Settings window
validations:
required: true
- 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
- type: textarea
attributes:
label: Steps to reproduce
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: true

View File

@@ -2,7 +2,7 @@
name: "\U0001F4DA Documentation Issue"
about: Report issues in our documentation
title: ''
labels: Issue-Docs
labels: Issue-Docs,Triage-Needed
assignees: ''
---

View File

@@ -2,7 +2,7 @@
name: "⭐ Feature request"
about: Propose something new.
title: ''
labels: ''
labels: Triage-Needed
assignees: ''
---

View File

@@ -2,7 +2,7 @@
name: 📖 Localization/Translation issue
about: Report incorrect translations.
title: ''
labels: Issue-Bug,Area-Localization,Issue-Translation
labels: Issue-Bug,Area-Localization,Issue-Translation,Triage-Needed
assignees: ''
---

View File

@@ -1,3 +1,13 @@
# See https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples:-excludes
(?:^|/)(?i)COPYRIGHT
(?:^|/)(?i)LICEN[CS]E
(?:^|/)package(?:-lock)\.json$
(?:^|/)vendor/
/package(?:-lock|)\.json$
/pinyindb/
/settings-html/
ignore$
[/.][a-z]{2}(?:-[a-zA-Z]{2}|)\.
\.ai$
\.bmp$
\.dat$
@@ -7,13 +17,13 @@
\.ico$
\.jpg$
\.lcl$
\.lock$
\.min\.
\.mod$
\.pdf$
\.png$
\.PNG$
\.woff$
\.zip$
^\.github/
^\.github/actions/spell-check/
/package(?:-lock|)\.json$
/pinyindb/
/settings-html/
[/.][a-z]{2}(?:-[a-zA-Z]{2}|)\.

File diff suppressed because it is too large Load Diff

View File

@@ -1,11 +1,25 @@
# See https://github.com/check-spelling/check-spelling/wiki/Configuration-Examples:-patterns
https?://(?:(?:www\.|)youtube\.com|youtu.be)/[-a-zA-Z0-9?&=]*
# GitHub SHAs
\bapi.github\.com/repos/[^/]+/[^/]+/[^/]+/[0-9a-f]+\b
://github\.(?:com|blog)/[^\w")]+
(?:\[[0-9a-f]+\]\(https:/|)/github\.com/[^/]+/[^/]+/[^/]+/[0-9a-f]+(?:[-0-9a-zA-Z/#.]*|)\b
# githubusercontent
://githubusercontent\.com/[^\w")]+
# gist github
/gist\.github\.com/[^/]+/[0-9a-f]+
# msdn
\b(?:download\.visualstudio|docs|msdn)\.microsoft\.com/[-_a-zA-Z0-9()=./]*
data:[a-zA-Z=;,/0-9+-]+
0x[0-9a-fA-F](?:\.[0-9a-fA-F]*|)[pP]
(?:0[Xx]|U\+|#)[a-f0-9A-FGgRr]{2,}[Uu]?[Ll]{0,2}\b
[{"][0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}[}"]
\b([A-Za-z])\1{3,}\b
# uuid:
[-<({"'>][0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}[<'"})>]
# ignore long runs of a single character:
\b([A-Za-z])\g{-1}{3,}\b
(?:L"[abAB]+", ){3}L"[abAB]+"
"Lorem[^"]+?\."
TestCase\("[^"]+"
@@ -32,3 +46,18 @@ TestCase\("[^"]+"
\\testapp
\\tests
\\tools
# plugin.json
^ "ID": "[0-9A-F]{32}",$
# UnitTests
\[DataRow\(.*\)\]
# Id info inside markdown file (registry.md)
^\|\s+ID\s+\|\s*\`[0-9A-F]{32}\`
# marker for ignoring a comment to the end of the line
^.*/\* #no-spell-check-line \*/.*$
// #no-spell-check.*$
http://tes/

View File

@@ -1,18 +1,23 @@
## Summary of the Pull Request
_What is this about?_
**What is this about:**
## 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
**What is include in the PR:**
## Info on Pull Request
**How does someone test / validate:**
_What does this include?_
## Quality Checklist
## Validation Steps Performed
- [ ] **Linked issue:** #xxx
- [ ] **Communication:** I've discussed this with core contributors in the issue.
- [ ] **Tests:** Added/updated and all pass
- [ ] **Installer:** Added/updated and all pass
- [ ] **Localization:** All end user facing strings can be localized
- [ ] **Docs:** Added/ updated
- [ ] **Binaries:** Any new files are added to WXS / YML
- [ ] No new binaries
- [ ] [YML for signing](https://github.com/microsoft/PowerToys/blob/master/.pipelines/pipeline.user.windows.yml#L68) for new binaries
- [ ] [WXS for installer](https://github.com/microsoft/PowerToys/blob/master/installer/PowerToysSetup/Product.wxs) for new binaries
_How does someone test & validate?_
## Contributor License Agreement (CLA)
A CLA must be signed. If not, go over [here](https://cla.opensource.microsoft.com/microsoft/PowerToys) and sign the CLA.

44
.github/workflows/codeql-analysis.yml vendored Normal file
View File

@@ -0,0 +1,44 @@
name: "CodeQL"
on:
# push:
# running on cron since this isn't running on our agent currently
schedule:
- cron: '0 0 * * *'
- cron: '0 12 * * *'
jobs:
analyze:
name: Analyze
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
language: [ 'cpp', 'csharp', 'javascript' ]
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ]
# Learn more: https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed
steps:
- name: Checkout repository
uses: actions/checkout@v2
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v1
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# queries: ./path/to/local/query, your-org/your-repo/queries@main
# these CMDs are being used on the Build farm signed instance, not the YML files for CI
- name: Manual build
run: |
.\.pipelines\restore.cmd
.\.pipelines\build.cmd
if: ${{ matrix.language == 'cpp' || matrix.language == 'csharp' }}
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1

View File

@@ -1,20 +1,24 @@
name: Spell checking
on:
pull_request_target:
push:
schedule:
# * is a special character in YAML so you have to quote this string
- cron: '15 * * * *'
jobs:
build:
name: Spell checking
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2.0.0
- name: checkout-merge
if: "contains(github.event_name, 'pull_request')"
uses: actions/checkout@v2.0.0
with:
ref: refs/pull/${{github.event.pull_request.number}}/merge
fetch-depth: 5
- name: checkout
if: "!contains(github.event_name, 'pull_request')"
uses: actions/checkout@v2.0.0
with:
fetch-depth: 5
- uses: check-spelling/check-spelling@0.0.16-alpha
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
bucket: .github/actions
project: spell-check
- uses: check-spelling/check-spelling@0.0.17-alpha
with:
config: .github/actions/spell-check

5
.gitmodules vendored
View File

@@ -1,11 +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

View File

@@ -0,0 +1,9 @@
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
pushd .
cd ..
set SolutionDir=%cd%
popd
SET IsPipeline=1
call msbuild ../tools/BugReportTool/BugReportTool.sln /p:Configuration=Release /p:Platform=x64 /p:CIBuild=true || exit /b 1

View File

@@ -1,7 +1,7 @@
parameters:
configuration: 'Release'
platform: ''
additionalBuildArguments: '-m /p:CIBuild=true'
additionalBuildArguments: '-m'
jobs:
- job: Build${{ parameters.platform }}${{ parameters.configuration }}
@@ -9,7 +9,7 @@ jobs:
variables:
BuildConfiguration: ${{ parameters.configuration }}
BuildPlatform: ${{ parameters.platform }}
pool: { vmImage: windows-2019 }
pool: "windevbuildagents"
timeoutInMinutes: 120
strategy:
maxParallel: 10

View File

@@ -12,6 +12,8 @@ steps:
inputs:
versionSpec: 5.8.0
#- template: .\..\..\..\restore-dependencies.yml
- task: VisualStudioTestPlatformInstaller@1
displayName: Ensure VSTest Platform
@@ -34,6 +36,44 @@ steps:
msbuildArgs: ${{ parameters.additionalBuildArguments }}
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: 16.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: 16.0
platform: '$(BuildPlatform)'
configuration: '$(BuildConfiguration)'
msbuildArgs: ${{ parameters.additionalBuildArguments }}
maximumCpuCount: true
- task: NuGetCommand@2
displayName: Restore NuGet packages for PowerToysSetup.sln
inputs:
@@ -72,37 +112,59 @@ steps:
msbuildArgs: ${{ parameters.additionalBuildArguments }}
maximumCpuCount: true
# directly not doing WinAppDriver testing
- task: VSTest@2
displayName: 'Run .Net Core Tests'
displayName: 'MS Tests'
inputs:
platform: '$(BuildPlatform)'
configuration: '$(BuildConfiguration)'
testSelector: 'testAssemblies'
testAssemblyVer2: |
**\Microsoft.Plugin.Folder.UnitTest.dll
**\Microsoft.Plugin.Program.UnitTests.dll
**\Microsoft.Plugin.Calculator.UnitTest.dll
**\Microsoft.Plugin.Uri.UnitTests.dll
**\Wox.Test.dll
**\*Microsoft.PowerToys.Settings.UI.UnitTests.dll
**\UnitTests-SvgThumbnailProvider.dll
**\Microsoft.PowerToys.Settings.UI.UnitTests.dll
**\UnitTests-SvgPreviewHandler.dll
**\UnitTests-PreviewHandlerCommon.dll
**\PreviewPaneUnitTests.dll
**\Microsoft.PowerToys.Run.Plugin.Registry.UnitTests.dll
**\UnitTest-ColorPickerUI.dll
**\Microsoft.Interop.Tests.dll
!**\obj\**
# .NetFramework assemblies
- task: VSTest@2
displayName: 'Run .Net Framework Tests'
displayName: 'XUnit Tests'
inputs:
platform: '$(BuildPlatform)'
configuration: '$(BuildConfiguration)'
testSelector: 'testAssemblies'
testAssemblyVer2: |
**\ImageResizer.Test.dll
!**\obj\**
- task: VSTest@2
displayName: 'NUnit Tests'
inputs:
platform: '$(BuildPlatform)'
configuration: '$(BuildConfiguration)'
testSelector: 'testAssemblies'
testAssemblyVer2: |
**\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
!**\obj\**
# Native dlls
- task: VSTest@2
displayName: 'Native Tests'
inputs:
platform: '$(BuildPlatform)'
configuration: '$(BuildConfiguration)'
testSelector: 'testAssemblies'
testAssemblyVer2: |
**\KeyboardManagerTest.dll
**\UnitTests-CommonLib.dll
**\PreviewPaneUnitTests.dll #this is the markdown tests
**\UnitTests-PreviewHandlerCommon.dll
**\UnitTests-SvgPreviewHandler.dll
**\PowerRenameUnitTests.dll
**\powerpreviewTest.dll
!**\obj\**
# **\PowerRenameUnitTests.dll

View File

@@ -5,7 +5,8 @@ environment:
version: '2019'
runtime:
provider: 'appcontainer'
image: 'cdpxwin1809.azurecr.io/global/vse2019:latest'
# we will want to shift this to latest in the near future but this unblocks us
image: 'cdpxwin1809.azurecr.io/global/vse2019@sha256:44a8af0de5efa68829dbdfc3ecef3864d9770f1fc426b897fc37888032c9f60c'
source_mode: 'map'
version:
@@ -19,15 +20,12 @@ signing_options:
package_sources:
nuget:
feeds:
'Nuget': 'https://api.nuget.org/v3/index.json'
'Toolset': 'https://msazure.pkgs.visualstudio.com/_packaging/Toolset/nuget/v3/index.json'
'PipelineBuildSupplement': 'https://msazure.pkgs.visualstudio.com/_packaging/PipelineBuildSupplement/nuget/v3/index.json'
'PowerToysCDPX_Feed': 'https://github-private.pkgs.visualstudio.com/microsoft/_packaging/PowerToysCDPX_Feed/nuget/v3/index.json'
restore:
commands:
- !!defaultcommand
name: 'Restore Power Toys Telemetry'
command: '.pipelines\restore-telemetry.cmd'
command: '.pipelines\restore-telemetry.cmd'
- !!defaultcommand
name: 'Restore Power Toys'
command: '.pipelines\restore.cmd'
@@ -37,6 +35,10 @@ restore:
- !!defaultcommand
name: 'Restore Localization packages'
command: '.pipelines\restore-localization.cmd'
- !!defaultcommand
name: 'Restore Tools packages'
command: '.pipelines\restore-tools.cmd'
build:
@@ -63,35 +65,47 @@ build:
to: 'Build_Output'
include:
- 'action_runner.exe'
- 'BugReportTool\BugReportTool.exe'
- 'modules\ColorPicker\ColorPicker.dll'
- 'modules\ColorPicker\ColorPicker.exe'
- 'modules\ColorPicker\ColorPickerUI.dll'
- 'modules\ColorPicker\ColorPickerUI.exe'
- 'modules\ColorPicker\ManagedCommon.dll'
- 'modules\ColorPicker\Microsoft.PowerToys.Common.UI.dll'
- 'modules\ColorPicker\Microsoft.PowerToys.Settings.UI.Lib.dll'
- 'modules\ColorPicker\PowerToysInterop.dll'
- 'modules\ColorPicker\Telemetry.dll'
- '**\*.resources.dll'
- 'modules\FancyZones\fancyzones.dll'
- 'modules\FancyZones\FancyZonesEditor.exe'
- 'modules\FancyZones\FancyZonesEditor.dll'
- 'modules\FancyZones\ManagedCommon.dll'
- 'modules\FancyZones\Telemetry.dll'
- 'modules\FancyZones\Microsoft.PowerToys.Common.UI.dll'
- 'modules\FileExplorerPreview\MarkdownPreviewHandler.dll'
- 'modules\FileExplorerPreview\MarkdownPreviewHandler.comhost.dll'
- 'modules\FileExplorerPreview\powerpreview.dll'
- 'modules\FileExplorerPreview\PreviewHandlerCommon.dll'
- 'modules\FileExplorerPreview\SvgPreviewHandler.dll'
- 'modules\FileExplorerPreview\SVGThumbnailProvider.dll'
- 'modules\FileExplorerPreview\SvgPreviewHandler.comhost.dll'
- 'modules\FileExplorerPreview\SvgThumbnailProvider.dll'
- 'modules\FileExplorerPreview\SvgThumbnailProvider.comhost.dll'
- 'modules\FileExplorerPreview\Telemetry.dll'
- 'modules\ImageResizer\ImageResizer.exe'
- 'modules\ImageResizer\ImageResizer.dll'
- 'modules\ImageResizer\ImageResizerExt.dll'
- 'modules\ImageResizer\PowerToysInterop.dll'
- 'modules\ImageResizer\ManagedCommon.dll'
- 'modules\ImageResizer\ManagedTelemetry.dll'
- 'modules\ImageResizer\Microsoft.PowerToys.Common.UI.dll'
- 'modules\KeyboardManager\KeyboardManager.dll'
- 'modules\launcher\Microsoft.PowerToys.Settings.UI.Lib.dll'
- 'modules\launcher\ManagedCommon.dll'
- 'modules\launcher\Microsoft.PowerToys.Common.UI.dll'
- 'modules\launcher\Microsoft.Launcher.dll'
- 'modules\launcher\Plugins\Microsoft.Plugin.Calculator\Microsoft.Plugin.Calculator.dll'
- 'modules\launcher\Plugins\Microsoft.Plugin.Calculator\Wox.Infrastructure.dll'
- 'modules\launcher\Plugins\Microsoft.Plugin.Calculator\Wox.Plugin.dll'
- 'modules\launcher\Plugins\Microsoft.Plugin.Calculator\Telemetry.dll'
- 'modules\launcher\Plugins\Microsoft.PowerToys.Run.Plugin.Calculator\Microsoft.PowerToys.Run.Plugin.Calculator.dll'
- 'modules\launcher\Plugins\Microsoft.PowerToys.Run.Plugin.Calculator\Wox.Infrastructure.dll'
- 'modules\launcher\Plugins\Microsoft.PowerToys.Run.Plugin.Calculator\Wox.Plugin.dll'
- 'modules\launcher\Plugins\Microsoft.PowerToys.Run.Plugin.Calculator\Telemetry.dll'
- 'modules\launcher\Plugins\Microsoft.Plugin.Folder\Microsoft.Plugin.Folder.dll'
- 'modules\launcher\Plugins\Microsoft.Plugin.Folder\Wox.Infrastructure.dll'
- 'modules\launcher\Plugins\Microsoft.Plugin.Folder\Wox.Plugin.dll'
@@ -103,6 +117,8 @@ build:
- 'modules\launcher\Plugins\Microsoft.Plugin.Program\Wox.Infrastructure.dll'
- 'modules\launcher\Plugins\Microsoft.Plugin.Program\Wox.Plugin.dll'
- 'modules\launcher\Plugins\Microsoft.Plugin.Program\Telemetry.dll'
- 'modules\launcher\Plugins\Microsoft.PowerToys.Run.Plugin.Registry\Microsoft.PowerToys.Run.Plugin.Registry.dll'
- 'modules\launcher\Plugins\Microsoft.PowerToys.Run.Plugin.Registry\ManagedTelemetry.dll'
- 'modules\launcher\Plugins\Microsoft.Plugin.Shell\Microsoft.Plugin.Shell.dll'
- 'modules\launcher\Plugins\Microsoft.Plugin.Shell\Wox.Infrastructure.dll'
- 'modules\launcher\Plugins\Microsoft.Plugin.Shell\Wox.Plugin.dll'
@@ -115,6 +131,9 @@ build:
- 'modules\launcher\Plugins\Microsoft.Plugin.WindowWalker\Wox.Infrastructure.dll'
- 'modules\launcher\Plugins\Microsoft.Plugin.WindowWalker\Wox.Plugin.dll'
- 'modules\launcher\Plugins\Microsoft.Plugin.WindowWalker\Telemetry.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\PowerLauncher.dll'
- 'modules\launcher\PowerLauncher.exe'
- 'modules\launcher\PowerLauncher.Telemetry.dll'
@@ -132,13 +151,23 @@ build:
- 'PowerToys.exe'
- 'PowerToysInterop.dll'
- 'PowerToysSettings.exe'
- 'SettingsUIRunner\Microsoft.PowerToys.Settings.UI.exe'
- 'SettingsUIRunner\Microsoft.PowerToys.Settings.UI.Lib.dll'
- 'SettingsUIRunner\Microsoft.PowerToys.Settings.UI.Runner.dll'
- 'SettingsUIRunner\Microsoft.PowerToys.Settings.UI.Runner.exe'
- 'SettingsUIRunner\PowerToysInterop.dll'
- 'SettingsUIRunner\Telemetry.dll'
- 'SettingsUIRunner\ManagedCommon.dll'
- 'Settings\Microsoft.PowerToys.Settings.UI.exe'
- 'Settings\Microsoft.PowerToys.Settings.UI.Lib.dll'
- 'Settings\PowerToys.Settings.dll'
- 'Settings\PowerToys.Settings.exe'
- 'Settings\PowerToysInterop.dll'
- 'Settings\Telemetry.dll'
- 'Settings\ManagedCommon.dll'
signing_options:
sign_inline: true # This does signing a soon as this command completes
- !!buildcommand
name: 'Build Power Toys Tools'
command: '.pipelines\build-tools.cmd'
artifacts:
- from: 'x64\Release'
to: 'Build_Output'
include:
- 'BugReportTool\BugReportTool.exe'
signing_options:
sign_inline: true # This does signing a soon as this command completes
- !!buildcommand
@@ -180,23 +209,23 @@ build:
# signing_options:
# profile: '400'
static_analysis_options:
binskim_options:
static_analysis_options:
binskim_options:
files_to_scan:
- from: 'installer/packages'
exclude:
- 'WiX.*/**/*.dll'
- 'Wix.*/**/*.exe'
moderncop_options:
moderncop_options:
files_to_scan:
- from: 'src'
exclude:
- from: 'src'
exclude:
- '**/just.config.js'
- '**/webpack.config.js'
- '**/webpack.serve.config.js'
- '**/dist/bundle.js'
- '**/dist/bundle.js'
policheck_options:
files_to_scan:
- exclude:
- exclude:
- '**/*.lcl'

View File

@@ -0,0 +1,32 @@
# not using this but keeping around in case we need it in the future.
# good use case here could be to set up a new machine, we just point people at it.
# https://github.com/microsoft/PowerToys/tree/master/doc/devdocs#prerequisites-for-compiling-powertoys
# improvements if this script is used to replace the snippet
# Add in a param for passive versus quiet. Could be a IsSettingUpDevComputer true/false flag
# default it to true which would be passive flag for normal people, false would set to quiet
$VS_DOWNLOAD_LINK = "https://aka.ms/vs/16/release/vs_buildtools.exe"
$VS_INSTALL_ARGS = @("--nocache","--quiet","--wait",
"--add Microsoft.VisualStudio.Workload.NativeDesktop",
"--add Microsoft.VisualStudio.Workload.ManagedDesktop",
"--add Microsoft.VisualStudio.Workload.Universal",
"--add Microsoft.VisualStudio.ComponentGroup.UWP.VC",
"--add Microsoft.VisualStudio.Component.Windows10SDK.17134",
"--add Microsoft.VisualStudio.Component.VC.Runtimes.x86.x64.Spectre",
"--add Microsoft.NetCore.Component.Runtime.3.1",
"--add Microsoft.VisualStudio.Component.VC.ATL.Spectre")
curl.exe --retry 3 -kL $VS_DOWNLOAD_LINK --output vs_installer.exe
if ($LASTEXITCODE -ne 0) {
echo "Download of the VS 2019 installer failed"
exit 1
}
$process = Start-Process "${PWD}\vs_installer.exe" -ArgumentList $VS_INSTALL_ARGS -NoNewWindow -Wait -PassThru
Remove-Item -Path vs_installer.exe -Force
$exitCode = $process.ExitCode
if (($exitCode -ne 0) -and ($exitCode -ne 3010)) {
echo "VS 2019 installer exited with code $exitCode, which should be one of [0, 3010]."
exit 1
}

View File

@@ -0,0 +1,15 @@
parameters:
sdkVersion: 17134
steps:
- task: powershell@2
inputs:
targetType: filePath
filePath: .\.pipelines\restore-dependencies.ps1
displayName: 'Install VS dependencies'
- task: powershell@2
inputs:
targetType: filePath
filePath: .\.pipelines\restore-windowsSdk17134.ps1
arguments: ${{ parameters.sdkVersion }}
displayName: 'Install Windows SDK 17134'

View File

@@ -0,0 +1,3 @@
cd /D "%~dp0"
nuget restore ../tools/BugReportTool/BugReportTool.sln || exit /b 1

View File

@@ -0,0 +1,286 @@
# Not using this but keeping around in case we need it in the future.
# It will install 17134 and can be modified to support iso's.
[CmdletBinding()]
param([Parameter(Mandatory=$true, Position=0)]
[string]$buildNumber)
# Ensure the error action preference is set to the default for PowerShell3, 'Stop'
$ErrorActionPreference = 'Stop'
# Constants
$WindowsSDKOptions = @("OptionId.UWPCpp", "OptionId.DesktopCPPx64", "OptionId.DesktopCPPx86", "OptionId.DesktopCPPARM64", "OptionId.DesktopCPPARM", "OptionId.WindowsDesktopDebuggers")
$WindowsSDKRegPath = "HKLM:\Software\WOW6432Node\Microsoft\Windows Kits\Installed Roots"
$WindowsSDKRegRootKey = "KitsRoot10"
$WindowsSDKVersion = "10.0.$buildNumber.0"
$WindowsSDKInstalledRegPath = "$WindowsSDKRegPath\$WindowsSDKVersion\Installed Options"
$StrongNameRegPath = "HKLM:\SOFTWARE\Microsoft\StrongName\Verification"
$PublicKeyTokens = @("31bf3856ad364e35")
if ($buildNumber -notmatch "^\d{5,}$")
{
Write-Host "ERROR: '$buildNumber' doesn't look like a windows build number"
Write-Host
Exit 1
}
function Download-File
{
param ([string] $outDir,
[string] $downloadUrl,
[string] $downloadName)
$downloadPath = Join-Path $outDir "$downloadName.download"
$downloadDest = Join-Path $outDir $downloadName
$downloadDestTemp = Join-Path $outDir "$downloadName.tmp"
Write-Host -NoNewline "Downloading $downloadName..."
$retries = 10
$downloaded = $false
while (-not $downloaded)
{
try
{
$webclient = new-object System.Net.WebClient
$webclient.DownloadFile($downloadUrl, $downloadPath)
$downloaded = $true
}
catch [System.Net.WebException]
{
Write-Host
Write-Warning "Failed to fetch updated file from $downloadUrl : $($error[0])"
if (!(Test-Path $downloadDest))
{
if ($retries -gt 0)
{
Write-Host "$retries retries left, trying download again"
$retries--
start-sleep -Seconds 10
}
else
{
throw "$downloadName was not found at $downloadDest"
}
}
else
{
Write-Warning "$downloadName may be out of date"
}
}
}
Unblock-File $downloadPath
$downloadDestTemp = $downloadPath;
# Delete and rename to final dest
Write-Host "testing $downloadDest"
if (Test-Path $downloadDest)
{
Write-Host "Deleting: $downloadDest"
Remove-Item $downloadDest -Force
}
Move-Item -Force $downloadDestTemp $downloadDest
Write-Host "Done"
return $downloadDest
}
function Disable-StrongName
{
param ([string] $publicKeyToken = "*")
reg ADD "HKLM\SOFTWARE\Microsoft\StrongName\Verification\*,$publicKeyToken" /f | Out-Null
if ($env:PROCESSOR_ARCHITECTURE -eq "AMD64")
{
reg ADD "HKLM\SOFTWARE\Wow6432Node\Microsoft\StrongName\Verification\*,$publicKeyToken" /f | Out-Null
}
}
function Test-Admin
{
$identity = [Security.Principal.WindowsIdentity]::GetCurrent()
$principal = New-Object Security.Principal.WindowsPrincipal $identity
$principal.IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
}
function Test-RegistryPathAndValue
{
param (
[parameter(Mandatory=$true)]
[ValidateNotNullOrEmpty()]
[string] $path,
[parameter(Mandatory=$true)]
[ValidateNotNullOrEmpty()]
[string] $value)
try
{
if (Test-Path $path)
{
Get-ItemProperty -Path $path | Select-Object -ExpandProperty $value -ErrorAction Stop | Out-Null
return $true
}
}
catch
{
}
return $false
}
function Test-InstallWindowsSDK
{
$retval = $true
if (Test-RegistryPathAndValue -Path $WindowsSDKRegPath -Value $WindowsSDKRegRootKey)
{
# A Windows SDK is installed
# Is an SDK of our version installed with the options we need?
$allRequiredSdkOptionsInstalled = $true
foreach($sdkOption in $WindowsSDKOptions)
{
if (!(Test-RegistryPathAndValue -Path $WindowsSDKInstalledRegPath -Value $sdkOption))
{
$allRequiredSdkOptionsInstalled = $false
}
}
if($allRequiredSdkOptionsInstalled)
{
# It appears we have what we need. Double check the disk
$sdkRoot = Get-ItemProperty -Path $WindowsSDKRegPath | Select-Object -ExpandProperty $WindowsSDKRegRootKey
if ($sdkRoot)
{
if (Test-Path $sdkRoot)
{
$refPath = Join-Path $sdkRoot "References\$WindowsSDKVersion"
if (Test-Path $refPath)
{
$umdPath = Join-Path $sdkRoot "UnionMetadata\$WindowsSDKVersion"
if (Test-Path $umdPath)
{
# Pretty sure we have what we need
$retval = $false
}
}
}
}
}
}
return $retval
}
function Test-InstallStrongNameHijack
{
foreach($publicKeyToken in $PublicKeyTokens)
{
$key = "$StrongNameRegPath\*,$publicKeyToken"
if (!(Test-Path $key))
{
return $true
}
}
return $false
}
Write-Host -NoNewline "Checking for installed Windows SDK $WindowsSDKVersion..."
$InstallWindowsSDK = Test-InstallWindowsSDK
if ($InstallWindowsSDK)
{
Write-Host "Installation required"
}
else
{
Write-Host "INSTALLED"
}
$StrongNameHijack = Test-InstallStrongNameHijack
Write-Host -NoNewline "Checking if StrongName bypass required..."
if ($StrongNameHijack)
{
Write-Host "REQUIRED"
}
else
{
Write-Host "Done"
}
if ($StrongNameHijack -or $InstallWindowsSDK)
{
if (!(Test-Admin))
{
Write-Host
throw "ERROR: Elevation required"
}
}
if ($InstallWindowsSDK)
{
# Static(ish) link for Windows SDK
# Note: there is a delay from Windows SDK announcements to availability via the static link
# $uri = "https://software-download.microsoft.com/download/sg/Windows_InsiderPreview_SDK_en-us_$($buildNumber)_1.iso";
# https://developer.microsoft.com/en-us/windows/downloads/sdk-archive/
$uri = "https://go.microsoft.com/fwlink/p/?linkid=870807"
if ($env:TEMP -eq $null)
{
$env:TEMP = Join-Path $env:SystemDrive 'temp'
}
$winsdkTempDir = Join-Path (Join-Path $env:TEMP ([System.IO.Path]::GetRandomFileName())) "WindowsSDK"
if (![System.IO.Directory]::Exists($winsdkTempDir))
{
[void][System.IO.Directory]::CreateDirectory($winsdkTempDir)
}
# $file = "winsdk_$buildNumber.iso"
$file = "winsdk_$buildNumber.exe"
Write-Host -NoNewline "Getting WinSDK from $uri"
$downloadFile = Download-File $winsdkTempDir $uri $file
Write-Host -NoNewline "File is at $downloadFile"
$downloadFileItem = Get-Item $downloadFile
# Check to make sure the file is at least 10 MB.
# if ($downloadFileItem.Length -lt 10*1024*1024)
# {
# Write-Host
# Write-Host "ERROR: Downloaded file doesn't look large enough to be an ISO. The requested version may not be on microsoft.com yet."
# Write-Host
# Exit 1
# }
# TODO Check if zip, exe, iso, etc.
try
{
Write-Host -NoNewLine "Installing WinSDK..."
Start-Process -Wait $downloadFileItem "/features $WindowsSDKOptions /q"
Write-Host "Done installing"
}
finally
{
Write-Host "Done"
}
}
if ($StrongNameHijack)
{
Write-Host -NoNewline "Disabling StrongName for Windows SDK..."
foreach($key in $PublicKeyTokens)
{
Disable-StrongName $key
}
Write-Host "Done"
}

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.17134",
"Microsoft.VisualStudio.Component.Windows10SDK.18362",
"Microsoft.VisualStudio.ComponentGroup.UWP.VC",
"Microsoft.VisualStudio.Component.VC.Runtimes.x86.x64.Spectre",
"Microsoft.VisualStudio.Component.VC.ATL.Spectre"
]
}

View File

@@ -6,9 +6,12 @@ Names are in alphabetical order based on first name.
## High impact community members
### [@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.
### [@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) and [icon design](https://github.com/microsoft/PowerToys/issues/1118).
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/)
@@ -53,13 +56,6 @@ PowerRename is from Chris's SmartRename and icon rendering for SVGs in File Expl
Color Picker is from Martin.
<!--
@alekhyareddy28
@jyuwono
@laviusmotileng-ms
@ryanbodrug-microsoft
@saahmedm
@somil55
@traies
@udit3333
-->
### 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

View File

@@ -59,7 +59,7 @@ If no existing item describes your issue/feature, great - please file a new issu
* 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`.
* **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 ours to solve, or may label the issue as `Help-Wanted`.
### DO NOT post "+1" comments
@@ -97,31 +97,16 @@ 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).
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%20Wanted).
---
## Development
### Fork, Clone, Branch and Create your PR
Follow the [development guidelines](https://github.com/microsoft/PowerToys/blob/master/doc/devdocs/readme.md).
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.
### How can I become a collaborateur on the PowerToys team
### 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.

95
Cpp.Build.props Normal file
View File

@@ -0,0 +1,95 @@
<?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>
</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 -->
<ItemDefinitionGroup>
<ClCompile>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
<WarningLevel>Level3</WarningLevel>
<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)|$(Platform)'=='Debug|x64'">
<ClCompile>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<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.17134.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<!-- Props that are constant for both Debug and Release configurations -->
<PropertyGroup Label="Configuration">
<PlatformToolset>v142</PlatformToolset>
<IntDir>$(SolutionDir)$(Platform)\$(Configuration)\obj\$(ProjectName)\</IntDir>
<CharacterSet>Unicode</CharacterSet>
<SpectreMitigation>Spectre</SpectreMitigation>
</PropertyGroup>
<!-- Debug/Release props -->
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<UseDebugLibraries>true</UseDebugLibraries>
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
</Project>

View File

@@ -1,14 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<_PropertySheetDisplayName>PowerToys.Root.Props</_PropertySheetDisplayName>
<ForceImportBeforeCppProps>$(MsbuildThisFileDirectory)\Cpp.Build.props</ForceImportBeforeCppProps>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<ConformanceMode>false</ConformanceMode>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
<LanguageStandard>stdcpplatest</LanguageStandard>
</ClCompile>
</ItemDefinitionGroup>
</Project>

View File

@@ -99,32 +99,6 @@ 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
### Chris Davis's SmartRename License
@@ -236,4 +210,31 @@ 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/>

View File

@@ -10,7 +10,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "runner", "src\runner\runner
{51920F1F-C28C-4ADF-8660-4238766796C2} = {51920F1F-C28C-4ADF-8660-4238766796C2}
{6A71162E-FC4C-4A2C-B90F-3CF94F59A9BB} = {6A71162E-FC4C-4A2C-B90F-3CF94F59A9BB}
{031AC72E-FA28-4AB7-B690-6F7B9C28AA73} = {031AC72E-FA28-4AB7-B690-6F7B9C28AA73}
{74485049-C722-400F-ABE5-86AC52D929B3} = {74485049-C722-400F-ABE5-86AC52D929B3}
{0485F45C-EA7A-4BB5-804B-3E8D14699387} = {0485F45C-EA7A-4BB5-804B-3E8D14699387}
{D29DDD63-E2CF-4657-9FD5-2AEDE4257E5D} = {D29DDD63-E2CF-4657-9FD5-2AEDE4257E5D}
{5CCC8468-DEC8-4D36-99D4-5C891BEBD481} = {5CCC8468-DEC8-4D36-99D4-5C891BEBD481}
@@ -22,22 +21,15 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "runner", "src\runner\runner
{A7D5099E-F0FD-4BF3-8522-5A682759F915} = {A7D5099E-F0FD-4BF3-8522-5A682759F915}
{0B43679E-EDFA-4DA0-AD30-F4628B308B1B} = {0B43679E-EDFA-4DA0-AD30-F4628B308B1B}
{B25AC7A5-FB9F-4789-B392-D5C85E948670} = {B25AC7A5-FB9F-4789-B392-D5C85E948670}
{E4E0D2AE-B17D-4BD4-8BEE-AFC8CC464C5F} = {E4E0D2AE-B17D-4BD4-8BEE-AFC8CC464C5F}
{AF2349B8-E5B6-4004-9502-687C1C7730B1} = {AF2349B8-E5B6-4004-9502-687C1C7730B1}
{A46629C4-1A6C-40FA-A8B6-10E5102BB0BA} = {A46629C4-1A6C-40FA-A8B6-10E5102BB0BA}
{17DA04DF-E393-4397-9CF0-84DABE11032E} = {17DA04DF-E393-4397-9CF0-84DABE11032E}
{F9C68EDF-AC74-4B77-9AF1-005D9C9F6A99} = {F9C68EDF-AC74-4B77-9AF1-005D9C9F6A99}
{07C389E3-6BC8-41CF-923E-307B1265FA2D} = {07C389E3-6BC8-41CF-923E-307B1265FA2D}
{655C9AF2-18D3-4DA6-80E4-85504A7722BA} = {655C9AF2-18D3-4DA6-80E4-85504A7722BA}
{89F34AF7-1C34-4A72-AA6E-534BCF972BD9} = {89F34AF7-1C34-4A72-AA6E-534BCF972BD9}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "common", "src\common\common.vcxproj", "{74485049-C722-400F-ABE5-86AC52D929B3}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ShortcutGuide", "src\modules\shortcut_guide\shortcut_guide.vcxproj", "{A46629C4-1A6C-40FA-A8B6-10E5102BB0BA}"
ProjectSection(ProjectDependencies) = postProject
{74485049-C722-400F-ABE5-86AC52D929B3} = {74485049-C722-400F-ABE5-86AC52D929B3}
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "modules", "modules", "{4574FDD0-F61D-4376-98BF-E5A1262C11EC}"
EndProject
@@ -46,35 +38,25 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "interface", "interface", "{
src\modules\interface\powertoy_module_interface.h = src\modules\interface\powertoy_module_interface.h
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "settings", "src\settings\settings.vcxproj", "{07C389E3-6BC8-41CF-923E-307B1265FA2D}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "fancyzones", "fancyzones", "{D1D6BC88-09AE-4FB4-AD24-5DED46A791DD}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FancyZonesLib", "src\modules\fancyzones\lib\FancyZonesLib.vcxproj", "{F9C68EDF-AC74-4B77-9AF1-005D9C9F6A99}"
ProjectSection(ProjectDependencies) = postProject
{74485049-C722-400F-ABE5-86AC52D929B3} = {74485049-C722-400F-ABE5-86AC52D929B3}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fancyzones", "src\modules\fancyzones\dll\FancyZonesModule.vcxproj", "{48804216-2A0E-4168-A6D8-9CD068D14227}"
ProjectSection(ProjectDependencies) = postProject
{74485049-C722-400F-ABE5-86AC52D929B3} = {74485049-C722-400F-ABE5-86AC52D929B3}
{5CCC8468-DEC8-4D36-99D4-5C891BEBD481} = {5CCC8468-DEC8-4D36-99D4-5C891BEBD481}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnitTests-FancyZones", "src\modules\fancyzones\tests\UnitTests\UnitTests.vcxproj", "{9C6A7905-72D4-4BF5-B256-ABFDAEF68AE9}"
ProjectSection(ProjectDependencies) = postProject
{74485049-C722-400F-ABE5-86AC52D929B3} = {74485049-C722-400F-ABE5-86AC52D929B3}
{F9C68EDF-AC74-4B77-9AF1-005D9C9F6A99} = {F9C68EDF-AC74-4B77-9AF1-005D9C9F6A99}
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "common", "common", "{1AFB6476-670D-4E80-A464-657E01DFF482}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnitTests-CommonLib", "src\common\UnitTests-CommonLib\UnitTests-CommonLib.vcxproj", "{1A066C63-64B3-45F8-92FE-664E1CCE8077}"
ProjectSection(ProjectDependencies) = postProject
{74485049-C722-400F-ABE5-86AC52D929B3} = {74485049-C722-400F-ABE5-86AC52D929B3}
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FancyZonesEditor", "src\modules\fancyzones\editor\FancyZonesEditor\FancyZonesEditor.csproj", "{5CCC8468-DEC8-4D36-99D4-5C891BEBD481}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FancyZonesEditor", "src\modules\fancyzones\editor\FancyZonesEditor\FancyZonesEditor.csproj", "{5CCC8468-DEC8-4D36-99D4-5C891BEBD481}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "powerrename", "powerrename", "{89E20BCE-EB9C-46C8-8B50-E01A82E6FDC3}"
EndProject
@@ -82,7 +64,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PowerRenameExt", "src\modul
ProjectSection(ProjectDependencies) = postProject
{0E072714-D127-460B-AFAD-B4C40B412798} = {0E072714-D127-460B-AFAD-B4C40B412798}
{51920F1F-C28C-4ADF-8660-4238766796C2} = {51920F1F-C28C-4ADF-8660-4238766796C2}
{74485049-C722-400F-ABE5-86AC52D929B3} = {74485049-C722-400F-ABE5-86AC52D929B3}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PowerRenameLib", "src\modules\powerrename\lib\PowerRenameLib.vcxproj", "{51920F1F-C28C-4ADF-8660-4238766796C2}"
@@ -96,39 +77,20 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PowerRenameTest", "src\modu
ProjectSection(ProjectDependencies) = postProject
{0E072714-D127-460B-AFAD-B4C40B412798} = {0E072714-D127-460B-AFAD-B4C40B412798}
{51920F1F-C28C-4ADF-8660-4238766796C2} = {51920F1F-C28C-4ADF-8660-4238766796C2}
{74485049-C722-400F-ABE5-86AC52D929B3} = {74485049-C722-400F-ABE5-86AC52D929B3}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PowerRenameUnitTests", "src\modules\powerrename\unittests\PowerRenameLibUnitTests.vcxproj", "{2151F984-E006-4A9F-92EF-C6DDE3DC8413}"
ProjectSection(ProjectDependencies) = postProject
{0E072714-D127-460B-AFAD-B4C40B412798} = {0E072714-D127-460B-AFAD-B4C40B412798}
{51920F1F-C28C-4ADF-8660-4238766796C2} = {51920F1F-C28C-4ADF-8660-4238766796C2}
{74485049-C722-400F-ABE5-86AC52D929B3} = {74485049-C722-400F-ABE5-86AC52D929B3}
{B25AC7A5-FB9F-4789-B392-D5C85E948670} = {B25AC7A5-FB9F-4789-B392-D5C85E948670}
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "examples", "examples", "{BEEAB7F2-FFF6-45AB-9CDB-B04CC0734B88}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ModuleTemplateCompileTest", "tools\project_template\ModuleTemplate\ModuleTemplateCompileTest.vcxproj", "{64A80062-4D8B-4229-8A38-DFA1D7497749}"
ProjectSection(ProjectDependencies) = postProject
{74485049-C722-400F-ABE5-86AC52D929B3} = {74485049-C722-400F-ABE5-86AC52D929B3}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PowerRenameUWPUI", "src\modules\powerrename\UWPui\PowerRenameUWPUI.vcxproj", "{0485F45C-EA7A-4BB5-804B-3E8D14699387}"
ProjectSection(ProjectDependencies) = postProject
{0E072714-D127-460B-AFAD-B4C40B412798} = {0E072714-D127-460B-AFAD-B4C40B412798}
{74485049-C722-400F-ABE5-86AC52D929B3} = {74485049-C722-400F-ABE5-86AC52D929B3}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "notifications", "src\common\notifications_winrt\notifications.vcxproj", "{0B593A6C-4143-4337-860E-DB5710FB87DB}"
ProjectSection(ProjectDependencies) = postProject
{74485049-C722-400F-ABE5-86AC52D929B3} = {74485049-C722-400F-ABE5-86AC52D929B3}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "notifications_dll", "src\common\notifications\notifications_dll.vcxproj", "{031AC72E-FA28-4AB7-B690-6F7B9C28AA73}"
ProjectSection(ProjectDependencies) = postProject
{74485049-C722-400F-ABE5-86AC52D929B3} = {74485049-C722-400F-ABE5-86AC52D929B3}
{0B593A6C-4143-4337-860E-DB5710FB87DB} = {0B593A6C-4143-4337-860E-DB5710FB87DB}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "KeyboardManager", "src\modules\keyboardmanager\dll\KeyboardManager.vcxproj", "{89F34AF7-1C34-4A72-AA6E-534BCF972BD9}"
@@ -148,7 +110,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "action_runner", "src\action
{17DA04DF-E393-4397-9CF0-84DABE11032E} = {17DA04DF-E393-4397-9CF0-84DABE11032E}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "updating", "src\common\updating\updating.vcxproj", "{17DA04DF-E393-4397-9CF0-84DABE11032E}"
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ApplicationUpdate", "src\common\updating\updating.vcxproj", "{17DA04DF-E393-4397-9CF0-84DABE11032E}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "keyboardmanager", "keyboardmanager", "{38BDB927-829B-4C65-9CD9-93FB05D66D65}"
EndProject
@@ -164,7 +126,9 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Wox.Test", "src\modules\lau
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Plugins", "Plugins", "{4AFC9975-2456-4C70-94A4-84073C1CED93}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Plugin.Calculator", "src\modules\launcher\Plugins\Microsoft.Plugin.Calculator\Microsoft.Plugin.Calculator.csproj", "{59BD9891-3837-438A-958D-ADC7F91F6F7E}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.PowerToys.Run.Plugin.Calculator", "src\modules\launcher\Plugins\Microsoft.PowerToys.Run.Plugin.Calculator\Microsoft.PowerToys.Run.Plugin.Calculator.csproj", "{59BD9891-3837-438A-958D-ADC7F91F6F7E}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Community.PowerToys.Run.Plugin.VSCodeWorkspaces", "src\modules\launcher\Plugins\Community.PowerToys.Run.Plugin.VSCodeWorkspaces\Community.PowerToys.Run.Plugin.VSCodeWorkspaces.csproj", "{4D971245-7A70-41D5-BAA0-DDB5684CAF51}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Plugin.WindowWalker", "src\modules\launcher\Plugins\Microsoft.Plugin.WindowWalker\Microsoft.Plugin.WindowWalker.csproj", "{74F1B9ED-F59C-4FE7-B473-7B453E30837E}"
EndProject
@@ -188,38 +152,44 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PowerLauncher", "src\module
{FDB3555B-58EF-4AE6-B5F1-904719637AB4} = {FDB3555B-58EF-4AE6-B5F1-904719637AB4}
{59BD9891-3837-438A-958D-ADC7F91F6F7E} = {59BD9891-3837-438A-958D-ADC7F91F6F7E}
{C21BFF9C-2C99-4B5F-B7C9-A5E6DDDB37B0} = {C21BFF9C-2C99-4B5F-B7C9-A5E6DDDB37B0}
{0351ADA4-0C32-4652-9BA0-41F7B602372B} = {0351ADA4-0C32-4652-9BA0-41F7B602372B}
{787B8AA6-CA93-4C84-96FE-DF31110AD1C4} = {787B8AA6-CA93-4C84-96FE-DF31110AD1C4}
{F8B870EB-D5F5-45BA-9CF7-A5C459818820} = {F8B870EB-D5F5-45BA-9CF7-A5C459818820}
{74F1B9ED-F59C-4FE7-B473-7B453E30837E} = {74F1B9ED-F59C-4FE7-B473-7B453E30837E}
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{E775CC2C-24CB-48D6-9C3A-BE4CCE0DB17A}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "win-app-driver", "src\tests\win-app-driver\win-app-driver.csproj", "{880ED251-9E16-4713-9A70-D35FE0C01669}"
ProjectSection(SolutionItems) = preProject
src\tests\win-app-driver\README.md = src\tests\win-app-driver\README.md
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "previewpane", "previewpane", "{2F305555-C296-497E-AC20-5FA1B237996A}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PreviewHandlerCommon", "src\modules\previewpane\Common\PreviewHandlerCommon.csproj", "{AF2349B8-E5B6-4004-9502-687C1C7730B1}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PreviewHandlerCommon", "src\modules\previewpane\Common\PreviewHandlerCommon.csproj", "{AF2349B8-E5B6-4004-9502-687C1C7730B1}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MarkdownPreviewHandler", "src\modules\previewpane\MarkdownPreviewHandler\MarkdownPreviewHandler.csproj", "{6A71162E-FC4C-4A2C-B90F-3CF94F59A9BB}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MarkdownPreviewHandler", "src\modules\previewpane\MarkdownPreviewHandler\MarkdownPreviewHandler.csproj", "{6A71162E-FC4C-4A2C-B90F-3CF94F59A9BB}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnitTests-MarkdownPreviewHandler", "src\modules\previewpane\PreviewPaneUnitTests\UnitTests-MarkdownPreviewHandler.csproj", "{A2B51B8B-8F90-424E-BC97-F9AB7D76CA1A}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "UnitTests-MarkdownPreviewHandler", "src\modules\previewpane\PreviewPaneUnitTests\UnitTests-MarkdownPreviewHandler.csproj", "{A2B51B8B-8F90-424E-BC97-F9AB7D76CA1A}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SvgPreviewHandler", "src\modules\previewpane\SvgPreviewHandler\SvgPreviewHandler.csproj", "{DA425894-6E13-404F-8DCB-78584EC0557A}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SvgPreviewHandler", "src\modules\previewpane\SvgPreviewHandler\SvgPreviewHandler.csproj", "{DA425894-6E13-404F-8DCB-78584EC0557A}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnitTests-SvgPreviewHandler", "src\modules\previewpane\UnitTests-SvgPreviewHandler\UnitTests-SvgPreviewHandler.csproj", "{060D75DA-2D1C-48E6-A4A1-6F0718B64661}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "UnitTests-SvgPreviewHandler", "src\modules\previewpane\UnitTests-SvgPreviewHandler\UnitTests-SvgPreviewHandler.csproj", "{060D75DA-2D1C-48E6-A4A1-6F0718B64661}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnitTests-PreviewHandlerCommon", "src\modules\previewpane\UnitTests-PreviewHandlerCommon\UnitTests-PreviewHandlerCommon.csproj", "{748417CA-F17E-487F-9411-CAFB6D3F4877}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "UnitTests-PreviewHandlerCommon", "src\modules\previewpane\UnitTests-PreviewHandlerCommon\UnitTests-PreviewHandlerCommon.csproj", "{748417CA-F17E-487F-9411-CAFB6D3F4877}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "powerpreview", "src\modules\previewpane\powerpreview\powerpreview.vcxproj", "{217DF501-135C-4E38-BFC8-99D4821032EA}"
ProjectSection(ProjectDependencies) = postProject
{CC6E41AC-8174-4E8A-8D22-85DD7F4851DF} = {CC6E41AC-8174-4E8A-8D22-85DD7F4851DF}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "powerpreviewTest", "src\modules\previewpane\powerpreviewTest\powerpreviewTest.vcxproj", "{47310AB4-9034-4BD1-8D8B-E88AD21A171B}"
ProjectSection(ProjectDependencies) = postProject
{217DF501-135C-4E38-BFC8-99D4821032EA} = {217DF501-135C-4E38-BFC8-99D4821032EA}
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "core", "core", "{C3081D9A-1586-441A-B5F4-ED815B3719C1}"
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "settings-ui", "settings-ui", "{C3081D9A-1586-441A-B5F4-ED815B3719C1}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.PowerToys.Settings.UI.Runner", "src\core\Microsoft.PowerToys.Settings.UI.Runner\Microsoft.PowerToys.Settings.UI.Runner.csproj", "{E4E0D2AE-B17D-4BD4-8BEE-AFC8CC464C5F}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.PowerToys.Settings.UI", "src\core\Microsoft.PowerToys.Settings.UI\Microsoft.PowerToys.Settings.UI.csproj", "{A7D5099E-F0FD-4BF3-8522-5A682759F915}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.PowerToys.Settings.UI", "src\settings-ui\Microsoft.PowerToys.Settings.UI\Microsoft.PowerToys.Settings.UI.csproj", "{A7D5099E-F0FD-4BF3-8522-5A682759F915}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{4981CCD1-4CD9-4A49-B240-00AA46493FF8}"
ProjectSection(SolutionItems) = preProject
@@ -227,19 +197,18 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
src\tests\win-app-driver\packages.config = src\tests\win-app-driver\packages.config
EndProjectSection
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.PowerToys.Settings.UI.Library", "src\core\Microsoft.PowerToys.Settings.UI.Library\Microsoft.PowerToys.Settings.UI.Library.csproj", "{B1BCC8C6-46B5-4BFA-8F22-20F32D99EC6A}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.PowerToys.Settings.UI.Library", "src\settings-ui\Microsoft.PowerToys.Settings.UI.Library\Microsoft.PowerToys.Settings.UI.Library.csproj", "{B1BCC8C6-46B5-4BFA-8F22-20F32D99EC6A}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "interop", "src\common\interop\interop.vcxproj", "{F055103B-F80B-4D0C-BF48-057C55620033}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "common-md-flag", "src\common\common-md-flag\common-md-flag.vcxproj", "{985B3F2F-CEED-4C0A-A249-69257E719145}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.Interop.Tests", "src\common\interop-tests\Microsoft.Interop.Tests.csproj", "{437AD818-3F1F-4CA5-A79B-25233A157026}"
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PowerToysInterop", "src\common\interop\PowerToysInterop.vcxproj", "{F055103B-F80B-4D0C-BF48-057C55620033}"
ProjectSection(ProjectDependencies) = postProject
{CC6E41AC-8174-4E8A-8D22-85DD7F4851DF} = {CC6E41AC-8174-4E8A-8D22-85DD7F4851DF}
EndProjectSection
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Plugin.Folder", "src\modules\launcher\Plugins\Microsoft.Plugin.Folder\Microsoft.Plugin.Folder.csproj", "{787B8AA6-CA93-4C84-96FE-DF31110AD1C4}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PowerLauncher.Telemetry", "src\modules\launcher\PowerLauncher.Telemetry\PowerLauncher.Telemetry.csproj", "{08C8C05F-0362-41BC-818C-724572DF8B06}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Telemetry", "src\common\ManagedTelemetry\Telemetry\Telemetry.csproj", "{5D00D290-4016-4CFE-9E41-1E7C724509BA}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ManagedTelemetry", "src\common\ManagedTelemetry\Telemetry\ManagedTelemetry.csproj", "{5D00D290-4016-4CFE-9E41-1E7C724509BA}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "KeyboardManagerTest", "src\modules\keyboardmanager\test\KeyboardManagerTest.vcxproj", "{62173D9A-6724-4C00-A1C8-FB646480A9EC}"
EndProject
@@ -247,13 +216,13 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ManagedCommon", "src\common
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Plugin.Program.UnitTests", "src\modules\launcher\Plugins\Microsoft.Plugin.Program.UnitTests\Microsoft.Plugin.Program.UnitTests.csproj", "{42851751-CBC8-45A6-97F5-7A0753F7B4D1}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnitTests-SvgThumbnailProvider", "src\modules\previewpane\UnitTests-SvgThumbnailProvider\UnitTests-SvgThumbnailProvider.csproj", "{1EF1EEF0-10F0-4F2E-8550-39B6D8044D3E}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "UnitTests-SvgThumbnailProvider", "src\modules\previewpane\UnitTests-SvgThumbnailProvider\UnitTests-SvgThumbnailProvider.csproj", "{1EF1EEF0-10F0-4F2E-8550-39B6D8044D3E}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SvgThumbnailProvider", "src\modules\previewpane\SvgThumbnailProvider\SvgThumbnailProvider.csproj", "{8FFE09DA-FA4F-4EE1-B3A2-AD5497FBD1AD}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SvgThumbnailProvider", "src\modules\previewpane\SvgThumbnailProvider\SvgThumbnailProvider.csproj", "{8FFE09DA-FA4F-4EE1-B3A2-AD5497FBD1AD}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ColorPicker", "src\modules\colorPicker\ColorPicker\ColorPicker.vcxproj", "{655C9AF2-18D3-4DA6-80E4-85504A7722BA}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ColorPickerUI", "src\modules\colorPicker\ColorPickerUI\ColorPickerUI.csproj", "{BA58206B-1493-4C75-BFEA-A85768A1E156}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ColorPickerUI", "src\modules\colorPicker\ColorPickerUI\ColorPickerUI.csproj", "{BA58206B-1493-4C75-BFEA-A85768A1E156}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "colorpicker", "colorpicker", "{1D78B84B-CA39-406C-98F4-71F7EC266CC0}"
EndProject
@@ -261,18 +230,86 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Plugin.Uri", "src
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Plugin.Uri.UnitTests", "src\modules\launcher\Plugins\Microsoft.Plugin.Uri.UnitTests\Microsoft.Plugin.Uri.UnitTests.csproj", "{B81FB7B6-D30E-428F-908A-41422EFC1172}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.PowerToys.Settings.UI.UnitTests", "src\core\Microsoft.PowerToys.Settings.UI.UnitTests\Microsoft.PowerToys.Settings.UI.UnitTests.csproj", "{0F85E674-34AE-443D-954C-8321EB8B93B1}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.PowerToys.Settings.UI.UnitTests", "src\settings-ui\Microsoft.PowerToys.Settings.UI.UnitTests\Microsoft.PowerToys.Settings.UI.UnitTests.csproj", "{0F85E674-34AE-443D-954C-8321EB8B93B1}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Plugin.Calculator.UnitTest", "src\modules\launcher\Plugins\Microsoft.Plugin.Calculator.UnitTest\Microsoft.Plugin.Calculator.UnitTest.csproj", "{632BBE62-5421-49EA-835A-7FFA4F499BD6}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.PowerToys.Run.Plugin.Calculator.UnitTest", "src\modules\launcher\Plugins\Microsoft.PowerToys.Run.Plugin.Calculator.UnitTest\Microsoft.PowerToys.Run.Plugin.Calculator.UnitTest.csproj", "{632BBE62-5421-49EA-835A-7FFA4F499BD6}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Plugin.Folder.UnitTests", "src\modules\launcher\Plugins\Microsoft.Plugin.Folder.UnitTests\Microsoft.Plugin.Folder.UnitTests.csproj", "{4FA206A5-F69F-4193-BF8F-F6EEB496734C}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "UnitTest-ColorPickerUI", "src\modules\colorPicker\UnitTest-ColorPickerUI\UnitTest-ColorPickerUI.csproj", "{090CD7B7-3B0C-4D1D-BC98-83EB5D799BC1}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "logging", "src\logging\logging.vcxproj", "{7E1E3F13-2BD6-3F75-A6A7-873A2B55C60F}"
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "spdlog", "src\logging\logging.vcxproj", "{7E1E3F13-2BD6-3F75-A6A7-873A2B55C60F}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.PowerToys.Run.Plugin.System", "src\modules\launcher\Plugins\Microsoft.PowerToys.Run.Plugin.System\Microsoft.PowerToys.Run.Plugin.System.csproj", "{FD8EB419-FF9C-4D88-BB6F-BF6CED37747B}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.PowerToys.Run.Plugin.System.UnitTests", "src\modules\launcher\Plugins\Microsoft.PowerToys.Run.Plugin.System.UnitTests\Microsoft.PowerToys.Run.Plugin.System.UnitTests.csproj", "{DA5A6FE9-0040-40CC-83CC-764AE5306590}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.PowerToys.Run.Plugin.Service", "src\modules\launcher\Plugins\Microsoft.PowerToys.Run.Plugin.Service\Microsoft.PowerToys.Run.Plugin.Service.csproj", "{0351ADA4-0C32-4652-9BA0-41F7B602372B}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "logger", "src\common\logger\logger.vcxproj", "{D9B8FC84-322A-4F9F-BBB9-20915C47DDFD}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SetttingsAPI", "src\common\SettingsAPI\SetttingsAPI.vcxproj", "{6955446D-23F7-4023-9BB3-8657F904AF99}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Interop.Tests", "src\common\interop\interop-tests\Microsoft.Interop.Tests.csproj", "{58736667-1027-4AD7-BFDF-7A3A6474103A}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "notifications", "notifications", "{D92131D6-7610-4D60-A7DB-1C169783F83B}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Notifications", "src\common\notifications\notifications.vcxproj", "{1D5BE09D-78C0-4FD7-AF00-AE7C1AF7C525}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BackgroundActivatorDLL", "src\common\notifications\BackgroundActivatorDLL\BackgroundActivatorDLL.vcxproj", "{031AC72E-FA28-4AB7-B690-6F7B9C28AA73}"
ProjectSection(ProjectDependencies) = postProject
{0B593A6C-4143-4337-860E-DB5710FB87DB} = {0B593A6C-4143-4337-860E-DB5710FB87DB}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BackgroundActivator", "src\common\notifications\BackgroundActivator\BackgroundActivator.vcxproj", "{0B593A6C-4143-4337-860E-DB5710FB87DB}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Version", "src\common\version\version.vcxproj", "{CC6E41AC-8174-4E8A-8D22-85DD7F4851DF}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "interop", "interop", "{5A7818A8-109C-4E1C-850D-1A654E234B0E}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "log", "log", "{E4E03FE0-94FD-47C7-88C5-F17D0AA549D3}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WinStore", "src\common\WinStore\Winstore.vcxproj", "{C502A854-53AC-4EBB-8DC0-E4AF2191E4F6}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "COMUtils", "src\common\COMUtils\COMUtils.vcxproj", "{7319089E-46D6-4400-BC65-E39BDF1416EE}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Display", "src\common\Display\Display.vcxproj", "{CABA8DFB-823B-4BF2-93AC-3F31984150D9}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Themes", "src\common\Themes\Themes.vcxproj", "{98537082-0FDB-40DE-ABD8-0DC5A4269BAB}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "utils", "utils", "{B39DC643-4663-475E-B329-03F0C9918D48}"
ProjectSection(SolutionItems) = preProject
src\common\utils\appMutex.h = src\common\utils\appMutex.h
src\common\utils\com_object_factory.h = src\common\utils\com_object_factory.h
src\common\utils\elevation.h = src\common\utils\elevation.h
src\common\utils\exec.h = src\common\utils\exec.h
src\common\utils\json.h = src\common\utils\json.h
src\common\utils\os-detect.h = src\common\utils\os-detect.h
src\common\utils\process_path.h = src\common\utils\process_path.h
src\common\utils\resources.h = src\common\utils\resources.h
src\common\utils\string_utils.h = src\common\utils\string_utils.h
src\common\utils\timeutil.h = src\common\utils\timeutil.h
src\common\utils\winapi_error.h = src\common\utils\winapi_error.h
src\common\utils\window.h = src\common\utils\window.h
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "old-settings-ui", "src\settings\old-settings-ui.vcxproj", "{07C389E3-6BC8-41CF-923E-307B1265FA2D}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Telemetry", "Telemetry", "{8F62026A-294B-41C6-8839-87463613F216}"
ProjectSection(SolutionItems) = preProject
src\common\Telemetry\ProjectTelemetry.h = src\common\Telemetry\ProjectTelemetry.h
src\common\Telemetry\TelemetryBase.cs = src\common\Telemetry\TelemetryBase.cs
src\common\Telemetry\TraceLoggingDefines.h = src\common\Telemetry\TraceLoggingDefines.h
EndProjectSection
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.PowerToys.Common.UI", "src\common\Microsoft.PowerToys.Common.UI\Microsoft.PowerToys.Common.UI.csproj", "{C3A17DCA-217B-462C-BB0C-BE086AF80081}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.PowerToys.Run.Plugin.Registry", "src\modules\launcher\Plugins\Microsoft.PowerToys.Run.Plugin.Registry\Microsoft.PowerToys.Run.Plugin.Registry.csproj", "{4BABF3FE-3451-42FD-873F-3C332E18DCEF}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.PowerToys.Run.Plugin.Registry.UnitTests", "src\modules\launcher\Plugins\Microsoft.PowerToys.Run.Plugin.Registry.UnitTest\Microsoft.PowerToys.Run.Plugin.Registry.UnitTests.csproj", "{0648DF05-5DDA-4BE1-B5F2-584926EBDB65}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PowerToys.Settings", "src\settings-ui\PowerToys.Settings\PowerToys.Settings.csproj", "{6ED2F4FC-E122-4CEE-90F1-97E4CCC8BC7A}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x64 = Debug|x64
@@ -283,18 +320,10 @@ Global
{9412D5C6-2CF2-4FC2-A601-B55508EA9B27}.Debug|x64.Build.0 = Debug|x64
{9412D5C6-2CF2-4FC2-A601-B55508EA9B27}.Release|x64.ActiveCfg = Release|x64
{9412D5C6-2CF2-4FC2-A601-B55508EA9B27}.Release|x64.Build.0 = Release|x64
{74485049-C722-400F-ABE5-86AC52D929B3}.Debug|x64.ActiveCfg = Debug|x64
{74485049-C722-400F-ABE5-86AC52D929B3}.Debug|x64.Build.0 = Debug|x64
{74485049-C722-400F-ABE5-86AC52D929B3}.Release|x64.ActiveCfg = Release|x64
{74485049-C722-400F-ABE5-86AC52D929B3}.Release|x64.Build.0 = Release|x64
{A46629C4-1A6C-40FA-A8B6-10E5102BB0BA}.Debug|x64.ActiveCfg = Debug|x64
{A46629C4-1A6C-40FA-A8B6-10E5102BB0BA}.Debug|x64.Build.0 = Debug|x64
{A46629C4-1A6C-40FA-A8B6-10E5102BB0BA}.Release|x64.ActiveCfg = Release|x64
{A46629C4-1A6C-40FA-A8B6-10E5102BB0BA}.Release|x64.Build.0 = Release|x64
{07C389E3-6BC8-41CF-923E-307B1265FA2D}.Debug|x64.ActiveCfg = Debug|x64
{07C389E3-6BC8-41CF-923E-307B1265FA2D}.Debug|x64.Build.0 = Debug|x64
{07C389E3-6BC8-41CF-923E-307B1265FA2D}.Release|x64.ActiveCfg = Release|x64
{07C389E3-6BC8-41CF-923E-307B1265FA2D}.Release|x64.Build.0 = Release|x64
{F9C68EDF-AC74-4B77-9AF1-005D9C9F6A99}.Debug|x64.ActiveCfg = Debug|x64
{F9C68EDF-AC74-4B77-9AF1-005D9C9F6A99}.Debug|x64.Build.0 = Debug|x64
{F9C68EDF-AC74-4B77-9AF1-005D9C9F6A99}.Release|x64.ActiveCfg = Release|x64
@@ -343,14 +372,6 @@ Global
{0485F45C-EA7A-4BB5-804B-3E8D14699387}.Debug|x64.Build.0 = Debug|x64
{0485F45C-EA7A-4BB5-804B-3E8D14699387}.Release|x64.ActiveCfg = Release|x64
{0485F45C-EA7A-4BB5-804B-3E8D14699387}.Release|x64.Build.0 = Release|x64
{0B593A6C-4143-4337-860E-DB5710FB87DB}.Debug|x64.ActiveCfg = Debug|x64
{0B593A6C-4143-4337-860E-DB5710FB87DB}.Debug|x64.Build.0 = Debug|x64
{0B593A6C-4143-4337-860E-DB5710FB87DB}.Release|x64.ActiveCfg = Release|x64
{0B593A6C-4143-4337-860E-DB5710FB87DB}.Release|x64.Build.0 = Release|x64
{031AC72E-FA28-4AB7-B690-6F7B9C28AA73}.Debug|x64.ActiveCfg = Debug|x64
{031AC72E-FA28-4AB7-B690-6F7B9C28AA73}.Debug|x64.Build.0 = Debug|x64
{031AC72E-FA28-4AB7-B690-6F7B9C28AA73}.Release|x64.ActiveCfg = Release|x64
{031AC72E-FA28-4AB7-B690-6F7B9C28AA73}.Release|x64.Build.0 = Release|x64
{89F34AF7-1C34-4A72-AA6E-534BCF972BD9}.Debug|x64.ActiveCfg = Debug|x64
{89F34AF7-1C34-4A72-AA6E-534BCF972BD9}.Debug|x64.Build.0 = Debug|x64
{89F34AF7-1C34-4A72-AA6E-534BCF972BD9}.Release|x64.ActiveCfg = Release|x64
@@ -399,6 +420,10 @@ Global
{59BD9891-3837-438A-958D-ADC7F91F6F7E}.Debug|x64.Build.0 = Debug|x64
{59BD9891-3837-438A-958D-ADC7F91F6F7E}.Release|x64.ActiveCfg = Release|x64
{59BD9891-3837-438A-958D-ADC7F91F6F7E}.Release|x64.Build.0 = Release|x64
{4D971245-7A70-41D5-BAA0-DDB5684CAF51}.Debug|x64.ActiveCfg = Debug|x64
{4D971245-7A70-41D5-BAA0-DDB5684CAF51}.Debug|x64.Build.0 = Debug|x64
{4D971245-7A70-41D5-BAA0-DDB5684CAF51}.Release|x64.ActiveCfg = Release|x64
{4D971245-7A70-41D5-BAA0-DDB5684CAF51}.Release|x64.Build.0 = Release|x64
{74F1B9ED-F59C-4FE7-B473-7B453E30837E}.Debug|x64.ActiveCfg = Debug|x64
{74F1B9ED-F59C-4FE7-B473-7B453E30837E}.Debug|x64.Build.0 = Debug|x64
{74F1B9ED-F59C-4FE7-B473-7B453E30837E}.Release|x64.ActiveCfg = Release|x64
@@ -423,10 +448,6 @@ Global
{F97E5003-F263-4D4A-A964-0F1F3C82DEF2}.Debug|x64.Build.0 = Debug|x64
{F97E5003-F263-4D4A-A964-0F1F3C82DEF2}.Release|x64.ActiveCfg = Release|x64
{F97E5003-F263-4D4A-A964-0F1F3C82DEF2}.Release|x64.Build.0 = Release|x64
{880ED251-9E16-4713-9A70-D35FE0C01669}.Debug|x64.ActiveCfg = Debug|x64
{880ED251-9E16-4713-9A70-D35FE0C01669}.Debug|x64.Build.0 = Debug|x64
{880ED251-9E16-4713-9A70-D35FE0C01669}.Release|x64.ActiveCfg = Release|x64
{880ED251-9E16-4713-9A70-D35FE0C01669}.Release|x64.Build.0 = Release|x64
{AF2349B8-E5B6-4004-9502-687C1C7730B1}.Debug|x64.ActiveCfg = Debug|x64
{AF2349B8-E5B6-4004-9502-687C1C7730B1}.Debug|x64.Build.0 = Debug|x64
{AF2349B8-E5B6-4004-9502-687C1C7730B1}.Release|x64.ActiveCfg = Release|x64
@@ -459,10 +480,6 @@ Global
{47310AB4-9034-4BD1-8D8B-E88AD21A171B}.Debug|x64.Build.0 = Debug|x64
{47310AB4-9034-4BD1-8D8B-E88AD21A171B}.Release|x64.ActiveCfg = Release|x64
{47310AB4-9034-4BD1-8D8B-E88AD21A171B}.Release|x64.Build.0 = Release|x64
{E4E0D2AE-B17D-4BD4-8BEE-AFC8CC464C5F}.Debug|x64.ActiveCfg = Debug|x64
{E4E0D2AE-B17D-4BD4-8BEE-AFC8CC464C5F}.Debug|x64.Build.0 = Debug|x64
{E4E0D2AE-B17D-4BD4-8BEE-AFC8CC464C5F}.Release|x64.ActiveCfg = Release|x64
{E4E0D2AE-B17D-4BD4-8BEE-AFC8CC464C5F}.Release|x64.Build.0 = Release|x64
{A7D5099E-F0FD-4BF3-8522-5A682759F915}.Debug|x64.ActiveCfg = Debug|x64
{A7D5099E-F0FD-4BF3-8522-5A682759F915}.Debug|x64.Build.0 = Debug|x64
{A7D5099E-F0FD-4BF3-8522-5A682759F915}.Release|x64.ActiveCfg = Release|x64
@@ -475,14 +492,6 @@ Global
{F055103B-F80B-4D0C-BF48-057C55620033}.Debug|x64.Build.0 = Debug|x64
{F055103B-F80B-4D0C-BF48-057C55620033}.Release|x64.ActiveCfg = Release|x64
{F055103B-F80B-4D0C-BF48-057C55620033}.Release|x64.Build.0 = Release|x64
{985B3F2F-CEED-4C0A-A249-69257E719145}.Debug|x64.ActiveCfg = Debug|x64
{985B3F2F-CEED-4C0A-A249-69257E719145}.Debug|x64.Build.0 = Debug|x64
{985B3F2F-CEED-4C0A-A249-69257E719145}.Release|x64.ActiveCfg = Release|x64
{985B3F2F-CEED-4C0A-A249-69257E719145}.Release|x64.Build.0 = Release|x64
{437AD818-3F1F-4CA5-A79B-25233A157026}.Debug|x64.ActiveCfg = Debug|x64
{437AD818-3F1F-4CA5-A79B-25233A157026}.Debug|x64.Build.0 = Debug|x64
{437AD818-3F1F-4CA5-A79B-25233A157026}.Release|x64.ActiveCfg = Release|x64
{437AD818-3F1F-4CA5-A79B-25233A157026}.Release|x64.Build.0 = Release|x64
{787B8AA6-CA93-4C84-96FE-DF31110AD1C4}.Debug|x64.ActiveCfg = Debug|x64
{787B8AA6-CA93-4C84-96FE-DF31110AD1C4}.Debug|x64.Build.0 = Debug|x64
{787B8AA6-CA93-4C84-96FE-DF31110AD1C4}.Release|x64.ActiveCfg = Release|x64
@@ -551,16 +560,87 @@ Global
{7E1E3F13-2BD6-3F75-A6A7-873A2B55C60F}.Debug|x64.Build.0 = Debug|x64
{7E1E3F13-2BD6-3F75-A6A7-873A2B55C60F}.Release|x64.ActiveCfg = Release|x64
{7E1E3F13-2BD6-3F75-A6A7-873A2B55C60F}.Release|x64.Build.0 = Release|x64
{FD8EB419-FF9C-4D88-BB6F-BF6CED37747B}.Debug|x64.ActiveCfg = Debug|x64
{FD8EB419-FF9C-4D88-BB6F-BF6CED37747B}.Debug|x64.Build.0 = Debug|x64
{FD8EB419-FF9C-4D88-BB6F-BF6CED37747B}.Release|x64.ActiveCfg = Release|x64
{FD8EB419-FF9C-4D88-BB6F-BF6CED37747B}.Release|x64.Build.0 = Release|x64
{DA5A6FE9-0040-40CC-83CC-764AE5306590}.Debug|x64.ActiveCfg = Debug|x64
{DA5A6FE9-0040-40CC-83CC-764AE5306590}.Debug|x64.Build.0 = Debug|x64
{DA5A6FE9-0040-40CC-83CC-764AE5306590}.Release|x64.ActiveCfg = Release|x64
{DA5A6FE9-0040-40CC-83CC-764AE5306590}.Release|x64.Build.0 = Release|x64
{0351ADA4-0C32-4652-9BA0-41F7B602372B}.Debug|x64.ActiveCfg = Debug|x64
{0351ADA4-0C32-4652-9BA0-41F7B602372B}.Debug|x64.Build.0 = Debug|x64
{0351ADA4-0C32-4652-9BA0-41F7B602372B}.Release|x64.ActiveCfg = Release|x64
{0351ADA4-0C32-4652-9BA0-41F7B602372B}.Release|x64.Build.0 = Release|x64
{D9B8FC84-322A-4F9F-BBB9-20915C47DDFD}.Debug|x64.ActiveCfg = Debug|x64
{D9B8FC84-322A-4F9F-BBB9-20915C47DDFD}.Debug|x64.Build.0 = Debug|x64
{D9B8FC84-322A-4F9F-BBB9-20915C47DDFD}.Release|x64.ActiveCfg = Release|x64
{D9B8FC84-322A-4F9F-BBB9-20915C47DDFD}.Release|x64.Build.0 = Release|x64
{6955446D-23F7-4023-9BB3-8657F904AF99}.Debug|x64.ActiveCfg = Debug|x64
{6955446D-23F7-4023-9BB3-8657F904AF99}.Debug|x64.Build.0 = Debug|x64
{6955446D-23F7-4023-9BB3-8657F904AF99}.Release|x64.ActiveCfg = Release|x64
{6955446D-23F7-4023-9BB3-8657F904AF99}.Release|x64.Build.0 = Release|x64
{58736667-1027-4AD7-BFDF-7A3A6474103A}.Debug|x64.ActiveCfg = Debug|x64
{58736667-1027-4AD7-BFDF-7A3A6474103A}.Debug|x64.Build.0 = Debug|x64
{58736667-1027-4AD7-BFDF-7A3A6474103A}.Release|x64.ActiveCfg = Release|x64
{58736667-1027-4AD7-BFDF-7A3A6474103A}.Release|x64.Build.0 = Release|x64
{1D5BE09D-78C0-4FD7-AF00-AE7C1AF7C525}.Debug|x64.ActiveCfg = Debug|x64
{1D5BE09D-78C0-4FD7-AF00-AE7C1AF7C525}.Debug|x64.Build.0 = Debug|x64
{1D5BE09D-78C0-4FD7-AF00-AE7C1AF7C525}.Release|x64.ActiveCfg = Release|x64
{1D5BE09D-78C0-4FD7-AF00-AE7C1AF7C525}.Release|x64.Build.0 = Release|x64
{031AC72E-FA28-4AB7-B690-6F7B9C28AA73}.Debug|x64.ActiveCfg = Debug|x64
{031AC72E-FA28-4AB7-B690-6F7B9C28AA73}.Debug|x64.Build.0 = Debug|x64
{031AC72E-FA28-4AB7-B690-6F7B9C28AA73}.Release|x64.ActiveCfg = Release|x64
{031AC72E-FA28-4AB7-B690-6F7B9C28AA73}.Release|x64.Build.0 = Release|x64
{0B593A6C-4143-4337-860E-DB5710FB87DB}.Debug|x64.ActiveCfg = Debug|x64
{0B593A6C-4143-4337-860E-DB5710FB87DB}.Debug|x64.Build.0 = Debug|x64
{0B593A6C-4143-4337-860E-DB5710FB87DB}.Release|x64.ActiveCfg = Release|x64
{0B593A6C-4143-4337-860E-DB5710FB87DB}.Release|x64.Build.0 = Release|x64
{CC6E41AC-8174-4E8A-8D22-85DD7F4851DF}.Debug|x64.ActiveCfg = Debug|x64
{CC6E41AC-8174-4E8A-8D22-85DD7F4851DF}.Debug|x64.Build.0 = Debug|x64
{CC6E41AC-8174-4E8A-8D22-85DD7F4851DF}.Release|x64.ActiveCfg = Release|x64
{CC6E41AC-8174-4E8A-8D22-85DD7F4851DF}.Release|x64.Build.0 = Release|x64
{C502A854-53AC-4EBB-8DC0-E4AF2191E4F6}.Debug|x64.ActiveCfg = Debug|x64
{C502A854-53AC-4EBB-8DC0-E4AF2191E4F6}.Debug|x64.Build.0 = Debug|x64
{C502A854-53AC-4EBB-8DC0-E4AF2191E4F6}.Release|x64.ActiveCfg = Release|x64
{C502A854-53AC-4EBB-8DC0-E4AF2191E4F6}.Release|x64.Build.0 = Release|x64
{7319089E-46D6-4400-BC65-E39BDF1416EE}.Debug|x64.ActiveCfg = Debug|x64
{7319089E-46D6-4400-BC65-E39BDF1416EE}.Debug|x64.Build.0 = Debug|x64
{7319089E-46D6-4400-BC65-E39BDF1416EE}.Release|x64.ActiveCfg = Release|x64
{7319089E-46D6-4400-BC65-E39BDF1416EE}.Release|x64.Build.0 = Release|x64
{CABA8DFB-823B-4BF2-93AC-3F31984150D9}.Debug|x64.ActiveCfg = Debug|x64
{CABA8DFB-823B-4BF2-93AC-3F31984150D9}.Debug|x64.Build.0 = Debug|x64
{CABA8DFB-823B-4BF2-93AC-3F31984150D9}.Release|x64.ActiveCfg = Release|x64
{CABA8DFB-823B-4BF2-93AC-3F31984150D9}.Release|x64.Build.0 = Release|x64
{98537082-0FDB-40DE-ABD8-0DC5A4269BAB}.Debug|x64.ActiveCfg = Debug|x64
{98537082-0FDB-40DE-ABD8-0DC5A4269BAB}.Debug|x64.Build.0 = Debug|x64
{98537082-0FDB-40DE-ABD8-0DC5A4269BAB}.Release|x64.ActiveCfg = Release|x64
{98537082-0FDB-40DE-ABD8-0DC5A4269BAB}.Release|x64.Build.0 = Release|x64
{07C389E3-6BC8-41CF-923E-307B1265FA2D}.Debug|x64.ActiveCfg = Debug|x64
{07C389E3-6BC8-41CF-923E-307B1265FA2D}.Debug|x64.Build.0 = Debug|x64
{07C389E3-6BC8-41CF-923E-307B1265FA2D}.Release|x64.ActiveCfg = Release|x64
{07C389E3-6BC8-41CF-923E-307B1265FA2D}.Release|x64.Build.0 = Release|x64
{C3A17DCA-217B-462C-BB0C-BE086AF80081}.Debug|x64.ActiveCfg = Debug|x64
{C3A17DCA-217B-462C-BB0C-BE086AF80081}.Debug|x64.Build.0 = Debug|x64
{C3A17DCA-217B-462C-BB0C-BE086AF80081}.Release|x64.ActiveCfg = Release|x64
{C3A17DCA-217B-462C-BB0C-BE086AF80081}.Release|x64.Build.0 = Release|x64
{4BABF3FE-3451-42FD-873F-3C332E18DCEF}.Debug|x64.ActiveCfg = Debug|x64
{4BABF3FE-3451-42FD-873F-3C332E18DCEF}.Debug|x64.Build.0 = Debug|x64
{4BABF3FE-3451-42FD-873F-3C332E18DCEF}.Release|x64.ActiveCfg = Release|x64
{4BABF3FE-3451-42FD-873F-3C332E18DCEF}.Release|x64.Build.0 = Release|x64
{0648DF05-5DDA-4BE1-B5F2-584926EBDB65}.Debug|x64.ActiveCfg = Debug|x64
{0648DF05-5DDA-4BE1-B5F2-584926EBDB65}.Debug|x64.Build.0 = Debug|x64
{0648DF05-5DDA-4BE1-B5F2-584926EBDB65}.Release|x64.ActiveCfg = Release|x64
{0648DF05-5DDA-4BE1-B5F2-584926EBDB65}.Release|x64.Build.0 = Release|x64
{6ED2F4FC-E122-4CEE-90F1-97E4CCC8BC7A}.Debug|x64.ActiveCfg = Debug|x64
{6ED2F4FC-E122-4CEE-90F1-97E4CCC8BC7A}.Debug|x64.Build.0 = Debug|x64
{6ED2F4FC-E122-4CEE-90F1-97E4CCC8BC7A}.Release|x64.ActiveCfg = Release|x64
{6ED2F4FC-E122-4CEE-90F1-97E4CCC8BC7A}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{74485049-C722-400F-ABE5-86AC52D929B3} = {1AFB6476-670D-4E80-A464-657E01DFF482}
{A46629C4-1A6C-40FA-A8B6-10E5102BB0BA} = {4574FDD0-F61D-4376-98BF-E5A1262C11EC}
{3BB8493E-D18E-4485-A320-CB40F90F55AE} = {4574FDD0-F61D-4376-98BF-E5A1262C11EC}
{D1D6BC88-09AE-4FB4-AD24-5DED46A791DD} = {4574FDD0-F61D-4376-98BF-E5A1262C11EC}
@@ -575,10 +655,7 @@ Global
{0E072714-D127-460B-AFAD-B4C40B412798} = {89E20BCE-EB9C-46C8-8B50-E01A82E6FDC3}
{A3935CF4-46C5-4A88-84D3-6B12E16E6BA2} = {89E20BCE-EB9C-46C8-8B50-E01A82E6FDC3}
{2151F984-E006-4A9F-92EF-C6DDE3DC8413} = {89E20BCE-EB9C-46C8-8B50-E01A82E6FDC3}
{64A80062-4D8B-4229-8A38-DFA1D7497749} = {BEEAB7F2-FFF6-45AB-9CDB-B04CC0734B88}
{0485F45C-EA7A-4BB5-804B-3E8D14699387} = {89E20BCE-EB9C-46C8-8B50-E01A82E6FDC3}
{0B593A6C-4143-4337-860E-DB5710FB87DB} = {1AFB6476-670D-4E80-A464-657E01DFF482}
{031AC72E-FA28-4AB7-B690-6F7B9C28AA73} = {1AFB6476-670D-4E80-A464-657E01DFF482}
{89F34AF7-1C34-4A72-AA6E-534BCF972BD9} = {38BDB927-829B-4C65-9CD9-93FB05D66D65}
{6C7F47CC-2151-44A3-A546-41C70025132C} = {4574FDD0-F61D-4376-98BF-E5A1262C11EC}
{2BE46397-4DFA-414C-9BD4-41E4BBF8CB34} = {6C7F47CC-2151-44A3-A546-41C70025132C}
@@ -594,13 +671,13 @@ Global
{FF742965-9A80-41A5-B042-D6C7D3A21708} = {C140A3EF-6DBF-4084-9D4C-4EB5A99FEE68}
{4AFC9975-2456-4C70-94A4-84073C1CED93} = {C140A3EF-6DBF-4084-9D4C-4EB5A99FEE68}
{59BD9891-3837-438A-958D-ADC7F91F6F7E} = {4AFC9975-2456-4C70-94A4-84073C1CED93}
{4D971245-7A70-41D5-BAA0-DDB5684CAF51} = {4AFC9975-2456-4C70-94A4-84073C1CED93}
{74F1B9ED-F59C-4FE7-B473-7B453E30837E} = {4AFC9975-2456-4C70-94A4-84073C1CED93}
{FDB3555B-58EF-4AE6-B5F1-904719637AB4} = {4AFC9975-2456-4C70-94A4-84073C1CED93}
{C21BFF9C-2C99-4B5F-B7C9-A5E6DDDB37B0} = {4AFC9975-2456-4C70-94A4-84073C1CED93}
{F8B870EB-D5F5-45BA-9CF7-A5C459818820} = {4AFC9975-2456-4C70-94A4-84073C1CED93}
{E364F67B-BB12-4E91-B639-355866EBCD8B} = {C140A3EF-6DBF-4084-9D4C-4EB5A99FEE68}
{F97E5003-F263-4D4A-A964-0F1F3C82DEF2} = {C140A3EF-6DBF-4084-9D4C-4EB5A99FEE68}
{880ED251-9E16-4713-9A70-D35FE0C01669} = {E775CC2C-24CB-48D6-9C3A-BE4CCE0DB17A}
{2F305555-C296-497E-AC20-5FA1B237996A} = {4574FDD0-F61D-4376-98BF-E5A1262C11EC}
{AF2349B8-E5B6-4004-9502-687C1C7730B1} = {2F305555-C296-497E-AC20-5FA1B237996A}
{6A71162E-FC4C-4A2C-B90F-3CF94F59A9BB} = {2F305555-C296-497E-AC20-5FA1B237996A}
@@ -610,12 +687,9 @@ Global
{748417CA-F17E-487F-9411-CAFB6D3F4877} = {2F305555-C296-497E-AC20-5FA1B237996A}
{217DF501-135C-4E38-BFC8-99D4821032EA} = {2F305555-C296-497E-AC20-5FA1B237996A}
{47310AB4-9034-4BD1-8D8B-E88AD21A171B} = {2F305555-C296-497E-AC20-5FA1B237996A}
{E4E0D2AE-B17D-4BD4-8BEE-AFC8CC464C5F} = {C3081D9A-1586-441A-B5F4-ED815B3719C1}
{A7D5099E-F0FD-4BF3-8522-5A682759F915} = {C3081D9A-1586-441A-B5F4-ED815B3719C1}
{B1BCC8C6-46B5-4BFA-8F22-20F32D99EC6A} = {C3081D9A-1586-441A-B5F4-ED815B3719C1}
{F055103B-F80B-4D0C-BF48-057C55620033} = {1AFB6476-670D-4E80-A464-657E01DFF482}
{985B3F2F-CEED-4C0A-A249-69257E719145} = {1AFB6476-670D-4E80-A464-657E01DFF482}
{437AD818-3F1F-4CA5-A79B-25233A157026} = {1AFB6476-670D-4E80-A464-657E01DFF482}
{F055103B-F80B-4D0C-BF48-057C55620033} = {5A7818A8-109C-4E1C-850D-1A654E234B0E}
{787B8AA6-CA93-4C84-96FE-DF31110AD1C4} = {4AFC9975-2456-4C70-94A4-84073C1CED93}
{08C8C05F-0362-41BC-818C-724572DF8B06} = {C140A3EF-6DBF-4084-9D4C-4EB5A99FEE68}
{5D00D290-4016-4CFE-9E41-1E7C724509BA} = {1AFB6476-670D-4E80-A464-657E01DFF482}
@@ -633,8 +707,30 @@ Global
{632BBE62-5421-49EA-835A-7FFA4F499BD6} = {4AFC9975-2456-4C70-94A4-84073C1CED93}
{4FA206A5-F69F-4193-BF8F-F6EEB496734C} = {4AFC9975-2456-4C70-94A4-84073C1CED93}
{090CD7B7-3B0C-4D1D-BC98-83EB5D799BC1} = {1D78B84B-CA39-406C-98F4-71F7EC266CC0}
{7E1E3F13-2BD6-3F75-A6A7-873A2B55C60F} = {1AFB6476-670D-4E80-A464-657E01DFF482}
{D9B8FC84-322A-4F9F-BBB9-20915C47DDFD} = {1AFB6476-670D-4E80-A464-657E01DFF482}
{7E1E3F13-2BD6-3F75-A6A7-873A2B55C60F} = {E4E03FE0-94FD-47C7-88C5-F17D0AA549D3}
{FD8EB419-FF9C-4D88-BB6F-BF6CED37747B} = {4AFC9975-2456-4C70-94A4-84073C1CED93}
{DA5A6FE9-0040-40CC-83CC-764AE5306590} = {4AFC9975-2456-4C70-94A4-84073C1CED93}
{0351ADA4-0C32-4652-9BA0-41F7B602372B} = {4AFC9975-2456-4C70-94A4-84073C1CED93}
{D9B8FC84-322A-4F9F-BBB9-20915C47DDFD} = {E4E03FE0-94FD-47C7-88C5-F17D0AA549D3}
{6955446D-23F7-4023-9BB3-8657F904AF99} = {1AFB6476-670D-4E80-A464-657E01DFF482}
{58736667-1027-4AD7-BFDF-7A3A6474103A} = {5A7818A8-109C-4E1C-850D-1A654E234B0E}
{D92131D6-7610-4D60-A7DB-1C169783F83B} = {1AFB6476-670D-4E80-A464-657E01DFF482}
{1D5BE09D-78C0-4FD7-AF00-AE7C1AF7C525} = {D92131D6-7610-4D60-A7DB-1C169783F83B}
{031AC72E-FA28-4AB7-B690-6F7B9C28AA73} = {D92131D6-7610-4D60-A7DB-1C169783F83B}
{0B593A6C-4143-4337-860E-DB5710FB87DB} = {D92131D6-7610-4D60-A7DB-1C169783F83B}
{CC6E41AC-8174-4E8A-8D22-85DD7F4851DF} = {1AFB6476-670D-4E80-A464-657E01DFF482}
{5A7818A8-109C-4E1C-850D-1A654E234B0E} = {1AFB6476-670D-4E80-A464-657E01DFF482}
{E4E03FE0-94FD-47C7-88C5-F17D0AA549D3} = {1AFB6476-670D-4E80-A464-657E01DFF482}
{C502A854-53AC-4EBB-8DC0-E4AF2191E4F6} = {1AFB6476-670D-4E80-A464-657E01DFF482}
{7319089E-46D6-4400-BC65-E39BDF1416EE} = {1AFB6476-670D-4E80-A464-657E01DFF482}
{CABA8DFB-823B-4BF2-93AC-3F31984150D9} = {1AFB6476-670D-4E80-A464-657E01DFF482}
{98537082-0FDB-40DE-ABD8-0DC5A4269BAB} = {1AFB6476-670D-4E80-A464-657E01DFF482}
{B39DC643-4663-475E-B329-03F0C9918D48} = {1AFB6476-670D-4E80-A464-657E01DFF482}
{8F62026A-294B-41C6-8839-87463613F216} = {1AFB6476-670D-4E80-A464-657E01DFF482}
{C3A17DCA-217B-462C-BB0C-BE086AF80081} = {1AFB6476-670D-4E80-A464-657E01DFF482}
{4BABF3FE-3451-42FD-873F-3C332E18DCEF} = {4AFC9975-2456-4C70-94A4-84073C1CED93}
{0648DF05-5DDA-4BE1-B5F2-584926EBDB65} = {4AFC9975-2456-4C70-94A4-84073C1CED93}
{6ED2F4FC-E122-4CEE-90F1-97E4CCC8BC7A} = {C3081D9A-1586-441A-B5F4-ED815B3719C1}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {C3A2F9D1-7930-4EF4-A6FC-7EE0A99821D0}

264
README.md
View File

@@ -1,103 +1,45 @@
# Overview
# Microsoft PowerToys
<img src="./doc/images/overview/PT%20hero%20image.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/).
For a video overview of PowerToys, including install steps and a walkthrough of the available utilities, check out the [PowerToys: Utilities to customize Windows 10](https://www.youtube.com/watch?v=F-d7KiwpnMA) episode of Tabs vs Spaces on YouTube.
[Downloading & Release notes][github-release-link] | [What's Happening](#whats-happening) | [Contributing to PowerToys](#contributing) | [Known issues](#known-issues)
[Downloads & Release notes][github-release-link] | [Contributing to PowerToys](#contributing) | [What's Happening](#whats-happening) | [Roadmap](#powertoys-roadmap)
## Build status
| Architecture | Master | Stable | Installer |
|--------------|--------|--------|-----------|
| x64 | [![Build Status for Master](https://dev.azure.com/ms/PowerToys/_apis/build/status/microsoft.PowerToys?branchName=master)](https://dev.azure.com/ms/PowerToys/_build/latest?definitionId=219&branchName=master) | [![Build Status for Stable](https://dev.azure.com/ms/PowerToys/_apis/build/status/microsoft.PowerToys?branchName=stable)](https://dev.azure.com/ms/PowerToys/_build/latest?definitionId=219&branchName=stable) | [![Build Status for Installer](https://github-private.visualstudio.com/microsoft/_apis/build/status/CDPX/powertoys/powertoys-Windows-Official-master-Test?branchName=master)](https://github-private.visualstudio.com/microsoft/_build/latest?definitionId=61&branchName=master) |
| x64 | [![Build Status for Master](https://dev.azure.com/ms/PowerToys/_apis/build/status/microsoft.PowerToys?branchName=master)](https://dev.azure.com/ms/PowerToys/_build/latest?definitionId=219&branchName=master) | [![Build Status for Stable](https://dev.azure.com/ms/PowerToys/_apis/build/status/microsoft.PowerToys?branchName=stable)](https://dev.azure.com/ms/PowerToys/_build/latest?definitionId=219&branchName=stable) | [![Build Status for Installer](https://github-private.visualstudio.com/microsoft/_apis/build/status/CDPX/powertoys/powertoys-Windows-Official-master-Test?branchName=master)](https://github-private.visualstudio.com/microsoft/_build/latest?definitionId=61&branchName=master) |
## Current PowerToy Utilities
## About
### Color Picker
Microsoft PowerToys is a set of utilities for power users to tune and streamline their Windows 10 experience for greater productivity. For more info on [PowerToys overviews and guides][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]!
[<img align="left" src="https://aka.ms/powerToysColorPickerImageSmall" />](https://aka.ms/PowerToysOverview_ColorPicker) [Color Picker](https://aka.ms/PowerToysOverview_ColorPicker) is a simple and quick system-wide color picker with <kbd>Win</kbd>+<kbd>Shift</kbd>+<kbd>C</kbd>. Color Picker allows to pick colors from any currently running application and automatically copies the HEX or RGB values to your clipboard. This code is based on [Martin Chrzan's Color Picker](https://github.com/martinchrzan/ColorPicker).
<br/>
<br/>
<br/>
### FancyZones
[<img align="left" src="https://aka.ms/powerToysFancyZoneImageSmall" />](https://aka.ms/PowerToysOverview_FancyZones) [FancyZones](https://aka.ms/PowerToysOverview_FancyZones) is a window manager that makes it easy to create complex window layouts and quickly position windows into those layouts.
<br/>
<br/>
<br/>
<br/>
<br/>
### File Explorer Add-ons
[<img align="left" src="https://aka.ms/powerToysPowerPreviewImageSmall" />](https://aka.ms/PowerToysOverview_FileExplorerAddOns) [File Explorer add-ons](https://aka.ms/PowerToysOverview_FileExplorerAddOns) will enable SVG icon rendering and 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 (.md) & SVG (.svg)
<br/>
<br/>
### Image Resizer
[<img align="left" src="https://aka.ms/powerToysImageResizerImageSmall" />](https://aka.ms/PowerToysOverview_ImageResizer) [Image Resizer](https://aka.ms/PowerToysOverview_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).
<br/>
<br/>
<br/>
<br/>
### Keyboard Manager
[<img align="left" src="https://aka.ms/powerToysKBMImageSmall" />](https://aka.ms/PowerToysOverview_KeyboardManager) [Keyboard Manager](https://aka.ms/PowerToysOverview_KeyboardManager) allows you to customize the keyboard to be more productive by remapping keys and creating your own keyboard shortcuts. This PowerToy requires Windows 10 1903 (build 18362) or later.
<br/>
<br/>
<br/>
<br/>
### PowerRename
[<img align="left" src="https://aka.ms/powerToysPowerRenameImageSmall" />](https://aka.ms/PowerToysOverview_PowerRename) [PowerRename](https://aka.ms/PowerToysOverview_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).
<br/>
### PowerToys Run
[<img align="left" src="https://aka.ms/powerToysPowerLauncherImageSmall" />](https://aka.ms/PowerToysOverview_PowerToysRun) [PowerToys Run](https://aka.ms/PowerToysOverview_PowerToysRun) is a new toy in PowerToys that can help you search and launch your app instantly with a simple <kbd>Alt</kbd>+<kbd>Space</kbd> and start typing! It is open source and modular for additional plugins. Window Walker is now inside too! This PowerToy requires Windows 10 1903 (build 18362) or later.
<br/>
<br/>
<br/>
### Shortcut Guide
[<img align="left" src="https://aka.ms/powerToysShortcutGuideImageSmall" />](https://aka.ms/PowerToysOverview_ShortcutGuide) [Windows key shortcut guide](https://aka.ms/PowerToysOverview_ShortcutGuide) 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.
<br/>
<br/>
<br/>
<br/>
### Video Conference Mute (Experimental)
[<img align="left" src="https://aka.ms/powerToysVideoConferenceImageSmall" />](https://aka.ms/PowerToysOverview_VideoConference) [Video Conference Mute](https://aka.ms/PowerToysOverview_VideoConference) is a quick and easy way to do a global "mute" of both your microphone and webcam via <kbd>Win</kbd>+<kbd>N</kbd>. Just set your webcam in the target application to the PowerToys VideoConference camera.
**Note:** This is only included in the [pre-release experimental version of PowerToys installer][github-prerelease-link]. This PowerToy requires Windows 10 1903 (build 18362) or later.
<br/>
<br/>
<br/>
| | Current utilities: | |
|--------------|--------------------|--------------|
| [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) | [PowerRename](https://aka.ms/PowerToysOverview_PowerRename) |
| [PowerToys Run](https://aka.ms/PowerToysOverview_PowerToysRun) | [Shortcut Guide](https://aka.ms/PowerToysOverview_ShortcutGuide) | [Video Conference Mute (Experimental)](https://aka.ms/PowerToysOverview_VideoConference) |
## Installing and running Microsoft PowerToys
#### Requirements
### Requirements
- Windows 10 1803 (build 17134) or later.
- Have [.NET Core 3.1 Desktop Runtime](https://dotnet.microsoft.com/download/dotnet-core/thank-you/runtime-desktop-3.1.4-windows-x64-installer). The installer should handle this but we want to directly make people aware.
- Windows 10 v1903 (build 18362) or better preferred, Windows 10 v1803 (build 17134) minimum.
- Have [.NET Core 3.1 Desktop Runtime](https://dotnet.microsoft.com/download/dotnet-core/thank-you/runtime-desktop-3.1.11-windows-x64-installer). The installer should handle this but we want to directly make people aware.
### Via GitHub with EXE [Recommended]
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.25.0-x64.exe` to download the PowerToys installer.
#### Stable version
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.33.1-x64.exe` to download the PowerToys installer.
This is our preferred method.
#### Experimental version
To install the Video Conference mute, please use the [v0.28 pre-release experimental version of PowerToys][github-prerelease-link] to try out this version. It includes all improvements from v0.27 in addition to the Video conference utility. Click on `Assets` to show the files available in the release and then download the .exe installer.
We hope to have an updated version in February 2021 with the new DirectShow driver.
### Via WinGet (Preview)
Download PowerToys from [WinGet](https://github.com/microsoft/winget-cli/releases). To install PowerToys, run the following command from the command line / PowerShell:
@@ -105,108 +47,97 @@ Download PowerToys from [WinGet](https://github.com/microsoft/winget-cli/release
WinGet install powertoys
```
### Experimental PowerToys utility with Video conference muting
Install the [pre-release experimental version of PowerToys][github-prerelease-link] to try out this version. It includes all improvements from 0.23 in addition to the Video conference utility. Click on `Assets` to show the files available in the release and then download the .exe installer.
**Note:** We'll have 0.26 Experimental out in the first week of November 2020.
### Other install methods
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.
### Known issues
- Color Picker at times won't work when PT is running elevated - [#5348](https://github.com/microsoft/PowerToys/issues/5348). We are currently working on a fix now for this.
### Processor support
We currently support the matrix below.
| x64 | x86 | ARM |
| x64 | x86 | ARM64 |
|:---:|:---:|:---:|
| [Supported][github-release-link] | [Issue #602](https://github.com/microsoft/PowerToys/issues/602) | [Issue #490](https://github.com/microsoft/PowerToys/issues/490) |
## What's Happening
### October 2020 Update
Our goals for [0.25 release cycle][github-release-link] was to focus on stability, accessibility, localization and quality of life improvements for both the development team and our end users. Our first end to end localization pass has been done. We know it isn't perfect but we are in 17 languages now. If you find an issue, please file a [localization bug][loc-bug].
Our [prioritized roadmap][roadmap] of features and utilities that the core team is focusing on.
#### Highlights from October 2020
**General**
- First pass on localization complete. 17 different languages. We know there will be some rough areas, please [make us aware so we can correct them][loc-bug].
- Logging added into the installer
- Large sums of accessibility issues fixed.
- Less notifications for installing
- FxCop work is almost fully wrapped up
- Wrapped up the [Video GIF capture spec](https://github.com/microsoft/PowerToys/wiki/Video-GIF-Capture). This is laying out our plan for the future work.
**Color Picker**
- Additional color style selections such as CYMK and HSL
**FancyZones**
- Multiple bugs fixed
- Better zone drawing improvements
**Keyboard manager**
- Fixed terminal input map failure
- Better app compat
- Multiple bug fixes
- Ability to directly disable keys/shortcuts
**PowerToys Run**
- expanded environment var searching such as %windr%
- multiple crash bug fixes
- Improvements on calculator plugin
- Directly able to override theming
- Windows will open to what shell you want
- Better action key support
- `=` for direct calculator
- `?` for direct file searching
- `.` for direct for applications
- `//` for direct URL
- `<` for running processes
- `>` for shell processes
**Dev docs**
- Added multiple developer related docs.
I'd like to directly call out [@p-storm](https://github.com/p-storm), [@TobiasSekan](https://github.com/TobiasSekan), [@davidegiacometti](https://github.com/davidegiacometti), [@royvou](https://github.com/royvou), [@gordonwatts](https://github.com/gordonwatts), [@Aaron-Junker](https://github.com/Aaron-Junker), [@htcfreek](https://github.com/htcfreek) and [@niels9001](https://github.com/niels9001) for their continued community support and helping directly make PowerToys a better piece of software.
### What is being planned for 0.27 - November 2020
For [0.27](https://github.com/microsoft/PowerToys/issues?q=is%3Aopen+is%3Aissue+project%3Amicrosoft%2FPowerToys%2F14), we are proactively working on:
- Stability
- Accessibility
- Video conference mute
- OOBE work
### PowerToys roadmap
Our [prioritized roadmap][roadmap] of features and utilities that the core team is focusing on.
## Developer Guidance
Please read the [developer docs](/doc/devdocs) for a detailed breakdown.
## Contributing
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.
### ⚠ 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.33 - February 2021 Update
Our goals for [v0.33 release cycle][github-release-link] was to add in some critical new functionality into the new user experience as well as a plug-in manager for PowerToys Run. In addition, we feel we are near ready to add in Video Conference mute into the stable release pending feedback from the pending 0.34 experimental release. The 0.34 experimental release will happen week of March 8th toward the end of the week pending testing.
Our [prioritized roadmap][roadmap] of features and utilities that the core team is focusing on for the near future. We fixed a lot of localization issues from our initial release but we may not still be perfect. If you find an issue, please file a [localization bug][loc-bug].
#### Highlights from v0.33 Stable/0.34 Experimental
**General**
- Updated overview links to be language agnostic to the docs site.
- 'First time load' experience. The hope is a quick, light way to learn about basic functionality. We have some more work to do and want to also use the same framework for teaching about updates as well.
- Localization corrections
**FancyZones**
- Adjusted editor UX based on feedback. Thanks [@niels9001](https://github.com/niels9001)!
- New options to change zone activation algorithm.
**File Explorer**
- Improved how SVG images are previewed in the preview pane, thanks[@Drakula44](https://github.com/Drakula44)!
- [@Aaron-Junker](Aaron-Junker) has created a proof of concept for using [Monaco editor](https://github.com/microsoft/monaco-editor) for previewing dev files. This will enable over 125+ file types.
**PowerToys Run**
- Plugin Manager now is in settings. You can directly turn on / off, include items in general search, and change the action key! Thanks [@htcfreek](https://github.com/htcfreek) for the great feedback!
- Improved support for additional window managers by abstracting out shell process calls. Thanks [@davidegiacometti](https://github.com/davidegiacometti)!
- Fix for PT Run registering the hotkey on non-supported OS versions.
- `~` will now act as the user home directory in Folder plugin. Thanks [@davidegiacometti](https://github.com/davidegiacometti)
- Service plugin has adjusted status messages
**Video Conference Mute (Experimental)**
- Adjust video muting to leverage DirectShow.
- Goal is to have 0.34 experimental release week of March 8th.
**Settings**
- When restarting as admin, the settings now will reopen. Thanks [@davidegiacometti](https://github.com/davidegiacometti)!
**ARM64 Progress**
- Investigation on how we'll accomplish Settings with the XAML Island and WPF app.
#### Community contributions
We'd like to directly mention (in alphabetical order) for their continued community support this month and helping directly make PowerToys a better piece of software.
[@Aaron-Junker](https://github.com/Aaron-Junker),
[@davidegiacometti](https://github.com/davidegiacometti),
[@Drakula44](https://github.com/Drakula44),
[@htcfreek](https://github.com/htcfreek),
[@Jay-o-Way](https://github.com/Jay-o-Way),
[@niels9001](https://github.com/niels9001),
and
[@notDevagya](https://github.com/notDevagya)
#### What is being planned for v0.35 - March 2021
For [v0.35][github-next-release-work], we are planning to work on:
- Stability and bug fixes
- FZ Editor hotkey layout swap support
- Integrating VCM in main release
- Start process for removal support for old settings system and migrating our minimum OS version to Windows 10 1903.
## 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.
## Code of Conduct
@@ -214,13 +145,18 @@ This project has adopted the [Microsoft Open Source Code of Conduct][oss-conduct
## 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
[community-link]: COMMUNITY.md
[github-release-link]: https://github.com/microsoft/PowerToys/releases/
[github-prerelease-link]: https://github.com/microsoft/PowerToys/releases/tag/v0.24.0
[roadmap]: https://github.com/microsoft/PowerToys/wiki/Roadmap
[privacyLink]: http://go.microsoft.com/fwlink/?LinkId=521839
[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://docs.microsoft.com/windows/powertoys/
<!-- 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%2F18
[github-prerelease-link]: https://github.com/microsoft/PowerToys/releases/tag/v0.28.0

1
deps/cziplib vendored Submodule

Submodule deps/cziplib added at f9e0959eb2

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)
```

View File

@@ -63,7 +63,7 @@ If you already have a .rc file, copy the string table to a separate txt file and
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 . resource.base.h resource.h ProjName.base.rc ProjName.rc" />
<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>
```

View File

@@ -3,18 +3,18 @@ The Calculator plugin as the name suggests is used to perform calculations on th
![Image of Calculator plugin](/doc/images/launcher/plugins/calculator.png)
### [`CalculateHelper`](src/modules/launcher/Plugins/Microsoft.Plugin.Calculator/CalculateHelper.cs)
- The [`CalculateHelper.cs`](src/modules/launcher/Plugins/Microsoft.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.
### [`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.Plugin.Calculator/CalculateEngine.cs)
- The main computation is done in the [`CalculateEngine.cs`](src/modules/launcher/Plugins/Microsoft.Plugin.Calculator/CalculateEngine.cs) file using the `Mages` library.
### [`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.Plugin.Calculator/CalculateResult.cs)
### [`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.

View File

@@ -32,4 +32,7 @@ Each plugin implements the `IPlugin` interface which comprises of the `Init()` a
### 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.
- 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,101 @@
# 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 |
| `GlobalSuppressions.cs` | Code suppressions (no real file, linked via *.csproj) |
| `Main.cs` | Main class, the only place that implement the WOX interfaces |
| `plugin.json` | All meta-data for this plugin |
| `StyleCop.json` | Code style (no real file, linked via *.csproj) |
### Important project values (*.csproj)
| Name | Value |
| --------------- | ------------------------------------------------------------------------------ |
| TargetFramework | `netcoreapp3.1` (means .NET Core 3.1) |
| 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
#### Packages
| Package | Version |
| ------------------------------------------------------------------------------------- | ------- |
| [`Microsoft.CodeAnalysis.FxCopAnalyzers`](https://github.com/dotnet/roslyn-analyzers) | 3.3.0 |
| [`StyleCop.Analyzers`](https://github.com/DotNetAnalyzers/StyleCopAnalyzers) | 1.1.118 |
#### Projects
* `Wox.Infrastructure`
* `Wox.Plugin`

View File

@@ -0,0 +1,23 @@
# Sys Plugin
As the name suggests, the Sys 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.
* Shutdown
* Restart
* Sign Out
* Lock
* Sleep
* Hibernate
* Empty Recycle Bin
![Image of Sys plugin](/doc/images/launcher/plugins/sys.gif)
## [`Sys`](/src/modules/launcher/Plugins/Microsoft.Plugin.Sys/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 Sys plugin uses [`FuzzyMatch`](/src/modules/launcher/Wox.Infrastructure/StringMatcher.cs) to get characters matching a result in the list.
### 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.

View File

@@ -9,6 +9,8 @@
- [Folder](/doc/devdocs/modules/launcher/plugins/folder.md)
- [Indexer](/doc/devdocs/modules/launcher/plugins/indexer.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)
- [Sys](/doc/devdocs/modules/launcher/plugins/sys.md)
- [Uri](/doc/devdocs/modules/launcher/plugins/uri.md)
- [Window Walker](/doc/devdocs/modules/launcher/plugins/windowwalker.md)
- [Window Walker](/doc/devdocs/modules/launcher/plugins/windowwalker.md)

View File

@@ -1,5 +1,15 @@
# 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.**
@@ -15,6 +25,7 @@
- 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,6 +33,7 @@
- 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
General project organization:
@@ -52,59 +64,57 @@ Various tools used by PowerToys. Includes the Visual Studio 2019 project templat
1. Windows 10 April 2018 Update (version 1803) or newer
2. Visual Studio Community/Professional/Enterprise 2019
3. Run the command below in cmd/terminal to install all the workloads and components for VS.
3. 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`
```shell
cd "%ProgramFiles(x86)%\Microsoft Visual Studio\2019"
SET targetFolder="\"
IF EXIST Preview\NUL (SET targetFolder=Preview)
IF EXIST Enterprise\NUL (SET targetFolder=Enterprise)
IF EXIST Professional\NUL (SET targetFolder=Professional)
IF EXIST Community\NUL (SET targetFolder=Community)
### Compile source code
ECHO %targetFolder%
- 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.
"%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vs_installer.exe" ^
modify --installpath "%ProgramFiles(x86)%\Microsoft Visual Studio\2019\%targetFolder%" ^
--add Microsoft.VisualStudio.Workload.NativeDesktop ^
--add Microsoft.VisualStudio.Workload.ManagedDesktop ^
--add Microsoft.VisualStudio.Workload.Universal ^
--add Microsoft.VisualStudio.Component.Windows10SDK.17134 ^
--add Microsoft.VisualStudio.ComponentGroup.UWP.VC ^
--add Microsoft.VisualStudio.Component.VC.Runtimes.x86.x64.Spectre ^
--add Microsoft.VisualStudio.Component.VC.ATL.Spectre
```
## Compile the installer
### Compiling Source Code
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.
- 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.
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.
## Building the Installers
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 `PowerToysSetup.sln` Path from root: `installer\PowerToysSetup.sln` (details listed below)
4. Compile `PowerToysBootstrapper.sln` Path from root: `installer\PowerToysBootstrapper\PowerToysBootstrapper.sln` (details listed below)
Our installer is two parts, an EXE and an MSI. The EXE contains the MSI and handles more complex install logic.
- The EXE installs all prerequisites and installs PowerToys via the MSI. Also has additional features, such as silent installation flags
- The MSI installs PowerToys.
### Prerequisites Building the Installer (.MSI)
### Prerequisites for building the MSI installer
1. Install the [WiX Toolset Visual Studio 2019 Extension](https://marketplace.visualstudio.com/items?itemName=RobMensching.WiXToolset).
2. Install the [WiX Toolset build tools](https://wixtoolset.org/releases/).
### Compiling Installer (.MSI)
### 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`, 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`
1. In Visual Studio, in the `Solutions Configuration` drop-down menu select `Release`
2. From the `Build` menu, choose `Build Solution`.
### Compiling Bootstrapper Installer (.EXE)
### Locally compiling the .MSI installer
- MSI Installer needs to be built in release mode
- Build `PowerToysBootstrapper` solution (`installer\PowerToysBootstrapper\`)
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`.
#### Supported arguments for EXE installer:
The resulting `PowerToysSetup.msi` installer will be available in the `installer\PowerToysSetup\x64\Release\` folder.
Head over to the wiki to get the [full list of supported installer arguments][installerArgWiki].
### Locally compiling the .EXE Bootstrapper installer
1. Open `installer\PowerToysBootstrapper\PowerToysBootstrapper.sln`
2. In Visual Studio, in the `Solutions Configuration` drop-down menu select `Release`
3. From the `Build` menu choose `Build Solution`.
The `PowerToysSetup-0.0.1-x64.exe` binary is created in the `installer\PowerToysBootstrapper\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
@@ -157,16 +167,6 @@ While developing, it's possible to connect the WebView to the development server
This project generates the web UI shown in the [PowerToys Settings](/src/editor).
It's a `ReactJS` project created using [Fluent UI](https://developer.microsoft.com/en-us/fluentui#/).
## 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.
#### Options
This module has a setting to serve as an example for each of the currently implemented settings property:

View File

@@ -1,7 +1,6 @@
#### [`main.cpp`](/src/runner/main.cpp)
Contains the executable starting point, initialization code and the list of known PowerToys. All singletones are also initialized here at the start. Loads all the powertoys by scanning the `./modules` folder and `enable()`s those marked as enabled in `%LOCALAPPDATA%\Microsoft\PowerToys\settings.json` config. Then it runs [a message loop](https://docs.microsoft.com/en-us/windows/win32/winmsg/using-messages-and-message-queues) for the tray UI. Note that this message loop also [handles lowlevel_keyboard_hook events](https://github.com/microsoft/PowerToys/blob/1760af50c8803588cb575167baae0439af38a9c1/src/runner/lowlevel_keyboard_event.cpp#L24).
#### [`general_settings.cpp`](./general_settings.cpp)
#### [`powertoy_module.h`](/src/runner/powertoy_module.h) and [`powertoy_module.cpp`](/src/runner/powertoy_module.cpp)
Contains code for initializing and managing the PowerToy modules. `PowertoyModule` is a RAII-style holder for the `PowertoyModuleIface` pointer, which we got by [invoking module DLL's `powertoy_create` function](https://github.com/microsoft/PowerToys/blob/1760af50c8803588cb575167baae0439af38a9c1/src/runner/powertoy_module.cpp#L13-L24).

View File

@@ -11,7 +11,7 @@ The Settings.UI project contains the xaml files for each of the UI components. I
#### [Viewmodels:](/src/core/Microsoft.PowerToys.Settings.UI.Library)
The Settings.UI.Library project contains the data that is to be rendered by the UI components.
#### [Settings Runner:](/src/core/Microsoft.PowerToys.Settings.UI.Runner)
#### [Settings Runner:](/src/core/PowerToys.Settings)
The function of the settings runner project is to communicate all changes that the user makes in the user interface, to the runner so that it can be dispatched and reflected in all the modules.
[MVVM]: https://docs.microsoft.com/en-us/windows/uwp/data-binding/data-binding-and-mvvm

View File

@@ -4,7 +4,7 @@ The Settings v2 process uses two way IPC to communicate with the runner process.
## Initialization
- On the settings' side, the two way IPC delegates are contained with the [`ShellPage.xaml.cs`](/src/core/Microsoft.PowerToys.Settings.UI/Views/ShellPage.xaml.cs) file. The delegates are static and the views for all the powerToys send the ipc information to the viewmodels as `ShellPage.DefaultSndMSGCallBack`.
- These delegates are initialized within the [`Mainwindow.xaml.cs`](/src/core/Microsoft.PowerToys.Settings.UI.Runner/MainWindow.xaml.cs) file in the `Settings.Runner` project.
- These delegates are initialized within the [`Mainwindow.xaml.cs`](/src/core/PowerToys.Settings/MainWindow.xaml.cs) file in the `Settings.Runner` project.
## Types of IPC delegates

View File

@@ -1,8 +1,8 @@
# UI Architecture
The UI code is distributed between two projects: [`Microsoft.PowerToys.Settings.UI.Runner`](/src/core/Microsoft.PowerToys.Settings.UI.Runner) and [`Microsoft.PowerToys.Settings.UI`](/src/core/Microsoft.PowerToys.Settings.UI.Library). [`Microsoft.PowerToys.Settings.UI.Runner`](/src/core/Microsoft.PowerToys.Settings.UI.Runner) is a WPF .net core application. It contains the parent display window and corresponding code is present in [`MainWindow.xaml.`](/src/core/Microsoft.PowerToys.Settings.UI.Runner/MainWindow.xaml) [`Microsoft.PowerToys.Settings.UI`](/src/core/Microsoft.PowerToys.Settings.UI.Library) is UWP applications and contains views for base navigation and modules. Fig 1 provides a description of the UI controls hierarchy and each of the controls have been summarized below :
- [`MainWindow.xaml`](/src/core/Microsoft.PowerToys.Settings.UI.Runner/MainWindow.xaml) is the parent WPF control.
- `WindowsXamlHost` control is used to host UWP control to [`MainWindow.xaml`](/src/core/Microsoft.PowerToys.Settings.UI.Runner/MainWindow.xaml) parent control.
The UI code is distributed between two projects: [`PowerToys.Settings`](/src/core/PowerToys.Settings) and [`Microsoft.PowerToys.Settings.UI`](/src/core/Microsoft.PowerToys.Settings.UI.Library). [`PowerToys.Settings`](/src/core/PowerToys.Settings) is a WPF .net core application. It contains the parent display window and corresponding code is present in [`MainWindow.xaml.`](/src/core/PowerToys.Settings/MainWindow.xaml) [`Microsoft.PowerToys.Settings.UI`](/src/core/Microsoft.PowerToys.Settings.UI.Library) is UWP applications and contains views for base navigation and modules. Fig 1 provides a description of the UI controls hierarchy and each of the controls have been summarized below :
- [`MainWindow.xaml`](/src/core/PowerToys.Settings/MainWindow.xaml) is the parent WPF control.
- `WindowsXamlHost` control is used to host UWP control to [`MainWindow.xaml`](/src/core/PowerToys.Settings/MainWindow.xaml) parent control.
- [`ShellPage.xaml`](/src/core/Microsoft.PowerToys.Settings.UI/Views/ShellPage.xaml) is a UWP control, consisting of a side navigation panel with an icon for each module. Clicking on a module icon loads the corresponding `setting.json` file and displays the data in the UI.
![Settings UI architecture](/doc/images/settingsv2/ui-architecture.png)

View File

@@ -6,7 +6,7 @@
## Formatting
- We use [`.clang-format`](https://github.com/microsoft/PowerToys/blob/master/.clang-format) style file to enable automatic code formatting. You can [easily format source files from Visual Studio](https://devblogs.microsoft.com/cppblog/clangformat-support-in-visual-studio-2017-15-7-preview-1/). For example, `CTRL+K CTRL+D` formats the current document.
- We use [`.clang-format`](https://github.com/microsoft/PowerToys/blob/master/src/.clang-format) style file to enable automatic code formatting. You can [easily format source files from Visual Studio](https://devblogs.microsoft.com/cppblog/clangformat-support-in-visual-studio-2017-15-7-preview-1/). For example, `CTRL+K CTRL+D` formats the current document.
- If you prefer another text editor or have ClangFormat disabled in Visual Studio, you could invoke [`format_sources`](https://github.com/microsoft/PowerToys/blob/master/src/codeAnalysis/format_sources.ps1) powershell script from command line. It gets a list of all currently modified files from `git` and invokes clang-format on them.
Please note that you should also have `clang-format.exe` in `%PATH%` for it to work. The script can infer the path of `clang-format.exe` version which is shipped with Visual Studio at `%VCINSTALLDIR%\Tools\Llvm\bin\`, if you launch it from the *Native Tools Command Prompt for VS*.
- CI doesn't enforce code formatting yet, since we're gradually applying code formatting to the codebase, but please adhere to our formatting style for any new code.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 196 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 273 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View File

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 52 KiB

View File

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 52 KiB

View File

Before

Width:  |  Height:  |  Size: 5.7 KiB

After

Width:  |  Height:  |  Size: 5.7 KiB

View File

Before

Width:  |  Height:  |  Size: 336 B

After

Width:  |  Height:  |  Size: 336 B

View File

Before

Width:  |  Height:  |  Size: 514 B

After

Width:  |  Height:  |  Size: 514 B

View File

Before

Width:  |  Height:  |  Size: 637 B

After

Width:  |  Height:  |  Size: 637 B

View File

Before

Width:  |  Height:  |  Size: 7.1 KiB

After

Width:  |  Height:  |  Size: 7.1 KiB

View File

Before

Width:  |  Height:  |  Size: 728 B

After

Width:  |  Height:  |  Size: 728 B

View File

Before

Width:  |  Height:  |  Size: 724 B

After

Width:  |  Height:  |  Size: 724 B

View File

Before

Width:  |  Height:  |  Size: 812 B

After

Width:  |  Height:  |  Size: 812 B

View File

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

Before

Width:  |  Height:  |  Size: 53 KiB

After

Width:  |  Height:  |  Size: 53 KiB

View File

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 27 KiB

View File

Before

Width:  |  Height:  |  Size: 5.7 KiB

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 184 KiB

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 87 KiB

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 593 KiB

After

Width:  |  Height:  |  Size: 236 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 141 KiB

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 158 KiB

After

Width:  |  Height:  |  Size: 222 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

View File

@@ -3,13 +3,19 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.30320.27
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "updating", "..\..\src\common\updating\updating.vcxproj", "{17DA04DF-E393-4397-9CF0-84DABE11032E}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "common", "..\..\src\common\common.vcxproj", "{74485049-C722-400F-ABE5-86AC52D929B3}"
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Updating", "..\..\src\common\updating\updating.vcxproj", "{17DA04DF-E393-4397-9CF0-84DABE11032E}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bootstrapper", "bootstrapper\bootstrapper.vcxproj", "{D194E3AA-F824-4CA9-9A58-034DD6B7D022}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "logging", "..\..\src\logging\logging.vcxproj", "{7E1E3F13-2BD6-3F75-A6A7-873A2B55C60F}"
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "spdlog", "..\..\src\logging\logging.vcxproj", "{7E1E3F13-2BD6-3F75-A6A7-873A2B55C60F}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Version", "..\..\src\common\version\version.vcxproj", "{CC6E41AC-8174-4E8A-8D22-85DD7F4851DF}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SetttingsAPI", "..\..\src\common\SettingsAPI\SetttingsAPI.vcxproj", "{6955446D-23F7-4023-9BB3-8657F904AF99}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Notifications", "..\..\src\common\notifications\notifications.vcxproj", "{1D5BE09D-78C0-4FD7-AF00-AE7C1AF7C525}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WinStore", "..\..\src\common\WinStore\Winstore.vcxproj", "{C502A854-53AC-4EBB-8DC0-E4AF2191E4F6}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -21,10 +27,6 @@ Global
{17DA04DF-E393-4397-9CF0-84DABE11032E}.Debug|x64.Build.0 = Debug|x64
{17DA04DF-E393-4397-9CF0-84DABE11032E}.Release|x64.ActiveCfg = Release|x64
{17DA04DF-E393-4397-9CF0-84DABE11032E}.Release|x64.Build.0 = Release|x64
{74485049-C722-400F-ABE5-86AC52D929B3}.Debug|x64.ActiveCfg = Debug|x64
{74485049-C722-400F-ABE5-86AC52D929B3}.Debug|x64.Build.0 = Debug|x64
{74485049-C722-400F-ABE5-86AC52D929B3}.Release|x64.ActiveCfg = Release|x64
{74485049-C722-400F-ABE5-86AC52D929B3}.Release|x64.Build.0 = Release|x64
{D194E3AA-F824-4CA9-9A58-034DD6B7D022}.Debug|x64.ActiveCfg = Debug|x64
{D194E3AA-F824-4CA9-9A58-034DD6B7D022}.Debug|x64.Build.0 = Debug|x64
{D194E3AA-F824-4CA9-9A58-034DD6B7D022}.Release|x64.ActiveCfg = Release|x64
@@ -33,6 +35,22 @@ Global
{7E1E3F13-2BD6-3F75-A6A7-873A2B55C60F}.Debug|x64.Build.0 = Debug|x64
{7E1E3F13-2BD6-3F75-A6A7-873A2B55C60F}.Release|x64.ActiveCfg = Release|x64
{7E1E3F13-2BD6-3F75-A6A7-873A2B55C60F}.Release|x64.Build.0 = Release|x64
{CC6E41AC-8174-4E8A-8D22-85DD7F4851DF}.Debug|x64.ActiveCfg = Debug|x64
{CC6E41AC-8174-4E8A-8D22-85DD7F4851DF}.Debug|x64.Build.0 = Debug|x64
{CC6E41AC-8174-4E8A-8D22-85DD7F4851DF}.Release|x64.ActiveCfg = Release|x64
{CC6E41AC-8174-4E8A-8D22-85DD7F4851DF}.Release|x64.Build.0 = Release|x64
{6955446D-23F7-4023-9BB3-8657F904AF99}.Debug|x64.ActiveCfg = Debug|x64
{6955446D-23F7-4023-9BB3-8657F904AF99}.Debug|x64.Build.0 = Debug|x64
{6955446D-23F7-4023-9BB3-8657F904AF99}.Release|x64.ActiveCfg = Release|x64
{6955446D-23F7-4023-9BB3-8657F904AF99}.Release|x64.Build.0 = Release|x64
{1D5BE09D-78C0-4FD7-AF00-AE7C1AF7C525}.Debug|x64.ActiveCfg = Debug|x64
{1D5BE09D-78C0-4FD7-AF00-AE7C1AF7C525}.Debug|x64.Build.0 = Debug|x64
{1D5BE09D-78C0-4FD7-AF00-AE7C1AF7C525}.Release|x64.ActiveCfg = Release|x64
{1D5BE09D-78C0-4FD7-AF00-AE7C1AF7C525}.Release|x64.Build.0 = Release|x64
{C502A854-53AC-4EBB-8DC0-E4AF2191E4F6}.Debug|x64.ActiveCfg = Debug|x64
{C502A854-53AC-4EBB-8DC0-E4AF2191E4F6}.Debug|x64.Build.0 = Debug|x64
{C502A854-53AC-4EBB-8DC0-E4AF2191E4F6}.Release|x64.ActiveCfg = Release|x64
{C502A854-53AC-4EBB-8DC0-E4AF2191E4F6}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

View File

@@ -10,21 +10,25 @@ std::optional<RcResource> RcResource::create(int resource_id, const std::wstring
{
return std::nullopt;
}
const HGLOBAL memHandle = LoadResource(nullptr, resHandle);
if (!memHandle)
{
return std::nullopt;
}
const size_t resSize = SizeofResource(nullptr, resHandle);
if (!resSize)
{
return std::nullopt;
}
auto res = static_cast<const std::byte*>(LockResource(memHandle));
if (!res)
{
return std::nullopt;
}
return RcResource{ res, resSize };
}
@@ -35,6 +39,7 @@ bool RcResource::saveAsFile(const std::filesystem::path destination)
{
return false;
}
installerFile.write(reinterpret_cast<const char*>(_memory), _size);
return true;
}

View File

@@ -58,6 +58,9 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="BOOTSTRAPPER_PROGRESS_TITLE" xml:space="preserve">
<value>PowerToys Installer</value>
</data>
<data name="DOTNET_CORE_DOWNLOAD_FAILURE" xml:space="preserve">
<value>Couldn't download .NET Core Desktop Runtime 3.1, please install it manually.</value>
</data>
@@ -125,28 +128,19 @@
<value>PowerToys: uninstall previous version?</value>
</data>
<data name="INSTALLER_EXTRACT_ERROR" xml:space="preserve">
<value>Couldn't extract MSI installer!</value>
<value>Couldn't extract MSI installer.</value>
</data>
<data name="EXTRACTING_INSTALLER" xml:space="preserve">
<value>Extracting PowerToys MSI...</value>
</data>
<data name="UNINSTALLING_PREVIOUS_VERSION" xml:space="preserve">
<value>Uninstalling previous PowerToys version...</value>
</data>
<data name="UNINSTALL_PREVIOUS_VERSION_ERROR" xml:space="preserve">
<value>Couldn't uninstall previous PowerToys version!</value>
<value>Couldn't uninstall previous PowerToys version.</value>
</data>
<data name="INSTALLING_DOTNET" xml:space="preserve">
<value>Installing dotnet...</value>
<data name="DOWNLOADING_DOTNET" xml:space="preserve">
<value>Downloading .NET Core...</value>
</data>
<data name="DOTNET_INSTALL_ERROR" xml:space="preserve">
<value>Couldn't install dotnet!</value>
</data>
<data name="INSTALLING_NEW_VERSION" xml:space="preserve">
<value>Installing new PowerToys version...</value>
</data>
<data name="NEW_VERSION_INSTALLATION_DONE" xml:space="preserve">
<value>PowerToys installation complete!</value>
<value>Couldn't install .NET Core.</value>
</data>
<data name="NEW_VERSION_INSTALLATION_ERROR" xml:space="preserve">
<value>Couldn't install new PowerToys version.</value>
@@ -160,5 +154,11 @@
</data>
<data name="GITHUB_NEW_VERSION_CHECK_ERROR" xml:space="preserve">
<value>Failed to connect to the server. Check your network connection or retry later.</value>
</data>
</data>
<data name="NEWER_VERSION_ERROR" xml:space="preserve">
<value>A newer version is already installed.</value>
</data>
<data name="OLD_WINDOWS_ERROR" xml:space="preserve">
<value>PowerToys requires Windows 10 version 1903 (May 2019 Update) or newer to run.</value>
</data>
</root>

View File

@@ -1,6 +1,6 @@
#include <windows.h>
#include "resource.h"
#include "../../../src/common/version.h"
#include "../../../src/common/version/version.h"
MAINICON ICON "../../../src/runner/svgs/icon.ico"
IDR_BIN_ICON BIN "../../../src/runner/svgs/icon.ico"

View File

@@ -1,20 +1,25 @@
#include "pch.h"
#include "Generated Files/resource.h"
#include <common/common.h>
#include <common/notifications.h>
#include <common/RcResource.h>
#include "RcResource.h"
#include <common/updating/dotnet_installation.h>
#include <common/updating/installer.h>
#include <common/version.h>
#include <common/appMutex.h>
#include <common/processApi.h>
#include <common/updating/notifications.h>
#include <common/version/version.h>
#include <common/utils/appMutex.h>
#include <common/utils/elevation.h>
#include <common/utils/processApi.h>
#include <common/utils/resources.h>
#include <common/utils/window.h>
#include <common/utils/winapi_error.h>
#include <common/SettingsAPI/settings_helpers.h>
#include <runner/action_runner_utils.h>
extern "C" IMAGE_DOS_HEADER __ImageBase;
#include "progressbar_window.h"
auto Strings = create_notifications_strings();
static bool g_Silent = false;
#define STR_HELPER(x) #x
#define STR(x) STR_HELPER(x)
@@ -22,47 +27,36 @@ auto Strings = create_notifications_strings();
namespace // Strings in this namespace should not be localized
{
const wchar_t APPLICATION_ID[] = L"PowerToysInstaller";
const wchar_t INSTALLATION_TOAST_TITLE[] = L"PowerToys Installation";
const wchar_t TOAST_TAG[] = L"PowerToysInstallerProgress";
const char LOG_FILENAME[] = "powertoys-bootstrapper-" STR(VERSION_MAJOR) "." STR(VERSION_MINOR) "." STR(VERSION_REVISION) ".log";
const char EXE_LOG_FILENAME[] = "powertoys-bootstrapper-exe-" STR(VERSION_MAJOR) "." STR(VERSION_MINOR) "." STR(VERSION_REVISION) ".log";
const char MSI_LOG_FILENAME[] = "powertoys-bootstrapper-msi-" STR(VERSION_MAJOR) "." STR(VERSION_MINOR) "." STR(VERSION_REVISION) ".log";
}
#undef STR
#undef STR_HELPER
namespace fs = std::filesystem;
std::optional<fs::path> extractEmbeddedInstaller()
std::optional<fs::path> ExtractEmbeddedInstaller(const fs::path extractPath)
{
auto executableRes = RcResource::create(IDR_BIN_MSIINSTALLER, L"BIN");
if (!executableRes)
{
return std::nullopt;
}
auto installerPath = fs::temp_directory_path() / L"PowerToysBootstrappedInstaller-" PRODUCT_VERSION_STRING L".msi";
auto installerPath = extractPath / L"PowerToysBootstrappedInstaller-" PRODUCT_VERSION_STRING L".msi";
return executableRes->saveAsFile(installerPath) ? std::make_optional(std::move(installerPath)) : std::nullopt;
}
std::optional<fs::path> extractIcon()
{
auto iconRes = RcResource::create(IDR_BIN_ICON, L"BIN");
if (!iconRes)
{
return std::nullopt;
}
auto icoPath = fs::temp_directory_path() / L"PowerToysBootstrappedInstaller.ico";
return iconRes->saveAsFile(icoPath) ? std::make_optional(std::move(icoPath)) : std::nullopt;
}
void setup_log(fs::path directory, const spdlog::level::level_enum severity)
void SetupLogger(fs::path directory, const spdlog::level::level_enum severity)
{
std::shared_ptr<spdlog::logger> logger;
auto nullLogger = spdlog::null_logger_mt("null");
try
{
std::shared_ptr<spdlog::logger> logger;
if (severity != spdlog::level::off)
{
logger = spdlog::basic_logger_mt("file", (directory / LOG_FILENAME).wstring());
logger = spdlog::basic_logger_mt("file", (directory / EXE_LOG_FILENAME).wstring());
std::error_code _;
const DWORD msiSev = severity == spdlog::level::debug ? INSTALLLOGMODE_VERBOSE : INSTALLLOGMODE_ERROR;
@@ -71,8 +65,9 @@ void setup_log(fs::path directory, const spdlog::level::level_enum severity)
}
else
{
logger = spdlog::null_logger_mt("null");
logger = nullLogger;
}
logger->set_pattern("[%L][%d-%m-%C-%T] %v");
logger->set_level(severity);
spdlog::set_default_logger(std::move(logger));
@@ -81,13 +76,62 @@ void setup_log(fs::path directory, const spdlog::level::level_enum severity)
}
catch (...)
{
spdlog::set_default_logger(nullLogger);
}
}
int bootstrapper()
void CleanupSettingsFromOlderVersions()
{
try
{
const auto logSettingsFile = fs::path{ PTSettingsHelper::get_root_save_folder_location() } / PTSettingsHelper::log_settings_filename;
if (fs::is_regular_file(logSettingsFile))
{
fs::remove(logSettingsFile);
spdlog::info("Removed old log settings file");
}
else
{
spdlog::info("Old log settings file wasn't found");
}
}
catch(...)
{
spdlog::error("Failed to cleanup old log settings");
}
}
void ShowMessageBoxError(const wchar_t* message)
{
if (!g_Silent)
{
MessageBoxW(nullptr,
message,
GET_RESOURCE_STRING(IDS_BOOTSTRAPPER_PROGRESS_TITLE).c_str(),
MB_OK | MB_ICONERROR);
}
}
void ShowMessageBoxError(const UINT messageId)
{
ShowMessageBoxError(GET_RESOURCE_STRING(messageId).c_str());
}
int Bootstrapper(HINSTANCE hInstance)
{
winrt::init_apartment();
char* programFilesDir = nullptr;
size_t size = 0;
std::string defaultInstallDir;
if (!_dupenv_s(&programFilesDir, &size, "PROGRAMFILES"))
{
defaultInstallDir += programFilesDir;
defaultInstallDir += "\\PowerToys";
}
cxxopts::Options options{ "PowerToysBootstrapper" };
// clang-format off
options.add_options()
("h,help", "Show help")
@@ -96,40 +140,20 @@ int bootstrapper()
("no_start_pt", "Do not launch PowerToys after the installation is complete")
("skip_dotnet_install", "Skip dotnet 3.X installation even if it's not detected")
("log_level", "Log level. Possible values: off|debug|error", cxxopts::value<std::string>()->default_value("off"))
("log_dir", "Log directory.", cxxopts::value<std::string>()->default_value("."));
("log_dir", "Log directory", cxxopts::value<std::string>()->default_value("."))
("install_dir", "Installation directory", cxxopts::value<std::string>()->default_value(defaultInstallDir))
("extract_msi", "Extract MSI to the working directory and exit. Use only if you must access MSI directly.");
// clang-format on
cxxopts::ParseResult cmdArgs;
bool showHelp = false;
try
{
cmdArgs = options.parse(__argc, const_cast<const char**>(__argv));
}
catch (cxxopts::option_has_no_value_exception&)
{
showHelp = true;
}
catch (cxxopts::option_not_exists_exception&)
{
showHelp = true;
}
catch (cxxopts::option_not_present_exception&)
{
showHelp = true;
}
catch (cxxopts::option_not_has_argument_exception&)
{
showHelp = true;
}
catch (cxxopts::option_required_exception&)
{
showHelp = true;
}
catch (cxxopts::option_requires_argument_exception&)
{
showHelp = true;
}
catch (...)
{
showHelp = true;
}
showHelp = showHelp || cmdArgs["help"].as<bool>();
@@ -140,13 +164,33 @@ int bootstrapper()
MessageBoxA(nullptr, helpMsg.str().c_str(), "Help", MB_OK | MB_ICONINFORMATION);
return 0;
}
g_Silent = cmdArgs["silent"].as<bool>();
const bool noFullUI = cmdArgs["no_full_ui"].as<bool>();
const bool silent = cmdArgs["silent"].as<bool>();
const bool skipDotnetInstall = cmdArgs["skip_dotnet_install"].as<bool>();
const bool noStartPT = cmdArgs["no_start_pt"].as<bool>();
const auto logLevel = cmdArgs["log_level"].as<std::string>();
const auto logDirArg = cmdArgs["log_dir"].as<std::string>();
spdlog::level::level_enum severity = spdlog::level::off;
const auto installDirArg = cmdArgs["install_dir"].as<std::string>();
const bool extract_msi_only = cmdArgs["extract_msi"].as<bool>();
std::wstring installFolderProp;
if (!installDirArg.empty())
{
std::string installDir;
if (installDirArg.find(' ') != std::string::npos)
{
installDir = "\"" + installDirArg + "\"";
}
else
{
installDir = installDirArg;
}
installFolderProp = std::wstring(installDir.length(), L' ');
std::copy(installDir.begin(), installDir.end(), installFolderProp.begin());
installFolderProp = L"INSTALLFOLDER=" + installFolderProp;
}
fs::path logDir = ".";
try
@@ -161,6 +205,7 @@ int bootstrapper()
{
}
spdlog::level::level_enum severity = spdlog::level::off;
if (logLevel == "debug")
{
severity = spdlog::level::debug;
@@ -169,14 +214,50 @@ int bootstrapper()
{
severity = spdlog::level::err;
}
setup_log(logDir, severity);
spdlog::debug("PowerToys Bootstrapper is launched!\nnoFullUI: {}\nsilent: {}\nno_start_pt: {}\nskip_dotnet_install: {}\nlog_level: {}", noFullUI, silent, noStartPT, skipDotnetInstall, logLevel);
SetupLogger(logDir, severity);
spdlog::debug("PowerToys Bootstrapper is launched\nnoFullUI: {}\nsilent: {}\nno_start_pt: {}\nskip_dotnet_install: {}\nlog_level: {}\ninstall_dir: {}\nextract_msi: {}\n", noFullUI, g_Silent, noStartPT, skipDotnetInstall, logLevel, installDirArg, extract_msi_only);
const VersionHelper myVersion(VERSION_MAJOR, VERSION_MINOR, VERSION_REVISION);
// Do not support installing on Windows < 1903
if (myVersion >= VersionHelper{0, 36, 0} && updating::is_old_windows_version())
{
ShowMessageBoxError(IDS_OLD_WINDOWS_ERROR);
spdlog::error("PowerToys {} requires at least Windows 1903 to run.", myVersion.toString());
return 1;
}
// If a user requested an MSI -> extract it and exit
if (extract_msi_only)
{
if (const auto installerPath = ExtractEmbeddedInstaller(fs::current_path()))
{
spdlog::debug("MSI installer extracted to {}", installerPath->string());
}
else
{
spdlog::error("MSI installer couldn't be extracted");
}
return 0;
}
// Check if there's a newer version installed
const auto installedVersion = updating::get_installed_powertoys_version();
if (installedVersion && *installedVersion >= myVersion)
{
spdlog::error(L"Detected a newer version {} vs {}", (*installedVersion).toWstring(), myVersion.toWstring());
ShowMessageBoxError(IDS_NEWER_VERSION_ERROR);
return 0;
}
// Setup MSI UI visibility and restart as elevated if required
if (!noFullUI)
{
MsiSetInternalUI(INSTALLUILEVEL_FULL, nullptr);
}
if (silent)
if (g_Silent)
{
if (is_process_elevated())
{
@@ -192,18 +273,30 @@ int bootstrapper()
LPWSTR* argList = CommandLineToArgvW(GetCommandLineW(), &nCmdArgs);
for (int i = 1; i < nCmdArgs; ++i)
{
params += argList[i];
if (std::wstring_view{ argList[i] }.find(L' ') != std::wstring_view::npos)
{
params += L'"';
params += argList[i];
params += L'"';
}
else
{
params += argList[i];
}
if (i != nCmdArgs - 1)
{
params += L' ';
}
}
const auto processHandle = run_elevated(argList[0], params.c_str());
if (!processHandle)
{
spdlog::error("Couldn't restart elevated to enable silent mode! ({})", GetLastError());
return 1;
}
if (WaitForSingleObject(processHandle, 3600000) == WAIT_OBJECT_0)
{
DWORD exitCode = 0;
@@ -220,127 +313,55 @@ int bootstrapper()
}
}
// Try killing PowerToys and prevent future processes launch
// Try killing PowerToys and prevent future processes launch by acquiring app mutex
for (auto& handle : getProcessHandlesByName(L"PowerToys.exe", PROCESS_TERMINATE))
{
TerminateProcess(handle.get(), 0);
}
auto powerToysMutex = createAppMutex(POWERTOYS_MSI_MUTEX_NAME);
auto powerToysMutex = createAppMutex(POWERTOYS_MSI_MUTEX_NAME);
auto instanceMutex = createAppMutex(POWERTOYS_BOOTSTRAPPER_MUTEX_NAME);
if (!instanceMutex)
{
spdlog::error("Couldn't acquire PowerToys global mutex. That means setup couldn't kill PowerToys.exe process");
spdlog::error("Couldn't acquire PowerToys global mutex. Setup couldn't terminate PowerToys.exe process");
return 1;
}
notifications::override_application_id(APPLICATION_ID);
spdlog::debug("Extracting icon for toast notifications");
fs::path iconPath{ L"C:\\" };
if (auto extractedIcon = extractIcon())
{
iconPath = std::move(*extractedIcon);
}
spdlog::debug("Registering app id for toast notifications");
notifications::register_application_id(INSTALLATION_TOAST_TITLE, iconPath.c_str());
auto removeShortcut = wil::scope_exit([&] {
notifications::unregister_application_id();
});
// Check if there's a newer version installed, and launch its installer if so.
const VersionHelper myVersion(VERSION_MAJOR, VERSION_MINOR, VERSION_REVISION);
if (const auto installedVersion = updating::get_installed_powertoys_version(); installedVersion && *installedVersion >= myVersion)
{
auto msi_path = updating::get_msi_package_path();
if (!msi_path.empty())
{
spdlog::error(L"Detected a newer {} version => launching its installer", installedVersion->toWstring());
MsiInstallProductW(msi_path.c_str(), nullptr);
return 0;
}
}
std::mutex progressLock;
notifications::progress_bar_params progressParams;
progressParams.progress = 0.0f;
progressParams.progress_title = GET_RESOURCE_STRING(IDS_EXTRACTING_INSTALLER);
notifications::toast_params params{ TOAST_TAG, false, std::move(progressParams) };
if (!silent)
{
spdlog::debug("Launching progress toast notification");
notifications::show_toast_with_activations({}, INSTALLATION_TOAST_TITLE, {}, {}, std::move(params));
}
auto processToasts = wil::scope_exit([&] {
spdlog::debug("Processing HWND messages for 2s so toast have time to show up");
run_message_loop(true, 2);
});
if (!silent)
{
// Worker thread to periodically increase progress and keep the progress toast from losing focus
std::thread{ [&] {
spdlog::debug("Started worker thread for progress bar update");
for (;; Sleep(3000))
{
std::scoped_lock lock{ progressLock };
if (progressParams.progress == 1.f)
{
break;
}
progressParams.progress = std::min(0.99f, progressParams.progress + 0.001f);
notifications::update_toast_progress_bar(TOAST_TAG, progressParams);
}
} }.detach();
}
auto updateProgressBar = [&](const float value, const wchar_t* title) {
if (silent)
{
return;
}
std::scoped_lock lock{ progressLock };
progressParams.progress = value;
progressParams.progress_title = title;
notifications::update_toast_progress_bar(TOAST_TAG, progressParams);
};
spdlog::debug("Extracting embedded MSI installer");
const auto installerPath = extractEmbeddedInstaller();
const auto installerPath = ExtractEmbeddedInstaller(fs::temp_directory_path());
if (!installerPath)
{
if (!silent)
{
notifications::show_toast(GET_RESOURCE_STRING(IDS_INSTALLER_EXTRACT_ERROR), INSTALLATION_TOAST_TITLE);
}
ShowMessageBoxError(IDS_INSTALLER_EXTRACT_ERROR);
spdlog::error("Couldn't install the MSI installer ({})", GetLastError());
return 1;
}
auto removeExtractedInstaller = wil::scope_exit([&] {
std::error_code _;
fs::remove(*installerPath, _);
});
updateProgressBar(.25f, GET_RESOURCE_STRING(IDS_UNINSTALLING_PREVIOUS_VERSION).c_str());
spdlog::debug("Acquiring existing MSI package path");
spdlog::debug("Acquiring existing MSI package path if exists");
const auto package_path = updating::get_msi_package_path();
if (!package_path.empty())
{
spdlog::debug(L"Existing MSI package path: {}", package_path);
spdlog::debug(L"Existing MSI package path found: {}", package_path);
}
else
{
spdlog::debug("Existing MSI package path not found");
}
if (!package_path.empty() && !updating::uninstall_msi_version(package_path, Strings) && !silent)
if (!package_path.empty() && !updating::uninstall_msi_version(package_path, Strings))
{
spdlog::error("Couldn't install the existing MSI package ({})", GetLastError());
notifications::show_toast(GET_RESOURCE_STRING(IDS_UNINSTALL_PREVIOUS_VERSION_ERROR), INSTALLATION_TOAST_TITLE);
ShowMessageBoxError(IDS_UNINSTALL_PREVIOUS_VERSION_ERROR);
}
const bool installDotnet = !skipDotnetInstall;
if (installDotnet)
if (!g_Silent)
{
updateProgressBar(.5f, GET_RESOURCE_STRING(IDS_INSTALLING_DOTNET).c_str());
OpenProgressBarDialog(hInstance, 0, GET_RESOURCE_STRING(IDS_BOOTSTRAPPER_PROGRESS_TITLE).c_str(), GET_RESOURCE_STRING(IDS_DOWNLOADING_DOTNET).c_str());
}
try
@@ -349,37 +370,55 @@ int bootstrapper()
{
spdlog::debug("Detecting if dotnet is installed");
const bool dotnetInstalled = updating::dotnet_is_installed();
spdlog::debug("Dotnet is installed: {}", dotnetInstalled);
if (!dotnetInstalled &&
!updating::install_dotnet(silent) &&
!silent)
spdlog::debug("Dotnet is already installed: {}", dotnetInstalled);
if (!dotnetInstalled)
{
notifications::show_toast(GET_RESOURCE_STRING(IDS_DOTNET_INSTALL_ERROR), INSTALLATION_TOAST_TITLE);
bool installedSuccessfully = false;
if (const auto dotnet_installer_path = updating::download_dotnet())
{
// Dotnet installer has its own progress bar
CloseProgressBarDialog();
installedSuccessfully = updating::install_dotnet(*dotnet_installer_path, g_Silent);
if (!installedSuccessfully)
{
spdlog::error("Couldn't install dotnet");
}
}
else
{
spdlog::error("Couldn't download dotnet");
}
if (!installedSuccessfully)
{
ShowMessageBoxError(IDS_DOTNET_INSTALL_ERROR);
}
}
}
}
catch (...)
{
spdlog::error("Unknown exception during dotnet installation");
MessageBoxW(nullptr, L".NET Core installation", L"Unknown exception encountered!", MB_OK | MB_ICONERROR);
ShowMessageBoxError(IDS_DOTNET_INSTALL_ERROR);
}
CleanupSettingsFromOlderVersions();
updateProgressBar(.75f, GET_RESOURCE_STRING(IDS_INSTALLING_NEW_VERSION).c_str());
// At this point, there's no reason to show progress bar window, since MSI installers have their own
CloseProgressBarDialog();
// Always skip dotnet install, because we should've installed it from here earlier
std::wstring msiProps = L"SKIPDOTNETINSTALL=1 ";
const std::wstring msiProps = installFolderProp;
spdlog::debug("Launching MSI installation for new package {}", installerPath->string());
const bool installationDone = MsiInstallProductW(installerPath->c_str(), msiProps.c_str()) == ERROR_SUCCESS;
updateProgressBar(1.f,
installationDone ? GET_RESOURCE_STRING(IDS_NEW_VERSION_INSTALLATION_DONE).c_str() : GET_RESOURCE_STRING(IDS_NEW_VERSION_INSTALLATION_ERROR).c_str());
if (!installationDone)
{
spdlog::error("Couldn't install new MSI package ({})", GetLastError());
return 1;
}
spdlog::debug("Installation completed");
if (!noStartPT && !silent)
if (!noStartPT && !g_Silent)
{
spdlog::debug("Starting the newly installed PowerToys.exe");
auto newPTPath = updating::get_msi_package_installed_path();
@@ -388,6 +427,7 @@ int bootstrapper()
spdlog::error("Couldn't determine new MSI package install location ({})", GetLastError());
return 1;
}
*newPTPath += L"\\PowerToys.exe";
SHELLEXECUTEINFOW sei{ sizeof(sei) };
sei.fMask = { SEE_MASK_FLAG_NO_UI | SEE_MASK_NOASYNC | SEE_MASK_NO_CONSOLE };
@@ -399,26 +439,41 @@ int bootstrapper()
return 0;
}
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
int WINAPI WinMain(HINSTANCE hi, HINSTANCE, LPSTR, int)
{
try
{
return bootstrapper();
return Bootstrapper(hi);
}
catch (const std::exception& ex)
{
MessageBoxA(nullptr, ex.what(), "Unhandled std exception encountered!", MB_OK | MB_ICONERROR);
std::string messageA{ "Unhandled std exception encountered\n" };
messageA.append(ex.what());
spdlog::error(messageA.c_str());
std::wstring messageW{};
std::copy(messageA.begin(), messageA.end(), messageW.begin());
ShowMessageBoxError(messageW.c_str());
}
catch (winrt::hresult_error const& ex)
{
winrt::hstring message = ex.message();
MessageBoxW(nullptr, message.c_str(), L"Unhandled winrt exception encountered!", MB_OK | MB_ICONERROR);
std::wstring message{ L"Unhandled winrt exception encountered\n" };
message.append(ex.message().c_str());
spdlog::error(message.c_str());
ShowMessageBoxError(message.c_str());
}
catch (...)
{
auto lastErrorMessage = get_last_error_message(GetLastError());
std::wstring message = lastErrorMessage ? std::move(*lastErrorMessage) : L"";
MessageBoxW(nullptr, message.c_str(), L"Unknown exception encountered!", MB_OK | MB_ICONERROR);
std::wstring message{ L"Unknown exception encountered\n" };
message.append(lastErrorMessage ? std::move(*lastErrorMessage) : L"");
spdlog::error(message.c_str());
ShowMessageBoxError(message.c_str());
}
return 0;
}

View File

@@ -18,7 +18,7 @@
</ProjectConfiguration>
</ItemGroup>
<Target Name="GenerateResourceFiles" BeforeTargets="PrepareForBuild">
<Exec Command="powershell -NonInteractive -executionpolicy Unrestricted $(SolutionDir)..\..\tools\build\convert-resx-to-rc.ps1 . resource.base.h resource.h bootstrapper.base.rc bootstrapper.rc 105" />
<Exec Command="powershell -NonInteractive -executionpolicy Unrestricted $(SolutionDir)..\..\tools\build\convert-resx-to-rc.ps1 $(MSBuildThisFileDirectory) resource.base.h resource.h bootstrapper.base.rc bootstrapper.rc 105" />
</Target>
<PropertyGroup Label="Globals">
<VCProjectVersion>16.0</VCProjectVersion>
@@ -76,10 +76,8 @@
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<LanguageStandard>stdcpplatest</LanguageStandard>
<TreatWarningAsError>true</TreatWarningAsError>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<MultiProcessorCompilation Condition="'$(CIBuild)'!='true'">true</MultiProcessorCompilation>
<AdditionalIncludeDirectories>../../../src/;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
@@ -90,7 +88,7 @@
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>WindowsApp.lib;Msi.lib;Shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>WindowsApp.lib;Msi.lib;Shlwapi.lib;Comctl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
@@ -98,10 +96,8 @@
<WarningLevel>Level4</WarningLevel>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<LanguageStandard>stdcpplatest</LanguageStandard>
<TreatWarningAsError>true</TreatWarningAsError>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<MultiProcessorCompilation Condition="'$(CIBuild)'!='true'">true</MultiProcessorCompilation>
<AdditionalIncludeDirectories>../../../src/;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
@@ -110,7 +106,7 @@
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>WindowsApp.lib;Msi.lib;Shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>WindowsApp.lib;Msi.lib;Shlwapi.lib;Comctl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
@@ -119,10 +115,12 @@
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
</ClCompile>
<ClCompile Include="progressbar_window.cpp" />
<ClCompile Include="RcResource.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\runner\updating.h" />
<ClInclude Include="pch.h" />
<ClInclude Include="progressbar_window.h" />
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
@@ -135,9 +133,6 @@
<Image Include="..\runner\svgs\icon.ico" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\src\common\common.vcxproj">
<Project>{74485049-c722-400f-abe5-86ac52d929b3}</Project>
</ProjectReference>
<ProjectReference Include="..\..\..\src\common\updating\updating.vcxproj">
<Project>{17da04df-e393-4397-9cf0-84dabe11032e}</Project>
</ProjectReference>

View File

@@ -10,6 +10,18 @@
<Disp Icon="Expand" Expand="true" Disp="true" LocTbl="false" />
<Item ItemId=";Strings" ItemType="0" PsrId="211" Leaf="false">
<Disp Icon="Str" Disp="true" LocTbl="false" />
<Item ItemId=";BOOTSTRAPPER_PROGRESS_TITLE" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys Installer]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Instalační program PowerToys]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[PowerToys installer]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";DOTNET_CORE_DOWNLOAD_FAILURE" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't download .NET Core Desktop Runtime 3.1, please install it manually.]]></Val>
@@ -30,10 +42,25 @@
</Item>
<Item ItemId=";DOTNET_INSTALL_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't install dotnet!]]></Val>
<Val><![CDATA[Couldn't install .NET Core.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Nepovedlo se nainstalovat .NET.]]></Val>
<Val><![CDATA[Nepovedlo se nainstalovat .NET Core.]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Couldn't install dotnet!]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";DOWNLOADING_DOTNET" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Downloading .NET Core...]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Stahuje se .NET Core...]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Downloading .NET Core Runtime...]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
@@ -91,6 +118,15 @@
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_CHECK_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Failed to connect to the server. Check your network connection or retry later.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Nepovedlo se připojit k serveru. Zkontrolujte připojení k síti, nebo to zkuste znovu později.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_DOWNLOAD_INSTALL_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Error: couldn't download PowerToys installer. Visit our GitHub page to update.]]></Val>
@@ -136,15 +172,6 @@
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_UNAVAILABLE" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys is up to date.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Sada PowerToys je aktuální.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_UPDATE_AFTER_RESTART" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[At next launch]]></Val>
@@ -181,6 +208,24 @@
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_UP_TO_DATE" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys is up to date.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Sada PowerToys je aktuální.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_USING_LOCAL_BUILD_ERROR" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Updating from a local build is not supported.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Aktualizace z místního buildu se nepodporuje.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_VISIT" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Visit]]></Val>
@@ -192,36 +237,21 @@
</Item>
<Item ItemId=";INSTALLER_EXTRACT_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't extract MSI installer!]]></Val>
<Val><![CDATA[Couldn't extract MSI installer.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Nepovedlo se rozbalit Instalační program MSI.]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Couldn't extract MSI installer!]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";INSTALLING_DOTNET" ItemType="0;.resx" PsrId="211" Leaf="true">
<Item ItemId=";NEWER_VERSION_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Installing dotnet...]]></Val>
<Val><![CDATA[A newer version is already installed.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Instaluje se .NET...]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";INSTALLING_NEW_VERSION" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Installing new PowerToys version...]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Instaluje se nová verze PowerToys...]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";NEW_VERSION_INSTALLATION_DONE" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys installation complete!]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Instalace PowerToys je hotová.]]></Val>
<Val><![CDATA[Už je nainstalovaná novější verze.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
@@ -253,6 +283,15 @@
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";OLD_WINDOWS_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys requires Windows 10 version 1903 (May 2019 Update) or newer to run.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Aby se sada PowerToys dala spustit, vyžaduje Windows 10 verze 1903 (aktualizace z května 2019) nebo novější.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";SNOOZE_BUTTON" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Snooze]]></Val>
@@ -280,21 +319,15 @@
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";UNINSTALLING_PREVIOUS_VERSION" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Uninstalling previous PowerToys version...]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Odinstalovává se předchozí verze PowerToys...]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";UNINSTALL_PREVIOUS_VERSION_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't uninstall previous PowerToys version!]]></Val>
<Val><![CDATA[Couldn't uninstall previous PowerToys version.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Nepovedlo se odinstalovat předchozí verzi PowerToys.]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Couldn't uninstall previous PowerToys version!]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>

View File

@@ -10,6 +10,18 @@
<Disp Icon="Expand" Expand="true" Disp="true" LocTbl="false" />
<Item ItemId=";Strings" ItemType="0" PsrId="211" Leaf="false">
<Disp Icon="Str" Disp="true" LocTbl="false" />
<Item ItemId=";BOOTSTRAPPER_PROGRESS_TITLE" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys Installer]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[PowerToys-Installer]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[PowerToys installer]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";DOTNET_CORE_DOWNLOAD_FAILURE" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't download .NET Core Desktop Runtime 3.1, please install it manually.]]></Val>
@@ -30,10 +42,25 @@
</Item>
<Item ItemId=";DOTNET_INSTALL_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't install dotnet!]]></Val>
<Val><![CDATA[Couldn't install .NET Core.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[.NET konnte nicht installiert werden.]]></Val>
<Val><![CDATA[.NET Core konnte nicht installiert werden.]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Couldn't install dotnet!]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";DOWNLOADING_DOTNET" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Downloading .NET Core...]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[.NET Core wird heruntergeladen...]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Downloading .NET Core Runtime...]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
@@ -91,6 +118,15 @@
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_CHECK_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Failed to connect to the server. Check your network connection or retry later.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Fehler bei der Verbindungsherstellung mit dem Server. Überprüfen Sie Ihre Netzwerkverbindung, oder versuchen Sie es später noch mal.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_DOWNLOAD_INSTALL_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Error: couldn't download PowerToys installer. Visit our GitHub page to update.]]></Val>
@@ -136,15 +172,6 @@
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_UNAVAILABLE" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys is up to date.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[PowerToys ist auf dem neuesten Stand.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_UPDATE_AFTER_RESTART" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[At next launch]]></Val>
@@ -181,6 +208,24 @@
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_UP_TO_DATE" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys is up to date.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[PowerToys ist auf dem neuesten Stand.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_USING_LOCAL_BUILD_ERROR" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Updating from a local build is not supported.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Die Aktualisierung aus einem lokalen Build wird nicht unterstützt.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_VISIT" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Visit]]></Val>
@@ -192,36 +237,21 @@
</Item>
<Item ItemId=";INSTALLER_EXTRACT_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't extract MSI installer!]]></Val>
<Val><![CDATA[Couldn't extract MSI installer.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[MSI-Installer konnte nicht extrahiert werden.]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Couldn't extract MSI installer!]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";INSTALLING_DOTNET" ItemType="0;.resx" PsrId="211" Leaf="true">
<Item ItemId=";NEWER_VERSION_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Installing dotnet...]]></Val>
<Val><![CDATA[A newer version is already installed.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[.NET wird installiert...]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";INSTALLING_NEW_VERSION" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Installing new PowerToys version...]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Neue PowerToys-Version wird installiert...]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";NEW_VERSION_INSTALLATION_DONE" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys installation complete!]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Die PowerToys-Installation ist abgeschlossen.]]></Val>
<Val><![CDATA[Es ist bereits eine neuere Version installiert.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
@@ -253,6 +283,15 @@
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";OLD_WINDOWS_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys requires Windows 10 version 1903 (May 2019 Update) or newer to run.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[PowerToys erfordert zur Ausführung Windows 10, Version 1903 (May 2019 Update) oder höher.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";SNOOZE_BUTTON" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Snooze]]></Val>
@@ -280,21 +319,15 @@
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";UNINSTALLING_PREVIOUS_VERSION" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Uninstalling previous PowerToys version...]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Vorherige PowerToys-Version wird deinstalliert...]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";UNINSTALL_PREVIOUS_VERSION_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't uninstall previous PowerToys version!]]></Val>
<Val><![CDATA[Couldn't uninstall previous PowerToys version.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Die vorherige PowerToys-Version konnte nicht deinstalliert werden.]]></Val>
</Tgt>
<Prev Cat="Text">
<Val><![CDATA[Couldn't uninstall previous PowerToys version!]]></Val>
</Prev>
</Str>
<Disp Icon="Str" />
</Item>

Some files were not shown because too many files have changed in this diff Show More