Compare commits

...

3021 Commits

Author SHA1 Message Date
Alekhya
2ba99d14e1 Launcher hot fixes (#4003)
* Add resource only when it is not already present (#3842)

(cherry picked from commit d2dfbff832)

* Take space into consideration while calculating the first matched index (#3874)

(cherry picked from commit a8d67a1c60)

* Fix for File explorer not showing up and multiple notepads (#3969)

* reverted the dedup code, file explorer shows up but so do duplicates

* Fixed file explorer and dedup

* Formatting

* Added tests for all the cases

* Formatting

* Tests

* take name and exe into consideration while calculating hash

* unique primes while calculating hash code

(cherry picked from commit 8cddd595d4)
2020-06-03 09:11:39 -07:00
Enrico Giordani
bbbbf0954d [CDPx] publish symbols (#4016) 2020-06-03 09:11:11 -07:00
Enrico Giordani
f81ccdda3d [runner] Change way of dropping privileges to start PT Run 2020-06-01 20:42:50 +02:00
Enrico Giordani
ef7285fb9a Now working on 0.18.2 (#3542) 2020-06-01 20:42:50 +02:00
Clint Rutkas
e75a74565b Update README.md 2020-05-22 10:21:43 -07:00
vldmr11080
1792849b98 Expose InMoveSize from WindowMoveHandler. (#3525) 2020-05-22 16:42:29 +02:00
ricardosantos9521
c7fb1f6d17 bug fix #3209 (#3457)
Co-authored-by: ricar <ricar@ASUS>
2020-05-21 11:02:03 -07:00
Enrico Giordani
a856263081 [PowerToys Run] run non-elevated when runner is elevated (#3451)
* run Launcher non-elevated

* Implemented acquiring PID of Launcher

Co-authored-by: ivan100sic <ivan100sic@gmail.com>
2020-05-21 19:44:32 +02:00
Ivan Stošić
582d1320a3 [KBM] Fix compilation error 2020-05-21 11:06:50 +02:00
Josh Soref
3789da4305 Use check boxes (#3396) 2020-05-20 22:53:12 -07:00
sakariya
a36f97adfb Dev/saahmedm/fixlabel (#3366)
* Update EditShortcutsWindow.cpp

* Update EditKeyboardWindow.cpp

* Update README.md

* Update EditShortcutsWindow.cpp

* Update EditShortcutsWindow.cpp
2020-05-20 14:52:10 -07:00
Tim De Pauw
2cda53d3af Capitalize GitHub properly (#3356) 2020-05-20 14:28:25 -07:00
Bret
74007ea465 Merge pull request #3360 from microsoft/TheMrJukes-patch-1
Delete README.md
2020-05-20 14:10:37 -07:00
Bret
c88a7dba6b Delete README.md
This is no longer accurate and also talks about internal shares which we shouldn't do publically
2020-05-20 13:17:16 -07:00
Clint Rutkas
66b7863d43 Update README.md 2020-05-20 12:21:37 -07:00
Clint Rutkas
19b318a488 Update README.md (#3355) 2020-05-20 12:15:31 -07:00
ryanbodrug-microsoft
c606e3db43 Disabling IsRightTapEnabled on all UI Elements that steal focus from the text box. (#3349) 2020-05-20 11:38:14 -07:00
wolf99
f89ab74b29 Add 1903 requirement (#3321)
Have not seen this requirement mentioned anywhere until PowerToys is already installed.
For those installing PowerToys specifically to try this, it would be useful to know the requirement in advance, especially given that https://github.com/microsoft/PowerToys/blob/master/README.md mentions only 1803.
2020-05-20 11:20:11 -07:00
Clint Rutkas
4bbdec5044 Update README.md 2020-05-20 11:05:53 -07:00
Arjun Balgovind
56a727cf0d Added check for Type key/shortcut open but not in focus (#3235) 2020-05-20 09:56:00 -07:00
Arjun Balgovind
32f74e41ef Fix publish on local machines (#3270)
* Moved publishing to publish.cmd script

* Moved publish back to pre-build event
2020-05-20 09:55:17 -07:00
Ivan Stošić
e249bc5856 [FancyZones] Fix a regression with Chrome tabs jamming FZ (#3338) 2020-05-20 18:52:48 +02:00
Arjun Balgovind
32b8a344a6 Moved publishing to publish.cmd script (#3259) 2020-05-20 09:35:02 -07:00
Clint Rutkas
61c0c35e92 Fix for 3116, changing uwp to packaged (#3123) 2020-05-20 09:17:46 -07:00
Andrey Nekrasov
2eecaf4570 Revert "[FancyZones] Remove "keep windows pinned to virtual desktop location" settings (#3093)" (#3292)
This reverts commit 8f59247acb.
2020-05-20 11:57:17 +03:00
vldmr11080
8f59247acb [FancyZones] Remove "keep windows pinned to virtual desktop location" settings (#3093)
* Remove keep windows pinned to virtual desktop location FancyZones settings

* Remove virtual desktop switch handling for this scenario.
2020-05-20 10:49:28 +02:00
Clint Rutkas
eb3ec26279 fixing images so they deep link to module overview versus the img in readme (#3240)
* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md
2020-05-19 17:12:35 -07:00
Alekhya
f07d37ce0d [launcher] - Increase the score for Exact matches in the Name of the Application (#3213)
* Increase score for exact matches in the name

* Added tests for exact matching

* Used TestCase

* variable for bonus score

* Removed comment, variable is self explanatory
2020-05-19 16:10:40 -07:00
Alexander Sklar
2e8602eb43 Update win_hook_event_data.h (#3092) 2020-05-19 15:07:06 -07:00
Cloud Han
4277041b0e correct url (#3142) 2020-05-19 10:29:06 -07:00
Enrico Giordani
6801190180 Now working on 0.18.1 (#3141) 2020-05-19 18:20:35 +02:00
Clint Rutkas
067a9cf54d Dev/crutkas/change log0.18 (#3138)
* Update README.md

* Update README.md

* Update README.md

* Update README.md
2020-05-19 08:48:53 -07:00
Divyansh Srivastava
d31a8c203f Updated query delay in launcher (#3113) 2020-05-18 11:00:53 -07:00
Niels Laute
99e8a393b6 Fix for hero image not showing in GitHub mobile app (#3105)
Replaced the image MD tag with HTML. Seems to solve the issue.
2020-05-18 10:58:43 -07:00
Enrico Giordani
42ba0a2642 [CDPx] update to use telemetry nuget package v2 (#3087) 2020-05-16 19:48:41 +02:00
Alekhya
cc0cd51658 default four results in launcher (#3081) 2020-05-15 18:51:56 -07:00
sakariya
9d3014e39c adding readme (#3045)
* adding readme

* adding links

* Update README.md

* responding to edits

* update readme

* Update README.md

* adding image

* update

* Update README.md

* adding numbers
2020-05-15 17:16:04 -07:00
ryanbodrug-microsoft
1ac3a9da4f Revert "Remove binaries from signing list" (#3078)
* Revert "Remove binaries from signing list (#3029)"

This reverts commit 64d9e9054c.

* Removing wox.exe from cdpx build assemblies
2020-05-15 15:11:38 -07:00
Tomas Raies
7c80bbecd9 [Hotfix] Add VCRuntime dlls to \modules folder
This fixes the ImageResizer crash.
2020-05-15 12:42:04 -07:00
Tomas Raies
d55e6191c2 Remove VCRedist Merge Modules, copy dlls instead
* VC++ redistributables for CRT are copied into \PowerToys, \PowerToys\SettingsUIRunner and \PowerToys\modules\launcher
2020-05-15 12:01:21 -07:00
ryanbodrug-microsoft
3875603285 Wox project should only produce a .dll not an exe. (#3068) 2020-05-15 11:44:37 -07:00
Enrico Giordani
a62261343c Update version to 0.18.0 (#3063) 2020-05-15 18:51:49 +02:00
Lavius Motileng
8b0a995f23 [Settings V2] Updated general settings tests (#2971)
* updated general settings tests

* reverted changes to solution files

* fetch test strings from a string resource

* updated bidning variable name to avoid confusion

Co-authored-by: Lavius Motileng <laviusmotileng-ms>
2020-05-15 09:38:47 -07:00
Arjun Balgovind
4734cb3428 Fix FZ not forwarding events to next hook (#3044) 2020-05-15 09:37:11 -07:00
ryanbodrug-microsoft
34f814717b Adding privacy event tags to each telemetry event. (#2879)
* Adding privacy event tags to each telemetry event.

* Moving Privacy events to Telemetry base, Removing tag values, and fixing namespaces.

* Adding documentation comments to fix style cop errors in release

* UTCReplace_AppSessionGuid boolean property to all C# telemetry events.

* Adding hardcoded version number to boot events.

* Adding reference to telemetry in settings unittest

* Adding Preview Pane events for loading w/ hardcoded version number

* Adding telemetry.h to msi for svg and markdown events

* removing unused explicit interface exception
2020-05-15 09:08:39 -07:00
Alekhya
d4b56f99ff [launcher] Remove Program Plugin dll (AppxPackagingTlb.dll) (#3037)
* Removed AppxPackaging dll

* Added helper class and fixed some AppxPackage errors

* Modified it to use the COM interface

* Got it to build without errors but UWP apps don't show up

* Added app to the array

* Deleted the AppxPackaging.dll

* Added github reference

* Removed unnecessary uwp app argument

* Removed dll from installer wxs file
2020-05-15 08:49:44 -07:00
PrzemyslawTusinski
f51d51abf4 Fz Settings excluded apps multiline behavior - fix (#3055) 2020-05-15 17:37:50 +02:00
Ivan Stošić
a13a0ee5a9 Fixed a crash in Settings/ImageResizer (#3053) 2020-05-15 17:03:30 +02:00
Jessica Yuwono
19f4ad0361 Update launcher readme (#3034)
* Added readme and module overview link

* Fixed image link

* Added a known issue per review comment

* Changed images location
2020-05-14 17:24:17 -07:00
Divyansh Srivastava
93dc96f150 Fixed folder naming for app data (#3033) 2020-05-14 16:26:45 -07:00
Enrico Giordani
64d9e9054c Remove binaries from signing list (#3029) 2020-05-14 15:02:59 -07:00
Divyansh Srivastava
b1ed7227d7 Fix launcher height (#3013)
* Added height for searchbox

* Updated top calculation for launcher window
2020-05-14 13:52:48 -07:00
Clint Rutkas
48215c1eae Update README.md 2020-05-14 13:34:24 -07:00
Enrico Giordani
7399a978f5 Update icons for Settings v2 (#3023) 2020-05-14 21:45:44 +02:00
Lavius Motileng
3737ad6524 [Settings V2] Updated default color values for fz (#2972)
* updated default color values for fz

* moved default values to shared constants

Co-authored-by: Lavius Motileng <laviusmotileng-ms>
2020-05-14 11:58:56 -07:00
Clint Rutkas
b37695bc6f Update build-powertoys-steps.yml 2020-05-14 11:57:58 -07:00
Yevhenii Holovachov
6e97d588e4 Updated .dll's and .exe's in pipeline.user.windows.yml (#3012) 2020-05-14 21:22:13 +03:00
Enrico Giordani
17319b15b0 Update application icon (#2999) 2020-05-14 20:19:06 +02:00
Arjun Balgovind
0692afcd90 Hotfix - Fix broken Type Shortcut (#3006)
* Fix broken type shortcut
2020-05-14 10:56:36 -07:00
Arjun Balgovind
91ac3f7931 Add auto scroll when adding a remap (#2969) 2020-05-14 09:24:50 -07:00
Arjun Balgovind
9d5990311f Fixed overflow in Type Shortcut (#2930)
* Fixed overflow in Type Shortcut

* hide the stackpanel if it is not required

* changed loop
2020-05-14 09:23:51 -07:00
Andrey Nekrasov
6f38cdec5a Fix various MSI issues (#2985)
* wix: add Notice.md #2442

* wix: close PowerToys which might be running during installation process #2887

* wix: update dotnet core to 3.1.4
2020-05-14 18:20:06 +02:00
Lavius Motileng
7a1f3a0cb1 [Settings V2] Remove multiple pop-ups on double tap (#2928)
* remove multiple pop-ups on double tap

* removed e0l space and updated bool variable
2020-05-14 09:12:40 -07:00
Andrew Baker
99356f7880 Update URL so it points to the general repository rather than the issues page (#2996) 2020-05-14 08:45:48 -07:00
Yevhenii Holovachov
d38d7b8ff6 Version required warning label changed, rebuilded bundle.js (#2991) 2020-05-14 17:48:33 +03:00
htcfreek
834ac42d24 Change Auto-download settings' title (#2966)
* Change auto-download setting's title

The update don't get automatically downloaded when the user is connected over an metered connection.
This is something the user should known about. Because of not have to be afraid on having extra costs and to not being confused if it not works on metered connections.

* auto-download title (old settings)

Did the same change also for the old web-settings.
2020-05-14 15:30:18 +02:00
Yevhenii Holovachov
e80fac4900 Disabling toggles for Powertoys Run and Keyboard Manager (#2983)
* Disabling toggles for Powertoys Run and Keyboard Manager
2020-05-14 15:09:49 +03:00
Yevhenii Holovachov
a13c8cb71e Autoupdate option visible only for administrators group (#2945)
* Added isAdmin value to Settings.UI. Changed elevation check to user group check for AutoDownload toggle
2020-05-14 12:36:27 +03:00
Niels Laute
3dc61962de [Read me] Adding hero-image (including new icon) and module screenshots (#2946)
* Adding screenshots and hero image

* Added screenshots and KBM + Launcher descriptions

* Commented out 0.18 features (KBM + Launcher)

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Updated contribution link

* Linebreak added

* tweaks

Co-authored-by: Clint Rutkas <clint@rutkas.com>
2020-05-13 21:31:36 -07:00
Divyansh Srivastava
5c3acf61b4 Fixed powertoys run not reacting to change in settings (#2968)
* Fixed powertoys run project name in settings

* Rename save directory
2020-05-13 17:50:19 -07:00
Tomas Raies
953d835ded Revert "wix: Install .NET Core 3.0.x instead of .NET Core 3.1.x (#2943)"
This reverts commit 01f11d94b0.
2020-05-13 13:34:23 -07:00
Tomas Raies
1537ca4e71 [Launcher] Add missing Microsoft.Extensions.. dlls 2020-05-13 13:34:23 -07:00
Divyansh Srivastava
2d94ace89f Update Launcher naming settings (#2961)
* Renamed LAuncher to Run

* Updated Run to PowerToysRun

* Updated naming for settings v1
2020-05-13 13:16:34 -07:00
Alekhya
ea9c0b919f Remove Program Plugin dll (ShObjldITIb.dll) (#2952)
* Deleted the dll

* Added Shell Link helper class

* Add activation manager helper

* Use helper shell link and remove shell namespace

* removed using shell and added Activation helper namespace

* Removed the dll from the installer

* formatting

* nit formatting
2020-05-13 11:43:56 -07:00
Arjun Balgovind
d178fa5bdb KBM - Change behavior to hold enter to accept rather than hold and release (#2931)
* Changed to hold enter

* Changed code such that hold enter does not trigger a re-open

* Fixed tab ordering

* Changed text
2020-05-13 10:13:44 -07:00
Andrey Nekrasov
01f11d94b0 wix: Install .NET Core 3.0.x instead of .NET Core 3.1.x (#2943)
* wix: Install .NET Core 3.0.x instead of .NET Core 3.1.x

* fixup! review comments

* fixup! review comments
2020-05-13 18:23:56 +02:00
Arjun Balgovind
58f1a8e916 Fix failing build pipeline (#2932)
* Add extra libpath load statement

* Add QSpectre flags on Release

* Revert cmd change

* Added spectre flag for debug

* added flag for more projects
2020-05-12 20:52:02 -07:00
Tomas Agustin Raies
688fefc4dd [Launcher] Fix Copying of calculator value (#2929) 2020-05-12 16:41:49 -07:00
Arjun Balgovind
ce96e34d25 Fixed some warnings and added code to close active windows on disable (#2915) 2020-05-12 15:58:11 -07:00
Divyansh Srivastava
a1e1d663c3 Migrate Search box to WPF control (#2917)
* Replaced UWP searchbox with WPF

* Updated foreground color scheme for textbox

* Add focus on visibility changed

* Updated initial hiding of window

* Fixed list box border

* vis issue on start, fixing border

* Revert "Merge branch 'somil55/MigrateSearchBoxToWPF' into fewTweaks"

This reverts commit 3525171621, reversing
changes made to b5daffca55.

* Remove change in startup visibility

Co-authored-by: Clint Rutkas <clint@rutkas.com>
2020-05-12 15:42:21 -07:00
Clint Rutkas
245b52d8e2 Update pipeline.user.windows.yml 2020-05-12 13:12:36 -07:00
Arjun Balgovind
1de93be0f0 Fix KBM compile time warnings (#2912) 2020-05-12 11:32:17 -07:00
PrzemyslawTusinski
e723e87c74 PowerLauncher can be snapped to zone - fix (#2896) 2020-05-12 19:33:42 +02:00
Michiel Vermeersch
c9535749f5 Fixed tables in MarkDown previews displaying incorrectly. (#2883) 2020-05-12 10:20:39 -07:00
Arjun Balgovind
497a66ea38 Fixed KBM default window size not being DPI Aware (#2873)
* Fixed KBM default window size not being DPI Aware

* Fixed missing lib file on Release

* Changed to be only DPI dependent
2020-05-12 10:17:27 -07:00
Alekhya
62d9735a7e [Settings] Add Image Resizer Settings hyperlink on feature detection of older OS Versions (#2868)
* Added the settings hyperlink code back

* Moved the os detection code to a different file so that it can be imported by image resizer

* Added code to the Image resizer project to react to import the dll

* Added an empty dll project

* Added a dll which can be imported by image resizer

* ImageResizer binding works

* Added the setDllDirectory to load the os-detection dll

* Removed the OS detection files that has been added to the common project

* Added reference to os-detect and removed reference to common/OS-Detection.h

* Modified project files

* Revert "Modified project files"

This reverts commit 75f9d73f30.

* Removed unnecessary showAdvanced bool variables

* Removed OS Detection code from common project

* Cleaned configuration properties of soln and projects

* runner is dependent on os-detection

* Added the os-detection.dll to wxs file

* nit space formatting

* Added reference to os-detection

* Added os-detection header file

* Add os-detection reference

* Added os-detection.dll

* removed the set dll directory and using relative paths instead

* Add relative path
2020-05-12 09:58:29 -07:00
Seraphima Zykova
0f8fbf6a1e removed .net core dlls (#2897) 2020-05-12 18:37:33 +02:00
Arjun Balgovind
66c2d1cba1 Revert buttons on KBM Landing page (#2870)
* Revert buttons

* Fixed button placement
2020-05-12 09:21:54 -07:00
Andrey Nekrasov
69cde6092b build: use x64 platform for *Telemetry projects (#2895) 2020-05-12 15:27:19 +03:00
Seraphima Zykova
3e9face818 removed dlls causing build error in installer (#2889) 2020-05-12 13:55:36 +03:00
Tomas Agustin Raies
4dfac02065 KeyboardManager icon (#2875) 2020-05-11 20:13:07 -07:00
Arjun Balgovind
7551509f41 Fix inconsistent landing page remap list (#2866)
* Added pre-processing code

* Refactored code on c++ side to match

* Fixed comment
2020-05-11 17:18:12 -07:00
Tomas Agustin Raies
5f42866cea Add VC142 CRT MergeModules to installer (#2862) 2020-05-11 15:05:10 -07:00
Lavius Motileng
50d91670ec updated file explorer icon (#2863) 2020-05-11 14:43:13 -07:00
Tomas Agustin Raies
8c04421387 [Keyboard Manager] Confirmation Dialog for orphaned keys and partial remappings. (#2811)
* WIP Confirmation dialog for orphaned keys

* Confirmation Dialog for orphaned keys

* White OK button, Anyways capitalizef

* Change Apply to Ok for shortcuts

* Validate that mappings can be made before changing keyboardManagerState

* Set fixed MinWidth for OK button

* Fix typo

* Partial remappings confirmation dialog

Both for Shortcuts and SingleKey

* Remove warning icon callback in OnClickAccept

* Add text wrapping for OrphanKeys dialog
2020-05-11 12:45:55 -07:00
Niels Laute
c39be3dbc9 [Settings] Various UX tweaks (#2822)
* Updated the add button styles to a standard used in W10 settings

* Updated the "About this feature" text to About [Module name]

* Set larger changes to the Shortcut Guide opacity numberbox

* Re-organised the General page

* Improved width of the add button so it's inline with the corresponding listview.

* Seperated warning label from header. Re-organised general settings

* Consistent formatting of the word 'administrator'

* Typo fix

* Warning text is collapsed when the user runs the app as admin

* Removed underline of version number

* XAML fix
2020-05-11 12:36:55 -07:00
Andrey Nekrasov
8aa8c296e1 FancyZones: FZ & FZE now live in a dedicated dir (#2837) 2020-05-11 21:22:23 +03:00
Arjun Balgovind
592c55c524 Change warnings from icon to flyouts but it no longer interrupts searching (#2816)
* Fixed foreground issue and added arrow

* Tweaked Remap Keyboard UI

* Fix errors in warning handling and update UI layout

* Tweaked sizes and centered to screen

* Fixed flyouts appearing on search for Single key remaps

* Fixed flyouts appearing on search for Shortcut remaps

* Remove warning exclamation icon and tooltip

* Fixed a bug where setting None on a drop down which would create a shortcut with a conflict would cause a crash

* Remove IsTypeKey logic

* Changed warning text

* Resolve comments
2020-05-11 10:10:36 -07:00
Ivan Stošić
eafaf35790 [Settings] Updated text shown on the settings page of Shortcut Guide (#2840) 2020-05-11 14:46:32 +02:00
PrzemyslawTusinski
585c66a4d0 PowerRename settings bugfix (#2796)
* PowerRename settings bugfix

* Changed visibility to enability of PowerRename_Toggle_MaxDispListNum

* Added unit tests and changed maximum value
2020-05-11 14:37:29 +02:00
Arjun Balgovind
1ecedd5566 Hide xaml island loading icon for Settings and Launcher (#2827)
* Hide xaml island window

* Remove using WUC statement
2020-05-09 14:10:57 -07:00
Arjun Balgovind
3a0a5a7754 KBM - UI Tweaks (#2798)
* Fixed foreground issue and added arrow

* Tweaked Remap Keyboard UI

* Fix errors in warning handling and update UI layout

* Tweaked sizes and centered to screen

* Changed size to scale based on resolution

* Fixed comments
2020-05-08 17:34:24 -07:00
ryanbodrug-microsoft
d329406eb8 Adding Telemetry Events for svg and markdown enable/disable (#2814)
* Raising Telemetry events when svg and markdown preview pane is turned off

* Properly serializing Bool property.  This allows us to be backwards compatible with .17 settings but interact with the properties as boolean elements, and fire events on property changed notification
2020-05-08 16:12:37 -07:00
Divyansh Srivastava
e654999fdf Add support for win32 packaged apps to run as admin (#2812)
* Updated UWP app to set entry point type for each app

* Working run as admin for packaged app with permission

* Updated UWP to allow apps with mediumIl trust level to be run as admin

* cleanup variables not required
2020-05-08 14:31:15 -07:00
Clint Rutkas
efe98f7fad Fixing ordering in settings and text tweaks (#2809)
* ordering alphabetically.

* test tweaks
2020-05-08 14:13:48 -07:00
Clint Rutkas
87bc957662 adding in ignore for alt-space (#2799) 2020-05-08 13:59:49 -07:00
Tomas Agustin Raies
15e93d6304 [Launcher] Replace default app icons with MDL2 EB3B (#2797) 2020-05-08 13:34:21 -07:00
Arjun Balgovind
5471735419 Fix double compile issue for Launcher and Settings (#2759)
* Fix double compile issue

* Removed debugging code

* added prebuild event

* Updated output folders
2020-05-08 09:07:18 -07:00
Lavius Motileng
6b2955f135 [settings] loading powerpreview module from subfolder (#2709)
* loading module in sub-folders

* reverted un-related change
2020-05-08 08:23:18 -07:00
Lavius Motileng
1ab0a5182f [Settings V2] Upated Fancy Zone and Shortcut Guid default values. (#2786)
* upated Fancy Zone and Shortcut Guid default values.

* upated fz tests
2020-05-08 08:22:57 -07:00
Ivan Stošić
dad65998cc Update ImageResizerPage.xaml (#2794) 2020-05-08 13:32:13 +02:00
Tomas Agustin Raies
abd30f3e41 Change build order in build.cmd (#2787)
This seems to fix the missing Generated Files\version_gen.h error
2020-05-07 16:37:00 -07:00
Seraphima Zykova
7f42d9784e updated FancyZones checkboxes corresponding to settings (#2785) 2020-05-07 23:29:02 +03:00
Tomas Agustin Raies
1056dac070 Add WIL to common-md-flag nuget packages (#2780) 2020-05-07 12:02:37 -07:00
Andrey Nekrasov
c05622484d chore: add common project as a dependency for some C++ projects, so we have version_gen.h (#2781) 2020-05-07 21:31:00 +03:00
PrzemyslawTusinski
59659a13f1 Fancy zones settings - Color pickers saved ARGB value fix (now saves RGB) (#2776) 2020-05-07 20:24:19 +02:00
Andrey Nekrasov
73c6cbb562 wix: install dotnet 3 after installation if needed (#2775) 2020-05-07 17:39:32 +03:00
Ivan Stošić
9f724221fa Removed unsupported platforms in Visual Studio (#2768) 2020-05-07 15:12:57 +02:00
Seraphima Zykova
dfcd86ea09 multi-line input for excluded apps (#2770) 2020-05-07 16:11:10 +03:00
Seraphima Zykova
555393d328 Close Shortcut Guide on right Win release (#2751) 2020-05-07 12:21:29 +03:00
Yevhenii Holovachov
febacfcb79 Added informaton to notifications dll (#2687)
Added informaton to notifications dll
2020-05-07 12:01:01 +03:00
ryanbodrug-microsoft
1891bd494c Merge pull request #2760 from ryanbodrug-microsoft/merge/build-features-to-master-05062020
Merge/build features to master 05062020
2020-05-06 20:02:09 -07:00
ryanbodrug-microsoft
ba5d53914e Merge branch 'dev/build-features' into merge/build-features-to-master-05062020 2020-05-06 19:32:10 -07:00
ryanbodrug-microsoft
2ae38e20ab Merge pull request #2711 from ryanbodrug-microsoft/merge/build-features-to-master
Mege build features to master
2020-05-06 19:25:15 -07:00
ryanbodrug-microsoft
5f14b2e738 Merge branch 'master' into merge/build-features-to-master 2020-05-06 18:39:25 -07:00
Yevhenii Holovachov
bc53951648 Option to disable zones activation by mouse (#2717)
* Added option to enable/disable mouse to activate zones, added telemetry and unit tests
2020-05-07 02:21:32 +03:00
Tomas Agustin Raies
9a323e3387 [Launcher] Remove ASP .NET dependencies (#2697)
* Remove ASP .NET dependencies

* Replaced NLog.Web.AspNetCore with NLog.Extensions.Logging

* Remove NLog.Web.AspNetCore.dll from installer

* Add missing dlls
2020-05-06 15:55:53 -07:00
ryanbodrug-microsoft
72fe972cc0 fixing nit: comments 2020-05-06 15:10:22 -07:00
ryanbodrug-microsoft
88dfd90e3b Removing unecessary event name from SettingsEnabledModuleEvent 2020-05-06 15:10:22 -07:00
ryanbodrug-microsoft
1f9c1ce8e4 Removing unecceary EventName requirement. EventSource<T>.Write will use the type name of T if null is passed in. This saves us passing an extra string uneccesarily as the public property would be serialized into the event data as well as being specified as the EventName 2020-05-06 15:10:22 -07:00
ryanbodrug-microsoft
b4d75e3240 Adding telemetry events for Settings Enabled or Disabled Modules 2020-05-06 15:10:22 -07:00
ryanbodrug-microsoft
def0d7a519 Small refactor to use common powertoys telemetry event source accross modules. 2020-05-06 15:10:22 -07:00
ryanbodrug-microsoft
a9cc4dabb7 Adding launcher telemetry for context buttons clicked. 2020-05-06 15:10:22 -07:00
ryanbodrug-microsoft
e29e8ca0a3 Add launcher telemetry for show / hide, and query (elapsed time, num chars, num results). 2020-05-06 15:10:22 -07:00
ryanbodrug-microsoft
5cda4135b1 Add telemetry event for when the user presses delete within the first 2 seconds of showing the launcher. 2020-05-06 15:10:22 -07:00
ryanbodrug-microsoft
221e153f4c Adding BootEvent for load time telemetry 2020-05-06 15:10:22 -07:00
ryanbodrug-microsoft
3a24e4703d Adding PowerLauncherTelemetry events 2020-05-06 15:10:22 -07:00
ryanbodrug-microsoft
2b158c2b4e Removing unused reader namespace from telemetrybase. 2020-05-06 15:10:22 -07:00
ryanbodrug-microsoft
8b715ad9cd Link including telemetry base, to preview pane. 2020-05-06 15:10:22 -07:00
ryanbodrug-microsoft
07cf527ddf Moving TelemetryBase to common/Telemetry to be referenced for all Managed Telemtry hooks. 2020-05-06 15:10:22 -07:00
Alekhya
63f1429a69 Fix incorrect merge which had reverted some parts of the Microsoft.Launcher.rc file (#2728)
* Had reverted the changes made in the Microsoft.Launcher.rc file by mistake while resolving merge conflicts

* reverted company name to how it was before
2020-05-06 12:49:34 -07:00
Niels Laute
d881fc2fe0 Merge pull request #2700 from niels9001/users/niels9001/settingsV2UXtweaks
[Settings v2] UX tweaks
2020-05-06 21:12:39 +02:00
Arjun Balgovind
d5090ee24b KBM - Fix all descriptions and text and minor UI tweaks (#2705)
* Add new text for Remap Keyboard

* Added text in KBM windows

* Tweaked KBM landing page view

* Changed to transparent background

* Tweaked text

* Tweaked text
2020-05-06 08:34:26 -07:00
vldmr11080
56c0a78c64 [FancyZones] Only process windows located on currently active work area when moving them (#2691)
* Only process windows located on currently active work area when moving them.

* Move all editor exit handling into dedicated method.
2020-05-06 17:16:16 +02:00
ryanbodrug-microsoft
47037220e0 fix compile issues for missing <thread>. I'm not sure why this wasn't needed before or in master. 2020-05-06 00:54:06 -07:00
ryanbodrug-microsoft
640fade438 merge master 2020-05-06 00:49:46 -07:00
Clint Rutkas
98ede836d4 Merge branch 'dev/build-features' into users/niels9001/settingsV2UXtweaks 2020-05-05 21:28:44 -07:00
Arjun Balgovind
e75916fd92 Fixed SettingsV2 crash (#2704)
* Fixed crash

* Initialize theme string
2020-05-05 21:17:43 -07:00
Divyansh Srivastava
e01ed8ad3c Fix for indexer symbol error (#2702)
* Removed error sent as result in indexer plugin

* Added code to filter query based on reserved keyword regex
2020-05-05 16:07:32 -07:00
Tomas Agustin Raies
3beea79b38 Workaround for Settings ViewModel tests (#2693) 2020-05-05 16:01:55 -07:00
Alekhya
1a29870958 OS Detection and setting the old or new settings UI page accordingly (#2674)
* Added code to detect os build number

* To set the settings.exe according to the powerToys version that is running

* Modified the description of old UI for launcher and keyboard remapper

* Using API contracts instead of registry

* Removing file that was included by mistake
2020-05-05 15:53:30 -07:00
Niels Laute
7f3fae5a02 Re-order of the autocomplete setting (for Image resizer) under the right section 2020-05-05 23:43:56 +02:00
Lavius Motileng
c2adf56b2f updated header text and tests for PowerRename (#2607) 2020-05-05 14:28:44 -07:00
Niels Laute
7a8f5a606c Removed underline of the attribution links 2020-05-05 23:19:21 +02:00
Tomas Agustin Raies
462c17a0c3 Close Settings Window on runner exit (#2695) 2020-05-05 14:13:52 -07:00
Niels Laute
e59e3019e3 Typo fix 2020-05-05 23:03:34 +02:00
Lavius Motileng
d65e2ab2d4 FIX : [Settings] - Can start multiple settings dialogs (#2421)
* Launch new wpf process with same/old ipc names

* updated bring window to front

* reverted change

* removed unused string
2020-05-05 14:02:55 -07:00
Niels Laute
3f6120e122 Tweaked the vertical spacing of the module description so the module toggle switch stands out a bit more. 2020-05-05 22:58:48 +02:00
Niels Laute
e66e5e6f6e Fixed visual inconsistency for the image resizer sizes listview 2020-05-05 22:47:59 +02:00
Niels Laute
b0bc57466e Fixed inconsistency of the Image Resizer enable toggleswitch 2020-05-05 22:13:19 +02:00
Niels Laute
154dc555c5 Remove underline from sidepanel hyperlink buttons 2020-05-05 22:03:48 +02:00
Arjun Balgovind
36559d0264 Added telemetry to KBM (#2670)
* Added telemetry to KBM

* Reverted set_config change

* resolving comments
2020-05-05 12:30:50 -07:00
Lavius Motileng
a722ce460c [Settings UI] Updated General Settings (#2676)
* updated general settings view

* moved text to string resource

* Update App.xaml.cs

* set run-elevated as a start-up argument
2020-05-05 10:02:31 -07:00
Divyansh Srivastava
67b2f28064 Added code to sanitize folder path (#2673) 2020-05-05 09:41:11 -07:00
yuyoyuppe
8b988409e2 FancyZones: LowLevelKeyboardProc & other improvements 2020-05-05 15:16:37 +03:00
yuyoyuppe
57c4658021 FancyZones: prevent WinHookEventProc reentrancy bugs by serializing events to FancyZones::WndProc 2020-05-05 15:16:37 +03:00
Davide Giacometti
283bfde3d9 better layout alignment for image resizer (#2611)
Co-authored-by: Davide Giacometti <davide.giacometti@softwareuno.it>
2020-05-05 13:15:47 +02:00
vldmr11080
41935aa9aa Split general module settings and UI flags to separate files. (#2613) 2020-05-05 12:39:15 +02:00
stefansjfw
9206d1f5f1 Make transforming struct field names to dash case region invariant (#2679) 2020-05-05 11:39:18 +02:00
vldmr11080
f5381ae3e3 [FancyZones] Clean up resources taken by closed virtual desktops on module startup (#2616)
* Clean up resources taken by closed virtual desktops on FancyZones module startup.

* Overload GetVirtualDesktopIds to return wide string.

* Refactor OnDisplayChange method.
2020-05-05 10:13:50 +02:00
theaquamarine
95c4bf5854 Enable FancyZones to react to right Windows key (#2624)
Check the status of VK_RWIN as well as VK_LWIN

Fixes #436
2020-05-05 09:21:55 +02:00
vldmr11080
2b4b23f726 [ImageResizer] Migrate settings from registry to JSON. (#2604)
* Migrate ImageResizer settings from registry to JSON.

* Update last loaded time read/write IO operations.

* Rename registry helper functions.
2020-05-05 09:00:50 +02:00
ryanbodrug-microsoft
64c17767ed Reading correct json property for "Run" program. This prevents the Run (Previously PowerLauncher) from being opened when settings has it disabled. 2020-05-04 20:34:34 -07:00
ryanbodrug-microsoft
32d75749a0 Updating MSI installer to use Microsoft.Plugin.* directory paths. 2020-05-04 20:34:34 -07:00
ryanbodrug-microsoft
e776f9c7d8 Moving Plugins from Wox.Plugin.* to Microsoft.Plugin.*. This is to rename the assemblies that get saved to the settings directory. External plugins will get saved to their on assembly folder in the future. 2020-05-04 20:34:34 -07:00
ryanbodrug-microsoft
3bdcf1077b Updating wox infrastructure to save to "AppData\\Local\\Microsoft\\PowerToys\\Run" directory. 2020-05-04 20:34:34 -07:00
ryanbodrug-microsoft
da550a4a67 Moving launcher save settings under AppData/Local/Microsoft/PowerToys/Run 2020-05-04 20:34:34 -07:00
ryanbodrug-microsoft
1655594514 fix for crash when tabbing with no selected item 2020-05-04 20:33:52 -07:00
Arjun Balgovind
c4f884f104 Change behavior on Edit Keyboard screen to be physical keys (#2666)
* Commented out ToggleToMod and AppSpecific function calls

* Added logic to make sure key remaps don't occur on Edit Keyboard Window

* Changed behavior such that remappings only apply after window is closed
2020-05-04 15:49:37 -07:00
Divyansh Srivastava
855f3d74fe Remove WW module (#2664)
* Removed WW module from sln file

* Remove WW from product.wxs

* Removed WW from runner
2020-05-04 15:40:15 -07:00
Tomas Agustin Raies
7fc140af01 [Settings] Update version in General Settings (#2601)
* Update version in General Settings

* Set version in settings.json file

* Only overwrite the settings.json file if it is newer than the old version.

* Fix tests

* Fix test names and added comment
2020-05-04 14:40:32 -07:00
Arjun Balgovind
d401474981 Add post-build event for publishing Launcher (#2561)
* Added post build script

* Added comments

* Added unset statement

* Added debug checks

* added more debug statements

* Added dir and cat statements to check pipeline output

* revert installer change

* Moved nuget package reference from update to include

* Removed debug cat command

* Removed debugging statements

* Added build script for launcher

* Added launcher scripts

* Removed launcher scripts

* Fixed interop folder and added hacked powerlauncher script

* Added publish only for Release
2020-05-04 13:30:38 -07:00
Tomas Agustin Raies
0f6563e8e0 Fix crashing in Windows Insiders builds (#2562)
Added missing initialization of winrt apartment
2020-05-04 11:36:57 -07:00
Alekhya
6cd0f83496 Fix FancyZones issue of dlls being overwritten by PreviewPane's MarkDig (#2589)
* Added output folder

* Added FileExplorerPreview output folder for all projects

* Added extra dlls and FileExplorerPreview to path

* Added folder and modified path for registry setup of preview handlers
2020-05-04 07:42:05 -07:00
Lavius Motileng
b428fc97e9 fix: Start as Admin Error: Unable to open app when running elevated (#2411)
* fixed run-elevated error and powerpreview settings not working

* removed EXTENDED_STARTUPINFO_PRESENT flag

* removed test string

* Update Microsoft.PowerToys.Settings.UnitTest.csproj

* Rename PowerLauncher.cs to PowerLauncherViewModelTest.cs
2020-05-03 03:17:06 -07:00
Tom Dörr
c14c51f551 Fix license file (#2626)
By removing `(MIT)` from the `LICENSE` file, the license type is displayed on the PowerToys start page.
2020-05-02 15:59:18 -07:00
Arjun Balgovind
8e18104f38 [KBM] Constrain the buttons such that only one of the windows can be opened (#2566)
* Bypass XamlBridge Window focus handling

* Constrain only one window can be opened at a time

* Revert changes on files changed in another PR

* Changed WM_DESTROY to WM_NCDESTROY

Co-authored-by: Tomas Raies <tomas.raies@gmail.com>
2020-05-01 17:34:42 -07:00
Divyansh Srivastava
06fcc2bf46 Updated file path/description of plugins (#2593)
* Updated file path/description of plugins

* Updated file paths to include plugin tag

* Code cleanup
2020-05-01 17:26:02 -07:00
Tomas Agustin Raies
1656b4c5b9 [Launcher] Remove Win+R checkbox (#2513)
* Remove Win+R

* Comment out all unused options

* Fix PowerLauncherViewModel tests
2020-05-01 15:58:55 -07:00
Clint Rutkas
431f7ab37c Adjusting text for 2564 (#2606) 2020-05-01 15:25:56 -07:00
Divyansh Srivastava
f44109abae [launcher] Location and multi monitor support (#2446)
* Fixed left and top window

* Added dpi Aware launcher positioning code

* Code cleanup

* Added support to drag window

* Multi monitor support added

Remaining fix : Launcher doesn't open first time on changing monitor

* removed code handling change in DPI manually

* Code cleanup

* Fix to support multimonitor display

* Code cleanup

* Revert "Code cleanup"

This reverts commit 38f39924f0.

* Revert back to WOX helper for calculating normalized DPI
2020-05-01 14:25:06 -07:00
Arjun Balgovind
8cb134f56b Add post-build event for publishing SettingsV2 (#2473)
* Added post build script

* Added comments

* Added unset statement

* Added debug checks

* added more debug statements

* Added dir and cat statements to check pipeline output

* revert installer change

* Moved nuget package reference from update to include

* Removed debug cat command

* Removed debugging statements

* Added build script for launcher

* Added launcher scripts

* Removed launcher scripts

* Changed taskkill to throw error

* Added back old config properties
2020-05-01 13:17:30 -07:00
Clint Rutkas
032aa2d1d6 making teams launch, not updater. this will also fix a lot of cmd style lnks too. Made null ref on boot fix too. (#2598) 2020-05-01 10:55:01 -07:00
grahamaj
cbe20d9c96 Grammar update for the FZ README (#2592) 2020-05-01 18:21:52 +02:00
stefansjfw
e6b74b10eb [FancyZones] Make snapping windows using Windows Snap Hotkeys across monitors optional (#2583)
* Make moving window across monitors optional

* Update tests

* Address PR comment: Update description of the toggle
2020-05-01 16:17:16 +02:00
Andrey Nekrasov
8c4dbbfbec FZ: run AnimateWindow and InvalidateRect in a dedicated thread (#2582) 2020-05-01 17:14:35 +03:00
Andrey Nekrasov
9bde15d4ac FancyZones: subscribe only to handled WinHook events (#2584)
* FancyZones: subscribe only to handled WinHook events

* formatting fix
2020-05-01 17:13:52 +03:00
vldmr11080
fd32dad7eb [FancyZones] Send message from VirtualDesktopUpdates thread to FZ thread when update happens (#2568)
* Move part of the virtual desktops related logic from FancyZones to VirtualDesktopUtils.

* Post WM message from vritual desktop tracker thread to FZ thread.

* Minor improvements in RegisterVirtualDesktopUpdates method.

* Close registry key after HandleVirtualDesktopUpdates thread finishes execution.

* Remove comment explaining workaround to VirtualDesktopUtils namespace.

* Move HandleVirtualDesktopUpdates to VirtualDesktopUtils namespace. Resolve PR comments.

* Fix typos in window messages description.

* Remove lock from OnKeyDown method to avoid deadlock.
2020-05-01 16:13:16 +02:00
vldmr11080
64df515c63 [PowerRename] Use int type instead of long in PowerRename Settings (#2502)
* Fix signed/unsigned comparison in power rename Settings.

* Use int instead of long (same on 64-bit windows).
2020-05-01 13:26:38 +02:00
stefansjfw
8908bd9889 Remove unused ZoneSetPersistedDataOLD struct (#2581) 2020-05-01 12:35:37 +02:00
Divyansh Srivastava
5c3159cbca Update plugin ID for WW (#2512) 2020-04-30 18:47:03 -07:00
Clint Rutkas
9afe72d508 Update README.md 2020-04-30 11:53:52 -07:00
Tomas Agustin Raies
c002d2c99f Merge pull request #2510 from microsoft/dev/traies/merge-powerlauncher
Merge missing commits from power launcher
2020-04-30 10:19:45 -07:00
Nghia M. Luong
c768b6bd0c Remove unused headers (#2471) 2020-04-30 20:14:33 +03:00
Seraphima Zykova
7903fe52b4 FancyZones decomposition (#2485)
* FancyZones refactoring
Co-Authored-By: Andrey Nekrasov <yuyoyuppe@users.noreply.github.com>
2020-04-30 13:16:08 +03:00
Ivan Stošić
313b1b39a7 FancyZones now does its own event processing (#2347)
* FancyZones now does its own event processing

* Removed temporary variable
2020-04-30 11:40:13 +02:00
vldmr11080
648f3abcbd Handle scenario with only primary desktop and no desktop switch in current session. (#2339)
* Handle scenario with only primary desktop and no desktop swithc in current session.

* Add scoped lock when changing current desktop id. Address PR comments.

* Explain purpose of UpdatePrimaryDesktopData method.

* Fix typo in documentation.
2020-04-30 11:16:25 +02:00
Ivan Stošić
2db98715cc "Unhooked" the Shortcut guide module from the PT event dispatcher (#2318)
* "Unhooked" the Shortcut guide module from the PT event dispatcher

* Fixup: warning/undefined behavior/terrible bug

* SetWindowsHookEx and UnhookWindowsHookEx now fail silently

* Updated a comment in shortcut_guide.h

* Renamed a method, added an error message
2020-04-30 11:05:18 +02:00
Arjun Balgovind
5e3da57e21 Fix Keyboard Navigation and Xaml Island focus issues for KBM (dev/build-features) (#2429)
* Added XamlBridge code and implemented keyboard focus navigation for xaml islands

* Change global pointer to static
2020-04-29 17:58:31 -07:00
Tomas Raies
dceef35aac Merge branch 'dev/PowerLauncher' into dev/traies/merge-powerlauncher 2020-04-29 15:28:54 -07:00
vldmr11080
2d23952181 Don't poll for changes in HKEY_CURRENT_USER, but only for VirtualDesktops reg key. (#2496) 2020-04-30 00:10:53 +02:00
Tomas Agustin Raies
518da7e81d Merge pull request #2489 from microsoft/dev/traies/fix-bad-build-features-launcher-merge
Fix bad build-features/PowerLauncher merge
2020-04-29 14:45:34 -07:00
Clint Rutkas
8db1eb69dc Update README.md 2020-04-29 13:56:45 -07:00
Rafael Rivera
d16ebba9e0 Move from sdk-provided cppwinrt-1.x to cppwinrt-2.x nuget package (#2246) 2020-04-29 22:02:18 +02:00
Enrico Giordani
ee0420188c Now working on 0.17.1 (#2493) 2020-04-29 22:01:16 +02:00
Tomas Raies
b9d14d31ae Merge branch 'dev/traies/build_features_launcher_integration' into dev/traies/fix-bad-build-features-launcher-merge 2020-04-29 12:00:36 -07:00
Tomas Raies
c505875fef Settings + PowerLauncher integration
* Fix project references

* Fix MaxResultsToShow

* Fix Alt + Space display

* Fix settings defaults
2020-04-29 11:36:43 -07:00
Tomas Raies
6029f0ed36 Revert "Merge PowerLauncher branch (#2345)"
This reverts commit d9c4abe0df.
2020-04-29 11:32:00 -07:00
Clint Rutkas
734bed4821 Update README.md 2020-04-29 11:25:21 -07:00
Niels Laute
26b3185933 [Launcher] Fluent UX enhancements (#2477)
* Removed unnecessary styling resources.
Fixed searchbox overlay.
Fixed a bug where the command buttons would fall of the list

* Fixed a bug where the app icon could overlap the title/path textblocks

* Consistent background / border color

* Tweaked shadow, background color now theme depended
2020-04-29 10:33:58 -07:00
Clint Rutkas
5efa9ff0b2 correct spelling mistakes for en-us :) (#2475) 2020-04-29 10:29:31 -07:00
Enrico Giordani
ac6a013bf5 FZ Readme and backlog update (#2418) 2020-04-29 10:14:35 -07:00
Tomas Agustin Raies
d9c4abe0df Merge PowerLauncher branch (#2345)
* minor modifications in README

* Added launcher project and changed references to common

* Added the code to launch another process

* added shellapi header

* Added launcher to runner

* added functions to remove the abstract class error

* added the wox launcher dll

* Readded the reference to common

* modified the additional include directories for the release version

* changed the name to be displayed from Wox.Launcher to Launcher

* Localized the strings of Launcher

* Added a SearchResult Helper class

* Created a helper class to use indexer and return search results

* Added the main and settings file which declare most of the plugin interfaces

* Added references and renamed a class

* Added the images folder which contains the windows indexer icon

* Added the image

* Added the plugin.json file

* Minor changes in project files

* Added plugin.json to the project

* Modified the output paths to create the dll for the plugin in the correct location

* Refactored the code to make it unit testable

* Made the code unit testable and added unit tests for the indexer plugin

* Removed commented out code

* Code to terminate wox when we exit PowerToys

* Copy from Jeremy's fork PR

* Removed unnecessary plugins from source tree

* add missing files

* Fix postbuild event

* Added x64 for all Wox project - Debug mode

* Removed the AnyCPU config - Debug

* Added the build paths for release x64 (removed AnyCPU)

* Set warning level to 4 : Release

* Set warning level 4 : Debug

* set optimize code to false

* Removed notify icon component

* Removed setting UI XAML file and references

* Readded necessary callback functions

* Removed python path and python plugin functions

* Removed UI related to python path and the bindings related to that

* Remove python bindings

* Removed the localized string translations from pythonDirectory and SelectPythonDirectory

* Manually resolving conflicts

* Fix Wox build in project settings

* deleting unused project files

* Undo change internal

* Fix internal variable

* All wox exceptions in debug are getting rethrown, and thus causing the app to crash.  This change removes the debug specific code and allows exceptions to be handled the same was as release.

* Ported Indexer plugin to .net core 3

* Added the test project back

* Removed the .net framework indexer folder

* readding the plugin.json file

* Changed the anyCPU config to x64 for windows indexer plugin

* Adding dependency to wox project on the runner.  This should make sure the wox.exe can be build and launched by the runner so wox can run as a background process.

* Updating build dependencies.  Wox.Launcher wasn't built as part of the F5 Experience, and nor were the plugins

* removing locks from the ResultListBox code behind file.  All callbacks are accessed from the Main/UI thread.

* Remove anyCPU config and changed it to x64

* Removed anycpu of test proj

* Adding dependency

* Renaming executable to PowerLauncher.  Replaceing icons with placeholder. Deleting Docs folder

* Renaming AppData directory from 'Wox' to 'PowerLauncher'.  Also replacing issue link with powertoys github.

* adding support for xaml islands

* Added Neils UI code

* Replace Niels Code references

* Added assets and behaviours

* Add missing reference

* Add main view model binding

* Using proper executable name when closing 'PowerLauncher' process

* changed x:bind to Binding to avoid reference

* Updated bindings for launcher

* Added binding on searchBox

* Adding Directory.Build.targets file to kill the PowerLauncher pprocess on Build or Clean operations of all 'Launcher' projects.

* Fixed exception preventing result display

* Fixed issue with wpf marshalling events to a non UI thread

* Optimised result binding by inserting search result from multiple plugin in parallel

* copy resource files to output folder

* Corrected the output path for the indexer plugin

* windows indexer plugin is working

* Remove console print statement

* Added callback function for mouse click on search result

* Working App execution

* Cherry picked pinyin performance changes from jjw24's master branch

* change nuget package to msft for winrt compat

* Working up/down arrow key

* updating references and removing a few that seem uneeded for how stuff is referenced

* adding two back in

* Removing Squirrel dll.  unsure on updating so i kept that logic in

* Updated functionality on suggestion chosen in autosuggestbox

* Added the <useWPF> tag to remove the warning

* Removed an unnecessary <useWindowsForms> tag

* Removed the item group for properties from calculator plugin

* Removed the item group for properties from folder plugin

* Removed the item group for properties from indexer, program and shell plugin

* Removed itemgrp from wox.core and wox.test csprojs

* Removed the unnecessary wox files to clean up codebase

* Renamed Wox.Plugin.Indexer to Microsoft.Plugin.Indexer

* Renamed Wox.Launcher to Microsoft.Launcher

* To avoid DBNull to String typecast exception

* Added query submitted event to handle default action on clicking a list view item

* Merge pull request #42 from microsoft/AddPinyinPerformance

Cherry picked pinyin performance changes from jjw24's master branch

(cherry picked from commit b9e437c6cd)

* Rectyfying title display

* Title display working correctly

* Removed .yml files

* adding checks

* Making wox.csproj build wox assembly instead of powerlauncher

* Removing update logic from PowerLuanch App.xaml.cs as was done in Wox project.

* Making Query internals visible to wox.

* Update Powerlauncher nuget packages to be same version as wox.csproj.   Note:  FoxyWeavers.xsd change is automatically done as part of nuget package update.

* Updating build dependencies to so that wox.launcher depends on powerlauncher.csproj not wox.csproj

* Removing 'Wox' branded logos from powerlauncher.csproj as was done previously or wox.csproj

* Downgraded the library to the latest stable version

* single thread execution of the indexer plugin and InvalidOperationException due to connection being closed on ExecuteReader, handled separately

* Modified the test, the connection need not be null after being disposed. There is no direct way of checking if an object has been disposed other than to throw the InvalidOperationException

* Removing x86,ARM,ARM64, build configurations, as these were added accidentally when adding xaml island support.

* Removed STAThread

* Modified the output folder produced

* Renamed the dll produced

* Added dependency on PowerLauncher to the Microsoft.Launcher project

* modified the name of the dll in the indexer plugin

* Ignoring 128 errors from taskkill, as this means the process isn't running. We don't want htis to show up in the warnings list on build

* Added fix for closing wox on pressing escape and app execution (#75)

* adding useWPF to get rid of warning

* Launcher resize issue on selecting search result (#77)

* Added fix for closing wox on pressing escape and app execution

* Added fix to prevent autosuggestbox resize

* Fixing xaml catastrophic failure, based on Miguels suggestion here: https://github.com/windows-toolkit/Microsoft.Toolkit.Win32/issues/210

* suggested fix

* removing unused mutex string

* Searches for keyword only in title and not content to improve the quality of results

* Display the title from System.Title directly instead of extracting it from the path

* Removed additional README instructions before moving to the powerToys repo

* Fix Query builder test (#86)

* Revert base viewModel class to fix tests.

* Removing unused post build and deploy scripts.

* tweaked url

* Update plugin.json

* Update README.md

* removed unused dep (#2080)

* removed reference to everything (#2133)

* SearchIndexer - Modifying QueryContentProperties and QuerySelectColumns to use System.FileName

* Search result thumbnail for PowerLauncher (#2124)

* Replace WPF Imaging library with UWP

* Removed UWP and WPF namespace conflicting files from Wox

* Removed Image hashing as it wasn't used anywhere

* Updated formatting

* Set MainViewModel visibility to hidden on startup

* Enable CI build on PowerLauncher Branch (#2181)

* Enable CI build on PowerLauncher Branch

* Updated Nuget restore to latest and added AssetTargetFallback property

* tweak text (#2177)

* [Window Walker] Migrate to Launcher (#2093)

* Copy the existing calc. plugin foldeR

* Blindly rename a bunch of things to Window Walker

* Update the solution to reference the new plugin

* Get basic Yo returned

* Remove all the languages except english

* Lower quality of icon as well as test showing it

* Add the core non-ui parts to the plugin

* Delete calculator png

* Get it to compile

* Added the actual code which apparently doesn't work

* Finally start showing results

* Fix up strings

* Switch working

* Remove unused classes

* Remove unneeded async

* Added MSI support for Launcher (#2242)

* Fixed typo in output folder of calculator plugin

* Calculator plugin works

* Modified the name of the image to remove space as space is assumed to be a separator in wcx file

* Fixed typo in calculator dll

* Fixed typo in calculator plugin

* Shell, Program, Folde and indexer plugin working

* Added the ww plugin

* Fixed typos in the calculator plugin

* Delete file that was added unintentionally

* revert calculator rename changes

* Reverted other files changed

* Reverted renaming of file with space

* Pull changes from master to dev/powerLauncher (#2255)

* Dpi unaware placement bug (#2121)

Fix for bug when placing dpi unaware window such as Notepad++ in left of right part of monitor. In that application gap of about 7px was left or right.
This fixes only single-monitor scenario
It skips correction for dpi unaware window that leaves a gap

* Move markdown parsing logic outside control thread (#2099)

* Move markdown parsing logic outside control thread

* Update MarkdownPreviewHandlerControl.cs

* Remove trailing whitespace.

That'll teach me for trying to make an edit from the GitHub page.

* Migrate power rename MRU lists from registry to JSON (#2090)

* Handle most recently used search/replace strings within settings.

* Check for last modified time of json file and reload it if needed.

* Handle changes in MRU search / replace lists size.

* Improve handling of changes in MRU list size.

* Don't check for last modified time in every getter method. Load only when starting application.

* Add const identifier to getter methods.

* Address PR comments: Add const to reg and json file paths and set them in constructor initializer. Check pushIdx validity. Move implementation to cpp of PowerRenameUI constructor.

* Add error checking when getting values from registry.

* Implementing changes suggested in #1992 (#2116)

* Implementing changes suggested in #1992

* Update Product.wxs

Co-authored-by: Ebenezer Ewumi <ebenezer.ewumi@wsu.edu>

* Fix for issue #1532 - [PowerToys tray icon] Show version on tooltip (#2117)

* Fix for issue #1532

[PowerToys] Show version on tooltip

* Update src/runner/tray_icon.cpp

Co-Authored-By: Andrey Nekrasov <yuyoyuppe@users.noreply.github.com>

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

* FZ editor: Splitted zones positioning (#2158)

* Added a mutex to ZoneWindow, ensured no data races occur (#2154)

* Added a mutex to ZoneWindow, ensured no data races occur

* Protected draggedWindow* members with a mutex

* Ensured that critical reads happen in a single transaction

* Dpi unaware placement bug - multimontior with same DPI settings fix (#2156)

* Dpi unaware placement bug - multimontior with same DPI settings fix

* Using different enumerating method

* Changed AllMonitorHaveSameDpiScaling method

* Removed accidental file

* small rename

* Changed some methods to CamelCase

* Review comments fixes

Co-authored-by: PrzemyslawTusinski <61138537+PrzemyslawTusinski@users.noreply.github.com>
Co-authored-by: Ben Randall <veleek@gmail.com>
Co-authored-by: vldmr11080 <57061786+vldmr11080@users.noreply.github.com>
Co-authored-by: eduardodextil <55205162+eduardodextil@users.noreply.github.com>
Co-authored-by: Ebenezer Ewumi <ebenezer.ewumi@wsu.edu>
Co-authored-by: Nghia M. Luong <32159519+sqrlmn@users.noreply.github.com>
Co-authored-by: Andrey Nekrasov <yuyoyuppe@users.noreply.github.com>
Co-authored-by: Seraphima Zykova <zykovas91@gmail.com>
Co-authored-by: Ivan Stošić <ivan100sic@gmail.com>

* Somil55/merge custom ui into launcher (#2271)

* Remove Autosuggest box (#2192)

* Update Settings.Designer.cs

* Revert "Update Settings.Designer.cs"

This reverts commit a1bc0dda56.

* Updated LauncherControl XAML to add textbox and listview

* List View displayed

* Hooking up execution on the selected index, removing two way binding on selection, and experimenting with popup that doesn't work

* Updated MainViewModel to Remove context menu and history

* Added Resultist XAML Island project

* Updated SelectedItem and SelectedList Binding.
Issues :  List box doesn't open when query is written for first time but opens in subsequent queries.

* 1. Mouse Click working
2. List View is can't be focused
3. Fixed width of Launcher

* Removed two way QueryText box binding

* Removed SelectedItem two way binding and replaced with a callback

* [Cleaning] Remove redundant UWP project

* [Cleaning] Updated files to keep only atomic changes against dev/powerLauncher

* Thmbnail fixed for NEW UI

* Removed PreviewMouseDown function required by older WOX code

Co-authored-by: ryanbodrug-microsoft <56318517+ryanbodrug-microsoft@users.noreply.github.com>

* Added the auto-complete feature

* Removing ContextMenuPluginInfo, and ContextMenuTopMost as these commands are not used int the new design.

* Fixed merge conflicts

* Set only when index is 0

* One way binding

* Removed unnecessary binding

* Deleting unused (commented out code) that was legacy from wox project.

* Binding Buttons to appropriate context menu commands.
1. Buttons are dynamically loaded in a listview based on the actions supported be each plugin.

This change also deletes unused commands.

Note:  Most button events don't seem to be getting routed to the Selected Item.  Currently using 'PointerEntered' to validate the behavior.  The actions should be trigged by the button command property in the future.

* manually handling tab in mainwindow

* Loading context buttons on Selecting a suggestion list item

* Allowing hover event to load content menu items and display them as well.

* Adding context buttons to Indexer plugin.  This allows for the following:
1. [Files] Open Containing folder
2. [Folders/Files] Copy Path

* Remove White background of list (#2218)

* Remove white background of list

* Removed comments

* Changed to ContainerContentChanging event

* add const variables instead of numbers

* Added comment before the updatelistSize function

* Search box UI (#2224)

* Added backdrop and rounded corner

* Fix for two alt+space press to bring searchbox issue

* Fixed merge conflict

* Clean Mainwindow.xaml code

* Fix for textbox focus on first visible

* Allowing users to tab between the context buttons for the selected resut.  Also allowing users to press 'enter' to action on the selected items.

* Renaming SelectedIndex to ContextMenuSelectedIndex

* Enabling key accelerators on context buttons.
1. Add new object ContextMenuResult instead instead of reusing Result for both query results and context menu results.
2. Binding KeyboardAccelerator keys to contextmenuitemviewmodel
3. Enabling and disabling contextmenu items when selecting or deselecting each row.  Because we are manually maintaining selectionwe can't use ScopeOwners as the textbox is really the only item ever in focus.

* Launching explorer instead of the UWP application when selecting 'open file location'.

* Added fix for border showing up when result count is zero

* Updated fix for border on no result

* Adding visibility  after clearing result in MainViewmodel

* Launcher Light/Dark mode (#2235)

* Fixed issue with list view background not updating with Windows theme change

* Added theme change for WPF

* updated ShadowDepth for dropshadow

* Updated border thicknes of searchbox and listview

* Diff issue with ResultList.xaml

* Removed change in result delay

* Added code to pull colors from UWP

* Updated border resource to use system based SystemControlHighlightAccentBrush

* Updated corner radius in dark mode

* Updated Launcher description text

Co-authored-by: ryanbodrug-microsoft <56318517+ryanbodrug-microsoft@users.noreply.github.com>
Co-authored-by: Alekhya Reddy <reddykalekhya@gmail.com>

* Changed to SystemChromeLow from Accent brush (#2272)

* Removed ListView animations

* Positioning ContextButtons and adding background.

* Disabling scrollbars for gridview items.

* Removed folder plugin

* removed deployment for uwp apps (#2298)

* Simulating Win+backspace key press, instead of Win+Control as it was launching WW (#2250)

* text is selected whenever launcher gets hidden and is then set to visible (#2315)

* Update nuget packages across solution to latest (#2334)

* simplifying the xaml and making things tighter (#2327)

* Setting runcommand as the default execution method, and turning off run as admin by default.

* Opening explorer if the user has types a file path.

* Enable PowerLauncher toggle

* Launcher MSI - Added a required dll and removed folder plugin (#2355)

* Modified the product.wxs file

* Added the x64 config

* Modify scoring algorithm for fuzzy search (#2361)

* Modify scoring

* modified to if else

* Fixes race conditions with PointerEnter/Exit events conflicting with Selection and unselection.   This change provides better encapsulation of the logic to enable a selected item for accelerator (hotkey) events, and allow mouse input on results where the pointer is over.

* Fixes an issue where PointerExit would hide the selected context buttons.

* Result List - Bad rebase overwrote margin and translation fields.

* Fixed process executing on clicking enter if no text in search box

* Codeflow cleanup when selectedItem is not null

* adjusting how programs are displayed. (#2369)

* Removing description from title

* adjusting subtitle

* removing accidently paste

* removing desc for uwp apps

* Revert "Removed folder plugin"

This reverts commit 064d638588.

We will use the folder plugin to better mimic the way the start menu and run prompt deal with directories

* Updating JetBrains.Annotations to 2020.1.0 to be consistent with other projects.

* Replacing submenu text with full path as 'Ctrl-Enter' doesn't do anything.  Also reducing the String of CreateOpenCurrentResult to fit in one line.

* - Making Open Directory subtitle fixed, and the title as the current directory.

* Adding back binding to QueryText and updating the cursor position similar to how wox originally did it.

* Add the folder plugin wxs back in (#2374)

* Deduping results for program plugin (#2375)

* Removing description from title

* adjusting subtitle

* removing accidently paste

* removing desc for uwp apps

* Getting dups removed from list if LNK exists

* adjusting subtitle

* removing accidently paste

* Getting dups removed from list if LNK exists

* changed to normal forloop

* Removing WinR (#2381)

* Updated program execution to call action on background thread. (#2370)

* PowerLauncher Settings integration

* Added cold start fix (#2385)

* - Fixes cursor jumping around issue.
- Seperating the ability to set the text from initiating a query.
- Plugins have to explicitly request the query be updated.
- Updating Folder plugin to explicty update the query on folder selection.
- Removing unused changes from 'Wox' that don't compile.

* Fixing gap in logic where query was triggering when programatically setting text.

Updating the binding and settext both will trigger the TextChanged event on a seperate event dispatcher.  For this reason we dynamically detect which eventhandler is most approapriate on the textchanging event.

* Updating the QueryText to the selected item when navigating up/down with the  arrow keys.

* Removing action on folder result, and displaying folder path on selecting a folder result from the folder plugin.

* Making folder results from the search indexer plugin behave like folder results from folder plugin.

* Folder Results open the explorer window when selected.

* The Open Current Folder result shouldn't change the query text to 'Open {folder path}' when selecting the results.

* Initializing query text strings.

* Defensive check for QueryText being empty

* Adding file watchers for UWP detecting when apps are installed or deleted and reindexing the uwp apps

* Removing unused namespace.

* Looking at files and not filtering is better because the timer is more likely to reset while an install is happening, preventing uneeded indexing

* Fix project references

* Fix MaxResultsToShow

* Fix Alt + Space display

* Fix settings defaults

Co-authored-by: Alekhya Reddy Kommuru <reddykalekhya@gmail.com>
Co-authored-by: bkudiess <bakudies@microsoft.com>
Co-authored-by: Divyansh <somm14divi@gmail.com>
Co-authored-by: ryanbodrug-microsoft <56318517+ryanbodrug-microsoft@users.noreply.github.com>
Co-authored-by: Barbara Kudiess <bkudiess@me.com>
Co-authored-by: Jeremy Wu <jeremy24wu@gmail.com>
Co-authored-by: Clint Rutkas <clint@rutkas.com>
Co-authored-by: udit3333 <udit3333@gmail.com>
Co-authored-by: Betsegaw (Beta) Tadele <betsegaw.ta@gmail.com>
Co-authored-by: PrzemyslawTusinski <61138537+PrzemyslawTusinski@users.noreply.github.com>
Co-authored-by: Ben Randall <veleek@gmail.com>
Co-authored-by: vldmr11080 <57061786+vldmr11080@users.noreply.github.com>
Co-authored-by: eduardodextil <55205162+eduardodextil@users.noreply.github.com>
Co-authored-by: Ebenezer Ewumi <ebenezer.ewumi@wsu.edu>
Co-authored-by: Nghia M. Luong <32159519+sqrlmn@users.noreply.github.com>
Co-authored-by: Andrey Nekrasov <yuyoyuppe@users.noreply.github.com>
Co-authored-by: Seraphima Zykova <zykovas91@gmail.com>
Co-authored-by: Ivan Stošić <ivan100sic@gmail.com>
2020-04-28 15:06:01 -07:00
Clint Rutkas
ae9e257e56 Update NOTICE.md 2020-04-28 10:42:16 -07:00
yuyoyuppe
bb82a9bcf4 FZ: remove RestoreOrginalTransparency() from ZoneWindow::~ZoneWindow() and from ZoneWindow::MoveSizeEnter() 2020-04-28 15:17:20 +03:00
yuyoyuppe
df61ea0a62 Revert "Added a mutex to ZoneWindow, ensured no data races occur (#2154)"
This reverts commit af4678ff18.
2020-04-28 15:17:20 +03:00
Niels Laute
371926b202 [Launcher] Fluent UX fixes for the results list (#2427)
* Fixed right margin

* Fixed issue where the background of the gridview would light up on pointerover.

* Fixed issue where application title/path run through command buttons. Centrally aligned image/icon.

* Updated the shadow so it looks more like a UWP ThemeShadow.
2020-04-27 17:35:33 -07:00
Tomas Raies
fe77a7e01a Merge branch 'dev/PowerLauncher' into dev/traies/build_features_launcher_integration 2020-04-27 11:52:20 -07:00
Tomas Raies
e6b43e19c2 Merge branch 'dev/build-features' into dev/traies/build_features_launcher_integration 2020-04-27 10:48:32 -07:00
Arjun
96b2145ba1 Merge branch 'master' into dev/build-features 2020-04-27 08:42:42 -07:00
Enrico Giordani
feb950be3c Increment version to 0.17.0 (#2415) 2020-04-27 16:25:25 +02:00
Andrey Nekrasov
5b02bda277 runner: download_updates_automatically option is disabled by default for non-admin users (#2412) 2020-04-27 16:02:28 +03:00
Andrey Nekrasov
ce4643d650 runner: autoupdate improvements (#2346) 2020-04-27 13:39:47 +03:00
Yevhenii Holovachov
55c311cd39 "Download updates automatically" toggle enabled only for administrator account (#2357)
* Added condition to disable auto updates toggle in settings for non-administrator accounts
2020-04-27 11:04:20 +03:00
Tomas Agustin Raies
8f8bfb9446 Make Edit Shortcut/Single Key window scrollable (#2409)
* Make Edit Shortcut/Single Key window scrollable

* Don't scroll header and buttons

* added margin beneath the add button
2020-04-26 21:57:51 -07:00
Lavius Motileng
8f2a33dcaa Added Image Resizer Settings (#2324)
* added image resizer settings

* updated string resource and binding

* added tests and removed sett advanced settings from image resizer

* fixed string resource spacing

* moved conbo box strings to string resource

* updated name of contributor

* Capitalized size names

* updated fallback encoder and sizers configs

* removed interence between settings | used static resource binding

* fixed build error
2020-04-26 17:34:03 -07:00
Tomas Agustin Raies
4946daeea4 Fix incompatible assemblies building issues (#2394)
* Remove reference to TwoWayIPCLib
* Downgraded System.Text.Json package in Settings.Lib
2020-04-26 16:44:14 -07:00
Arjun Balgovind
38ecc82e97 Improve warnings for KBM (dev/build-features) (#2386)
* Handled invalid input for single key remaps

* Added some functions

* Added better error message functions and finished warnings for edit keyboard

* Updated dropdown order of keys

* Added new warning template for shortcuts

* Added show warning on Apply code

* Removed old flyout code

* Fixed issue where tooltips were replaced on Apply

* Simplified == operator
2020-04-26 15:09:40 -07:00
Tomas Agustin Raies
7ec8d02c1f PowerLauncherSettings unit tests (#2276) 2020-04-26 13:15:40 -07:00
ryanbodrug-microsoft
a047ff2228 Looking at files and not filtering is better because the timer is more likely to reset while an install is happening, preventing uneeded indexing 2020-04-26 09:57:27 -07:00
ryanbodrug-microsoft
3dd181c912 Removing unused namespace. 2020-04-26 09:57:27 -07:00
ryanbodrug-microsoft
3753ecd8e5 Adding file watchers for UWP detecting when apps are installed or deleted and reindexing the uwp apps 2020-04-26 09:57:27 -07:00
ryanbodrug-microsoft
eaf05aa31a Defensive check for QueryText being empty 2020-04-25 12:24:57 -07:00
ryanbodrug-microsoft
ad0f965f3a Initializing query text strings. 2020-04-25 12:14:03 -07:00
ryanbodrug-microsoft
53e68c0567 The Open Current Folder result shouldn't change the query text to 'Open {folder path}' when selecting the results. 2020-04-25 12:14:03 -07:00
ryanbodrug-microsoft
9f609ac80f Folder Results open the explorer window when selected. 2020-04-25 12:14:03 -07:00
ryanbodrug-microsoft
2b04d7a92d Making folder results from the search indexer plugin behave like folder results from folder plugin. 2020-04-25 12:14:03 -07:00
ryanbodrug-microsoft
8f7305e347 Removing action on folder result, and displaying folder path on selecting a folder result from the folder plugin. 2020-04-25 12:14:03 -07:00
ryanbodrug-microsoft
9d3720557e Updating the QueryText to the selected item when navigating up/down with the arrow keys. 2020-04-25 12:14:03 -07:00
ryanbodrug-microsoft
aa79325d76 Fixing gap in logic where query was triggering when programatically setting text.
Updating the binding and settext both will trigger the TextChanged event on a seperate event dispatcher.  For this reason we dynamically detect which eventhandler is most approapriate on the textchanging event.
2020-04-25 12:14:03 -07:00
ryanbodrug-microsoft
15b7b20500 - Fixes cursor jumping around issue.
- Seperating the ability to set the text from initiating a query.
- Plugins have to explicitly request the query be updated.
- Updating Folder plugin to explicty update the query on folder selection.
- Removing unused changes from 'Wox' that don't compile.
2020-04-25 10:54:54 -07:00
Divyansh Srivastava
6290630787 Added cold start fix (#2385) 2020-04-25 10:27:36 -07:00
Tomas Raies
ad9e7b5eae Merge branch 'dev/PowerLauncher' into dev/traies/build_features_launcher_integration 2020-04-24 22:45:51 -07:00
Tomas Raies
fa31fbb343 PowerLauncher Settings integration 2020-04-24 22:29:42 -07:00
Arjun Balgovind
ca7b6f139f MSI update for SettingsV2 and KBM (#2351)
* Removed SettingsV2 deployment

* Adjusted project output directory

* Added all Settingsv2 and KBM files

* Added all Settingsv2 and KBM files

* Updated configuration and nuget packages

* Removed Interop.TwoWayIPCLib from MSI
2020-04-24 18:03:29 -07:00
Divyansh Srivastava
a6e8cbc50d Updated program execution to call action on background thread. (#2370) 2020-04-24 13:31:36 -07:00
Clint Rutkas
368640b59b Removing WinR (#2381) 2020-04-24 11:10:40 -07:00
Tomas Raies
22cb0b6afb Merge branch 'dev/build-features' into dev/traies/buld-features-integration 2020-04-24 10:26:06 -07:00
Clint Rutkas
08a7394c1b Deduping results for program plugin (#2375)
* Removing description from title

* adjusting subtitle

* removing accidently paste

* removing desc for uwp apps

* Getting dups removed from list if LNK exists

* adjusting subtitle

* removing accidently paste

* Getting dups removed from list if LNK exists

* changed to normal forloop
2020-04-24 09:35:21 -07:00
Alekhya
8a2fd5bf5e Add the folder plugin wxs back in (#2374) 2020-04-23 19:16:17 -07:00
ryanbodrug-microsoft
7add40ae93 Adding back binding to QueryText and updating the cursor position similar to how wox originally did it. 2020-04-23 19:04:01 -07:00
ryanbodrug-microsoft
d4da98bae5 - Making Open Directory subtitle fixed, and the title as the current directory. 2020-04-23 18:39:36 -07:00
ryanbodrug-microsoft
92bbd83b33 Replacing submenu text with full path as 'Ctrl-Enter' doesn't do anything. Also reducing the String of CreateOpenCurrentResult to fit in one line. 2020-04-23 18:39:36 -07:00
ryanbodrug-microsoft
b0c647e50c Updating JetBrains.Annotations to 2020.1.0 to be consistent with other projects. 2020-04-23 18:39:36 -07:00
ryanbodrug-microsoft
1ddd94b95c Revert "Removed folder plugin"
This reverts commit 064d638588.

We will use the folder plugin to better mimic the way the start menu and run prompt deal with directories
2020-04-23 18:39:36 -07:00
Clint Rutkas
845c6be95f adjusting how programs are displayed. (#2369)
* Removing description from title

* adjusting subtitle

* removing accidently paste

* removing desc for uwp apps
2020-04-23 18:25:57 -07:00
Tomas Agustin Raies
63d989cab4 Deprecate ATL based IPC wrapper library (#2248)
* Deprecate ATL based IPC wrapper library

* C# projects now use named pipe server implementations from two_way_pipe_message
through the interop C++/Cli library.

* Added Unit testing to interop library
2020-04-23 17:11:02 -07:00
Divyansh Srivastava
92daf156f5 Codeflow cleanup when selectedItem is not null 2020-04-23 16:16:15 -07:00
Divyansh Srivastava
d0822ab1fe Fixed process executing on clicking enter if no text in search box 2020-04-23 16:16:15 -07:00
ryanbodrug-microsoft
65cda38cc8 Result List - Bad rebase overwrote margin and translation fields. 2020-04-23 16:15:30 -07:00
ryanbodrug-microsoft
dcc1d545e9 Fixes an issue where PointerExit would hide the selected context buttons. 2020-04-23 16:15:30 -07:00
ryanbodrug-microsoft
e13967cb83 Fixes race conditions with PointerEnter/Exit events conflicting with Selection and unselection. This change provides better encapsulation of the logic to enable a selected item for accelerator (hotkey) events, and allow mouse input on results where the pointer is over. 2020-04-23 16:15:30 -07:00
Alekhya
46d1bc274c Modify scoring algorithm for fuzzy search (#2361)
* Modify scoring

* modified to if else
2020-04-23 15:39:55 -07:00
Clint Rutkas
81551104ce stopping deployment (#2356) 2020-04-23 15:38:07 -07:00
Alekhya
8b10fe4053 Launcher MSI - Added a required dll and removed folder plugin (#2355)
* Modified the product.wxs file

* Added the x64 config
2020-04-23 12:07:36 -07:00
Arjun Balgovind
b5bd2df814 Update the KBM UI to use a Grid based layout rather than stack panels (#2299)
* Added grid to edit keyboard

* Fixed all issues for Edit keyboard window with grid

* Added step to delete row definition and move row indices

* Handled grid operations for Edit Shortcuts

* Added dynamic layout for edit shortcuts

* Fixed resize windows message behaviour and removed warnings
2020-04-23 09:14:16 -07:00
Arjun Balgovind
32ddf3246c Add support for Common Win key in KBM (#2308)
* Added common win key to layoutmap

* Added common win key support for edit shortcuts

* Adjusted key names
2020-04-23 08:37:52 -07:00
Andrey Nekrasov
8ccc996e63 PreviewHandler: change install to per machine (#2320) 2020-04-23 17:33:56 +03:00
stefansjfw
bd7150d676 Use HKEY_CLASSES_ROOT for powertoys_toast_clsid (#2069)
* Use –HKEY_CLASSES_ROOT for powertoys_toast_clsid

* ImageResizer fix
2020-04-23 16:31:35 +02:00
Tomas Raies
c35e70173b Enable PowerLauncher toggle 2020-04-22 22:11:48 -07:00
ryanbodrug-microsoft
86f209a302 Opening explorer if the user has types a file path. 2020-04-22 20:50:10 -07:00
ryanbodrug-microsoft
44943feb8b Setting runcommand as the default execution method, and turning off run as admin by default. 2020-04-22 20:50:10 -07:00
Tomas Raies
4331e9ae80 Merge branch 'dev/PowerLauncher' into dev/traies/build_features_launcher_integration 2020-04-22 17:52:38 -07:00
Clint Rutkas
9ae97de780 simplifying the xaml and making things tighter (#2327) 2020-04-22 15:59:32 -07:00
Tomas Agustin Raies
d941b31c45 Display Key Mappings in Settings (#2314)
* Move changes

* Display Key Mapping in Settings

* Fix display of empty keys list

Co-authored-by: Udit Singh <udsing@microsoft.com>
2020-04-22 14:55:45 -07:00
Clint Rutkas
fed254f355 Update nuget packages across solution to latest (#2334) 2020-04-22 14:19:26 -07:00
Alekhya
7f53877283 text is selected whenever launcher gets hidden and is then set to visible (#2315) 2020-04-22 13:42:08 -07:00
Arjun
ca3a436fe5 Merge latest master: 4/22/20 2020-04-22 10:02:17 -07:00
Alekhya
d48ef90fb0 Simulating Win+backspace key press, instead of Win+Control as it was launching WW (#2250) 2020-04-21 19:46:10 -07:00
Clint Rutkas
29bbe84f69 removed deployment for uwp apps (#2298) 2020-04-21 15:50:54 -07:00
Arjun Balgovind
d079f0ca44 Changed output dir to modules and resolved conflicts (#2233) 2020-04-21 14:14:50 -07:00
Arjun Balgovind
394f52a725 Fix issue where key list would change based on keyboard state (#2221) 2020-04-21 13:43:52 -07:00
Arjun Balgovind
5828508218 Fix colors in KBM UI and add support for light/dark theme (#2256)
* Fixed colors for Edit Keyboard

* Fixed colors for Edit Shortcuts
2020-04-21 13:42:06 -07:00
Arjun Balgovind
2f244bca85 Fix Ctrl/Alt/Shift single key remapping (#2217)
* Added preprocessing step for edit keyboard buffer

* Fixed Ctrl\Alt\Shift single key remapping
2020-04-21 13:40:31 -07:00
Divyansh Srivastava
064d638588 Removed folder plugin 2020-04-21 12:56:28 -07:00
Tomas Agustin Raies
7856495d59 Fix compilation problems related to the Interop project (#2290)
* Added missing c++17 compile flag to common-md-flag
* Remove .NET native tool chain from Settings.UI release config
* This flag has to be removed because .Net Native does not support
  mixed assemblies, like PowerToysInterop.
2020-04-21 12:55:04 -07:00
ryanbodrug-microsoft
c3bded6947 Disabling scrollbars for gridview items. 2020-04-21 12:37:28 -07:00
ryanbodrug-microsoft
3a584e318a Positioning ContextButtons and adding background. 2020-04-21 12:37:28 -07:00
Clint Rutkas
48d744b6bd updated app icons (#2289) 2020-04-21 11:02:39 -07:00
Clint Rutkas
6eba8130ba Adding community page (#2285)
* first pass for community

* tweak in language

* added in Raf's WinCPP upgrade
2020-04-21 11:02:26 -07:00
vldmr11080
5ac7eddd03 Compare window desktop id with currently active work area desktop id. (#2110)
* Compare window desktop id with currently active work area desktop id.

* Improve error handling and conform to coding guidelines.

* Move virtual desktop helper functions to ZoneWindowUtils namespace.

* Ensure thread safety when creating instance of VirtualDesktopManager.

* Remove static qualifier from ServiceProvider.

* Return instead of break, as there is no need to check for other monitors, virtual desktop is the same for all.

* Move virtual desktop related helper functions to separate files.

* Skip comparing desktop ids if zone window has empty GUID for desktop id.

* Add comment describion scenario for which we need this fix.
2020-04-21 19:57:21 +02:00
Andrey Nekrasov
b5dfe6320d msi: detect and set previous installation path via a custom action (#2108) 2020-04-21 20:52:28 +03:00
udit3333
19ee55a303 Enable CI for dev/build-features branch (#2186)
* Updated Yaml to include dev/build-feature

* Added default icons
2020-04-21 10:29:02 -07:00
Arjun Balgovind
b715a008c5 Fixed KBM interaction with Shortcut Guide (#2220) 2020-04-21 10:25:14 -07:00
Divyansh Srivastava
1d4b834204 Removed ListView animations 2020-04-21 09:42:16 -07:00
Alekhya
aa271423f9 Changed to SystemChromeLow from Accent brush (#2272) 2020-04-21 08:43:28 -07:00
Andrey Nekrasov
0354026292 runner: initial automatic update (#2141) 2020-04-21 10:30:12 +03:00
Tomas Agustin Raies
93752fb6cb Display Unicode character for keys in HotkeySettingsControl (#2249)
* Fix HotkeyControl virtual key display

* A new interop project was setup to provide wrappers for C# projects
  that want to access functionality in the common project.

* Add assembly info

* Remove WIN32 configurations
2020-04-20 21:01:21 -07:00
Divyansh Srivastava
7da8689bf2 Somil55/merge custom ui into launcher (#2271)
* Remove Autosuggest box (#2192)

* Update Settings.Designer.cs

* Revert "Update Settings.Designer.cs"

This reverts commit a1bc0dda56.

* Updated LauncherControl XAML to add textbox and listview

* List View displayed

* Hooking up execution on the selected index, removing two way binding on selection, and experimenting with popup that doesn't work

* Updated MainViewModel to Remove context menu and history

* Added Resultist XAML Island project

* Updated SelectedItem and SelectedList Binding.
Issues :  List box doesn't open when query is written for first time but opens in subsequent queries.

* 1. Mouse Click working
2. List View is can't be focused
3. Fixed width of Launcher

* Removed two way QueryText box binding

* Removed SelectedItem two way binding and replaced with a callback

* [Cleaning] Remove redundant UWP project

* [Cleaning] Updated files to keep only atomic changes against dev/powerLauncher

* Thmbnail fixed for NEW UI

* Removed PreviewMouseDown function required by older WOX code

Co-authored-by: ryanbodrug-microsoft <56318517+ryanbodrug-microsoft@users.noreply.github.com>

* Added the auto-complete feature

* Removing ContextMenuPluginInfo, and ContextMenuTopMost as these commands are not used int the new design.

* Fixed merge conflicts

* Set only when index is 0

* One way binding

* Removed unnecessary binding

* Deleting unused (commented out code) that was legacy from wox project.

* Binding Buttons to appropriate context menu commands.
1. Buttons are dynamically loaded in a listview based on the actions supported be each plugin.

This change also deletes unused commands.

Note:  Most button events don't seem to be getting routed to the Selected Item.  Currently using 'PointerEntered' to validate the behavior.  The actions should be trigged by the button command property in the future.

* manually handling tab in mainwindow

* Loading context buttons on Selecting a suggestion list item

* Allowing hover event to load content menu items and display them as well.

* Adding context buttons to Indexer plugin.  This allows for the following:
1. [Files] Open Containing folder
2. [Folders/Files] Copy Path

* Remove White background of list (#2218)

* Remove white background of list

* Removed comments

* Changed to ContainerContentChanging event

* add const variables instead of numbers

* Added comment before the updatelistSize function

* Search box UI (#2224)

* Added backdrop and rounded corner

* Fix for two alt+space press to bring searchbox issue

* Fixed merge conflict

* Clean Mainwindow.xaml code

* Fix for textbox focus on first visible

* Allowing users to tab between the context buttons for the selected resut.  Also allowing users to press 'enter' to action on the selected items.

* Renaming SelectedIndex to ContextMenuSelectedIndex

* Enabling key accelerators on context buttons.
1. Add new object ContextMenuResult instead instead of reusing Result for both query results and context menu results.
2. Binding KeyboardAccelerator keys to contextmenuitemviewmodel
3. Enabling and disabling contextmenu items when selecting or deselecting each row.  Because we are manually maintaining selectionwe can't use ScopeOwners as the textbox is really the only item ever in focus.

* Launching explorer instead of the UWP application when selecting 'open file location'.

* Added fix for border showing up when result count is zero

* Updated fix for border on no result

* Adding visibility  after clearing result in MainViewmodel

* Launcher Light/Dark mode (#2235)

* Fixed issue with list view background not updating with Windows theme change

* Added theme change for WPF

* updated ShadowDepth for dropshadow

* Updated border thicknes of searchbox and listview

* Diff issue with ResultList.xaml

* Removed change in result delay

* Added code to pull colors from UWP

* Updated border resource to use system based SystemControlHighlightAccentBrush

* Updated corner radius in dark mode

* Updated Launcher description text

Co-authored-by: ryanbodrug-microsoft <56318517+ryanbodrug-microsoft@users.noreply.github.com>
Co-authored-by: Alekhya Reddy <reddykalekhya@gmail.com>
2020-04-20 19:53:20 -07:00
Divyansh Srivastava
afd22768fc Pull changes from master to dev/powerLauncher (#2255)
* Dpi unaware placement bug (#2121)

Fix for bug when placing dpi unaware window such as Notepad++ in left of right part of monitor. In that application gap of about 7px was left or right.
This fixes only single-monitor scenario
It skips correction for dpi unaware window that leaves a gap

* Move markdown parsing logic outside control thread (#2099)

* Move markdown parsing logic outside control thread

* Update MarkdownPreviewHandlerControl.cs

* Remove trailing whitespace.

That'll teach me for trying to make an edit from the GitHub page.

* Migrate power rename MRU lists from registry to JSON (#2090)

* Handle most recently used search/replace strings within settings.

* Check for last modified time of json file and reload it if needed.

* Handle changes in MRU search / replace lists size.

* Improve handling of changes in MRU list size.

* Don't check for last modified time in every getter method. Load only when starting application.

* Add const identifier to getter methods.

* Address PR comments: Add const to reg and json file paths and set them in constructor initializer. Check pushIdx validity. Move implementation to cpp of PowerRenameUI constructor.

* Add error checking when getting values from registry.

* Implementing changes suggested in #1992 (#2116)

* Implementing changes suggested in #1992

* Update Product.wxs

Co-authored-by: Ebenezer Ewumi <ebenezer.ewumi@wsu.edu>

* Fix for issue #1532 - [PowerToys tray icon] Show version on tooltip (#2117)

* Fix for issue #1532

[PowerToys] Show version on tooltip

* Update src/runner/tray_icon.cpp

Co-Authored-By: Andrey Nekrasov <yuyoyuppe@users.noreply.github.com>

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

* FZ editor: Splitted zones positioning (#2158)

* Added a mutex to ZoneWindow, ensured no data races occur (#2154)

* Added a mutex to ZoneWindow, ensured no data races occur

* Protected draggedWindow* members with a mutex

* Ensured that critical reads happen in a single transaction

* Dpi unaware placement bug - multimontior with same DPI settings fix (#2156)

* Dpi unaware placement bug - multimontior with same DPI settings fix

* Using different enumerating method

* Changed AllMonitorHaveSameDpiScaling method

* Removed accidental file

* small rename

* Changed some methods to CamelCase

* Review comments fixes

Co-authored-by: PrzemyslawTusinski <61138537+PrzemyslawTusinski@users.noreply.github.com>
Co-authored-by: Ben Randall <veleek@gmail.com>
Co-authored-by: vldmr11080 <57061786+vldmr11080@users.noreply.github.com>
Co-authored-by: eduardodextil <55205162+eduardodextil@users.noreply.github.com>
Co-authored-by: Ebenezer Ewumi <ebenezer.ewumi@wsu.edu>
Co-authored-by: Nghia M. Luong <32159519+sqrlmn@users.noreply.github.com>
Co-authored-by: Andrey Nekrasov <yuyoyuppe@users.noreply.github.com>
Co-authored-by: Seraphima Zykova <zykovas91@gmail.com>
Co-authored-by: Ivan Stošić <ivan100sic@gmail.com>
2020-04-20 17:33:30 -07:00
Mattwmaster58
e9ecdb3f56 update github releases to latest link (#2223) 2020-04-20 17:18:38 -07:00
Alekhya
e14ef2c671 Added MSI support for Launcher (#2242)
* Fixed typo in output folder of calculator plugin

* Calculator plugin works

* Modified the name of the image to remove space as space is assumed to be a separator in wcx file

* Fixed typo in calculator dll

* Fixed typo in calculator plugin

* Shell, Program, Folde and indexer plugin working

* Added the ww plugin

* Fixed typos in the calculator plugin

* Delete file that was added unintentionally

* revert calculator rename changes

* Reverted other files changed

* Reverted renaming of file with space
2020-04-20 14:33:27 -07:00
Arjun
d45c4740ad Fixed a bug added in #2237 2020-04-20 11:03:32 -07:00
Arjun
62bae55fd1 Merge branch 'master' into dev/build-features 2020-04-20 09:15:32 -07:00
PrzemyslawTusinski
dcee505f6b Dpi unaware placement bug - multimontior with same DPI settings fix (#2156)
* Dpi unaware placement bug - multimontior with same DPI settings fix

* Using different enumerating method

* Changed AllMonitorHaveSameDpiScaling method

* Removed accidental file

* small rename

* Changed some methods to CamelCase

* Review comments fixes
2020-04-20 18:09:10 +02:00
Arjun Balgovind
ddf800de10 Move KBM warnings at Apply to Flyouts (#2237)
* Moved warning to Flyout

* Fixed formatting
2020-04-20 08:59:35 -07:00
udit3333
325db535c0 [Kbm] Save the remaps to file[part-1] (#2184)
* Added Inital FileWatcher Implementation

* Added logic to read remap from file

* Added remap logic save to file

* Refactor code

* Moved the strings to constant file

* Added logic to handle Win key

* Updated filewatcher logic to avoid duplicate events

* Added comments

* Fix spacing

* Fix spacing

* Update logic to accomodate upstream merge

* Added global property name for os level shortcuts

* Added subkey for inprocess keys

* Remove non required file

* Added Changes required after merge

* Fix spacing in Helper.cpp
2020-04-20 08:22:36 -07:00
Ivan Stošić
af4678ff18 Added a mutex to ZoneWindow, ensured no data races occur (#2154)
* Added a mutex to ZoneWindow, ensured no data races occur

* Protected draggedWindow* members with a mutex

* Ensured that critical reads happen in a single transaction
2020-04-20 16:32:49 +02:00
Lavius Motileng
cae77ae291 added shortcut guide settings (#2247) 2020-04-20 06:03:26 -07:00
Seraphima Zykova
cab5a97117 FZ editor: Splitted zones positioning (#2158) 2020-04-20 11:54:25 +03:00
Arjun Balgovind
0417b6266a Add drop down key selection support to Keyboard Manager UI (dev/build-features) (#2140)
* Added combobox

* Formatted and removed unused code

* Added drop down support for Edit Keyboard window

* Reordered the displayed key list

* Add shortcut stack panels and drop downs linked to detect shortcut

* Add more selected item logic

* Added complete dropdown support for edit shortcuts window

* Added Flyout warning for incorrect drop down input

* Tweaked warnings

* Removed MainWindow code

* Changed SelectedValue toSelectedIndex

* Removed unnecessary assignments

* Added a warning for two dropdowns and the first one is changed to an action key

* Added function comments in cpp file

* Fixed some comments

* Fixed all allocation and out of scope issues

* Fix most issues except reloading shortcuts

* Fixed issue while reloading shortcuts

* Fixed type cast warnings

* Changed delete to delete[]

* tweaked
2020-04-18 16:12:26 -07:00
Arjun Balgovind
fc7103f56e Keyboard Manager UI tweaks (dev/build-features) (#2179)
* Fix Issue 2163

* Commented out profiles UI

* Added banded list view rows

* Fixed spacing
2020-04-17 18:06:36 -07:00
Betsegaw (Beta) Tadele
ffe9ec1c76 [Window Walker] Migrate to Launcher (#2093)
* Copy the existing calc. plugin foldeR

* Blindly rename a bunch of things to Window Walker

* Update the solution to reference the new plugin

* Get basic Yo returned

* Remove all the languages except english

* Lower quality of icon as well as test showing it

* Add the core non-ui parts to the plugin

* Delete calculator png

* Get it to compile

* Added the actual code which apparently doesn't work

* Finally start showing results

* Fix up strings

* Switch working

* Remove unused classes

* Remove unneeded async
2020-04-17 16:43:34 -07:00
Lavius Motileng
3fc738b53a Added Tests and Refactored code (#2129)
* Added Tests and Refactored code

* removed un-used file

* delete test files when test completes

* removed extra build configs

* added clean-up method

* removed unused variable

* re-added removed attributtion

* added error handling and move strings to string resource

* added error handling to file explorer view model

* moved varible assignment to if statement block

* removed savin of settings file from the UI

* re-added open source notice

* added missing controls for powerrename and fancy zones

* removed dead coded

* remove un-used configuration

* added error handling for file saving and updated powerreanme constructor

* removed added configurations

* added settings state
2020-04-17 15:25:08 -07:00
Udit Singh
7e1f554c4e Merge Master Latest in dev/build-features 4/17/20 2020-04-17 10:54:27 -07:00
Nghia M. Luong
5cfa8889f4 Fix for issue #1532 - [PowerToys tray icon] Show version on tooltip (#2117)
* Fix for issue #1532

[PowerToys] Show version on tooltip

* Update src/runner/tray_icon.cpp

Co-Authored-By: Andrey Nekrasov <yuyoyuppe@users.noreply.github.com>

Co-authored-by: Andrey Nekrasov <yuyoyuppe@users.noreply.github.com>
2020-04-17 11:47:24 +03:00
eduardodextil
0cbe7a16e3 Implementing changes suggested in #1992 (#2116)
* Implementing changes suggested in #1992

* Update Product.wxs

Co-authored-by: Ebenezer Ewumi <ebenezer.ewumi@wsu.edu>
2020-04-17 11:43:36 +03:00
Clint Rutkas
0cf3c097fb tweak text (#2177) 2020-04-16 21:06:02 -07:00
udit3333
15061af796 Enable CI build on PowerLauncher Branch (#2181)
* Enable CI build on PowerLauncher Branch

* Updated Nuget restore to latest and added AssetTargetFallback property
2020-04-16 20:25:54 -07:00
Niels Laute
2cfcad6a50 [Settings V2] Release notes link + minor styling fixes (#2176)
* Added release notes link

* Minor styling fixes
2020-04-16 16:19:52 -07:00
Arjun Balgovind
13a8ac3e50 Handle RAlt, RCtrl and other extended keys correctly (dev/build-features) (#2145)
* Fixed SendInput for RAlt and RCtrl

* Fixed shortcuts containing Del, Arrow keys, etc
2020-04-16 15:17:57 -07:00
Alekhya Reddy
7c5993d75b Set MainViewModel visibility to hidden on startup 2020-04-16 14:12:15 -07:00
Lavius Motileng
10c0325f18 added Fancy Zones Settings (#2161) 2020-04-16 11:45:27 -07:00
Divyansh Srivastava
367cb41121 Search result thumbnail for PowerLauncher (#2124)
* Replace WPF Imaging library with UWP

* Removed UWP and WPF namespace conflicting files from Wox

* Removed Image hashing as it wasn't used anywhere

* Updated formatting
2020-04-16 11:01:38 -07:00
Tomas Agustin Raies
c37884bdb7 Detect Shortcut: Hold Esc/Enter to Cancel/Accept (#2135)
* Detect Shortcut: Hold Esc/Enter to Discard/Apply changes

Bypass shorcut/single key remapping by holding the navigation keys
2020-04-16 09:16:48 -07:00
ryanbodrug-microsoft
37a551ecd3 SearchIndexer - Modifying QueryContentProperties and QuerySelectColumns to use System.FileName 2020-04-15 17:21:22 -07:00
Clint Rutkas
dafc514353 removed reference to everything (#2133) 2020-04-15 15:10:27 -07:00
vldmr11080
aa6cb7d650 Migrate power rename MRU lists from registry to JSON (#2090)
* Handle most recently used search/replace strings within settings.

* Check for last modified time of json file and reload it if needed.

* Handle changes in MRU search / replace lists size.

* Improve handling of changes in MRU list size.

* Don't check for last modified time in every getter method. Load only when starting application.

* Add const identifier to getter methods.

* Address PR comments: Add const to reg and json file paths and set them in constructor initializer. Check pushIdx validity. Move implementation to cpp of PowerRenameUI constructor.

* Add error checking when getting values from registry.
2020-04-15 23:14:17 +02:00
Ben Randall
67e6688e69 Move markdown parsing logic outside control thread (#2099)
* Move markdown parsing logic outside control thread

* Update MarkdownPreviewHandlerControl.cs

* Remove trailing whitespace.

That'll teach me for trying to make an edit from the GitHub page.
2020-04-15 13:10:55 -07:00
Udit Singh
5d9b71b038 Merge Master Latest: 4/15/20 2020-04-15 07:55:17 -07:00
PrzemyslawTusinski
2077cd4864 Dpi unaware placement bug (#2121)
Fix for bug when placing dpi unaware window such as Notepad++ in left of right part of monitor. In that application gap of about 7px was left or right.
This fixes only single-monitor scenario
It skips correction for dpi unaware window that leaves a gap
2020-04-15 12:34:11 +02:00
Alekhya Reddy
65276f45f1 Merge branch 'master' of https://github.com/microsoft/PowerToys into dev/PowerLauncher 2020-04-14 21:27:04 -07:00
Clint Rutkas
95eb17bdb7 xaml adjustments, including contributors (#2118)
* xaml adjustments

* verbage change.
2020-04-14 10:42:27 -07:00
udit3333
a88d66b48b Integrate keyboard manager with settings v2[Part-2] (#2107)
* Added CustomAction Data Models

* Updated data model

* Updated Button command trigger for keyboard manager

* Integerated custom actions in Keyboard manager module backend

* Allow Runner to launch windows on foreground

* Refactor and moved the execution logic to background thread

* Removed non-required unlock calls

* Fixed typo

* Resolve PR comments
2020-04-14 09:24:11 -07:00
Clint Rutkas
a200c5397a removed unused dep (#2080) 2020-04-14 08:41:24 -07:00
PrzemyslawTusinski
87fb6fc3d1 Added unit test for non-resizable window placement (#2017) 2020-04-14 10:40:30 +02:00
Tomas Raies
79fcd45d5f Change key mappings according to Keyboard Layout 2020-04-13 11:41:32 -07:00
Arjun Balgovind
e0ddaa74d0 Add unicode naming for keys (dev/keyboardManager) (#1978)
* Added key names

* Display names in detect keyboard UI

* Added keyboard layout for edit keyboard window

* Removed commented code

* removed unused code

* fixed argument modifiers

* Added newline at EOF

* Added unicode changes to edit shortcuts window
2020-04-13 11:41:32 -07:00
Clint Rutkas
d584dc5632 Update NOTICE.md 2020-04-13 10:48:05 -07:00
Andrey Nekrasov
86704efcec FancyZones: optimize elevation detection logic (#2103) 2020-04-13 18:22:37 +03:00
Andrey Nekrasov
6bb0f18d53 chore: format PowerToys custom actions (#2104)
* chore: format PowerToys custom actions

* add curly braces
2020-04-13 16:00:51 +03:00
yuyoyuppe
77e4984468 chore: fix window walker warning 2020-04-11 11:24:33 +03:00
yuyoyuppe
4e18c67ec5 chore: fix linking warnings 2020-04-11 11:24:33 +03:00
Clint Rutkas
6fbed4ad5c Settingsv2 fix warnings (#2076)
* updating a ton of warnings.

* bunch of cleanup

* few smaller ones

* fixed naming

* reversing an oops

* adjusting json to use attribute

* more json properties
2020-04-10 15:22:07 -07:00
Clint Rutkas
0fb42c6129 Update README.md 2020-04-10 14:47:58 -07:00
Clint Rutkas
41ab94fe13 updated notice (#2075) 2020-04-10 12:39:25 -07:00
Niels Laute
3a46f4589b Updated KeyboardManager page to the right styles/margins. Updated visuals for the mapped keys. (#2031) 2020-04-10 12:11:21 -07:00
Seraphima Zykova
14441ec144 WinAppDriver tests fix (#2006)
* updated wait methods and launch
* canvas zone resize tests updated
* updated editor opening
2020-04-10 18:52:16 +03:00
stefansjfw
f589dd2f26 Only clone layout from parent desktop when creating new virtual desktop (#1904)
* Fix issue #1343

* Add Unit Tests

* Revert non intended rename

* Address PR comments
2020-04-10 16:29:18 +02:00
Ivan Stošić
629ba763d7 Basic support for snapping to multiple zones (#1955)
* Refactor a method which resizes windows

* Completed initial work for MultiZones

Without changing any test, they all pass!

* Implemented a basic version of Multizones, updated some tests

* Reduced the sensitivity radius

* Added a few must-have unit tests for Multizones

* Some fixups

* Took care of the conflict between this and #1938

* Improved how zones are detected, reverted a change in one unit test

* Resolved another merge conflict

* Fixed bugs related to stamping
2020-04-10 16:09:08 +02:00
Clint Rutkas
e896e1b3dd fixing a bunch of warnings from Window Walker (#2014)
* first set of warning fixes

* Since this is a Interop item, it should have a _

* Update Window.cs

* Update InteropAndHelpers.cs

looks like there was a space a the top

* Update Window.cs
2020-04-10 06:41:19 -07:00
Yevhenii Holovachov
b92a127200 Added icon for FZEditor (#1388)
* Added icon for FZEditor
2020-04-10 12:15:59 +03:00
Clint Rutkas
e02b8e227d Merge pull request #98 from microsoft/adjustUrl
tweaked url
2020-04-09 16:20:22 -07:00
Clint Rutkas
367a7309bc Update plugin.json 2020-04-09 16:20:04 -07:00
Clint Rutkas
6ecd2ed186 tweaked url 2020-04-09 14:40:17 -07:00
Alekhya
0ada26ccc2 Merge pull request #89 from microsoft/EditREADME
Removed additional README instructions before moving to the powerToys public branch
2020-04-09 10:27:04 -07:00
Alekhya
a39faeec32 Merge pull request #76 from microsoft/MicrosoftLauncher
Rename Wox.Launcher -> Microsoft.Launcher and Wox.Plugin.Indexer -> Microsoft.Plugin.Indexer
2020-04-09 10:26:51 -07:00
ryanbodrug-microsoft
4e35b58d59 Merge pull request #90 from microsoft/user/ryanbod/remove_postbuild_script
Removing unused post build and deploy scripts.
2020-04-09 10:25:44 -07:00
ryanbodrug-microsoft
d03be75184 Removing unused post build and deploy scripts. 2020-04-09 09:42:36 -07:00
Divyansh Srivastava
59b0109918 Fix Query builder test (#86)
* Revert base viewModel class to fix tests.
2020-04-09 09:41:30 -07:00
ryanbodrug-microsoft
154e5aab8e Merge pull request #78 from microsoft/user/ryanbod/fix_killtask_warning
Ignoring 128 errors from taskkill
2020-04-09 09:41:00 -07:00
ryanbodrug-microsoft
5c38b9109e Merge pull request #85 from microsoft/user/ryanbod/fix_catastrophic_failure
Fixing xaml catastrophic failure,
2020-04-09 09:40:31 -07:00
Alekhya Reddy
70b4b33823 Removed additional README instructions before moving to the powerToys repo 2020-04-09 08:39:57 -07:00
Jaime Bernardo
6419c6b1ba settings: fix minimist package vulnerable version (#2021)
Updates nested dependencies so that a vulnerable version of minimist
is not being used.
2020-04-09 17:20:17 +02:00
Seraphima Zykova
1f9d9c619e FZ editor: splitter thickness set to 1px when space around zones is zero (#2020) 2020-04-09 16:47:25 +03:00
Udit Singh
2aa9f4c079 Updated Settings UI project output directory 2020-04-08 21:38:34 -07:00
Tomas Agustin Raies
70495d9ce9 Display keys in Shorcut modal as buttons (#1996)
* Display keys in Shorcut modal as buttons

* Refactor: rename currentShortcutUI and currentSingleKeyUI

* Change GetKeyVector signature
2020-04-08 21:17:20 -07:00
Clint Rutkas
b3b7f8b980 Merge pull request #82 from microsoft/fixOverlayProblem
Fix for Xaml Island
2020-04-08 21:10:00 -07:00
Alekhya Reddy
b7e6d8646f Fixing merge conflicts 2020-04-08 19:44:38 -07:00
Alekhya
466522fb12 Merge pull request #88 from microsoft/extractBasedOnTitle
Searches for keyword only in title and Improving quality of results displayed
2020-04-08 18:28:41 -07:00
Alekhya Reddy
549d68d3e8 Display the title from System.Title directly instead of extracting it from the path 2020-04-08 18:16:40 -07:00
Alekhya Reddy
42a54648a1 Searches for keyword only in title and not content to improve the quality of results 2020-04-08 17:51:43 -07:00
Alekhya
dc9b338cb9 Merge pull request #80 from microsoft/indexerWarning
Adding useWPF tag to get rid of warning for Indexer
2020-04-08 17:44:25 -07:00
ryanbodrug-microsoft
b7d0455377 removing unused mutex string 2020-04-08 17:02:08 -07:00
Clint Rutkas
df0b11a960 suggested fix 2020-04-08 16:53:16 -07:00
ryanbodrug-microsoft
111956e2f3 Fixing xaml catastrophic failure, based on Miguels suggestion here: https://github.com/windows-toolkit/Microsoft.Toolkit.Win32/issues/210 2020-04-08 16:28:11 -07:00
Arjun Balgovind
52c12731cb Refactor Shortcut remaps to distinguish modifiers and action keys (#1927)
* Added unique lock mutexes for thread safety

* Fixed a bug in detect key logic

* Changed dword to word

* Added early unlock statements to fix issue with shortcut guide

* Fixed type conversion warnings

* Migrated detect shortcut window to use Shortcut class

* made changes in Apply button logic

* Revert thread safety changes

* refactored code works on the UI side

* Refactored remapping code to use new Shortcut class

* Refactored to SetKeyEvent function

* Moved function to cpp file and added more comments

* Refactored map variable and handled common Win key

* Remove debug code

* Change arguments to const references
2020-04-08 14:49:00 -07:00
ryanbodrug-microsoft
cf54a4919b Adding a build dependency to the runner project for PowerKeys. This should allow developers to F5 with the runner as startup and have all the dependencies properly build, and thus make the PowerKeys UI functional. 2020-04-08 14:49:00 -07:00
Arjun Balgovind
ac26818005 Added unique lock mutexes to KeyboardManagerState (dev/keyboardManager) (#1789)
* Added unique lock mutexes for thread safety

* Fixed a bug in detect key logic

* Added early unlock statements to fix issue with shortcut guide

* Added comments for unlocks before SendInput and changed some unique_locks to lock_guards
2020-04-08 14:49:00 -07:00
Arjun Balgovind
467cf919be Removed ARM/x86 configs and minor refactors (dev/keyboardManager) (#1785)
* Removed ARM and x86 configs

* renamed files and references and localized strings
2020-04-08 14:49:00 -07:00
udit3333
f48040a4d7 Remap Keyboard UI (dev/keyboardManager) (#1698)
* Added initial UI implementation

* Added backend logic for remap key interaction

* Added single key remap control

* Updated Edit keyboardWindow UI

* Commented out ui logic

* Fixed issue with remap window UI and uncommented the code

* Updated customdialog window foreground color

* Updated buttons foreground color

* Added info header

* Added null check for detected key

* Removed fully qualified namespaces

* updated the background color as ligtht gray
2020-04-08 14:35:52 -07:00
Arjun Balgovind
90ddcb30bf Add support for shortcuts with >2 keys (dev/keyboardManager) (#1697)
* Added check keyboard state function

* Added keyboard state check to avoid n-key shortcuts being affected by 2 key shortcuts

* Added support for n key shortcuts in backend and UI

* Added a fix to ensure mouse buttons states are not checked

* reverted some debugging changes

* reverted some debugging changes
2020-04-08 14:35:52 -07:00
Arjun Balgovind
b713083574 Edit Shortcuts UI (dev/keyboardManager) (#1647)
* Added EditShortcuts Window and added Detecting shortcuts functionality

* Fixed build error

* Changed detection to take place only when window is in focus

* Added solution folder

* Added a common project and refactored shared variables to an object with wrapper functions

* Added dynamic addition of shortcuts

* Moved all shared variables in detection to state variable with wrapper functions

* Added code to re-load saved shortcuts in the UI

* Added comments

* Fixed argument modifiers in Helpers

* Updated arg modifiers in all functions

* Removed unused headers and added precompiled headers
2020-04-08 14:35:52 -07:00
Arjun Balgovind
fc7e7074ce Move keyboard manager POC code to dev branch (#1455)
* Created PowerKeys project

* Swapping tab with shift

* Added hash map and iterators for remapping code

* Added PowerKeys flag and added toggletomod function

* Added shortcut base code

* Fixed os level shortcut functionality

* Added 1 extra event

* Added check for same modifier and comments

* Added app-specific remapping for 4 apps including UWP apps

* Changed foreground window logic

* Added a separate hook for PowerKeys which can be re-hooked by enabling and disabling

* Added a separate hook for PowerKeys which can be re-hooked by enabling and disabling

* Fixed all priority issues and changed injection flags

* Added another msedge.exe shortcut

* Added a UI which is linked to the backend hook

* Cleaned code and added comments

* Added second button

* Renamed some files/variables and added an extra button
2020-04-08 14:28:39 -07:00
Alekhya
e88e9bdf11 Merge pull request #79 from microsoft/mergePTmaster
Pulling changes from PowerToys master
2020-04-08 14:26:43 -07:00
udit3333
bc4ea885dc Add keyboard manager settings ui[Part-1] (#1979)
* Added view and data models for keyboard remapper settings page

* Added intial UI of Keyboard manager settings page

* Fixed Sln file configs

* Resolve UI changes PR comments

* Added UId for UI elements

* Moved Ui strings to resx

* resolve stylecop warnings

* Fixed missing tag from resx file
2020-04-08 13:53:09 -07:00
Divyansh Srivastava
723ace2724 Launcher resize issue on selecting search result (#77)
* Added fix for closing wox on pressing escape and app execution

* Added fix to prevent autosuggestbox resize
2020-04-08 13:07:00 -07:00
Alekhya Reddy
aeb454f31d adding useWPF to get rid of warning 2020-04-08 12:36:14 -07:00
Alekhya Reddy
12c44dceb6 Merged powerToys master into Launcher master 2020-04-08 11:49:32 -07:00
Divyansh Srivastava
9d1b8fbd3e Added fix for closing wox on pressing escape and app execution (#75) 2020-04-08 11:32:59 -07:00
ryanbodrug-microsoft
124e0412b2 Ignoring 128 errors from taskkill, as this means the process isn't running. We don't want htis to show up in the warnings list on build 2020-04-08 11:19:28 -07:00
Alekhya Reddy
3a46260937 modified the name of the dll in the indexer plugin 2020-04-08 10:52:03 -07:00
Alekhya Reddy
7151d5eac2 Added dependency on PowerLauncher to the Microsoft.Launcher project 2020-04-08 10:39:02 -07:00
Alekhya Reddy
5e28d39f09 Renamed the dll produced 2020-04-08 10:38:26 -07:00
Tomas Raies
c7774d3d6c Add Settings.UI as dependency of runner 2020-04-08 10:21:40 -07:00
Tomas Raies
a85b84fd56 Stylecop compliance 2020-04-08 10:21:40 -07:00
Tomas Raies
443b3c8b82 PowerLauncher Settings
* Cherry Picked commit branch due to merge conflicts
* add HotkeySettingsControl
* add localization strings
* add PowerLauncherPage ViewModel
* fix build dependency - settings.ui.runner depends on TwoWayIPCLib
* uncomment IPC settings propagation
2020-04-08 10:21:40 -07:00
Alekhya Reddy
d69383d78b Modified the output folder produced 2020-04-08 10:13:48 -07:00
vldmr11080
c355a2b61e Use JSON data file for storing PowerRename settings instead of registry (#1909)
* Use JSON data file for storing PowerRename settings instead of registry

* Address PR comments and made several improvements

* Remove WindowsApp.lib dependencies in test app and unit tests

* Revert changes in vcxproj for unit test

* Solve linker warnings generated while linking WindowsApp.lib

* Don't migrate enabled flag. Always read / write from registry.
2020-04-08 19:12:46 +02:00
Alekhya Reddy
93415ee36c Merging with master 2020-04-08 10:06:14 -07:00
Alekhya
0648ecf2d2 Merge pull request #70 from microsoft/indexerException
Fix for Indexer exceptions
2020-04-08 09:26:18 -07:00
PrzemyslawTusinski
17022d50d4 Fancy zones preserve size of non-resizable windows (#1974)
* fancy zones preserve size of non-resizable windows

* Changed the method of determining if window is resizable

* minor merge fix
2020-04-08 18:22:43 +02:00
Alekhya Reddy
c4573e46a9 Removed STAThread 2020-04-08 09:19:49 -07:00
PrzemyslawTusinski
fa515604dc MoveWindowIntoZoneByIndexWithInvalidIndex failing TC fix (#2009) 2020-04-08 18:01:51 +02:00
ryanbodrug-microsoft
3b12d70e45 Merge pull request #67 from microsoft/launcherUI-mergemaster
Merge LauncherUI into master
2020-04-08 07:37:51 -07:00
Seraphima Zykova
efb86f453c Draw border inside zone (#2000) 2020-04-08 16:59:17 +03:00
stefansjfw
569c18c9f1 Remove uneeded TmpMigrateAppliedZoneSets() (#1850)
This was needed while we were migratin device-info so
active layout could be migrated as well. At some point
we dropped migration of device-info. Therefore, this has no
puprose anymore.
2020-04-08 15:43:19 +02:00
Yevhenii Holovachov
91223a8431 Tests: Editor settings tests (#1682)
* Added tests for padding checkbox, padding values
2020-04-08 16:33:05 +03:00
PrzemyslawTusinski
d95e49b535 Dragging by upper part of application bar doesn't trigger fancy zones display - fix (#1953)
* Dragging by upper part of application bar doesn't trigger fancy zones - fix

* reversed if logic
2020-04-08 15:12:04 +02:00
Niels Laute
4cb89b3fc2 FZ - Styling updates to GridZone and CanvasZone controls so they look more Fluent (#1778)
* Improved styling so it looks more Fluent and native to W10

* CanvasZone border is now using the active accent color

* Updated GridZone to a similiar Fluent styling as the CanvasZone. Added a mouseover state to the GridResizer.
2020-04-08 14:46:05 +02:00
Andrey Nekrasov
5e56c66201 msi: fix icon bug due to wix quirk (#2001) 2020-04-08 13:19:58 +03:00
ryanbodrug-microsoft
e6393c105b Removing x86,ARM,ARM64, build configurations, as these were added accidentally when adding xaml island support. 2020-04-07 20:25:16 -07:00
Alekhya Reddy
bb16313024 Modified the test, the connection need not be null after being disposed. There is no direct way of checking if an object has been disposed other than to throw the InvalidOperationException 2020-04-07 18:40:13 -07:00
Alekhya Reddy
a5ce2a5a62 Merging with master 2020-04-07 17:57:48 -07:00
Alekhya Reddy
3885cbd045 single thread execution of the indexer plugin and InvalidOperationException due to connection being closed on ExecuteReader, handled separately 2020-04-07 17:52:03 -07:00
Alekhya Reddy
00940d66b1 Downgraded the library to the latest stable version 2020-04-07 17:48:38 -07:00
ryanbodrug-microsoft
cafba71671 Removing 'Wox' branded logos from powerlauncher.csproj as was done previously or wox.csproj 2020-04-07 16:21:16 -07:00
Betsegaw (Beta) Tadele
cb454734b0 [Window Walker] Handle UWP process names (#1858)
* Fixed UWP app search

* Use new methods

* Updated comments
2020-04-07 15:22:17 -07:00
Arjun Balgovind
4f29f998c5 Fixed telemetry calls in Image Resizer (#1983) 2020-04-07 15:19:22 -07:00
vhanla
c241d48df3 Better app listing like Alt-Tab supports UWP apps and hidden apps running including in another Virtual Desktops (#1956)
* Better app listing like Alt-Tab supports UWP apps and hidden apps running in another virtual desktop just like Windows Alt-Tab

* Modified not to hide cloaked apps i.e. also show apps running in another virtual desktop

* Improved listing apps, with readability and reusable abstract properties.
Including a function to detect cloaked UWP apps for future use.
2020-04-07 15:02:14 -07:00
ryanbodrug-microsoft
2afc268a04 Updating build dependencies to so that wox.launcher depends on powerlauncher.csproj not wox.csproj 2020-04-07 14:52:13 -07:00
ryanbodrug-microsoft
94017c1e53 Update Powerlauncher nuget packages to be same version as wox.csproj. Note: FoxyWeavers.xsd change is automatically done as part of nuget package update. 2020-04-07 14:46:22 -07:00
Lavius Motileng
cea6b7067a added stylecop (#1933)
* added stylecop

* removed xml documentation

* used common stylecop file
2020-04-07 14:42:31 -07:00
Lavius Motileng
89b44f5126 User/lamotile/add powerrename settings (#1813)
* added powerrename settings

* removed pop-up message

* removed unused files

* revrted changes to old settings

* updated solution file

* added ToJsonString() method

* added JSON property for the powertoy name
2020-04-07 14:42:15 -07:00
Niels Laute
3015ffd950 Settings V2: new FancyZones, ImageResizer XAML, sidepanels are now in the settings pages for more flexibility (#1792)
* Added FZ settings page

* Added FZ page

* Added sidepanel to all settings pages + UX improvements. New Fancy zones page.

* Added ImageResizer page + sidepanel improvements

* Revert "Added ImageResizer page + sidepanel improvements"

This reverts commit 75bc37a6ba.

* Removed contributors on general page

* Added ImageResizer page
2020-04-07 14:42:14 -07:00
Lavius Motileng
8c465d22e0 updated general settings model 2020-04-07 14:42:14 -07:00
Lavius Motileng
f1951d0d5f Setting v2: added power preview settings (#1702)
* added power preview settings

* Added link to module oververview

* create settings file if one is not found

* removed run oon start up speficic callback

* Update src/core/Microsoft.PowerToys.Settings.UI.Lib/ModuleSettings.cs

Co-Authored-By: Andrey Nekrasov <yuyoyuppe@users.noreply.github.com>

* fixed merge conflicts

Co-authored-by: Andrey Nekrasov <yuyoyuppe@users.noreply.github.com>
2020-04-07 14:42:14 -07:00
Niels Laute
a84be2ba60 New settings pages (XAML) and improvements to ShellPage. Added more styles for typical margins and textblocks (#1735) 2020-04-07 14:42:14 -07:00
Lavius Motileng
4243feaf37 Added functionality for General Settings Page (#1664)
* archive

* formmated code

* reverted changes to test class file.

* reverted changes to test file: reverted name

* added class models and updated link

* removed test console project
2020-04-07 14:42:13 -07:00
ryanbodrug-microsoft
e004f96b65 Making Query internals visible to wox. 2020-04-07 14:41:33 -07:00
ryanbodrug-microsoft
a98cbc3a9d Removing update logic from PowerLuanch App.xaml.cs as was done in Wox project. 2020-04-07 14:39:12 -07:00
ryanbodrug-microsoft
5877918fe8 Making wox.csproj build wox assembly instead of powerlauncher 2020-04-07 14:37:09 -07:00
ryanbodrug-microsoft
b45b585edf Merging master into changes from launcherUI. Wox.Infrastructure assembly info I took the changes from both branches as they will be needed. This currently doesn't build I will make the changes to get it building atomically. 2020-04-07 14:33:45 -07:00
ryanbodrug-microsoft
983b2ebe0e Merge pull request #62 from microsoft/user/ryanbod/cherry_pick_pinyin
Merge pull request #42 from microsoft/AddPinyinPerformance
2020-04-07 14:26:10 -07:00
Lavius Motileng
2a0e92e4e2 add two way IPC 2020-04-07 14:19:33 -07:00
Niels Laute
b351e60d52 Added a General tab page with XAML layout and controls according to spec (#1546) 2020-04-07 13:49:14 -07:00
Clint Rutkas
69e7a581fd fixed default loading. 2020-04-07 13:49:13 -07:00
Clint Rutkas
0a20be85ab just diff icons to make it much clearer. still hitting the xaml parse errror a ton ..... :( 2020-04-07 13:49:13 -07:00
Clint Rutkas
3f5a54f9f1 Added in generic ViewModel 2020-04-07 13:49:13 -07:00
Clint Rutkas
e2c7941542 using non-winui navview for stability, fixed revert error on runner's csproj 2020-04-07 13:49:13 -07:00
Clint Rutkas
8433119ac9 getting navview unbroke 2020-04-07 13:49:13 -07:00
Clint Rutkas
43589096c3 Revert "fixed runtime xaml load failure"
This reverts commit f5686cc154.
2020-04-07 13:49:13 -07:00
Clint Rutkas
05d14166e4 code directly borrowed from the WinUI app ... still same issue 2020-04-07 13:48:20 -07:00
Clint Rutkas
0d0f7724b6 checking in code for navview as a test 2020-04-07 13:48:20 -07:00
Lavius Motileng
d28152566d fixed runtime xaml load failure 2020-04-07 13:48:20 -07:00
Lavius Motileng
fb805de552 fixed 2020-04-07 13:47:55 -07:00
Lavius Motileng
5ade906a7b archive 2020-04-07 13:46:33 -07:00
Lavius Motileng
8f02cbc234 updated namespaces 2020-04-07 13:46:33 -07:00
Lavius Motileng
59a2415a0d Lavius / Base Project for New Settings Project (#1481)
* base WPF Project

* Added tests

* Update build configuration .sln file

* removed unnessesary asset files
2020-04-07 13:46:06 -07:00
Alekhya Reddy
c1b3686190 adding checks 2020-04-07 11:29:46 -07:00
Divyansh Srivastava
662eeafbb5 Merge pull request #58 from microsoft/launcherUIAppExecution
Launcher UI app execution
2020-04-07 09:35:18 -07:00
Seraphima Zykova
5ff146bc69 KeePass window showing from tray (#1938) 2020-04-07 19:30:12 +03:00
Alekhya
9380a243ba Merge pull request #61 from microsoft/removeWoxFiles
Removed the unnecessary wox files to clean up codebase
2020-04-07 09:14:56 -07:00
Alekhya Reddy
587291ab86 Removed .yml files 2020-04-07 09:14:17 -07:00
Alekhya
2cd62621df Merge pull request #60 from microsoft/removeRedXProps
Remove red x props
2020-04-07 08:19:23 -07:00
Alekhya
3630fc63d7 Merge pull request #59 from microsoft/addUseWPF
Add <useWPF> tag to calculator and remove <useWindowsForms> from Indexer plugin
2020-04-07 08:18:07 -07:00
Yevhenii Holovachov
de42d9f310 Opening settings when user is opening already running Powertoys (#1957)
* Added code to open general settings when opening second instance of powertoys
2020-04-07 13:17:18 +03:00
Seraphima Zykova
f5ed9f1c33 Editor: fixed zone offset scaling (#1876) 2020-04-07 12:03:57 +03:00
JordanAnthonyKing
01ec472314 Issue #1849: Fix for windows in the last zone being placed in the first zone when decreasing the zone count. (#1884) 2020-04-07 10:23:59 +02:00
Divyansh
9ddee84954 Title display working correctly 2020-04-06 18:01:59 -07:00
Divyansh
dc0715dc2a Rectyfying title display 2020-04-06 17:38:48 -07:00
Alekhya
b6b9fad5da Merge pull request #42 from microsoft/AddPinyinPerformance
Cherry picked pinyin performance changes from jjw24's master branch

(cherry picked from commit b9e437c6cd)
2020-04-06 16:42:27 -07:00
Divyansh
553922bef6 Added query submitted event to handle default action on clicking a list view item 2020-04-06 16:08:31 -07:00
Alekhya Reddy
4b08c0b56b To avoid DBNull to String typecast exception 2020-04-06 15:52:19 -07:00
Alekhya Reddy
ba081c7837 Renamed Wox.Launcher to Microsoft.Launcher 2020-04-06 15:48:58 -07:00
Alekhya Reddy
f4a2741ba0 Renamed Wox.Plugin.Indexer to Microsoft.Plugin.Indexer 2020-04-06 14:00:14 -07:00
Alekhya Reddy
e6b926c87f Removed the unnecessary wox files to clean up codebase 2020-04-06 13:35:45 -07:00
ryanbodrug-microsoft
4be1195e5d Merge pull request #37 from microsoft/user/ryanbod/kill_powerlauncher_exe
Adding Directory.Build.targets for launcher
2020-04-06 13:21:28 -07:00
Enrico Giordani
84ef245b56 Now working on 0.16.2 (#1959) 2020-04-06 21:38:04 +02:00
Alekhya Reddy
7b39bae673 Removed itemgrp from wox.core and wox.test csprojs 2020-04-06 11:26:32 -07:00
Alekhya Reddy
7c505fd02a Removed the item group for properties from indexer, program and shell plugin 2020-04-06 11:24:10 -07:00
Alekhya Reddy
11f7f9a231 Removed the item group for properties from folder plugin 2020-04-06 11:23:05 -07:00
Alekhya Reddy
4f1eedcf7c Removed the item group for properties from calculator plugin 2020-04-06 11:22:09 -07:00
Alekhya Reddy
99f85b800c Removed an unnecessary <useWindowsForms> tag 2020-04-06 11:02:32 -07:00
Alekhya Reddy
2e4f81f63d Added the <useWPF> tag to remove the warning 2020-04-06 11:02:05 -07:00
Divyansh
abbaca3c71 Updated functionality on suggestion chosen in autosuggestbox 2020-04-06 09:23:08 -07:00
Clint Rutkas
a9b6f976a2 Merge pull request #44 from microsoft/dev/crutkas/updatingNugetPackages
Dev/crutkas/updating nuget packages
2020-04-04 12:05:04 -07:00
Clint Rutkas
64b2a8d4a5 Merge branch 'master' into dev/crutkas/updatingNugetPackages 2020-04-04 12:04:49 -07:00
Clint Rutkas
2b550b104f Merge pull request #46 from microsoft/dev/crutkas/removeUpdater
Removing Squirrel dll.  unsure on updating so i kept that logic in
2020-04-04 12:01:36 -07:00
ryanbodrug-microsoft
564e76956a Merge pull request #26 from microsoft/user/ryanbod/removing_unnecessary_locks
User/ryanbod/removing unnecessary locks
2020-04-04 11:53:08 -07:00
Clint Rutkas
dd734c3c8a Merge branch 'master' into dev/crutkas/updatingNugetPackages 2020-04-03 19:54:50 -07:00
Clint Rutkas
35e9091863 Removing Squirrel dll. unsure on updating so i kept that logic in 2020-04-03 17:30:33 -07:00
Alekhya
b9e437c6cd Merge pull request #42 from microsoft/AddPinyinPerformance
Cherry picked pinyin performance changes from jjw24's master branch
2020-04-03 17:21:50 -07:00
Alekhya
de5f7f9b05 Merge pull request #29 from microsoft/portIndexer
Port indexer plugin to .NET Core
2020-04-03 17:08:02 -07:00
Clint Rutkas
44a9db1c2f adding two back in 2020-04-03 16:49:21 -07:00
Clint Rutkas
d7dc4bf496 updating references and removing a few that seem uneeded for how stuff is referenced 2020-04-03 16:37:59 -07:00
Divyansh
1a15a062ef Working up/down arrow key 2020-04-03 14:45:02 -07:00
Clint Rutkas
5b02501038 Merge pull request #41 from microsoft/dev/crutkas/fixCircularReference
change nuget package to msft for winrt compat
2020-04-03 14:37:04 -07:00
Enrico Giordani
c3a98b265f Add basic telemetry to WindowWalker (#1925) 2020-04-03 13:31:43 -07:00
Clint Rutkas
b92bcd1789 change nuget package to msft for winrt compat 2020-04-03 13:07:27 -07:00
Jeremy Wu
949e504ad5 Cherry picked pinyin performance changes from jjw24's master branch 2020-04-03 12:31:18 -07:00
Divyansh
293a8a8199 Working App execution 2020-04-03 12:02:57 -07:00
PrzemyslawTusinski
2806c386d3 fancyzones unity3d crash fix (#1914)
* fancyzones unity3d crash fix

* intelisence warning fix, and review issue fix

* Fix for review comment
2020-04-03 11:17:12 -07:00
Heiko
75f3a30d38 changed info text in search box (#1917)
I have changed the info text in search box to indicate the user also can search for windows.
2020-04-03 11:07:34 -07:00
Andrey Nekrasov
7cfe74b384 runner: implement automatic MSIX package uninstallation on startup (#1920) 2020-04-03 18:51:28 +02:00
udit3333
38d537bb8a Fix preview handlers failing unit tests in CI (#1856)
* Enable Unit tests for PreviewPane Test Assemblies in CI

* Added Preview handlers unit tests project back

* throw for Svg to debug tests

* Removed failing test

* Removed throw statement

* Added MD unitests in yml

* Run ui tests on STA thread

* Throw svg to debug failing tests

* Updated test adaptor

* Removed failing test to validate CI

* throw svg failing test with full stack trace

* Check if mock stream is causing the issue

* narrow down the failing tests code - 1

* narrow down the failing tests code -2

* dispose all controls

* Restore SVg preview control

* Update test adaptor and dependency to latest
2020-04-03 08:12:12 -07:00
Divyansh
b6f927c454 Added callback function for mouse click on search result 2020-04-02 18:08:02 -07:00
Alekhya Reddy
57c616abfe Remove console print statement 2020-04-02 18:03:40 -07:00
Alekhya Reddy
ad6ca65d4b windows indexer plugin is working 2020-04-02 17:49:43 -07:00
Alekhya Reddy
38490195e3 Corrected the output path for the indexer plugin 2020-04-02 15:55:30 -07:00
Alekhya Reddy
6a43b8b159 copy resource files to output folder 2020-04-02 15:53:39 -07:00
Clint Rutkas
a760acc399 Update README.md 2020-04-02 15:05:50 -07:00
Yevhenii Holovachov
cea5668a9f Disabling powertoy only if it's explicitly off (#1888)
* Disabling powertoy only if it's explicitly off
2020-04-02 21:39:40 +03:00
Divyansh
d73ab36dc3 Optimised result binding by inserting search result from multiple plugin in parallel 2020-04-02 10:30:57 -07:00
Betsegaw (Beta) Tadele
5c01e0e852 Set focus on text box control on hotkey invoke (#1859) 2020-04-02 10:24:44 -07:00
Divyansh
5a13850043 Fixed issue with wpf marshalling events to a non UI thread 2020-04-02 10:10:36 -07:00
Geert van Horrik
96fbc968ef Support device names with underscores (such as 'Default_Monitor') in JSONHelpers.isValidDeviceId (#1826)
* #1821 Support device names with underscores (such as 'Default_Monitor') in JSONHelpers.isValidDeviceId

* Make support for '#' in device names optional

* Add more unit tests for isValidDeviceId
2020-04-02 18:51:36 +02:00
Clint Rutkas
cf26a5da3d Update README.md 2020-04-01 14:23:16 -07:00
Clint Rutkas
3e21758aac Update README.md 2020-04-01 14:22:46 -07:00
Clint Rutkas
942799637e Update README.md 2020-04-01 14:22:07 -07:00
Clint Rutkas
07dd33f6de Update README.md 2020-04-01 11:57:05 -07:00
Clint Rutkas
a924af79c1 Update README.md 2020-04-01 11:56:24 -07:00
Arjun Balgovind
2422ca0847 Added unlocalized english strings to all string tables in Image Resizer (#1844) 2020-04-01 11:44:15 -07:00
Charles Pigott
5b900e7b9c off of -> on (#1842) 2020-04-01 10:30:27 -07:00
Clint Rutkas
8539a297fa Update README.md 2020-04-01 08:40:26 -07:00
Enrico Giordani
b6b873f699 Now working on 0.16.1 (#1835) 2020-04-01 17:27:13 +02:00
udit3333
94ccabd5ce Update file explorer readme (#1780)
* Updated readme

* Updated readme for file explorer module and demo gif

* Updated figure description

* Fixed typo

* Moved the localizaton instruction to separate file

* Updated coding guidance readme
2020-04-01 08:26:19 -07:00
Seraphima Zykova
ea18fa95ad Tests updates (#1793)
* updated tests for v0.16.0
Co-Authored-By: Yevhenii Holovachov <55396981+yevhenii44@users.noreply.github.com>
2020-04-01 17:05:01 +03:00
Betsegaw Tadele
b5f2c8b583 [Window Walker] Enable tabbing to scroll (#1814)
* Enable tabbing to scroll

* Also handle Shift + Tab
2020-04-01 06:09:37 -07:00
PrzemyslawTusinski
90a228619e Version helper compare operator fix (#1824)
* Version helper compare operator fix

* Simplyfy compare code
2020-04-01 13:30:21 +02:00
Seraphima Zykova
a6b7ba41ee removed tests with unused scenario that slowdown CI (#1820) 2020-04-01 13:12:29 +03:00
Clint Rutkas
bef8c846f8 Update README.md 2020-03-31 16:53:47 -07:00
Divyansh
ce2bf5ac53 Fixed exception preventing result display 2020-03-31 15:25:23 -07:00
Clint Rutkas
2fec555756 Update README.md 2020-03-31 12:58:38 -07:00
Clint Rutkas
2faaad6d3d Update README.md 2020-03-31 10:54:45 -07:00
Clint Rutkas
3a4b970c62 Main readme for 0.16 - DO NOT MERGE (#1759)
* Prep work for 0.16

* 0.16 notes first draft

* Update README.md

* small tweak
2020-03-31 10:48:42 -07:00
Clint Rutkas
05491309c2 When / why PowerToys needs to run elevated docs (#1790)
* initial doc work

* rename file to match current naming, got images working

* adjusting the "keep us functioning" section sooner

* Update run-as-admin-detection.md
2020-03-31 10:33:10 -07:00
Seraphima Zykova
e122217101 Editor custom layouts tests (#1757) 2020-03-31 15:15:51 +03:00
ryanbodrug-microsoft
81eb7de665 Adding Directory.Build.targets file to kill the PowerLauncher pprocess on Build or Clean operations of all 'Launcher' projects. 2020-03-30 19:17:01 -07:00
Barbara Kudiess
c9fe2f649a Added binding on searchBox 2020-03-30 17:58:24 -07:00
Divyansh
6dd13e4939 Updated bindings for launcher 2020-03-30 16:27:26 -07:00
Divyansh
6cc00a5a0f changed x:bind to Binding to avoid reference 2020-03-30 15:52:20 -07:00
Brice Lambson
5661be3ebd Clarify "fallback encoder" (#1788) 2020-03-30 15:35:44 -07:00
ryanbodrug-microsoft
59a2c5ce9c Merge pull request #28 from microsoft/user/ryanbod/rename_wox
Renaming Wox references
2020-03-30 11:30:17 -07:00
ryanbodrug-microsoft
73a7adea63 Using proper executable name when closing 'PowerLauncher' process 2020-03-30 09:34:58 -07:00
vldmr11080
3896384339 Set window walker overview link (#1772) 2020-03-28 19:58:39 +01:00
Clint Rutkas
3028e70a0f fixes for WindowWalker (#1767)
* #1744, #1743, #1742

* disabling commands
2020-03-27 16:25:49 -07:00
Barbara Kudiess
64416aef2b Add main view model binding 2020-03-27 16:10:49 -07:00
Arjun Balgovind
e0340dadf4 tweaked image resizer strings (#1764) 2020-03-27 15:53:03 -07:00
Barbara Kudiess
83e0cdfa1e Add missing reference 2020-03-27 15:47:54 -07:00
Divyansh
22ed3c0ca5 Added assets and behaviours 2020-03-27 15:42:25 -07:00
Barbara Kudiess
f95bc17e39 Replace Niels Code references 2020-03-27 15:32:37 -07:00
Divyansh
64a4451868 Added Neils UI code 2020-03-27 15:20:42 -07:00
stefansjfw
ead47b2aa2 Remove unneded assignments (#1755)
* Remove uneeded assignments

* Use const iterators
2020-03-27 23:12:41 +01:00
udit3333
3e9e6c3e73 Added overview link (#1762) 2020-03-27 15:10:56 -07:00
Barbara Kudiess
b8e957ff9a adding support for xaml islands 2020-03-27 15:04:34 -07:00
Arjun Balgovind
2aa12631f8 Changed default value of m_enabled (#1756) 2020-03-27 14:35:42 -07:00
ryanbodrug-microsoft
7feaa505c2 Renaming AppData directory from 'Wox' to 'PowerLauncher'. Also replacing issue link with powertoys github. 2020-03-27 14:11:00 -07:00
ryanbodrug-microsoft
b0e6e31d92 Renaming executable to PowerLauncher. Replaceing icons with placeholder. Deleting Docs folder 2020-03-27 14:11:00 -07:00
Arjun Balgovind
068e803bc8 Added GetEnabled in constructor (#1753) 2020-03-27 13:53:21 -07:00
Arjun Balgovind
a4749d376a Removed registry writing code (#1748) 2020-03-27 13:52:54 -07:00
Barbara Kudiess
71992f5b17 Merge pull request #18 from microsoft/dotnet-core-upgrade
.NET Core Upgrade
2020-03-27 13:38:37 -07:00
Clint Rutkas
3897fc5666 Update README.md 2020-03-27 11:42:52 -07:00
Clint Rutkas
315b303b4f Create README.md 2020-03-27 11:41:47 -07:00
Barbara Kudiess
d665c37bc3 Adding dependency 2020-03-27 11:30:44 -07:00
Barbara Kudiess
c5df7d4249 Merge branch 'master' into dotnet-core-upgrade
# Conflicts:
#	src/modules/launcher/Wox.Core/Wox.Core.csproj
2020-03-27 10:25:39 -07:00
Andrey Nekrasov
c5988e412d Bump PowerToys version 🥳 (#1739) 2020-03-27 18:26:07 +03:00
PrzemyslawTusinski
f2744493b9 Dragging to another monitor doesn't activate fancy zone placement fix (#1736) 2020-03-27 16:09:37 +01:00
Ivan Stošić
a6793588c6 Fixed some recent compiler warnings (#1734) 2020-03-27 16:01:24 +01:00
Andrey Nekrasov
958198b65a Settings: fix broken "Restart as administrator" button (#1733) 2020-03-27 17:38:58 +03:00
Ivan Stošić
5605256c75 Prevent Window Walker from having multiple running instances (#1729)
* Prevent Window Walker from having multiple running instances

* Removed "Global" to allow multiple users to run Window Walker
2020-03-27 15:24:27 +01:00
Enrico Giordani
35c7124617 Add Window Walker icon (#1731) 2020-03-27 15:17:36 +01:00
Seraphima Zykova
f124cd9c7e Disabled FancyZones unit tests related to disabled features (#1728) 2020-03-27 15:40:41 +03:00
PrzemyslawTusinski
f9a756d1ff FancyZones editor display zone numbers & PowerRename fix (#1726)
* Fix for issue #1218

Design Change: Default Enter Action

* Fix for issue #1085

* change zone's number color and font
remove the light blue background

* Fix for disappearing zone number in editor

* Grid layout reversed order fix

Co-authored-by: sqrlmn <sqrlmn@users.noreply.github.com>
Co-authored-by: Enrico Giordani <enrico.giordani@gmail.com>
2020-03-27 13:07:19 +01:00
Andrey Nekrasov
0aeecc7a99 MSI: sign remaining binaries (#1725) 2020-03-27 14:56:45 +03:00
Andrey Nekrasov
3646e6ea13 MSI: add WindowWalker module (#1723)
* MSI: add WindowWalker module
2020-03-27 14:35:01 +03:00
Andrey Nekrasov
d2a60c7287 FZ: disable flash zones option for 0.16 (#1721)
* FZ: disable flash zones option for 0.16

* fixup! review comments
2020-03-27 13:24:27 +03:00
yuyoyuppe
e794604cae settings: add "Learn more about Admin mode" link 2020-03-27 13:23:37 +03:00
yuyoyuppe
60fa6071b9 FZ: warn w/ a toast if an elevated window cannot be dragged and offer learning more 2020-03-27 13:23:37 +03:00
Alekhya
cdad6f74cf Merge pull request #27 from microsoft/UpdateConfigsTox64
Update configs tox64
2020-03-26 18:20:17 -07:00
Alekhya Reddy
549de55b57 Removed anycpu of test proj 2020-03-26 18:05:07 -07:00
Alekhya Reddy
686432aa8a Remove anyCPU config and changed it to x64 2020-03-26 18:03:42 -07:00
Divyansh Srivastava
c2e219b446 Display infobar for blocked relative image path (#1695)
* Updated Parsing extension to show infobar when relative URL isblocked and updated corresponding tests

* Updated Controller to display infobar when html img tag is embedded in markdown
2020-03-26 15:17:28 -07:00
udit3333
15cefc664a Svg Icon for Power preview module (#1718)
* Added svg icon for power preview

* Updated bundle.js
2020-03-26 13:58:52 -07:00
Betsegaw Tadele
38fc9f00a2 Kill WW app on exit (#1699)
Co-authored-by: Beta Tadele <betadele@microsoft.com>
2020-03-26 13:43:01 -07:00
ryanbodrug-microsoft
2673b9dd03 Merge pull request #25 from microsoft/user/ryanbod/adding_build_dependency_on_woxlauncher_and_plugins_on_wox
Updating build dependencies.  Wox.Launcher wasn't built as part of th…
2020-03-26 13:17:35 -07:00
Arjun Balgovind
ff6c86b932 Set the fill property to currentColor in the Image Resizer svg (#1714) 2020-03-26 11:25:51 -07:00
PrzemyslawTusinski
c247e49c2a Fancy zones on all monitors - when dragging window to another monitor sometimes zone stays marked as active on previous FIX (#1709) 2020-03-26 17:48:01 +01:00
Andrey Nekrasov
0c0dddab12 chore: fix WinRT-related warnings (#1710) 2020-03-26 16:31:59 +03:00
Andrey Nekrasov
1c39b76b83 MSIX: update PowerRenameUWPUI path (#1708) 2020-03-26 15:25:19 +03:00
Seraphima Zykova
f72dd7fdb6 added telemetry for editor launch event (#1705) 2020-03-26 13:54:12 +03:00
stefansjfw
5a5b5292a1 Order PowerToys aplhabetically Settings (#1706)
* Order PowerToys aplhabetically in both Settings list and General Settings enable's list

* Remove uneeded include
2020-03-26 11:51:05 +01:00
ryanbodrug-microsoft
d6fce7c099 removing locks from the ResultListBox code behind file. All callbacks are accessed from the Main/UI thread. 2020-03-25 16:34:56 -07:00
Alekhya
93e2cc367b Merge pull request #21 from microsoft/removePythonDependency
Remove python dependency in Wox code
2020-03-25 16:30:10 -07:00
ryanbodrug-microsoft
de3ee932b6 Updating build dependencies. Wox.Launcher wasn't built as part of the F5 Experience, and nor were the plugins 2020-03-25 15:46:34 -07:00
Barbara Kudiess
b051a3981d Merge branch 'master' into dotnet-core-upgrade
# Conflicts:
#	src/modules/launcher/Wox/Wox.csproj
2020-03-25 14:40:41 -07:00
ryanbodrug-microsoft
ed3b4088d9 Merge pull request #24 from microsoft/user/ryanbod/add_wox_build_dependency_to_runner
Adding dependency to wox project on the runner.  This should make sur…
2020-03-25 13:25:15 -07:00
ryanbodrug-microsoft
2aae667e15 Adding dependency to wox project on the runner. This should make sure the wox.exe can be build and launched by the runner so wox can run as a background process. 2020-03-25 11:46:07 -07:00
Alekhya
a6604172d9 Merge pull request #23 from microsoft/portIndexerPlugin
Port indexer plugin to .NET Core 3.1
2020-03-25 11:06:43 -07:00
vldmr11080
e85427f1da Disable Win+Ctrl+Number feature for 0.16 release (#1689) 2020-03-25 18:32:33 +01:00
ryanbodrug-microsoft
572a121492 Merge pull request #22 from microsoft/user/ryanbod/remove_throw_from_log_exception_in_debug
Remove code to rethrow exceptions in debug
2020-03-25 09:28:14 -07:00
PrzemyslawTusinski
f8f7fe4f33 Fancy zones ui update( zone numbering as numbers, dragged window transaprency option, zone coloring customization) (#1666)
* Fancy zones ui update (#4)

* Draft of numeric fancyzones with numbers

* Added support for zone color configuration, improved zone number display

* Changed order of settings to more logical

* Added option to edit zone border color

* Trancparency of dragged window, transparency of displayed zones, changed font of zone numbers

* Fix for compilation

* Some refactor

* Introduced gdiplus to draw zone and zone index

* Fix for dissappering windows

* Some fixes

* another merge fix

* another merge fix

* Unit test merge fix

* Transparency with show zones on all fix

* indentation fix

* Fix for failing test

* Changed order of color pickers

* "Zone Opacity"

* Zone opacity (%)

* Added option to turn off dragged window transparency, changed default zones color values
2020-03-25 15:38:44 +01:00
stefansjfw
b835716e36 Set PowerRename context menu hotkey to 'w' (#1673) 2020-03-25 11:12:38 +01:00
stefansjfw
1476395829 Enable non-ascii chars (#1669)
* Enable non-ascii chars

* Follow file naming policy

* Use stream read and write methods

* Remove obsolete close() calls

* Revert "Remove obsolete close() calls"

This reverts commit 7006bcb038.

* Revert "Use stream read and write methods"

This reverts commit ec06a1a05b.
2020-03-25 11:11:27 +01:00
stefansjfw
8156279025 Use JsonSerializer instead of Utf8Writer (#1670)
* Use JsonSerializer instead of Utf8Writer

* Rename method
2020-03-25 11:11:18 +01:00
Alekhya Reddy
1822f36aba Changed the anyCPU config to x64 for windows indexer plugin 2020-03-24 16:27:49 -07:00
udit3333
7f1a854769 Update settings logic for file explorer preview (#1651)
* Update logic of settings for File Explorer preview

* Updated logic and added Unit tests

* Fix compiler warning for powerpreview project

* Update enable logic

* Update Disable logic

* Updated telemetry events
2020-03-24 16:23:27 -07:00
Alekhya Reddy
0c8e3515fe readding the plugin.json file 2020-03-24 16:18:26 -07:00
Alekhya Reddy
5b5f48014b Removed the .net framework indexer folder 2020-03-24 16:15:58 -07:00
Alekhya Reddy
d9e1dce393 Added the test project back 2020-03-24 16:13:02 -07:00
Alekhya Reddy
79fd5dc7b1 Ported Indexer plugin to .net core 3 2020-03-24 16:07:17 -07:00
ryanbodrug-microsoft
7183bea412 All wox exceptions in debug are getting rethrown, and thus causing the app to crash. This change removes the debug specific code and allows exceptions to be handled the same was as release. 2020-03-24 16:01:37 -07:00
Barbara Kudiess
6e2ad28676 Fix internal variable 2020-03-24 14:21:06 -07:00
Barbara Kudiess
444b0b30c3 Undo change internal 2020-03-24 14:07:52 -07:00
Barbara Kudiess
cdef2dee5a deleting unused project files 2020-03-24 13:54:06 -07:00
Barbara Kudiess
a1036577a2 Fix Wox build in project settings 2020-03-24 13:37:49 -07:00
Arjun Balgovind
badcccab76 Added icon for Image Resizer in PowerToys Settings (#1662)
* Added PictureStretch icon for Image Resizer

* Changed to old hash font setting

* Fixed missing icon

* Reverted changes on subset and settings files

* Added Image resizer svg icon
2020-03-24 11:32:01 -07:00
vldmr11080
9e8facaa6f Windows snap hotkeys to move windows between screens (#1603)
* When moving window into zones using arrow keys, support multi-monitor scenario

* Minor coding style adjustments

* Split implementation into separate functions because of readability

* Rename certain arguments

* Modify unit tests after API changes

* Address PR comments and add unit tests

* Return true from MoveWindowIntoZoneByDirection only if window is successfully added to new zone

* Improved monitor ordering (#1)

* Implemented improved monitor ordering v1

* Fixed some embarrassing bugs, added some tests

* Added one more test

* Extracted a value to a variable

* ASCII art in unit test comments describing monitor layouts

* Removed empty line for consistency

* Update comment to match the code

* Refactored tests, added tests for X,Y offsets

Co-authored-by: Ivan Stošić <ivan100sic@gmail.com>
2020-03-24 18:50:26 +01:00
Seraphima Zykova
7c0c75ca42 Editor templates tests update (#1667)
* added zone count tests
* fixed launch flag
2020-03-24 17:27:22 +03:00
Seraphima Zykova
e32d619677 Editor tests: apply templates (#1648)
* apply templates tests
* moved settings reset methods
2020-03-24 11:32:12 +03:00
pi1024e
6f2801cea8 C++ headers (#1660) 2020-03-24 08:51:23 +01:00
Barbara Kudiess
76d402fcfa Merge branch 'master' into dotnet-core-upgrade
# Conflicts:
#	src/modules/launcher/Plugins/Wox.Plugin.BrowserBookmark/Wox.Plugin.BrowserBookmark.csproj
#	src/modules/launcher/Plugins/Wox.Plugin.Calculator/Wox.Plugin.Calculator.csproj
#	src/modules/launcher/Plugins/Wox.Plugin.Color/Wox.Plugin.Color.csproj
#	src/modules/launcher/Plugins/Wox.Plugin.ControlPanel/Wox.Plugin.ControlPanel.csproj
#	src/modules/launcher/Plugins/Wox.Plugin.Everything/Wox.Plugin.Everything.csproj
#	src/modules/launcher/Plugins/Wox.Plugin.Folder/Wox.Plugin.Folder.csproj
#	src/modules/launcher/Plugins/Wox.Plugin.Indexer/Properties/AssemblyInfo.cs
#	src/modules/launcher/Plugins/Wox.Plugin.Indexer/Wox.Plugin.Indexer.csproj
#	src/modules/launcher/Plugins/Wox.Plugin.PluginIndicator/Wox.Plugin.PluginIndicator.csproj
#	src/modules/launcher/Plugins/Wox.Plugin.PluginManagement/Wox.Plugin.PluginManagement.csproj
#	src/modules/launcher/Plugins/Wox.Plugin.Program/Wox.Plugin.Program.csproj
#	src/modules/launcher/Plugins/Wox.Plugin.Shell/Wox.Plugin.Shell.csproj
#	src/modules/launcher/Plugins/Wox.Plugin.Sys/Wox.Plugin.Sys.csproj
#	src/modules/launcher/Plugins/Wox.Plugin.Url/Wox.Plugin.Url.csproj
#	src/modules/launcher/Plugins/Wox.Plugin.WebSearch/Wox.Plugin.WebSearch.csproj
#	src/modules/launcher/Wox.Core/Wox.Core.csproj
#	src/modules/launcher/Wox.Infrastructure/Wox.Infrastructure.csproj
#	src/modules/launcher/Wox.Plugin/Wox.Plugin.csproj
#	src/modules/launcher/Wox.Test/Wox.Test.csproj
#	src/modules/launcher/Wox/Wox.csproj
2020-03-23 17:28:10 -07:00
Arjun Balgovind
a55b0aeb5f Update Image Resizer Readme and add Settings Verbiage (#1661)
* Fixed rc file settings description string

* Added moved settings verbiage

* Updated Image Resizer readme

* Fixed section link

* minor changes to readme

* Fixed extra space

* Updated figures to markdown

* removed html center and img tags
2020-03-23 17:13:47 -07:00
Alekhya Reddy
75e5b1c7cd Manually resolving conflicts 2020-03-23 16:18:52 -07:00
Divyansh Srivastava
7af2f4a98a Merge pull request #20 from microsoft/somil55/removeSystemtray
Somil55/remove systemtray
2020-03-23 16:09:26 -07:00
udit3333
f50bcb981a Updated Preview handler readme for installation section (#1654)
* Updated Preview handler readme for installation section

* fix typo

* Added warning in MSIX installation section
2020-03-23 15:45:16 -07:00
Alekhya Reddy
08bcebfc1c Removed the localized string translations from pythonDirectory and SelectPythonDirectory 2020-03-23 15:38:35 -07:00
Alekhya Reddy
ae31ecf706 Remove python bindings 2020-03-23 15:35:06 -07:00
Alekhya Reddy
4dac1ae9f8 Removed UI related to python path and the bindings related to that 2020-03-23 15:33:39 -07:00
Alekhya Reddy
db253cdaf8 Removed python path and python plugin functions 2020-03-23 15:23:09 -07:00
Divyansh
4b05929dd5 Readded necessary callback functions 2020-03-23 14:54:11 -07:00
Divyansh
7c174b9c05 Removed setting UI XAML file and references 2020-03-23 14:37:43 -07:00
Arjun Balgovind
82596b9c3f MSIX: Fix for Heap Corruption bug in ImageResizer (#1655) 2020-03-23 12:14:03 -07:00
Divyansh
6414fe8cf8 Removed notify icon component 2020-03-23 12:13:13 -07:00
Alekhya
8e2b18ea1d Merge pull request #19 from microsoft/removePluginsSourceTree
Remove plugins from source tree and convert anyCPU config to x64
2020-03-23 10:56:18 -07:00
Alekhya
c57b55ede6 Merge pull request #15 from microsoft/terminateLauncher
Terminate wox when we exit PowerToys
2020-03-23 08:53:54 -07:00
Seraphima Zykova
72a0341a0e Editor templates tests (#1639)
* edit-cancel tests for templates
* edit-save tests for templates
2020-03-21 16:35:23 +03:00
Alekhya Reddy
98b9503461 set optimize code to false 2020-03-20 17:31:27 -07:00
Alekhya Reddy
417310b5c5 Set warning level 4 : Debug 2020-03-20 17:23:09 -07:00
Alekhya Reddy
08d0db87d1 Set warning level to 4 : Release 2020-03-20 17:19:13 -07:00
Alekhya Reddy
18bf1400a7 Added the build paths for release x64 (removed AnyCPU) 2020-03-20 17:05:58 -07:00
Alekhya Reddy
3b3dca4a26 Removed the AnyCPU config - Debug 2020-03-20 16:53:47 -07:00
Alekhya Reddy
82ee5bf1fd Added x64 for all Wox project - Debug mode 2020-03-20 16:40:39 -07:00
Alekhya Reddy
398666a8b4 Merge branch 'master' of https://github.com/microsoft/Launcher into terminateLauncher 2020-03-20 16:20:50 -07:00
Barbara Kudiess
7d1e60a019 Fix postbuild event 2020-03-20 15:01:38 -07:00
bkudiess
d7736f798b add missing files 2020-03-20 14:51:02 -07:00
Alekhya Reddy
c20be3dbea Removed unnecessary plugins from source tree 2020-03-20 14:46:11 -07:00
Andrey Nekrasov
e52c5d38d3 Cleanup project output/intermediate dirs (#1640)
* sln: set output dir prefix to "modules\" for all modules

* sln: CopyToOutputDirectory only when necessary

* sln: intermediate dir for csprojs

* sln: intermediate dir for vcxprojs

* sln: add PT as runner project deps + remove nonexisting project confs

* sln: remove AnyCPU for win-app-driver project
2020-03-20 21:41:48 +03:00
Clint Rutkas
6662cf6245 Verbage changes, including #1274 (#1629)
* verbage changes

* lower cased extention

* fixing oops
2020-03-20 11:31:59 -07:00
bkudiess
0f78f1b333 Copy from Jeremy's fork PR 2020-03-20 09:43:42 -07:00
Alekhya
2efe58209f Merge pull request #7 from microsoft/windowsIndexerPlugin
Windows indexer plugin
2020-03-20 08:38:41 -07:00
udit3333
d420fad489 Add info bar if blocked elements present in Svg (#1620)
* Added logic to check for blocked elements

* Added unit tests

* Fix warnings from msi solution
2020-03-20 08:28:47 -07:00
vldmr11080
49868d8f7c Fix migration of rows and columns percents from registry (#1641) 2020-03-20 13:48:24 +01:00
Yevhenii Holovachov
dee6dc1e6c Added zone count test and "WaitElementBy..." methods (#1645) 2020-03-20 12:47:57 +02:00
Seraphima Zykova
35054c1f59 Editor opening tests (#1633)
* editor opening tests
* moved fancy zones opening method
* moved settings restore to base class
* changed launch
* fixed tray button search 
* added exit function
2020-03-19 19:25:51 +03:00
Enrico Giordani
f507ef5e56 Update dev doc github workflow (#1618) 2020-03-19 17:10:25 +01:00
vldmr11080
57f763b0b6 Check key existance before getting it from JSON (#1632) 2020-03-19 09:21:10 +01:00
Alekhya Reddy
7a3c326442 Code to terminate wox when we exit PowerToys 2020-03-18 16:13:36 -07:00
Alekhya Reddy
1842c9ed3b Merge branch 'master' of https://github.com/microsoft/Launcher into windowsIndexerPlugin 2020-03-18 14:53:41 -07:00
Alekhya
855f092682 Merge pull request #4 from microsoft/launcherInRunner
Added wox to the runner of PowerToys
2020-03-18 14:05:37 -07:00
Alekhya Reddy
cafe267bf0 Removed commented out code 2020-03-18 13:57:01 -07:00
Clint Rutkas
81710ff3b0 update bundle with fixes (#1608) 2020-03-18 09:52:08 -07:00
Ivan Stošić
1c90107571 Implement canceling edits in FZE, fix crashes related to canceling. (#1610)
* Implemented proper canceling for CanvasEditor

* Implemented proper canceling for GridEditor

* Possible fix for a crash in my implementation of canceling

* Fixed a crash in FZE/Grid editor
2020-03-18 14:13:25 +01:00
vldmr11080
ff0c021162 Check if settings file is open before parsing JSON content from it (#1616) 2020-03-18 11:17:57 +01:00
Alekhya Reddy
ca916deda9 Made the code unit testable and added unit tests for the indexer plugin 2020-03-17 15:37:30 -07:00
Betsegaw Tadele
f0f044b766 Add Window Walker to module list (#1613) 2020-03-17 15:19:36 -07:00
Alekhya Reddy
69758b80a5 Refactored the code to make it unit testable 2020-03-17 11:28:21 -07:00
stefansjfw
98ed178d7b Double-qoute the paths when passing them as cmd args (#1604) 2020-03-17 18:12:32 +01:00
Seraphima Zykova
419fc15d77 WinAppDriver tests (#1371)
* added test project
* added FancyZonesSettings tests
2020-03-17 18:03:02 +03:00
PrzemyslawTusinski
72eb76191f Fixed issue with autostarting as admin even if it should as user, fixed issue with autostart permissions bug (#1538)
* Fixed issue with autostarting as admin even if it should as user, fixed permissions issue for autostart configuration

* Indentation fix

* Added support for all cases of autostart task modifying

* Fix for compilation
2020-03-17 11:04:45 +01:00
Alekhya Reddy
7164260f6e Modified the output paths to create the dll for the plugin in the correct location 2020-03-17 06:07:21 +05:30
Alekhya Reddy
f5e474f250 Added plugin.json to the project 2020-03-17 06:03:11 +05:30
Alekhya Reddy
9a84fc5b47 Minor changes in project files 2020-03-17 06:01:34 +05:30
Alekhya Reddy
248a689de2 Added the plugin.json file 2020-03-17 06:01:05 +05:30
Alekhya Reddy Kommuru
4da33b81fd Added the image 2020-03-16 17:25:04 -07:00
Alekhya Reddy Kommuru
657a1aaed5 Added the images folder which contains the windows indexer icon 2020-03-16 14:58:25 -07:00
Alekhya Reddy Kommuru
415b7bf4d1 Added references and renamed a class 2020-03-16 14:45:37 -07:00
Clint Rutkas
d8c1cb2629 fix for #1595 (#1598)
* fix for #1595

tweaking this fixed it.

* Update msi_to_msix_upgrade_lib.vcxproj
2020-03-16 14:43:58 -07:00
Alekhya Reddy Kommuru
ea75a56d33 Added the main and settings file which declare most of the plugin interfaces 2020-03-16 14:42:40 -07:00
Alekhya Reddy Kommuru
8e45c41f20 Created a helper class to use indexer and return search results 2020-03-16 14:37:28 -07:00
Alekhya Reddy Kommuru
dacd13ee30 Added a SearchResult Helper class 2020-03-16 14:30:38 -07:00
Seraphima Zykova
f49727e0b6 Invalid json test cases + strings validation (#1558)
* added tests for invalid json types
* guid strings validation
* device id validation
2020-03-17 00:29:13 +03:00
dependabot[bot]
1fc67984a2 Bump acorn from 5.7.3 to 5.7.4 in /src/settings-web (#1588)
Bumps [acorn](https://github.com/acornjs/acorn) from 5.7.3 to 5.7.4.
- [Release notes](https://github.com/acornjs/acorn/releases)
- [Commits](https://github.com/acornjs/acorn/compare/5.7.3...5.7.4)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-03-16 10:24:45 -07:00
Ivan Stošić
2cc6d2ef11 Fixed some compiler warnings (#1577)
* Fixed some compiler warnings

* Changed long to int
2020-03-16 17:54:30 +01:00
Alekhya
40cc4f32d0 Merge pull request #2 from microsoft/updateREADME
Update readme
2020-03-16 09:18:41 -07:00
Alekhya Reddy Kommuru
9537dd793d Localized the strings of Launcher 2020-03-16 08:34:26 -07:00
Enrico Giordani
96a7e4f7ac disable unit tests in CI (#1592)
due to continue failures in CI for no apparent reason.
2020-03-16 16:19:13 +01:00
Alekhya Reddy Kommuru
16d1245b64 changed the name to be displayed from Wox.Launcher to Launcher 2020-03-16 08:03:53 -07:00
Alekhya Reddy Kommuru
06eac367f2 modified the additional include directories for the release version 2020-03-16 08:01:00 -07:00
Alekhya Reddy Kommuru
78a6ab89f9 Readded the reference to common 2020-03-16 07:55:51 -07:00
Alekhya Reddy Kommuru
f77bacb8a6 added the wox launcher dll 2020-03-16 07:55:27 -07:00
Alekhya Reddy Kommuru
94387e8698 added functions to remove the abstract class error 2020-03-16 07:46:56 -07:00
Alekhya Reddy Kommuru
aebdc0c5d6 Added launcher to runner 2020-03-16 07:45:01 -07:00
Alekhya Reddy Kommuru
113c39c11c added shellapi header 2020-03-16 07:38:35 -07:00
Alekhya Reddy Kommuru
078656fb8b Added the code to launch another process 2020-03-16 07:38:12 -07:00
Alekhya Reddy Kommuru
c4b49ce6cd Added launcher project and changed references to common 2020-03-16 07:34:05 -07:00
udit3333
97e98d2725 Remove failing Svg Preview Handler Unit Tests in CI (#1583)
* Commented out failing unit tests and changed the output directory of unit tests project

* Enabled Assembly redirect

* removed SvgPreviewHandlerUnitTests and PreviewPaneCommonUnitTests from the solution

* Removed the commented code project itself is removed from sln
2020-03-16 13:34:16 +01:00
Yevhenii Holovachov
02857d1b7f Some refactoring of FancyZones::IsInterestingWindow and added Unit Tests (#1521)
* Some refactoring of FancyZones::IsInterestingWindow and added UnitTests
2020-03-16 14:25:30 +02:00
Ivan Stošić
04027b9c32 Temporarily removed a test with huge running time on Azure (#1591) 2020-03-16 13:18:19 +01:00
Enrico Giordani
969d71b264 Fix for build break (#1573) 2020-03-13 19:40:28 +01:00
Alekhya
174789e2e1 Merge pull request #1 from microsoft/integrateWox
Integrate Wox projects into PowerToys
2020-03-13 11:33:50 -07:00
Alekhya Reddy Kommuru
eb535acb95 minor modifications in README 2020-03-13 11:29:50 -07:00
Alekhya Reddy Kommuru
5540c8b06f updated README with setup, build launcher and pull code from other repositories 2020-03-13 11:25:53 -07:00
Clint Rutkas
8c17d825d9 moving the license.rtf file out of the root dir. compiled both msix and msi and both worked. (#1565) 2020-03-13 08:48:24 -07:00
PrzemyslawTusinski
0af6348913 Fancy zones: show active layouts on all monitors (#1553)
Added option to show fancy zones on all monitors with layouts simultaneously
Co-authored-by: Ivan Stošić <ivan100sic@gmail.com>
2020-03-13 15:56:23 +01:00
Andrey Nekrasov
0ac6c01d65 runner: simplify powertoy_module interface (#1560) 2020-03-13 12:55:15 +03:00
Seraphima Zykova
4c1dfbaddd Run unit tests in CI (#1568) 2020-03-13 12:53:55 +03:00
Alekhya Reddy Kommuru
258acfdf5a fixing merge conflicts 2020-03-12 16:03:40 -07:00
Microsoft Open Source
d875dab29b Initial SECURITY.md commit 2020-03-12 14:43:34 -07:00
Microsoft Open Source
1f9b2cd48c Initial README.md commit 2020-03-12 14:43:33 -07:00
Microsoft Open Source
6ee4a6a5b4 Initial LICENSE commit 2020-03-12 14:43:32 -07:00
Microsoft Open Source
4989396abc Initial CODE_OF_CONDUCT.md commit 2020-03-12 14:43:30 -07:00
Andrey Nekrasov
398b7a5a25 MSIX: add debug configuration option for package building (#1561) 2020-03-13 00:37:30 +03:00
Clint Rutkas
3e267bc77a simplifying CoC and point to CoCmd 2020-03-12 13:48:38 -07:00
Arjun Balgovind
d84cc370c9 Merge ImageResizer into master (#1469)
* Import Image Resizer for Windows

* getting code analysis and stylecop hooked in

* upgrading to 4.7.2

* adding copyright

* getting stuff to work

headers and trailing commas

adding braces

updated encoder

* Revert "getting stuff to work"

This reverts commit 5310866120.

* update to .net 4.7.2

* access modifier

* zero errors

* Fixed unit tests not running issue

* Fixed ImageResizer.Test stylecop warning

* Formatted ShellExtensions project with clang-format

* Fixed annotation warnings

* Suppressed 6031 and 26812 warnings for specific lines

* Shifting ImageResizer projects to PowerToys solution (#1054)

* Shifted ImageResizer projects to PowerToys solution: Builds, all tests pass, ImageResizer C# project works independently

* Deleted extra files

* Deleted nuget config file and fixed code analysis paths

* Convert ImageResizer to a PowerToy (#1073)

* Updated vcxproj file with common project references and cpp version flags

* Added module template code to dllmain and updated headers for successful build

* Removed unnecessary include

* Added dll to runner and add fixes to show up in PT Settings

* Added settings file

* Added support for enabling/disabling based on PowerRename codebase

* Fixed missing braces

* Fixed call_custom_action

* Add ImageResizer to msi installer (dev/imageResizer) (#1094)

* Updated vcxproj file with common project references and cpp version flags

* Added module template code to dllmain and updated headers for successful build

* Removed unnecessary include

* Added dll to runner and add fixes to show up in PT Settings

* Added settings file

* Added support for enabling/disabling based on PowerRename codebase

* Fixed solution file configurations

* Removed Any CPU from ImageResizer csprojs

* Renamed registry writing and removed build time registry addition

* Added ImageResizer installation details to msi

* Fixed comment on conditions to close explorer.exe

* Sync dev/imageResizer with master (#1105)

* tweaking language

* adjusting elevated permission verbiage to match Windows

* npm audit fix to update stuff

* slight bump for fabric ui

* Remove unwanted files (#1037)

Add temp build files to gitignore

* Ensure previous search and replace texts are evaluated and updated in the UI at startup (#1043)

Ensure stored settings get evaluated after initial enumeration

There was a bug where the list view was not getting updated with the results of the search and replace on launch when we are using a stored search or replace text from a previous session.

* adding fancy zone opacity setting, enhancement #631 (#1008)

* adding fancy zone opacity setting, enhancement #631

* applying zone opacity setting to all zones during zone selection

* changing opacity setting to percentage

* runner: show message box when restarting with different elevation fails (#1061)

Also make the message box appear on top of the settings window.

* Fix misaligned display of zones in layout priview and grid editor (#1010)

Fix misaligned display of zones in layout preview and grid editor

* MSIX: Extract MSIX building functionality from msix_reinstall.ps1 to a separate script (#1068)

* MSIX: label PowerToys as Preview (#1090)

* MSIX: Code sign msixbundle (#1093)

* Update to MSIX README.md (#1095)

* Update README.md

few adjustments

* Update README.md

* Update README.md

* adding in privacy statement, removing About in dialog (#1087)

* adding in privacy statement, removing About in dialog

* added Preview

* Revert "Fix misaligned display of zones in layout priview and grid editor (#1010)" (#1097)

This reverts commit d03690cffd.

* Fix reversed order of zones in layout (#1071)

* Shifted three functions to common (#1101)

Co-authored-by: Clint Rutkas <clint@rutkas.com>
Co-authored-by: Enrico Giordani <enricogior@users.noreply.github.com>
Co-authored-by: Chris Davis <chrisdavis@outlook.com>
Co-authored-by: Yosef Durr <yodurr@microsoft.com>
Co-authored-by: Bartosz Sosnowski <bzoz@users.noreply.github.com>
Co-authored-by: vldmr11080 <57061786+vldmr11080@users.noreply.github.com>
Co-authored-by: yuyoyuppe <yuyoyuppe@users.noreply.github.com>

* Revert "Sync dev/imageResizer with master (#1105)"

This reverts commit db7f15541f.

* Added icon to Resize pictures context menu entry (dev/imageResizer) (#1113)

* Updated vcxproj file with common project references and cpp version flags

* Added module template code to dllmain and updated headers for successful build

* Removed unnecessary include

* Added dll to runner and add fixes to show up in PT Settings

* Added settings file

* Added support for enabling/disabling based on PowerRename codebase

* Fixed solution file configurations

* Removed Any CPU from ImageResizer csprojs

* Renamed registry writing and removed build time registry addition

* Added ImageResizer installation details to msi

* Shifted to MII, TODO: Fix position

* Incorporated ImageResizer Icon in context menu entry

* Fixed typo

* Merged with dev/imageResizer

* Renamed Advanced Options to Settings and removed About tab (dev/imageResizer) (#1123)

* Removed about tab, renamed advanced opt to settings, changed assembly info

* Restored Resource designer file

* Reverted changes on AssemblyInfo

* MSI: Fix ImageResizer menu item position (dev/imageResizer) (#1114)

* Updated vcxproj file with common project references and cpp version flags

* Added module template code to dllmain and updated headers for successful build

* Removed unnecessary include

* Added dll to runner and add fixes to show up in PT Settings

* Added settings file

* Added support for enabling/disabling based on PowerRename codebase

* Fixed solution file configurations

* Removed Any CPU from ImageResizer csprojs

* Renamed registry writing and removed build time registry addition

* Added ImageResizer installation details to msi

* Shifted to MII, TODO: Fix position

* Incorporated ImageResizer Icon in context menu entry

* Changed registry entries to SystemFileAssociations and added index changes in InsertMenuItem

* Fixed extra newline

* Fixed merge conflict

* Refactor ImageResizer code base naming to match PowerRename (#1121)

* Created empty README file

* Renamed dll project

* Removed ShellExtensions references in src

* Fixed ImageResizerUI assembly name and added changes to MSI

* added the helper functions

* localized dllmain powerrename

* localized powerRenameExt

* localized the settings file

* built the proj

* Modified resourceIDs for strings in the table

* added common as a reference project

* Removed get_res_string_wchar and used the get_resource_string() function instead which returns a wstring typecast into wchar*

* Added new lines to the end of the file

* Removed string resources from the settings.cpp file

* rebuilt project PowerRename

* moved app name to constructor to init only once

* updated formatting of common.cpp

* reverting formatting of files

* Removed some IDs from resource file. Changed SHIFT to Shift

* Localizing C# Project of FancyZones (FancyZonesEditor) (#199) (#1122)

* removed hardcoded strings from CanvasEditorWindow.xaml

* removed hardcoded strings from GridEditorWindow.xaml

* loc

* Localized MainWindow

* reverting MainWindow.xaml as it is not rendering the window as expected

* Changed the resource settings from internal to public

* the culture is set based on the culture of the system UI set in the system settings

* Removed the french resource files used for testing

* Localized canvasWindow and mainwindow

* Removed setting the UI culture explicitly as it would be implicitly set to the culture of system UI

* Removed redundant header file

* Localize the Shortcut guide PowerToy (#199) (#1126)

* Localized shortcut_guide.cpp

* localized overlay_window.cpp

* formatting changes

* Localize overlay window

* removed the README link from the set of localized resources

* Typo: changed upper to lower

* Localize C++ Projects of FancyZones (#1130)

* localized dllmain.cpp  of fancyzones project

* localized FancyZones.cpp

* format fancyzones.rc file

* Moved SuperFancyZones back to being a string instead of having it in the resource file as it is the window class name

* reverted changes for window name

* Formatted fancyzones rc file

* Align zone dimensions from layout preview with those from grid editor (#1115)

* MSIX: add a dedicated .rc for UWPUI which joins both UI and DLL .rc's (#1139)

* Runner: fix restarting with same elevation (#1133)

* MSIX: reinstall script uses bundle instead of .msi to be able to reinstall in all cases

* Telemetry: add WebView init failure errors

* Settings: initialize COM security to allow communication between elevated Settings and WebView

* Common: implement on_scope_exit helper and typed_storage

* Changes for #1140 and #569 (#1152)

* MSIX build instructions adjustmnet (#1170)

* MSIX: hide the "Run at Startup" option if running as packaged

* MSIX: update identity name and publisher (#1176)

* Runner: fix startup task state setting for MSIX (#1181)

* Add ImageResizer to MSIX installer and make the code MSIX-compatible (#1219)

* Removed ImageResizer.exe location registry key

* Added working resize pictures to MSIX context menu without icon

* Fixed missing icon on MSIX build

* Added comments

* Changed to single context handler entry

* Made changes as per PR comments

* Localize ImageResizer (#1261)

* Removed hardcoded strings

* Added resource dlls to MSIX installer

* Save ImageResizer settings in JSON format (#1258)

* Combined settings files

* Added JSON settings functionality in PowerToys format with thread safety

* Reverting changes to csproj file

* Removed settings.settings and designer file and added target sdk tools to fix warning

* Added NewtonSoft Json package

* Added 3 tests

* Added propertychanged test

* Removed unused libraries

* Removed additional allocation statements in test

* Added comments on test

* Added one-time setup code

* Added Newtonsoft.Json.dll to MSI and MSIX installer

* Fixed copyright header

* Fixed folder location in MSIX

* Renamed jsonMutex to _jsonMutex

* Fixed line endings

* Created private setup functions and added Arrange, Act, Assert comments

* Created private setup functions and added Arrange, Act, Assert comments

* Suppressed copyright warning on AppFixture and enabled treat warnings as errors

* Added comments on Reload/AppFixture and added constructor andispose

* Added telemetry to ImageResizer Shell Extension code (dev/imageResizer) (#1272)

* Added telemetry to C++ ImageResizerExt

* Added Register and unregister calls

* Changed default enable setting

* Set startup location to center of the screen (ImageResizer) (#1452)

* Added ImageResizer resources.dlls to the MSI installer (#1448)

* Implemented fix for foreground issue for ImageResizer (#1434)

* Fixed conflict in installer README.md file

* Fixed conflict in bundle.js

* Auto-generate AssemblyInfo in ImageResizer (#1467)

* Updated assembly info

* Added auto-generation of AssemblyInfo.cs

* Fixed minor issues

* Remove the  License file since Notice.md have been added

* Fix errors due to resolving merge conflicts

Co-authored-by: Brice Lambson <brice@bricelam.net>
Co-authored-by: Clint Rutkas <clint@rutkas.com>
Co-authored-by: Arjun Balgovind <arbalgov@microsoft.com>
Co-authored-by: Enrico Giordani <enricogior@users.noreply.github.com>
Co-authored-by: Chris Davis <chrisdavis@outlook.com>
Co-authored-by: Yosef Durr <yodurr@microsoft.com>
Co-authored-by: Bartosz Sosnowski <bzoz@users.noreply.github.com>
Co-authored-by: vldmr11080 <57061786+vldmr11080@users.noreply.github.com>
Co-authored-by: yuyoyuppe <yuyoyuppe@users.noreply.github.com>
Co-authored-by: Alekhya Kommuru <alkommur@microsoft.com>
Co-authored-by: Alekhya <reddykalekhya@gmail.com>
Co-authored-by: yuyoyuppe <a.yuyoyuppe@gmail.com>
Co-authored-by: Udit Singh <udsing@microsoft.com>
2020-03-12 09:02:34 -07:00
udit3333
7f12288b2c Remove Constants from Debug config (#1549) 2020-03-12 08:18:56 -07:00
Andrey Nekrasov
20e89f21ff runner: only launch update threads when we know we won't be elevated and show windows for the child (#1537) 2020-03-12 10:59:10 +03:00
udit3333
bd2cf19ec1 Updated build definition link in readme (#1542) 2020-03-11 17:35:30 -07:00
Alekhya Reddy Kommuru
de47efdda5 Removed the unneeded plugins 2020-03-11 16:54:11 -07:00
Alekhya Reddy Kommuru
95231faa87 removed the tests for URL plugin 2020-03-11 16:53:57 -07:00
Alekhya Reddy Kommuru
567b846de1 Added the folder plugin 2020-03-11 16:41:08 -07:00
udit3333
83ce8a2197 [0.16]: Merge Preview Handlers in Master (#1516)
* Added project template for common library

* Added reference to stylecop.json

* Fixed xml documetation file path for common project

* Added reference to stylecop.json

* Added COM interface interpolations to C#

* Changed namespace to Common

* Added xml doc to com interfaces

* Removed AnyCPU configuration from solution file

* Added Preview Hander and form User Control Implementation

* Fix stylecop warnings

* Added test control and handler

* Added Xaml description for preview handler

* Added Xml documenatation

* Updated the control to form

* Added registration and unregistration logic for the handler

* Moved the files in separate folder and fix PR comments

* updated the name of previewhandler class to base class

* Added the DoPreview to PreviewHandlerControl Interface

* Modified the Dopreview and Unload as virtual method

* Uncommented the DocumentText to help bug repro

* HTML Parsing Extension for preview pane markdown renderer (#1108)

* Added Extension for html post processing

* Added unit test poroject for preview pane

* Added pipline test and base test function

* Added Tests for extension

* Added tests for url slashes

* Added tests for url and figure caption

* Markdown preview pane (#1128)

* Added Extension for html post processing

* Added unit test poroject for preview pane

* Added pipline test and base test function

* Added Tests for extension

* Added handler and control for markdown

* Tests added

* Locally working version for markdown

* Working image relative url's in markdown

* Added CSS to preview display

* Updates CSS for code block

* Removed html file write comment in markdown control

* Updated assembly version and web browser control test

* Add Svg preview handler (#1129)

* Added a new project for Svg preview handler

* Added initial implementation of Svg Preview Handler

* Fixed output path

* Added Unit Test Project

* Added StreamWrapper and Update Svg Control

* Updated Svg Handler Guid

* Removed migration backup folder

* Removed Fluent Assertions NuGet

* Added Comments for StreamWrapper

* Removed the manual GC collect

* Added unit tests for Svg preview Handler

* Updated the xml doc for stream wrapper

* User/lamotile/add_powerpreviewsettings (#1075)

* Added powersettings to PowerToys Settings UI

* added settings library

* updated settings-web

* updated project oncfiguration

* updated project onfiguration

* updated project .sln file

* removed .etl file and added it to git-ignore

* separated the PowerPreviewModule into split classes .cpp and .h

* moved PowerPreviewModule implemnetations to .cpp file

* fixed StringTable formatter

* fixed spacing in resource.h

* added m_ to member varibales

* initiliaze m_isPreviewEnabled in the base class

* removed duplication of objects by using pass by refference and std::move

* made the getters const

* updated naming convention

* Split test calsses

* Add const string

* Replaced move with const string

* Made attributes private

* Made attributes private

* removed unused constructor

* Update resource.h

formatted resource.h

* Adding unit tests for preview handler common (#1156)

* Changed the name of the Common library to PreviewHandlerCommon

* Added unit tests project for PreviewHandlerCommon

* Updated ComInterop accessor type

* Added unit tests for PreviewHandlerbase

* Added tests for file and stream based handler

* Added unit tests for StreamWrapper

* Added form handler unit tests

* Added Unit tests for FormHandlerControl

* Added file header

* Add Powerpreview project

* Add spacing in sln file

* swapped string refferences (#1199)

* added registry methods and enable/disable preview handlers (#1230)

* added registry methods and enable/disable preview handlers

* formatted .rc file.

* formatted resource file

* formatted .rc file.

* formatted settings.cpp

* formatted settings.h

* formatted SVGPreviewSettingsClassTest.cpp

* Formatted MarkDownPreviewSettingsClassTest.cpp

* using wide strings

* formatted settings.h

* FileExplorerPreviewSettingsTest.cpp formatting

* fixed typo and formatting

* closing Registry and fixing typos

* formmarted code using ctrl+k+d

* fixed naming

* fixed typo

* changed if/else reverse order

* Markdown preview pane  (#1220)

* Added rich text bar for information display

* Added infobar

* Added tests for extension and markdown control

* Added xml docstring for markdown preview handler control

* Updated assembly file for markdown preview pane

* Updated removal of script tag without modifying CSS

* Added info bar text string to resource file.

* Removed error with infobar display on first rendering

* Updated assembly version

* Remove script and image element from Svg (#1231)

* Added implementation to remove script and image tag

* Added Unit tests for SvgPreviewHandlerHelper

* Updated Unit tests for SvgPreviewControl

* Moved the hardcoded string to resource file

* Changed the LocalMachine to CurrentUser for preview handler registration

* Added unit tests for multiple blocked elements tags

* User/lamotile/update settings objects (#1263)

* added registry methods and enable/disable preview handlers

* formatted .rc file.

* formatted resource file

* formatted .rc file.

* formatted settings.cpp

* formatted settings.h

* formatted SVGPreviewSettingsClassTest.cpp

* Formatted MarkDownPreviewSettingsClassTest.cpp

* using wide strings

* formatted settings.h

* FileExplorerPreviewSettingsTest.cpp formatting

* fixed typo and formatting

* closing Registry and fixing typos

* formmarted code using ctrl+k+d

* fixed naming

* fixed typo

* changed if/else reverse order

* updated setiings_objects.cpp

* removed changes on files that are not part of this PR

* removed const ref on primative types

* updated pass by ref semantic and removed pas by reff on primative types

* fixed spaces in the commas

* fixed spaces in brackets

* Preview pane telemetry (#1299)

* Added telemetry base class and markdown telemetry class

* Updated docstring for telemetry event.

* Added telemetry to markdown for error

* Added try catch for markdown preview handler and display error bar

* Updated markdown telemetry to make event names global variable

* Updated parameter name to camel casing and telemetry event name naming.

* Corrected assembbly version for svg renderer

* Markdown Image files display (#1303)

* Added telemetry base class and markdown telemetry class

* Updated docstring for telemetry event.

* Added telemetry to markdown for error

* Added try catch for markdown preview handler and display error bar

* Updated markdown telemetry to make event names global variable

* Updated Markdown preview to display without vertical scrollbar and removed xml doc to html agility pack.

* Updated parameter name to camel casing and telemetry event name naming.

* Corrected assembbly version for svg renderer

* Removed duplicate function

* Add telemetry for Svg preview handler (#1314)

* Added telemetry events for Svg Preview Handler

* Added unit test in case preview handler throws

* Updated the Error event name

* Remove the not required return statement

* User/lamotile/add read me (#1332)

* add readme

* moved images

* re-added images'

* Fixed gramma

* Update figure number refference

* improve preview handler intergration (#1319)

* improve preview handler intergration

* Fixed typo

* updated typo

* updated enable() function

* updated is enabled()

* re-updated is enabled()

* added this-> key word

* (0.16) - Install preview handler with msix (#1339)

* Removed the registration logic from preview handlers

* Updated the output path

* Added logic to shim the activation of .net assembly

* Updated manifest file

* Fix the allowedsilenttakeover filed in manifest

* Updated the appxmanifest file

* Added AllowSilentDefaultTakeOver in manifest

* Fix returned error code by DllGetClassObject

* Moved the CLSID to a common header file

* Added info about where CLSID needs to be updated

* Added a .reg file for the Keys added in registry.dat

* Added comments for DllGetClassObject

* Svg Preview Handler block external component  (#1368)

* Removed the registration logic from preview handlers

* Updated the output path

* Added logic to shim the activation of .net assembly

* Updated manifest file

* Fix the allowedsilenttakeover filed in manifest

* Updated the appxmanifest file

* Added AllowSilentDefaultTakeOver in manifest

* Fix returned error code by DllGetClassObject

* Moved the CLSID to a common header file

* Added info about where CLSID needs to be updated

* Added a .reg file for the Keys added in registry.dat

* Added comments for DllGetClassObject

* Extended WebBrowserSite for setting flags in DISPID_AMBIENT_DLCONTROL

* Added XML Documenatation

* Removed the logic for deleting image and script element from Svg

* Updated Unit Tests

* Updated typecast of uint

* Forwarded calls to Type.InvokeMember

* Resolve PR Comments

* Adding MSI Installation for Preview Handler (#1436)

* Updated wxs for including dll and registry keys for preview handlers

* Changed the casing for registry key

* Resolve PR Comments

* Added comments for File element

* Call GC on preview unloading (#1456)

* Call GC collect on preview unloading

* Added github issue link

* Update Web browser control for Markdown Previewer (#1464)

* Updated Webbrowser control

* Updated Unit tests

* Disabled Navigation for Svg Previewer

* Fix power preview unit tests (#1508)

* Decoupled registry interaction logic

* Updated File explorer settings

* Updated unit tests for PowerPreview Settings

* Added Asserrtion for Scope of registry key

* Updated the registry value to match with installation registry value

* Sync master settings.cpp

* Merge settings changes from PreviewHandlers

* Remove newline changes added into in example_powertoy\trace.cpp

* Chaned .net framework to 4.7.2

* Updated Csproj files to auto generate Assembly.info files

* Updated msi installer to use version variable for preview handlers assembly

* Removed the signing of Assembly and updated wxs to not include PublicKeyToken

* Updated the Path in Packaginglayout.xml to modules from Gac and the registry hive binary

* Regenerated updated JS and html file

* Resolve PR Comments

* Readded the wprp file

Co-authored-by: Divyansh <divyan@microsoft.com>
Co-authored-by: Divyansh <somm14divi@gmail.com>
Co-authored-by: Lavius Motileng <58791731+laviusmotileng-ms@users.noreply.github.com>
2020-03-11 15:53:49 -07:00
Clint Rutkas
f170cef506 Create NOTICE.md 2020-03-11 15:46:48 -07:00
Alekhya Reddy Kommuru
c2d8ed271b Modified the post build script of wox infrastructure project 2020-03-11 14:49:07 -07:00
Alekhya Reddy Kommuru
e38224d758 Reverted the platform target to All CPU, was made x86 by mistake 2020-03-11 14:48:26 -07:00
stefansjfw
83901e5fbb Improve readability of EditorWindow (#1515) 2020-03-11 16:38:13 +01:00
Alekhya Reddy Kommuru
db05cc48e8 Modified output folder from Wox to launcher 2020-03-10 15:23:35 -07:00
Ivan Stošić
4632224e9b Fixed a Grid editor issue (#1308)
* Fixed a Grid editor issue

* Explained the fix in ExtendRangeToHaveEvenCellEdges

* Simplified code in ExtendRangeToHaveEvenCellEdges

* Removed redundant comment, more camelCase
2020-03-10 23:23:35 +01:00
Alekhya Reddy Kommuru
5684c450f4 Changed wox to launcher in the build events 2020-03-10 15:20:10 -07:00
Alekhya Reddy Kommuru
4bcf8215b6 Modified build paths for plugins in debug mode 2020-03-10 15:06:28 -07:00
Alekhya Reddy Kommuru
36a3b6f479 Modified the build paths for plugins in Release mode 2020-03-10 15:04:57 -07:00
Alekhya Reddy Kommuru
b31215c257 Changed release build paths of base projects 2020-03-10 15:02:52 -07:00
Alekhya Reddy Kommuru
1f558590a8 Changed the debug output file paths and build events for base projects 2020-03-10 15:01:21 -07:00
Alekhya Reddy Kommuru
ad5e2a3d0e Added the wox projects to the powerToys solution 2020-03-10 14:53:52 -07:00
Alekhya Reddy Kommuru
b26255e60a Add 'src/modules/launcher/' from commit '28acd466b352a807910cebbc74477d3173b31511'
git-subtree-dir: src/modules/launcher
git-subtree-mainline: 852689b3df
git-subtree-split: 28acd466b3
2020-03-10 14:15:29 -07:00
Enrico Giordani
852689b3df Now working on 0.15.3 (#1525) 2020-03-10 18:09:11 +01:00
Ivan Stošić
197bc54ac6 FancyZones editor magnetic snapping effect (#1503)
* FancyZones editor magnetic snapping effect

Implemented a solution to Issue #585: FancyZones: Alignment/Snapping/Ruler

* Fixed VS complaining about names and access modifiers

* Removed reference to unused implementation of snapping in FZE

* Converted integer constants to enums in FZE/Canvas

* Convert a portion of code to a switch statement

* Improved code maintainability

* Fixed a screen resolution bug in FZE/Canvas

Fixed a bug where the editor doesn't respect the new screen resolution.

* Further maintainability improvements

* Fixed a compiler warning

* Changed some variables to camelCase
2020-03-10 15:50:44 +01:00
vldmr11080
013a58e634 Move window to last known zone. Support movement in multi-monitor scenario (#1511) 2020-03-10 09:59:34 +01:00
stefansjfw
4dbe535e1e Use default options for Utf8JsonWriter (#1497) 2020-03-09 23:28:43 +01:00
stefansjfw
7ac378dcd3 Fix compiler warning (#1492) 2020-03-09 23:21:33 +01:00
stefansjfw
965b098d66 Fix deleting custom layouts when closing on SaveApply (#1512)
* Fix deleting custom layouts when closing on SaveApply

* Only serialize if SaveApply, not on Cancel or X
2020-03-09 23:06:39 +01:00
Clint Rutkas
6379c3210b added in dialog, tweaked layout to be more resiliant to longer text (#1361) 2020-03-09 14:20:57 -07:00
vldmr11080
7653d5fec9 Document fancy zones (#1496) 2020-03-09 19:22:53 +01:00
PrzemyslawTusinski
7e1f7bd7fd Ui rename Zone highlight Opacity (%) - > Zone Opacity (#1504) 2020-03-09 12:27:35 +01:00
stefansjfw
5581e25a21 Editor IO exception handling (#1491)
* Close input stream
Show MessageBox with exception message
Remove unused arguments
Guard all of the Editor input/output code parts and show MessageBox
with appropriate message and issue reporting link

* Extract showing messageBox into method
2020-03-09 10:41:06 +01:00
Enrico Giordani
52e08a2784 Update bundle.js and html index files. (#1502) 2020-03-09 08:26:37 +01:00
William Kent
f6047b8733 Switch WindowWalker C# project to use PackageReference (#1374)
* Switch WindowWalker C# project to use PackageReference

* Remove packages.config leftovers

Co-authored-by: William Kent <wjk@users.noreply.github.com>
2020-03-07 16:28:53 -08:00
pi1024e
bea8e647d9 Remove unused check for pClassFactory (#1419)
* Update dllmain.cpp

* Update dllmain.cpp
2020-03-07 16:25:12 -08:00
stefansjfw
1cf8634152 Move ZoneSetPersistedDataOLD to JsonHelpers (#1405) 2020-03-07 10:59:00 +01:00
ItzLevvie
141b63587b Fix spelling mistake (#1476) 2020-03-06 13:38:59 +01:00
Ivan Stošić
2b91903129 Fixed one mishandled case when computing zones (#1470) 2020-03-05 21:51:58 +01:00
Clint Rutkas
32de0ae4a4 adding in a Code of Conduct 2020-03-05 10:11:27 -08:00
Ivan Stošić
985a0b9bce Fixed resizer thumbs not being shown (#1309) 2020-03-05 16:00:18 +01:00
Ivan Stošić
9860e2bc75 Fixed an issue where zones do not fill up the whole screen (#1458)
* Fixed an issue where zones do not fill up the whole screen
* Fixup: Added comments, removed extra semicolons
2020-03-05 15:54:06 +01:00
Andrey Nekrasov
db8472a6e5 Unify version specifying (#1439)
* installer: extract version number into separate file and use it where possible

* MSIX: rename package to include version on CDPx

* installer: generate assembly info for FZ editor

* MSIX: inject correct version to appxmanifest
2020-03-05 17:52:21 +03:00
Ivan Stošić
8a22da0acb Fix too many zones crashing (#1337)
Fix for an issue where creating too many zones causes a crash
2020-03-05 14:59:47 +01:00
Andrey Nekrasov
cf1b53831f Formatting chores (#1441)
* format_sources: exclude 3rd party sources

* format common project

* format leftovers in runner & settings projects

* move source formatting-related files according to #939
2020-03-05 13:07:06 +03:00
Ivan Stošić
92f64188d5 Fixed multi-monitor scaling bug (#1293)
Fixed an issue (#365) where a window gets resized after it gets dropped into a zone.
2020-03-05 10:57:45 +01:00
stefansjfw
6a0061dde3 Fix PowerRename UI doesn't handling DPI changes (#1424)
* Fix PowerRename UI doesn't handling DPI changes

* Address PR comments

* Address PR comments
2020-03-05 10:21:25 +01:00
yuyoyuppe
84fbdba9f5 MSIX: use com_object_factory for powerrename 2020-03-05 10:41:36 +03:00
vldmr11080
39cac396f5 Swallow shift keyboard event when dragging window (#1423) 2020-03-05 08:01:58 +01:00
Clint Rutkas
75ed3ce60c Fix for msi not loading on visual studio (#1385)
* adding preview tag for desktop and start menu

* getting to load, code from https://github.com/wixtoolset/issues/issues/5700#issuecomment-335525293
2020-03-04 12:37:32 -08:00
Enrico Giordani
8373204c94 Now working on 0.15.2 (#1432) 2020-03-04 05:52:16 +01:00
Enrico Giordani
6787af413e Increment version to 0.15.1 (#1428) 2020-03-03 22:31:57 +01:00
stefansjfw
0199b4e212 Handle exception while editor is parsing custom layouts (#1430)
* Fix migrating never applied custom zonesets

* Handle json parsing exception in LoadCustomModels()
2020-03-03 22:31:22 +01:00
stefansjfw
121be772df Fix migrating never applied custom zonesets (#1427) 2020-03-03 21:48:22 +01:00
Enrico Giordani
f3b3e3eded Sanity check for imported settings that may have invalid data. (#1426) 2020-03-03 21:45:25 +01:00
Clint Rutkas
02c08c942d 0.15 update to readme to master (#1408)
* Getting ready for v0.15 update for readme.

* getting ready for 0.15

* spelling tweak

* filled in update section

* fixed spelling mistakes

* updating to what POR is

* Update README.md

* Update README.md

* adding back in MSI

* getting readme ready for 0.15

* tweaks

* adding oss to oss links

* fixing links

* tweaking file names

* Update README.md

* Update README.md

* Update README.md

fixing typo

* Update README.md
2020-03-03 11:14:30 -08:00
Clint Rutkas
b2370f5c5f Update README.md (#1412) 2020-03-02 16:21:51 -08:00
vldmr11080
6556e1b4a2 Skip cloning device information from parent virtual desktop if it is deleted. (#1415) 2020-03-02 18:52:38 +01:00
Jeremy Wu
28acd466b3 Merge branch 'dev' 2020-03-01 20:12:51 +11:00
Clint Rutkas
699921d464 build break, seeing if this was root case 2020-02-28 14:13:43 -08:00
Enrico Giordani
5c84fbba9a [CDPx] archive symbols to Symbol Server (#1407) 2020-02-28 13:44:37 -08:00
yuyoyuppe
0b02422e7d wix: add (Preview) for MSI product name 2020-02-28 12:23:43 +03:00
Clint Rutkas
677bff55c2 Update pipeline.user.windows.yml (#1398) 2020-02-27 17:29:22 -08:00
Enrico Giordani
3d03bea582 [CDPx] move build script out of .pipeline (#1394) 2020-02-27 19:18:11 +01:00
Enrico Giordani
278a77247d [CDPx] use explicit filenames for the MSIX assets (#1393)
Approved
2020-02-27 07:46:00 -08:00
Enrico Giordani
b83a8dcb5d [CDPx] remove 'signing_options' for package (#1390)
A global signing option is already defined.
2020-02-27 16:03:38 +01:00
Enrico Giordani
9bce103dad [CDPx] sign MSIX package and bundle (#1389) 2020-02-27 13:41:11 +01:00
Clint Rutkas
dfcc4e1b3a adding preview tag for desktop and start menu (#1384) 2020-02-27 13:10:08 +01:00
vldmr11080
66892aea60 Secure acces from multiple threads to JSONHelpers (add missing lock) (#1375) 2020-02-27 09:52:14 +01:00
yuyoyuppe
5c708b43c2 wix: add missing libs for FZ editor 2020-02-27 11:27:59 +03:00
stefansjfw
e2026aedbc Fix typo in powerrenamer README (#1378) 2020-02-26 16:33:50 -08:00
Jeremy Wu
3184f8d275 Update readme with main features released from this fork (#149)
* Update readme with main features released from this fork

* update
2020-02-27 00:16:09 +02:00
Jeremy Wu
8ec78688b8 Add empty actionParameters check (#148) 2020-02-27 00:14:45 +02:00
Enrico Giordani
1911fc2e65 Update BinSkim exclude list (#1377) 2020-02-26 13:44:25 -08:00
TorchGM
e0446a73fa Change Windows Store to Microsoft Store in README (#1369)
The Windows Store was renamed to the Microsoft Store back in 2017, best to keep things up-to-date to avoid potential confusion.
2020-02-26 12:34:05 -08:00
yuyoyuppe
16b1bfa4d0 increment version to 0.15 🎉 2020-02-26 23:21:17 +03:00
PrzemyslawTusinski
f015995ac4 Now updater is comparing versions instead of comparing thier strings 2020-02-26 23:06:44 +03:00
yuyoyuppe
0016836022 runner: periodically check if there's a new version available on github and offer a visit 2020-02-26 23:06:44 +03:00
yuyoyuppe
c543b7585a notifications: add support for unpackaged apps and protocol activation 2020-02-26 23:06:44 +03:00
yuyoyuppe
b90f1fc237 common: always use 0 for build number and make get_product_version return "vX.X.X" 2020-02-26 23:06:44 +03:00
Enrico Giordani
f892338098 [CDPx] fix for makeappx, update SDK for MSI (#1373) 2020-02-26 11:05:15 -08:00
Enrico Giordani
defead108a [CDPx] remove nuget.config and update restore script (#1370) 2020-02-26 10:23:53 -08:00
vldmr11080
1f8f9aaf81 Revert "Swallow shift keyboard event when dragging window (#1362)" (#1363)
This reverts commit 2f9b753c5b.
2020-02-26 08:11:39 +01:00
Enrico Giordani
3b32a3164b [CDPx] update nuget feed (#1364) 2020-02-25 19:38:47 -08:00
Jeremy Wu
e5cc2ccaab Merge pull request #145 from jjw24/pluginInitFail
plugin init fail continue - create query builder and re-enable tests.
2020-02-26 07:25:20 +11:00
vldmr11080
2f9b753c5b Swallow shift keyboard event when dragging window (#1362) 2020-02-25 21:03:14 +01:00
Jeremy Wu
cbcca9cf5b Merge branch 'dev' 2020-02-26 07:02:11 +11:00
Seraphima Zykova
b1ac1859be Removed FancyZones unit-test (#1360) 2020-02-25 17:14:59 +03:00
Jeremy Wu
cecb65cd40 Installed & portable mode: Enhance auto updates (#142)
* Add handling of portable mode when updating

Additionally: 
1. Changed getting version from internally rather than from RELEASES file
2. Added PortableDataPath as a constant so can be used  to determine if portable mode is used

* Fix incorrectly wired auto update event handler

* Fix Sys plugin missing Shutdown command icon

* Add check update command to Sys plugin

* Add message if current Wox version is latest

* Add default silent when auto checking updates in background

Silent when current is still the latest version

* Move UserData folder to new version location

* Changes per review

1. Move IsPortableMode to Constant
2. Merge if statement

* Per comment- change variables to be more descriptive

UpdateInfo and UpdateManager renamed

* Per comment- Add exception handling and message if failed.
2020-02-25 12:08:51 +02:00
Enrico Giordani
74b076e31f [CDPx] update SDK, restore telemetry, build MSIX (#1358) 2020-02-24 23:49:28 +01:00
Bartosz Sosnowski
e3057b5e46 tools: add tool to debug FancyZones zonable windows (#1355)
Uses FancyZones logic to test if window is zonable or not. Displays
window styles and results for various tests if the window should be
zonable or not.
2020-02-24 17:45:50 +01:00
clueless
e1e7387c73 create query builder and re-enable tests.
make the plugin manager plugin data the source for disabled plugins
2020-02-22 11:02:07 +02:00
Jeremy Wu
73705bec23 Merge pull request #144 from jjw24/pluginInitFail
Plugininitfail
2020-02-22 09:47:19 +11:00
clueless
cb9e045c7f catch plugin init fails - stop Wox from not starting up and crushing and disable and explain the user what is the probalmatic plugin 2020-02-21 23:12:58 +02:00
Enrico Giordani
92a8b5aa4d MSIX is "Experimental" (#1348) 2020-02-21 11:13:21 +01:00
Enrico Giordani
9b7f92188d Runner check for MSI and MSIX (#1345)
* Add startup check for the MSI version of PT

* Alert if another instance of PowerToys is already running
2020-02-21 11:12:04 +01:00
Clint Rutkas
77301e2930 bug fix 2020-02-19 13:10:42 -08:00
Clint Rutkas
babfc9ade3 Adding in HitTester App 2020-02-19 13:09:18 -08:00
Andrey Nekrasov
883bbf102a settings: add a clarifying label if running as elevated (#1330) 2020-02-19 19:31:09 +03:00
Andrey Nekrasov
e21f83267a settings: remove Restart as a user button in an elevated context (#1328) 2020-02-19 18:51:24 +03:00
yuyoyuppe
27f0782465 settings: fix general settings hanging on save for a non-admin user 2020-02-19 17:20:09 +03:00
yuyoyuppe
d45b0dee10 runner: fix Restart as... option 2020-02-19 17:20:09 +03:00
Enrico Giordani
2c2a29cd91 Setup: sign PowerRenameExt.dll (#1313) 2020-02-18 22:02:39 +01:00
Yevhenii Holovachov
607a297c4a "Always run as administrator" and "Restart as ..." only for administrator account (#1318) 2020-02-18 20:56:34 +01:00
Clint Rutkas
e177c5c94c moving to https://github.com/microsoft/PowerToys/wiki/Version-1.0-Strategy (#1315) 2020-02-18 10:50:43 -08:00
Clint Rutkas
7fb3456e83 Update v1.0.md 2020-02-18 10:19:21 -08:00
Clint Rutkas
d37bb2c7f9 v1 spec (#1275)
* v1 spec, from here we'll create a roadmap much like Terminal.  (https://github.com/microsoft/terminal/blob/master/doc/terminal-v1-roadmap.md)

* adding in more issue xref links

* add in UX migration time

* Update v1.0.md

* Update v1.0.md

* Update v1.0.md
2020-02-18 09:27:00 -08:00
Andrey Nekrasov
20519e3b81 MSIX: prompt and uninstall MSI PT version (#1248) 2020-02-18 18:11:01 +03:00
vldmr11080
733613ad28 Introduce handling of new/old work areas (#1296)
* Introduce handling of new/old work areas (defined by virtual desktop id and monitor)

* Save data to JSON storage only once after we register all deleted virtual desktops

* Update saving mechanism

* Remove resolution from unique identifier

* Update comments related to new unique identifier

* Don't handle NULL GUID as it is default one

* Revert "Remove resolution from unique identifier"

This reverts commit 5a36651217.

* Revert "Update comments related to new unique identifier"

This reverts commit 8e89802549.

* removed MigrateDeviceInfoFromRegistry

Co-authored-by: Seraphima Zykova <zykovas91@gmail.com>
2020-02-18 11:55:08 +01:00
Seraphima Zykova
604070763d Add telemetry event for FZ editor (#1294)
* trace zones settings changes
2020-02-17 19:40:02 +03:00
yuyoyuppe
93f88800b8 MSIX: do not kill explorer.exe, since it's only necessary for the MSI version 2020-02-17 18:38:14 +03:00
yuyoyuppe
9607888fc5 PowerRename: bring the rename dialog to foreground 2020-02-17 18:38:14 +03:00
Andrey Nekrasov
1e6936a8c3 Thread safety for FanncyZonesData (#1281)
* FancyZones: make FancyZonesData thread-safe

* fixup: format affected sources

* fixup: clang-format case-style and format FancyZones.cpp

* fixup! add missing lock
2020-02-17 18:28:49 +03:00
Jeremy Wu
56c2964e96 Fix issue incorrect dll reference (#141) 2020-02-15 08:24:29 +02:00
Jeremy Wu
d5f223fc88 Add file path to files search result in Folder Plugin (#139)
* Add file path to files in Folder Plugin

* Add folder subtitle display path when wildcard '>' is used
2020-02-15 08:23:17 +02:00
Clint Rutkas
cdf2f6b5b4 moving stuff to wiki (#1302) 2020-02-14 13:49:31 -08:00
Andrey Nekrasov
fa3ce8de64 MSIX: add missing dependencies for the FancyZonesEditor (#1298) 2020-02-14 11:57:20 +03:00
Seraphima
59d218d623 Add telemetry event for PowerRename settings (#1279)
* moved MAX_INPUT_STRING_LEN constant
* added settings changed event log
2020-02-13 12:44:03 +03:00
Jessica Yuwono
49fa1b6762 Added PowerLauncher spec and images (#1109)
* Added PowerLauncher spec and images

* Fixed images path

* Addressed review comments

* Fixed images

* Addressed review comments, and added link to keyboard shortcut manager PowerToy

* Added Ueli in comparison table

* Added keyboard input element

* Added suggestions from community

* Moved default shell and terminal settings

* Addressed feedback

* Added community suggestion

* Modified spec based on feedback

* Modified spec based on suggestions

* Added keyboard shortcuts to context menu options
2020-02-12 15:30:40 -08:00
Clint Rutkas
a2fe4a0b80 removing done specs to wiki (#1276) 2020-02-12 14:55:39 -08:00
vldmr11080
86e7a19a98 Update FancyZones-DCR.md (#1280) 2020-02-12 19:06:15 +01:00
Seraphima
8c86c3dc1b Update FancyZones telemetry event for settings changed (#1268) 2020-02-12 13:08:11 +03:00
Seraphima
2bef7631ae Add telemetry event for general settings (#1269)
* telemetry for general settings
2020-02-12 13:03:40 +03:00
vldmr11080
550d76a447 Add design change request for improvements in virtual desktops handling (#1270) 2020-02-12 08:18:57 +01:00
Chris Davis
679b26cde4 Set the rename button to the default button on the dialog. Prior to this change, users would setup the rename inputs and hit return only to discover the cancel button had the key focus and all work would be lost. (#1271) 2020-02-11 11:33:30 -08:00
Seraphima
79c625d737 Persist app zone history in real time (#1257)
* save settings every time changes are performed
* settings are not saved on app exit
2020-02-11 14:34:37 +03:00
Seraphima
a1d277e771 Unit-tests fixes (#1265)
* fixed typecast warnings
* removed unneded tests
2020-02-11 14:33:41 +03:00
vldmr11080
bde0f2f0ba Fix crash when saving any module settings while module being disabled (#1259) 2020-02-11 07:57:11 +01:00
stefansjfw
53f830bb38 Migrate FancyZones data persisting from Registry to JSON file (#1194)
* Migrate FancyZones data persisting from Registry to JSON file

* Address PR comment: Remove redundant check

* Addres PR comment: Remove unused Dpi and add CmdArgs enum

* Address PR comment: Make methods const and inline

* Address PR comments: Expose GenerateUniqueId function and use const ref instead of passing wstring by value

* Address PR comment: Use lamdba as callback

* Address PR comment: Move GenerateUniqueId to ZoneWindowUtils namespace

* Address PR comment: Use regular comparison instead of std::wstring::compare

* Address PR comment: Use std::wstring_view for tmp file paths

* Address PR comment: Use scoped lock when accessing member data

* Address PR comment: Remove typedefs to increase code readability

* Address PR comment: removed nullptr checks with corresponding tests

* Address PR comment: Move ZoneSet object instead of copying

* Address PR comment: Make FancyZonesData instance const where possible

* Remove unnecessary gutter variable during calculating zone coordinates

* Remove uneeded subclass

* Avoid unnecessary copying and reserve space for vector if possible

* Save FancyZones data after exiting editor

* App zone history (#18)

* added window and zone set ids to app zone history

* Rename JSON file

* Remove AppZoneHistory migration

* Move parsing of ZoneWindow independent temp files outside of it

* Unit tests update (#19)

* check device existence in map
* updated ZoneSet tests
* updated JsonHelpers tests

* Use single zone count information

* Remove uneeded tests

* Remove one more test

* Remove uneeded line

* Address PR comments - Missing whitespace

* Update zoneset data for new virtual desktops (#21)

* update active zone set with actual data

* Introduce Blank zone set (used to indicate that no layout applied yet). Move parsing completely outside of ZoneWindow.

* Fix unit tests to match modifications in implementation

* Fix applying layouts on startup (second monitor)

Co-authored-by: vldmr11080 <57061786+vldmr11080@users.noreply.github.com>
Co-authored-by: Seraphima <zykovas91@gmail.com>
2020-02-10 14:59:51 +01:00
Andrey Nekrasov
a5e3207715 sln: fix project dependency order (#1249) 2020-02-10 16:07:01 +03:00
Scott Hanselman
b357a085c8 Small English grammer issue "in the desktop" -> "on the desktop" (#1238)
Small English grammer issue "in the desktop" -> "on the desktop"
2020-02-07 16:51:57 -08:00
Arjun Balgovind
9722d808f9 Update MSIX Readme with sideloading steps (#1237) 2020-02-07 14:22:49 -08:00
Bartosz Sosnowski
0fdc1d0a1f ShortcutGuide, FancyZones: split window filtering (#1225)
Splits the code use to filter windows for FancyZones and the
"active window" for the ShortcutGuide. The FancyZones logic is preserved
and merged into a single function. We keep it in common.h, as it might
be also used in other PowerToys, like maximized to new desktop. We do
however change the return type to be more descriptive. It also returns
a separate flag for if the window has a visible owner. This can be used
to implement the approved apps list.

For the ShortcutGuide, the logic is relaxed to include more windows. One
example are Explorer properties windows. Those are (and should) filtered
by the FancyZones, but should appear in the window preview in the SCG.

The new return type also includes information if the window will react
to the default Windows Snap. This is not ideal though. Currently, SCG
can only disable the entire "Windows Controls" group. OTOH windows like
"Save As..." dialogs can be snapped to corners etc., but cannot be
minimized nor maximized. Until SCG can separately disable those buttons
we will display the buttons in the enabled state only if the window
supports all settings. In the future, we should integrate FancyZones
snap override here too.
2020-02-07 15:53:57 +01:00
Andrey Nekrasov
f963d28ba8 MSIX: keep PowerRename local COM server in memory (#1222) 2020-02-07 14:21:10 +03:00
Bartosz Sosnowski
09d1af9c46 Common: remove hwnd_data_cache (#1223)
The cache was introduced to improve performance by not querying the
OS for the window process path every time we need to check if the window
is interesting to FancyZones. Since then other changes were made to the
the way we check the windows. Right now, the IsInterestingWindow function is
called when:

  1) WinKey + arrows are used
  2) window is started to be dragged
  3) window is created

1) and 2) are initiated by the user, happen only once per interaction so
their performance impact can be dismissed. The 3) happens all the time
but for the most part the check for WS_CHILD or
GetAncestor(window, GA_ROOT) == window will filter those out. In the
end, only top-level windows will be queried for their path.

Removing the cache improves code readability and will make code
maintenance easier.
2020-02-06 18:04:10 +01:00
Bartosz Sosnowski
5d8e894802 FancyZones: if window is not interesting, allow Windows snap (#1186)
Do not swallow WinKey+Arrow events for non-interesting windows. This makes apps that are in the "excluded apps" list behave as if "Override windows snap keys" is disabled - they will react to the Windows default snap.
2020-02-06 13:12:59 +01:00
Bartosz Sosnowski
0ecfbfad53 FancyZones: filter out WM_POPUP windows if they dont have maximize/minimize button or a sizable frame (#1212)
This filters out TaskView and Win32 menus.
2020-02-05 12:31:35 +01:00
Bartosz Sosnowski
ed35a143ec FancyZones: allow windows with invisible or zero-sized owner to be zonable (#1216) 2020-02-05 12:27:51 +01:00
yuyoyuppe
5089729b18 MSIX: implement initial version of notifications library (#1178) 2020-02-04 19:41:00 +03:00
yuyoyuppe
b41d2d64cb MSIX: fix uninstallation from msix_reinstall and split the scripts (#1183) 2020-02-04 18:56:10 +03:00
Bartosz Sosnowski
25e882eb78 Fancyzones: unify window filtering (#1184)
Makes FancyZone use the same code for filtering windows when windows are
being dragged and when moved by WinKey + arrows.
2020-02-03 09:32:38 +01:00
Clint Rutkas
4ef8f3da2b Update README.md (#1198) 2020-01-31 18:17:07 -08:00
sakariya
b00ce8789f Adding KeyManager spec (#1112)
* Adding KeyManager spec

* adding req changes

* req changes

* changed wording

* md edits

* edit md

* Update doc/specs/KeyboardManager.md

Co-Authored-By: Jeroen van Warmerdam <jeronevw@hotmail.com>

* further edits

* Update KeyboardManager.md

* Update KeyboardManager.md

Co-authored-by: Jeroen van Warmerdam <jeronevw@hotmail.com>
2020-01-31 16:10:30 -08:00
Betsegaw Tadele
b4f81a0c2a Import the source code for Window Walker (#1177)
Import the codebase for Window Walker 

- Not loaded into the module list 
- Not added it to the installer list.
2020-01-31 15:14:37 -08:00
yuyoyuppe
aa714f7d80 Runner: fix startup task state setting for MSIX (#1181) 2020-01-31 20:35:21 +03:00
yuyoyuppe
ca203435d1 MSIX: hide the "Run at Startup" option if running as packaged 2020-01-29 16:15:18 +03:00
Enrico Giordani
ee8893a884 MSIX: update identity name and publisher (#1176) 2020-01-29 13:06:19 +01:00
Clint Rutkas
bf89238bdf MSIX build instructions adjustmnet (#1170) 2020-01-28 15:01:17 -08:00
yuyoyuppe
360f7cf9c3 Telemetry: add WebView init failure errors 2020-01-27 20:01:36 +03:00
yuyoyuppe
482ad0e5ee Settings: initialize COM security to allow communication between elevated Settings and WebView 2020-01-27 18:49:35 +03:00
yuyoyuppe
cd6ac4f8c2 Common: implement on_scope_exit helper and typed_storage 2020-01-27 18:49:35 +03:00
Clint Rutkas
79ac2be617 Changes for #1140 and #569 (#1152) 2020-01-27 07:00:41 -08:00
yuyoyuppe
9b4b7cf5d4 MSIX: reinstall script uses bundle instead of .msi to be able to reinstall in all cases 2020-01-27 17:33:50 +03:00
Jeremy Wu
9b970ae1a4 Merge pull request #134 from jjw24/everythingFixes
Everythingfixes
2020-01-26 19:05:30 +09:30
clueless
fec7912870 remove 2020-01-26 11:14:38 +02:00
Jeremy Wu
8bb855e657 Merge pull request #133 from jjw24/clueless/pinyinFixBug
fix
2020-01-26 18:26:08 +09:30
clueless
9488864f47 everything updates -
- support ~cancellation in api.
- API refactoring.
- API - locked to enable collisions.
- other small changes
2020-01-26 01:34:11 +02:00
clueless
beefc6a86e fix 2020-01-25 00:12:32 +02:00
Bartosz Sosnowski
cc99abcd14 Runner: fix restarting with same elevation (#1133) 2020-01-23 15:12:02 +01:00
yuyoyuppe
f8bcf52741 MSIX: add a dedicated .rc for UWPUI which joins both UI and DLL .rc's (#1139) 2020-01-23 14:42:28 +03:00
vldmr11080
1a10366ab7 Align zone dimensions from layout preview with those from grid editor (#1115) 2020-01-22 20:15:35 +01:00
Alekhya
925b6694ac Localize C++ Projects of FancyZones (#1130)
* localized dllmain.cpp  of fancyzones project

* localized FancyZones.cpp

* format fancyzones.rc file

* Moved SuperFancyZones back to being a string instead of having it in the resource file as it is the window class name

* reverted changes for window name

* Formatted fancyzones rc file
2020-01-22 10:24:00 -08:00
Alekhya
1ad16ade86 Localize the Shortcut guide PowerToy (#199) (#1126)
* Localized shortcut_guide.cpp

* localized overlay_window.cpp

* formatting changes

* Localize overlay window

* removed the README link from the set of localized resources

* Typo: changed upper to lower
2020-01-22 09:43:49 -08:00
Alekhya
45e3f02832 Localizing C# Project of FancyZones (FancyZonesEditor) (#199) (#1122)
* removed hardcoded strings from CanvasEditorWindow.xaml

* removed hardcoded strings from GridEditorWindow.xaml

* loc

* Localized MainWindow

* reverting MainWindow.xaml as it is not rendering the window as expected

* Changed the resource settings from internal to public

* the culture is set based on the culture of the system UI set in the system settings

* Removed the french resource files used for testing

* Localized canvasWindow and mainwindow

* Removed setting the UI culture explicitly as it would be implicitly set to the culture of system UI

* Removed redundant header file
2020-01-21 12:02:31 -08:00
Alekhya
ba1a681aab Merge pull request #1106 from alekhyareddy28/locPowerRename
Localize PowerRename
2020-01-20 12:11:07 -08:00
Alekhya Kommuru
23bba969dd Merge remote-tracking branch 'upstream/master' into locPowerRename 2020-01-20 11:54:20 -08:00
Alekhya Kommuru
9c743acd2d Removed some IDs from resource file. Changed SHIFT to Shift 2020-01-20 11:52:46 -08:00
Bartosz Sosnowski
62da7c7be4 FancyZones: remove dialog boxes filtering (#1076)
* FancyZones: remove dialog boxes filtering

* FancyZones: add the "no owner window" filter to the WinKey + arrow zone snapping
2020-01-20 11:02:12 +01:00
Jeremy Wu
07310c7714 Fix pinyin fuzzysearch (#131)
* fix typo

* make function obsolete 

it is not used in the code

* rewrite the function that converts chinese chars to pinyin

1. Only difference in this rewrite is instead of returning 2D array, return as a combined single string of all the possible pinyin combination. Since fuzzy search does character matching, this shouldn't be a problem.

2. Added a function that returns a custom language converter. In this case Pinyin converter. New converters can be added.

* Use new language converter param + strip out ScoreForPinyin method

* update

* Change parameter name

* fix failing tests

* WIP

* Remove todo

There should be some distinction between score after precision filter and actual raw score derived from FuzzySearch. Although so far RawScore is used in testing, but it seems to describe the structure. Originally it was to avoid assigning score directly as it would be hard to reason about that output of FuzzySearch score is.

* Add constructors, remove default to enforce required properties

* remove setting rawscore in SearchPrecision

* Change method name to reflect intention

* Change parameter name + update comment

* update

* Remove params comment

Co-authored-by: theClueless <14300910+theClueless@users.noreply.github.com>
2020-01-20 01:06:16 +02:00
Jeremy Wu
ee93f7e018 Merge pull request #130 from jjw24/clueless/packrefMine
Update sln to use package references
2020-01-18 20:59:50 +11:00
Jeremy Wu
21fae1f457 Merge branch 'dev' 2020-01-18 12:10:38 +11:00
Alekhya Kommuru
653a84d3a9 reverting formatting of files 2020-01-17 14:38:41 -08:00
Alekhya Kommuru
8132bbac2e updated formatting of common.cpp 2020-01-17 14:32:02 -08:00
Alekhya Kommuru
197286c21e moved app name to constructor to init only once 2020-01-17 14:23:07 -08:00
Alekhya Kommuru
bf48729354 rebuilt project PowerRename 2020-01-17 11:57:53 -08:00
Alekhya Kommuru
a504a75166 Removed string resources from the settings.cpp file 2020-01-17 11:25:42 -08:00
Alekhya Kommuru
44ac22c0de Added new lines to the end of the file 2020-01-17 11:12:23 -08:00
Alekhya Kommuru
df1c6b9b0b Removed get_res_string_wchar and used the get_resource_string() function instead which returns a wstring typecast into wchar* 2020-01-17 11:06:57 -08:00
AT
7ce45d2b11 fix pre build event 2020-01-17 14:56:26 +02:00
Alekhya Kommuru
bde0e0b86a Merge remote-tracking branch 'upstream/master' into locPowerRename 2020-01-16 13:58:59 -08:00
Arjun Balgovind
c1232a7001 Shifted three functions to common (#1101) 2020-01-15 23:06:22 -08:00
Alekhya Kommuru
12c4dbf0e5 added common as a reference project 2020-01-15 16:44:18 -08:00
Alekhya Kommuru
31a01ab227 Modified resourceIDs for strings in the table 2020-01-15 13:57:05 -08:00
vldmr11080
5dc60b9f35 Fix reversed order of zones in layout (#1071) 2020-01-15 20:20:10 +01:00
vldmr11080
588f134de8 Revert "Fix misaligned display of zones in layout priview and grid editor (#1010)" (#1097)
This reverts commit d03690cffd.
2020-01-15 19:34:23 +01:00
Clint Rutkas
2ae867a7e0 adding in privacy statement, removing About in dialog (#1087)
* adding in privacy statement, removing About in dialog

* added Preview
2020-01-15 10:16:22 -08:00
Clint Rutkas
c77b029ee2 Update to MSIX README.md (#1095)
* Update README.md

few adjustments

* Update README.md

* Update README.md
2020-01-15 10:15:24 -08:00
Alekhya Kommuru
d0648d1754 built the proj 2020-01-14 16:40:40 -08:00
Alekhya Kommuru
1e3486af94 localized the settings file 2020-01-14 16:39:03 -08:00
Alekhya Kommuru
8f2b2aba12 localized powerRenameExt 2020-01-14 15:23:21 -08:00
Alekhya Kommuru
0b1232b65d localized dllmain powerrename 2020-01-14 15:17:08 -08:00
Alekhya Kommuru
969abe015c added the helper functions 2020-01-14 15:00:05 -08:00
Jeremy Wu
f39144cc51 Merge pull request #119 from theClueless/deploymentUpdates
Auto update improvements: Updater
2020-01-15 09:08:45 +11:00
AT
725df15012 update to package reference 2020-01-14 21:10:54 +02:00
yuyoyuppe
9e296cdb46 MSIX: Code sign msixbundle (#1093) 2020-01-14 22:05:09 +03:00
yuyoyuppe
b07627611f MSIX: label PowerToys as Preview (#1090) 2020-01-14 19:36:08 +03:00
Jeremy Wu
6cad4bc986 Merge pull request #112 from theClueless/fuzzyMatchUpdates
Fuzzy match logic update
2020-01-14 08:26:45 +11:00
Jeremy Wu
504c08a0fc Update test per comment 2020-01-14 07:53:59 +11:00
Jeremy Wu
592f1cafdb update allSubstringsContainedInCompareString calculation as per comment 2020-01-14 07:36:53 +11:00
Jeremy Wu
71d8c2080c update comment typo 2020-01-14 07:30:40 +11:00
Jeremy Wu
6095933847 simplify condition as per comment 2020-01-14 07:29:21 +11:00
theClueless
92febf0b00 Merge pull request #117 from jjw24/folderplugin_updatesearch_sorting
Folder plugin updates to searching and sorting of results
2020-01-13 00:51:27 +02:00
theClueless
1c711aef3c Merge pull request #124 from jjw24/update_readme_badges
Update readme badges
2020-01-13 00:22:14 +02:00
Jeremy Wu
0bec780a1b Update yaml file comment 2020-01-13 07:50:34 +11:00
Jeremy Wu
ed01a46a3f Update maintenance and all releases badge 2020-01-13 07:46:27 +11:00
Jeremy Wu
4f8fa9f9eb Merge branch 'master' into update_readme_badges 2020-01-13 07:42:03 +11:00
Jeremy Wu
2f99ccdd4a Merge pull request #123 from jjw24/theClueless-updateReadme-withdevops
Update README.md
2020-01-13 06:54:43 +11:00
Jeremy Wu
2dd1013075 Update to new org name 2020-01-13 06:50:39 +11:00
theClueless
6552aeaa3b Update README.md
update to show the azure devops pipeline badge
2020-01-12 13:06:08 +02:00
theClueless
b92b93e233 Merge pull request #122 from jjw24/azure-pipelines
Set up CI with Azure Pipelines
2020-01-12 12:53:53 +02:00
theClueless
10036b148c Update azure-pipelines.yml
updated to work on both dev and master and update pool to work
2020-01-12 12:50:03 +02:00
Jeremy Wu
cccec8382f Set up CI with Azure Pipelines
[skip ci]
2020-01-11 12:16:13 +11:00
yuyoyuppe
5e30721e01 MSIX: Extract MSIX building functionality from msix_reinstall.ps1 to a separate script (#1068) 2020-01-10 16:38:35 +03:00
vldmr11080
d03690cffd Fix misaligned display of zones in layout priview and grid editor (#1010)
Fix misaligned display of zones in layout preview and grid editor
2020-01-09 22:40:38 +01:00
Bartosz Sosnowski
dad732b7e6 runner: show message box when restarting with different elevation fails (#1061)
Also make the message box appear on top of the settings window.
2020-01-09 18:17:42 +01:00
AT
d74b5c8764 another 2020-01-09 01:13:56 +02:00
AT
0f19010e52 oops 2020-01-09 01:10:13 +02:00
Jeremy Wu
ac6ee28c5f Add sorting
order by result title asc, then type being folder first.
2020-01-08 21:50:29 +11:00
Jeremy Wu
c509c02546 Update search wild card
when retrieving folders and files based search term, use wildcard to match everything before and after search term
2020-01-08 20:39:34 +11:00
Jeremy Wu
1258c44bad Merge pull request #104 from theClueless/queryPluginsUpdates
Querypluginsupdates
2020-01-08 07:34:07 +11:00
Jeremy Wu
fe65e7a0c4 Merge branch 'WIP_fuzzyMatchUpdates' into fuzzyMatchUpdates 2020-01-07 22:31:21 +11:00
Jeremy Wu
76727d09bf Update StringMatcher's UserSettingSearchPrecision property type
makes more sense and less conversion to int for actual precision score
2020-01-07 22:30:36 +11:00
Jeremy Wu
2a49b3899a Update tests
Two scoring changes only as a result of substring matching.
2020-01-07 20:26:26 +11:00
AT
49b85d150c initial work, added github to setting,
change update manage from static
created log folder prop for log class
2020-01-07 02:34:46 +02:00
Jeremy Wu
b54241a5b2 Update scoring for all substrings contained in compare string 2020-01-07 08:28:27 +11:00
Jeremy Wu
78a2086535 Remove containedFully variable state
Not necessary to have and not needed to add another dimension to the scoring
2020-01-07 08:04:56 +11:00
Jeremy Wu
24cc5dbaa0 Add unit tests for checking substrings
checking if all substrings contained in compareString
2020-01-07 07:55:02 +11:00
Jeremy Wu
0093838a75 fix variable state which failed to represent correctly
Failed if query text is 'sql servman'- returns true when should be false
- moved it up so evaluation is included in the final substring check
2020-01-07 07:25:13 +11:00
Jeremy Wu
dde658a514 rename variable state allWordsFullyMatched 2020-01-07 07:22:00 +11:00
Jeremy Wu
13996740e0 Add additional test which should pass for regular precision 2020-01-07 07:12:34 +11:00
Jeremy Wu
e4b017b304 fix index out of range exception
occurs when query contains more than one whitespace eg. 'sql  manag'
2020-01-07 05:59:47 +11:00
Yosef Durr
a2a683d31e adding fancy zone opacity setting, enhancement #631 (#1008)
* adding fancy zone opacity setting, enhancement #631

* applying zone opacity setting to all zones during zone selection

* changing opacity setting to percentage
2020-01-06 09:59:18 -08:00
Jeremy Wu
5040f09f0c Update method summary only 2020-01-06 21:38:07 +11:00
Jeremy Wu
19911d9f1f Update comment only 2020-01-06 21:19:15 +11:00
Jeremy Wu
04b0f8b2a4 Remove fuzzy match github repo reference + add logic context in summary
1. Remove the github repo reference as we have mixed in substring matching
2. Added context on how the logic is run
2020-01-06 21:06:41 +11:00
Jeremy Wu
e453dceacd Move condition checking into functions
- Moved if statement that checks if all query substrings are matched into a funciton
- convert into shorthand expression the if statement that checks if all words are fully matched
2020-01-06 20:51:27 +11:00
Jeremy Wu
42a938b50b Simplify IfElse 2020-01-06 19:15:05 +11:00
Jeremy Wu
4cf3cff74d Merge pull request #115 from theClueless/imageOptimization
Imageoptimization
2020-01-06 18:11:13 +11:00
Chris Davis
3ffd007cc0 Ensure previous search and replace texts are evaluated and updated in the UI at startup (#1043)
Ensure stored settings get evaluated after initial enumeration

There was a bug where the list view was not getting updated with the results of the search and replace on launch when we are using a stored search or replace text from a previous session.
2020-01-04 00:39:02 -08:00
AT
28b098cfb7 make image created in hash freeze 2020-01-04 00:40:37 +02:00
AT
fd59088528 made data images freeze as well 2020-01-03 22:33:00 +02:00
AT
05bd32f750 remove comment 2020-01-03 22:01:15 +02:00
AT
e80147d24e removed a duplicate check 2020-01-03 21:17:58 +02:00
AT
72e1a19ea5 remove using 2020-01-03 21:16:38 +02:00
AT
b14d6c9216 adding hash ability to image loader (reducing the load on memory) 2020-01-03 21:16:17 +02:00
Enrico Giordani
c894d72b52 Remove unwanted files (#1037)
Add temp build files to gitignore
2020-01-03 16:10:32 +01:00
Jeremy Wu
220dbd7e30 Move some logic into functions
- Move checking if there is a prev compare string char match into function
- Move updating of index list when a better match is found for the first substring logic into function
2020-01-03 08:02:02 +11:00
Jeremy Wu
84d6fc2787 Update variable names
Make variables more descriptive of the state they represent
2020-01-03 07:58:20 +11:00
Jeremy Wu
f6d0738c79 debug logging 2020-01-02 08:04:16 +11:00
Jeremy Wu
52615c6f52 WIP variables 2020-01-02 08:02:23 +11:00
theClueless
34342599b9 Update MainWindow.xaml
removed delay in binding
2019-12-30 01:28:10 +02:00
AT
42edb20b07 fixes to string matcher alg and some logging stuff 2019-12-30 01:13:33 +02:00
Clint Rutkas
a14784cfd4 Merge pull request #1026 from microsoft/updatePackages
Update packages for NPM
2019-12-27 13:48:20 -08:00
Clint Rutkas
32440567ad Merge pull request #1025 from microsoft/languageTweaks
Language tweaks for #937
2019-12-27 13:41:50 -08:00
Clint Rutkas
25f1dc325d slight bump for fabric ui 2019-12-27 13:35:34 -08:00
Clint Rutkas
38feeee464 npm audit fix to update stuff 2019-12-27 13:19:51 -08:00
Clint Rutkas
b2701ad911 Merge pull request #1024 from microsoft/DocTweakForSettings
Update settings-web.md
2019-12-27 12:51:08 -08:00
Clint Rutkas
d41962f9d1 adjusting elevated permission verbiage to match Windows 2019-12-27 12:28:27 -08:00
Clint Rutkas
ec5d01545a Update settings-web.md 2019-12-27 11:12:43 -08:00
Clint Rutkas
03ddadc1ed tweaking language 2019-12-27 10:26:00 -08:00
Bartosz Sosnowski
3e55b61ac0 Runner: fix run as elevated wording (#1023) 2019-12-27 16:20:36 +01:00
Bartosz Sosnowski
5a7f022e40 settings-web: use Windows build-in commands (#1019) 2019-12-27 13:25:34 +01:00
Clint Rutkas
f651e10684 Merge pull request #1017 from microsoft/languageTweaks
#768
2019-12-26 14:20:38 -08:00
Clint Rutkas
b753f920e1 #768 2019-12-26 11:06:59 -08:00
Enrico Giordani
415a0cdf28 Coding style (runner) (#1013) 2019-12-26 17:26:11 +01:00
Enrico Giordani
9708961654 Coding style (settings) (#1012) 2019-12-26 17:25:56 +01:00
Bartosz Sosnowski
47bcb117b4 FancyZones: do not zone windows on startup (#982) 2019-12-24 15:47:28 +01:00
yuyoyuppe
3eb38e558e project template: fix rc file in module template (#992) 2019-12-24 17:06:58 +03:00
yuyoyuppe
a321eb8737 MSIX: minor cleanup, add certificate generation script 2019-12-24 17:06:10 +03:00
yuyoyuppe
62c65659cc format changed files 2019-12-24 17:06:10 +03:00
yuyoyuppe
249addebff powerrename: implement shellext support for UWP 2019-12-24 17:06:10 +03:00
yuyoyuppe
860087d291 MSIX: implement initial msix installer 2019-12-24 17:06:10 +03:00
Jeremy Wu
c63e8d32c9 Merge branch 'master' into dev 2019-12-24 20:17:52 +11:00
Jeremy Wu
91e4603917 Add usage tips 2019-12-24 20:16:27 +11:00
Jeremy Wu
276278db41 Merge branch 'dev' 2019-12-24 20:05:38 +11:00
Clint Rutkas
b58d4e306a Merge pull request #1000 from crutkas/crutkas/923
fix for #923
2019-12-23 20:17:17 -08:00
Clint Rutkas
21a57a0c58 Merge pull request #1001 from microsoft/980
Update for #980
2019-12-23 20:16:03 -08:00
Clint Rutkas
06b1e43492 Update for #980
clearly stating when "Match all" needs to be enabled
2019-12-20 15:49:14 -08:00
Clint Rutkas
2c1ffde3ed fix for #923 2019-12-20 14:53:56 -08:00
vldmr11080
918ebc62a2 When spacing is set to 0 or turned off display 1px border so user can distinguish zone edges. No spacing will be applied in actual layout. (#994) 2019-12-20 19:46:14 +01:00
ryanbodrug-microsoft
465de438ce User/ryanbod/vstemplate fix issue 971 (#990)
* Updating ModuleTemplate zip, with vstemplate file.
* Exporting Template with powertoy icon
2019-12-19 13:39:08 -08:00
Bartosz Sosnowski
6ee848b279 FancyZones: handle minimized windows correctly (#986) 2019-12-19 16:36:24 +01:00
Bartosz Sosnowski
db5f1622bd FancyZones: do not zone invisible windows (#983) 2019-12-19 16:02:24 +01:00
Enrico Giordani
5e2f681761 Docs tweaks (#960)
Change header levels
Add Github workflow
Add reference to coding style
Minor tweaks
Fix links
Add border to images
Scale images
2019-12-17 17:02:45 +01:00
Bartosz Sosnowski
ad506d78ba Imrpove the settings doc (#958) 2019-12-17 15:18:27 +01:00
yuyoyuppe
48b89609e2 fancyzones: restrict dpi unaware windows horizontally to the current display to avoid unwanted resize 2019-12-17 15:37:10 +03:00
yuyoyuppe
0fd0a8b7cc format dpi_aware 2019-12-17 15:37:10 +03:00
yuyoyuppe
2e922019d7 DPIAware: implement GetAwarenessLevel and cleanup 2019-12-17 15:37:10 +03:00
yuyoyuppe
303d1fef6b PCH: remove headers which are actually could be changed (#950) 2019-12-17 11:21:46 +03:00
Bartosz Sosnowski
619ed234a9 Do not run elevated by default (#884)
Make the runner not run as elevated by default. Add a setting for
"run PowerToys as elevated" and buttons to restart the process
with the different elevation levels.
2019-12-16 18:36:52 +01:00
Enrico Giordani
fd8fc679be Run the Settings process un-elevated when possible
and if not possible run it elevated and let the Settings
process deal with it.
Add wrappers for GetModuleFileNameW.
2019-12-16 18:03:37 +01:00
Enrico Giordani
5a3c852b32 format 2019-12-16 18:03:37 +01:00
yuyoyuppe
4c7de77bfb fix solution configuration (#948) 2019-12-16 17:01:08 +03:00
Jeremy Wu
b08c1eeaa9 Merge pull request #107 from jjw24/add_programplugin_hidewhenrunasadmin
For Program plugin hide context menu immediately after selected run as administrator
2019-12-16 21:18:46 +11:00
yuyoyuppe
7e91121a33 PowerToy project template update (#934)
* Add PowerToy project template to the PowerToys solution
* Update PowerToy project template and create a separate solution for it
2019-12-16 13:12:36 +03:00
Jeremy Wu
cb78e10a76 Add threading task run for StartProcess
Context menu hides immediately after user selection
2019-12-16 21:03:44 +11:00
Jeremy Wu
9d031c1600 Remove obsolete bool return
because hiding is now delegated to MainWindow.xaml's OnDeactivated()
2019-12-16 21:01:45 +11:00
Tajetaje
7efe6f1d53 Correct readme links (#943)
Now in line with #913
2019-12-16 09:40:15 +01:00
Jeremy Wu
bf33c82b19 Merge pull request #106 from jjw24/fix_folderplugin_contextmenu_wordingimages
Fix wording and images for Folder plugin context menu
2019-12-16 07:03:45 +11:00
Jeremy Wu
2330454838 Fix wording and images for context menu 2019-12-16 06:58:39 +11:00
Jeremy Wu
0d0aa49eb9 Merge pull request #105 from jjw24/add_folderplugin_runasuser
Add run as different user option when file is of certain type
2019-12-15 18:11:14 +11:00
Jeremy Wu
c279f405cf Add run as different user option when file is of certain type 2019-12-15 18:08:36 +11:00
Jeremy Wu
725eee726d Merge pull request #103 from theClueless/folderPluginUpdates
Folderpluginupdates
2019-12-15 17:14:25 +11:00
AT
4c2a09369d added catch 2019-12-14 00:41:29 +02:00
AT
e6e1aab098 updates 2019-12-14 00:17:05 +02:00
Clint Rutkas
511f71c369 Merge pull request #927 from microsoft/dev/crutkas/codeAnalysis
code analysis / style cop adjustments for .NET
2019-12-13 14:09:19 -08:00
AT
3dfccea522 Revert "results and query update fixes"
This reverts commit ced0faf916.
2019-12-14 00:07:27 +02:00
AT
ced0faf916 results and query update fixes 2019-12-14 00:06:13 +02:00
vldmr11080
d284ecdab4 Fix outstanding warning messages (#924) 2019-12-13 18:55:30 +01:00
AT
be77bf94aa Merge branch 'upstreamdev' into queryPluginsUpdates 2019-12-13 18:17:11 +02:00
AT
2c87c00906 added context menu support (same as everything plugin) 2019-12-13 03:20:16 +02:00
Clint Rutkas
0ff2e212d5 #817 2019-12-12 17:11:47 -08:00
AT
92e4b5cc16 merged from upstream 2019-12-13 02:07:48 +02:00
AT
4e3228628a Merge branch 'dev' of https://github.com/jjw24/Wox into upstreamdev 2019-12-13 01:48:37 +02:00
AT
dde03eca7c started update with cancellation token 2019-12-13 01:48:05 +02:00
Clint Rutkas
107595fcb2 last stylecop issue 2019-12-12 15:18:31 -08:00
Clint Rutkas
32fb634a4d few more fixes 2019-12-12 15:07:52 -08:00
Clint Rutkas
51fbcc736e fix for CA0507 2019-12-12 15:02:22 -08:00
Clint Rutkas
360a22c537 fixed rest of info items 2019-12-12 15:00:24 -08:00
Clint Rutkas
63cb5ab883 fixed a bunch of infos 2019-12-12 14:50:25 -08:00
Clint Rutkas
151a937c10 fixed a bunch more 2019-12-12 14:34:25 -08:00
Clint Rutkas
4c88c9b029 adjusting event names 2019-12-12 13:59:58 -08:00
Clint Rutkas
24664cc859 moving converters, fixing spacing issues 2019-12-12 13:51:58 -08:00
Clint Rutkas
a187456ac3 Fixed a lot of line issues, few auto 2019-12-12 13:44:06 -08:00
Clint Rutkas
9e4752b114 fix line issues 2019-12-12 13:34:06 -08:00
Clint Rutkas
de64b33bb8 Fixing blank lines 2019-12-12 13:26:02 -08:00
Jeremy Wu
e66b64650d Merge pull request #100 from jjw24/fix_merge_bug_folderplugin
Fix merge bug in Folder plugin
2019-12-13 07:41:09 +11:00
Jeremy Wu
5139bc326a Fix bug from merge in Folder plugin 2019-12-13 07:36:12 +11:00
Clint Rutkas
826858c170 Adding in sytlecop and fixing issues 2019-12-12 12:13:31 -08:00
Clint Rutkas
f2400ee089 Getting analysis up and going 2019-12-12 11:23:36 -08:00
Seraphima
6e3587dd43 Settings unit tests (#921) 2019-12-12 18:24:00 +01:00
Jeremy Wu
7a61db9a70 Merge pull request #98 from jjw24/add_shellplugin_runas_different_user
Add Run as different user to Shell plugin
2019-12-12 21:02:07 +11:00
Jeremy Wu
da798e7a5a add run as different user option to context menu 2019-12-12 20:55:41 +11:00
yuyoyuppe
f385e46927 Devdocs reorganisation (#913)
* docs: split usage and dev docs

* # This is a combination of 2 commits.
# This is the 1st commit message:

docs: split usage and dev docs

# The commit message #2 will be skipped:

# fixup add docs

* docs: add runner documentation and move hooks documentation to devdocs

* docs: add stubs for modules technical description

* docs: add paragraph about event thread-safety

* docs: add 'Current modules' section header
2019-12-12 12:25:19 +03:00
vldmr11080
c31262b97e Flash zones only when new virtual desktop is created (#818) 2019-12-12 10:10:55 +01:00
Jeremy Wu
2e9acc1fa8 Merge pull request #85 from SysC0mp/highlight-how-results-matched
Highlight how results matched
2019-12-12 07:24:22 +11:00
SysC0mp
0f9da7f519 Always return filled result again 2019-12-11 19:10:11 +01:00
SysC0mp
971e1cdbec Fix highlighting for UWP results 2019-12-11 19:08:52 +01:00
ryanbodrug-microsoft
9fad2d68af Merge pull request #912 from ryanbodrug-microsoft/user/ryanbod/fix_unit_tests_fancyzones
[FancyZones][UnitTests] Fixing TestDeviceId, and TestUniqueId.
2019-12-11 08:49:45 -08:00
ryanbodrug-microsoft
51180adeb4 Autoformatting document. 2019-12-11 08:34:18 -08:00
SysC0mp
8ded683796 Merge branch 'dev' into highlight-how-results-matched 2019-12-11 16:50:17 +01:00
vldmr11080
31c4ab8ac0 Make sure FancyZones Editor window is on top of PowerToys settings window (#911) 2019-12-11 09:41:05 +01:00
ryanbodrug-microsoft
4f9d31e832 [FancyZones][UnitTests] Fixing TestDeviceId, and TestUniqueId to unit tests.
1. Creating a mock ZoneWindowHost.   Previously creating a ZoneWindow would throw an exception if the ZoneWindowHost is null.
2. Passing in HWND() instead of null to get rig of SAL annotation warnings.
2019-12-10 17:17:40 -08:00
Clint Rutkas
22e13e8c40 SVG logo for PowerToys 2019-12-10 16:30:53 -08:00
AT
bec52b81fd adding conetxt menu start 2019-12-11 02:21:50 +02:00
ryanbodrug-microsoft
7fc168532c Merge pull request #902 from ryanbodrug-microsoft/user/ryanbod/getexampleprojecttobuild
Getting the example project to compile, and build.
2019-12-10 15:31:31 -08:00
ryanbodrug-microsoft
69b55bcbd3 Merge pull request #905 from ryanbodrug-microsoft/user/ryanbod/fixing_unit_tests_powerrenameregex
Fix for broken unit test in power rename using regular expressions and wildcard.
2019-12-10 14:13:12 -08:00
ryanbodrug-microsoft
c6e839271a This test brake was introduced in the following fix:
1efe5bff9f

It looks to me like the test cases just was also wrong and just wasn't updated with the fix.

I've modified some of the test cases to verify the expected behavior:
1) Slight refactor of the tests to pass in the SearchReplaceExpected and flags for the tests.
2) Using Assert::AreEqual instead of Assert::IsTrue for better error meesaging when failed.
3) Verifying that the behavior is the same with or without match all occurances when using *.
4) Verifying that without the `UseRegularExpressionsFlag` the `.*` characters get replaced, including when MatchAllOccurances is set.
2019-12-10 10:11:21 -08:00
Jeremy Wu
f3a1e09042 Merge tag 'v1.3.524+JJW24.v1.26.13' 2019-12-10 22:17:31 +11:00
Jeremy Wu
b157ec1b28 Merge pull request #95 from jjw24/add_win32_runasuser_contextmenu
Add ability to run as a different user for win32 programs
2019-12-10 22:09:47 +11:00
Jeremy Wu
695be89656 Add ability to run as a different user for win32 programs 2019-12-10 22:01:12 +11:00
AT
3f3deb8e2a added share folder 2019-12-10 12:38:03 +02:00
AT
06b9d68eb7 merge from upstream 2019-12-10 12:21:06 +02:00
AT
bcc9379ebc typo in log 2019-12-10 12:18:24 +02:00
Jeremy Wu
9855e2edee Merge pull request #87 from jjw24/add_shell_plugin_runasadmin
Add option to run as administrator for Shell plugin
2019-12-10 20:27:51 +11:00
Jeremy Wu
e60e574902 update 2019-12-10 20:24:18 +11:00
Jeremy Wu
c22ab4afdf Revert changes to other plugin. Will refactor as a separate PR 2019-12-10 20:11:12 +11:00
Jeremy Wu
b123d95b71 Add run as admin toggle option to plugin settings 2019-12-10 20:03:43 +11:00
yuyoyuppe
1760af50c8 Format unittests (#906) 2019-12-10 10:28:24 +03:00
ryanbodrug-microsoft
73e33d7ba9 Getting the example project to compile, and build.
1) Adding example project to Debug / Release Builds.
2) Including <string> in common.h
3) Using std::optional instead of PowerToysValues::is_[type]_value
4) Fixing warnings generated by unreferenced 'ex' variable in exception handling.
5) Updated relative path of version.h in exeample_powertoy.rc
2019-12-09 15:04:02 -08:00
Jeremy Wu
201c26f7c8 Add run as administrator to Shell plugin settings 2019-12-10 08:23:34 +11:00
Jeremy Wu
1fd31d83bf Merge branch 'dev' into add_shell_plugin_runasadmin 2019-12-10 07:19:11 +11:00
SysC0mp
7d5c827dec Remove whitespace 2019-12-09 21:08:38 +01:00
SysC0mp
ce89ff3c85 FIx test methods
Use RawScore or Score depending on the test case. Also removed
unnecessary test settings introduced earlier.
2019-12-09 21:08:17 +01:00
SysC0mp
e60797cd0f Introduce RawScore property
New property RawScore is used to save the calculated score without any
search precision filtering added.
2019-12-09 21:06:31 +01:00
SysC0mp
49c5c5bbde Pass "ShouldUsePinyin" to StringMatcher
Flag is used in method "ShouldUsePinyin()" to avoid calling Alphabet
service. Otherwise, tests applying to StringMatcher.FuzzySearch() would
fail because the pinyin helper library fails to initialize.
2019-12-09 20:57:59 +01:00
SysC0mp
78f243651e Pass Settings instance to Alphabet again 2019-12-09 20:47:24 +01:00
yuyoyuppe
776a4d657d wix: run ngen on FancyZonesEditor (#898) 2019-12-09 19:02:47 +03:00
yuyoyuppe
8f0b962507 docs: add paragraph about clang-format (#896) 2019-12-09 16:37:43 +03:00
Jeremy Wu
8dc8431c0e Merge pull request #94 from jjw24/add_folderplugin_displaytip
Add Folder search tips results' subtitle
2019-12-09 21:36:11 +11:00
Jeremy Wu
5aa15ef731 Add tips string to folder subtitle 2019-12-09 21:27:33 +11:00
Enrico Giordani
1519843f6f Update WiX to 3.11.2 (#883) 2019-12-09 09:03:07 +01:00
AT
37a4eefc46 updated to use share folder 2019-12-09 00:26:21 +02:00
Jeremy Wu
1efcb2f80b Merge pull request #91 from jjw24/fix_folderplugin_exceptions
Fix exceptions in Folder plugin search + other fixes
2019-12-09 08:34:50 +11:00
Jeremy Wu
0acb4f5aed lower the score for folder results
A search of other scores shows highest is 500, except for calculated score from String.Matcher
2019-12-09 08:29:20 +11:00
Jeremy Wu
4f38a953ac Add handling when query action keyword is empty 2019-12-09 08:28:22 +11:00
Jeremy Wu
f05767afe8 Add exceptions for unauth and arg not found when searching 2019-12-09 08:27:50 +11:00
Jeremy Wu
ddbf23df68 Merge pull request #90 from jjw24/fix_folderplugin_missingactionkeyword
Add action keyword when changing query in Folder plugin
2019-12-09 07:47:34 +11:00
Jeremy Wu
6c4ab3b7f4 add action keyword when changing qury 2019-12-09 07:45:19 +11:00
Jeremy Wu
4d902c01a6 Merge pull request #89 from theClueless/addAltHomeforFirstResult
Addalthomeforfirstresult
2019-12-08 21:12:16 +11:00
Jeremy Wu
d1a5ba2b8e Merge pull request #88 from theClueless/folderPluginUpdates
Folderpluginupdates
2019-12-08 21:10:58 +11:00
Jeremy Wu
982cac3472 Merge pull request #86 from theClueless/smallFixes
Smallfixes
2019-12-08 20:55:09 +11:00
AT
431f22283d added goto first result command (alt home) 2019-12-07 16:57:21 +02:00
AT
7e61b1ecad updated folder plugin 2019-12-07 12:44:58 +02:00
AT
a2d685815f updated 2019-12-06 22:36:00 +02:00
vldmr11080
014c2c5249 Use same zone set initially for new virtual desktops of same monitor (#815) 2019-12-06 15:09:27 +01:00
Kevin Horecka
add63d2dde FancyZones: Added ability to use mouse only for interactions with zones (#729) 2019-12-06 12:32:43 +01:00
yuyoyuppe
81bed3d3d5 Format shortcut_example_powertoy according to .clang-format 2019-12-06 14:16:24 +03:00
yuyoyuppe
f22a30ca87 Format shortcut_guide according to .clang-format 2019-12-06 14:16:24 +03:00
yuyoyuppe
946e74a918 Use .clang-format style file from Terminal project 2019-12-06 14:16:24 +03:00
yuyoyuppe
3cd3cf9830 Implement powershell script which enables devs to clang-format modified source files 2019-12-06 14:16:24 +03:00
yuyoyuppe
bc634c5f8f Add initial .clang-format style file 2019-12-06 14:16:24 +03:00
yuyoyuppe
7357e40d3f Use WinRT JSON parser instead of custom cpprestsdk solution (#822) 2019-12-06 11:40:23 +03:00
Jeremy Wu
92bde25a49 Add option to run as administrator for Shell plugin 2019-12-06 07:49:20 +11:00
Enrico Giordani
e714cb9e8b Now working on 0.14.2 (#871) 2019-12-05 19:09:32 +01:00
Bartosz Sosnowski
fed81c8e22 Improve FancyZones window filtering (#856)
Improve FancyZones window filtering and filter out dialog windows
2019-12-04 17:53:54 +01:00
vldmr11080
3a65d5ce23 Revert: Keep window in their zone after layout changes (#852) 2019-12-04 01:55:12 +01:00
Clint Rutkas
6d482cd934 Merge pull request #849 from matthidinger/patch-1
Add link to releases tab
2019-12-03 15:35:10 -08:00
AT
02511b7785 some more 2019-12-04 00:15:46 +02:00
AT
b3fdc4bb96 updated user selected record 2019-12-03 23:37:55 +02:00
AT
c90dd0e818 updated top most record 2019-12-03 23:02:24 +02:00
Bartosz Sosnowski
0e2d93c630 Make FancyZones not zone invisible, child and tool windows
Fixes "Move newly created windows to their last known zone"
2019-12-03 19:45:03 +01:00
Matt Hidinger
de328c9dfd Add link to releases tab 2019-12-03 10:33:16 -08:00
SysC0mp
f4a2f67db3 Fix wrong comparison parameter
Wrong string was used for FuzzySearch comparison which resulted wrong highlighted letters in the results.
2019-12-03 19:23:01 +01:00
SysC0mp
601d6f37af Highlight how results matched 2019-12-03 15:31:23 +01:00
SysC0mp
a004ef65af Set title & subtitle highlight data 2019-12-03 15:31:23 +01:00
SysC0mp
8997c27819 Add highlight converter component 2019-12-03 15:31:23 +01:00
SysC0mp
2aeceb7ea8 Fix tests for new search precision handling 2019-12-03 15:31:23 +01:00
SysC0mp
627e99859d Directly calculate pinyin if needed
The MatchResult will always get the maximum score from either
ScoreForPinyin() or CalculateSearchScore(). ScoreForPinyin() is
completely dependant on the "ShouldUsePinyin" global setting.
2019-12-03 15:31:23 +01:00
SysC0mp
6ebca7fa7c Apply search precision filter on assignment
The search precision must be used, so it makes sense to apply the filter
directly on score assignment. Score will be "0" if precision filter
was not met.
2019-12-03 15:31:23 +01:00
SysC0mp
3d55ad783e Only pass needed setting to Alphabet
As Alphabet class is static, its methods could be used without
ever calling Alphabet.initialize(_settings) beforehand which would end
in an exception.  Therefor only _shouldUsePinyin settings needed will
be transferred with a given default value.
2019-12-03 15:31:08 +01:00
SysC0mp
05f66f9bea Improve code formatting 2019-12-03 15:31:07 +01:00
Jeremy Wu
434ba82705 Fix build fail from task reindex run 2019-12-03 15:31:07 +01:00
Enrico Giordani
cbe6d19c79 Update FancyZone README for v0.14.0 (#806) 2019-12-02 18:00:14 +01:00
Jeremy Wu
b47e7f068c Merge pull request #83 from theClueless/smallFixes
Smallfixes
2019-12-01 17:49:30 +11:00
Jeremy Wu
20a59a2c58 Merge pull request #82 from theClueless/fixProgramLock
Fixprogramlock
2019-12-01 17:46:00 +11:00
vldmr11080
57845a2739 Don't flash current zone setup when focused window is in full screen (#796) 2019-11-30 14:38:27 +01:00
vldmr11080
9a8ab29330 Reverse logic for keep windows in their zones when fancyzone layout changes (#812) 2019-11-30 12:15:16 +01:00
AT
406cc71f96 remove unused new list 2019-11-29 02:05:48 +02:00
AT
132d0631d2 program lock bug 2019-11-29 01:38:50 +02:00
Enrico Giordani
3095ade94c Now working on 0.14.1 (#797) 2019-11-28 11:06:23 +01:00
Jeremy Wu
09c7955149 Merge pull request #80 from jjw24/fix_buildfail_task_reindex
Fix build fail from task reindex run
2019-11-17 18:07:40 +11:00
Jeremy Wu
9a2a88a703 Fix build fail from task reindex run 2019-11-17 18:06:25 +11:00
Jeremy Wu
820ae7d6e3 Merge branch 'master' into dev 2019-11-17 17:49:18 +11:00
Jeremy Wu
9c69f22f79 Merge pull request #77 from theClueless/pinyinInfraSettings
Pinyin infra settings
2019-11-17 17:35:08 +11:00
Jeremy Wu
85ad6b12ba Merge pull request #78 from theClueless/programSyncIssue
fixed lock issue
2019-11-17 17:30:04 +11:00
Jeremy Wu
79706b4a1a Merge pull request #76 from theClueless/uwpErrorFix
fixed broken log
2019-11-17 17:26:19 +11:00
theClueless
72180d4248 Merge branch 'dev' into uwpErrorFix 2019-11-16 11:48:09 +02:00
AT
8446c9563d fixed lock issue 2019-11-16 02:37:01 +02:00
AT
9d98d26cc7 added log into Alphabet service since it can induce a large perf hit 2019-11-16 01:28:07 +02:00
AT
0c762e610f fixed broken log 2019-11-16 00:57:30 +02:00
AT
dcb9e34d59 alphabet settings 2019-11-16 00:34:27 +02:00
Jeremy Wu
1960262435 Merge branch 'dev' 2019-11-12 07:41:09 +11:00
Jeremy Wu
c227062a37 Merge pull request #74 from jjw24/add_browserpath_userselection
Allow user to set browser for Url, WebSearch and BrowserBookmark plugins
2019-11-12 07:40:18 +11:00
Jeremy Wu
e9376af13c Merge pull request #73 from jjw24/allow_option_websearch_openintab
Add option to open web search in new tab or new window
2019-11-12 07:39:59 +11:00
Jeremy Wu
8edebb9f75 Merge branch 'add_browserpath_userselection' into dev 2019-11-12 07:22:32 +11:00
Jeremy Wu
8abe31341d Add browserpath display on load 2019-11-12 07:22:03 +11:00
Jeremy Wu
c1eca93609 update path textbox layout browser bookmarks 2019-11-12 07:16:32 +11:00
Jeremy Wu
cd953bc7b9 Update layout for Url plugin setting + remove apply button 2019-11-12 07:14:58 +11:00
Jeremy Wu
205b505242 Browser bookmarks update display and remove apply button 2019-11-11 22:29:15 +11:00
Jeremy Wu
f77cd9bd52 add browser path to open method in browser bookmark plugin 2019-11-11 22:05:19 +11:00
Jeremy Wu
11948c1cce Add browser selection to WebSearch plugin 2019-11-11 22:04:01 +11:00
Jeremy Wu
d7e6f97d9c Add browser path selection for browserbookmark plugin 2019-11-11 21:17:37 +11:00
Jeremy Wu
e324856301 Merge branch 'allow_option_websearch_openintab' into add_browserpath_userselection 2019-11-11 20:35:24 +11:00
Jeremy Wu
8fb873b085 Merge branch 'allow_option_websearch_openintab' into dev 2019-11-11 08:01:05 +11:00
Jeremy Wu
c17eb5fce5 Add user selection option for browserbookmark plugin 2019-11-11 08:00:31 +11:00
Jeremy Wu
91e9bdfc31 update 2019-11-11 07:36:58 +11:00
Jeremy Wu
c83edc1689 Add user selection option to url plugin 2019-11-11 06:49:17 +11:00
Jeremy Wu
dcbd4f3356 add option to Url plugin 2019-11-11 06:04:16 +11:00
Jeremy Wu
3929043eec fixed enable suggestions display 2019-11-11 05:59:37 +11:00
Jeremy Wu
23712ce590 Add option in WebSearches plugin settings panel for user selection 2019-11-10 20:43:40 +11:00
Jeremy Wu
adb2582856 Reverse out common open browser call and update open browser in tab 2019-11-10 20:15:14 +11:00
Jeremy Wu
3e292d7604 Reverse changes made to new browser window call 2019-11-10 20:12:45 +11:00
Jeremy Wu
b565d1ab76 Update naming 2019-11-10 19:51:50 +11:00
Jeremy Wu
2debabe664 Add option to open in tab for WebSearch plugin 2019-11-10 19:12:43 +11:00
Jeremy Wu
e1fc11218f Merge pull request #72 from theClueless/upstreamdev
Fix bug throwing exception for IcoPath null
2019-11-10 17:00:12 +11:00
AT
ed59d6acf5 when both icopath and icon delegdate are empty\null it will raise an exception.
currently delegate is verified and an error icon will be presented (same as before) but without raising an excpetion.
2019-11-09 11:55:53 +02:00
Jeremy Wu
93c952b344 Update README.md 2019-11-08 05:47:54 +11:00
Jeremy Wu
d818a15aea Merge branch 'master' into dev 2019-11-08 05:40:45 +11:00
Jeremy Wu
6a664d976f Merge pull request #69 from jjw24/fix_error_message
Fix error message logging for prod run
2019-11-08 05:39:06 +11:00
Jeremy Wu
5b7a71fb08 Fix missing required parameter in logger 2019-11-08 05:38:40 +11:00
Jeremy Wu
b29d83968b Merge branch 'master' into fix_error_message 2019-11-08 05:37:42 +11:00
Jeremy Wu
3e14c8e80d Merge branch 'dev' 2019-11-08 05:35:15 +11:00
Jeremy Wu
62bbe39bb4 Merge pull request #66 from jjw24/Add_known_programplugin_error
Add known errors during debug run
2019-11-08 05:34:33 +11:00
Jeremy Wu
4305ec34d0 Merge branch 'dev' 2019-11-08 05:33:11 +11:00
Jeremy Wu
c92db272e0 Merge pull request #68 from theClueless/uwpErrorFix
Uwperrorfix
2019-11-07 18:43:16 +11:00
Jeremy Wu
46274acb3e Add error message specification 2019-11-07 07:46:18 +11:00
Jeremy Wu
8a676c573a Fix error message logging for prod run 2019-11-07 07:40:04 +11:00
AT
d2ca74ecdf added protection when creating uwp 2019-11-01 21:44:55 +02:00
Jeremy Wu
67e53906f0 Merge branch 'dev' 2019-10-27 21:00:05 +11:00
Jeremy Wu
cde7f2ab1c Merge pull request #63 from jjw24/add_contextmenu_return_afterselection
Add return to main query window from context menu after selection
2019-10-27 20:50:28 +11:00
Jeremy Wu
1cd9c57f87 Merge pull request #62 from jjw24/add_hidedeactive_defaulttrue
Set HideWhenDeactive default as true
2019-10-27 20:49:19 +11:00
Jeremy Wu
c625ad32c5 Merge pull request #60 from jjw24/update_allow_plugindisabled_default
Fix plugin start up disabled by default + disabling Everything & HelloWorldCSharp plugins
2019-10-27 20:47:56 +11:00
Jeremy Wu
15eca63ff0 Merge pull request #31 from jjw24/enable_userselected_programloading
Enable users to configure what programs to load
2019-10-27 20:43:50 +11:00
Jeremy Wu
d149df2a6e Merge branch 'master' into enable_userselected_programloading 2019-10-27 20:43:22 +11:00
Jeremy Wu
30fdcf4efb Merge pull request #24 from jjw24/add_reindix_program_suffix
Add reindex call to Plugin.Program file suffixes update
2019-10-27 20:41:43 +11:00
Jeremy Wu
ea54abdfde Add file being held by another process error to known
This occurs during app initialisation, and add empty list to allow continuing during debug
2019-10-27 19:04:10 +11:00
Jeremy Wu
2757dc7205 Add known error when trying to retrieve UWP program's thumbnail 2019-10-27 14:22:50 +11:00
Jeremy Wu
e35ad892eb Merge branch 'add_dedicated_programplugin_logger' into dev 2019-10-27 12:28:26 +11:00
Jeremy Wu
140e2a026e Merge branch 'dev' into add_dedicated_programplugin_logger 2019-10-27 12:23:16 +11:00
Jeremy Wu
c89ab4e47c Merge remote-tracking branch 'origin/dev' into dev 2019-10-27 12:22:31 +11:00
Jeremy Wu
ab05e34805 Merge pull request #61 from theClueless/defualtMatchOption
Defualt match option
2019-10-27 12:21:13 +11:00
AT
4a201c1890 defualt match option and some small updates to help testing 2019-10-26 11:30:51 +03:00
Jeremy Wu
cb3e863957 Merge branch 'update_allow_plugindisabled_default' into dev 2019-10-25 13:12:34 +11:00
Jeremy Wu
8e20e54b53 Merge branch 'add_dedicated_programplugin_logger' into dev 2019-10-25 13:12:20 +11:00
Jeremy Wu
3cf4b4ed8b Create better logging dedicated for Programs plugin 2019-10-25 13:11:52 +11:00
Jeremy Wu
10241a37c2 Merge branch 'enable_userselected_programloading' into dev 2019-10-24 13:33:00 +11:00
Jeremy Wu
0eb3a5cab3 update 2019-10-24 13:32:12 +11:00
Jeremy Wu
4945767bd8 prevent duplication from loading start menu programs 2019-10-24 13:31:09 +11:00
Jeremy Wu
217760148c remove white space 2019-10-24 12:59:47 +11:00
Jeremy Wu
210e219778 rename get program methods 2019-10-24 12:57:07 +11:00
Jeremy Wu
50896ee23b prevent duplication from loading custom program sources 2019-10-24 12:51:33 +11:00
Jeremy Wu
41432b4165 Remove duplicated programs loading from registry 2019-10-24 12:42:35 +11:00
Jeremy Wu
d41b8e7441 Merge branch 'enable_userselected_programloading' into dev 2019-10-24 10:06:59 +11:00
Jeremy Wu
aed17bde9b Merge branch 'add_hidedeactive_defaulttrue' into dev 2019-10-24 10:06:25 +11:00
Jeremy Wu
5b430fc376 Merge branch 'add_contextmenu_return_afterselection' into dev 2019-10-24 10:06:15 +11:00
Jeremy Wu
e1064275a0 Remove unused packages 2019-10-24 09:27:27 +11:00
Jeremy Wu
6f8d252dc6 add prevention from double clicking disable in context menu 2019-10-24 09:23:57 +11:00
Jeremy Wu
b89e296390 Set HideWhenDeactive default as true 2019-10-24 08:20:12 +11:00
Jeremy Wu
99b5e3565d Add return to main query window from context menu after selection 2019-10-23 20:20:33 +11:00
Jeremy Wu
6ec33db50e Set HelloWorldCSharp plugin as disabled by default 2019-10-23 16:19:22 +11:00
Jeremy Wu
aa4922840b Set Everything plugin as disabled by default 2019-10-23 16:18:55 +11:00
Jeremy Wu
28239c4a51 Fix to allow plugin to start up disabled as default 2019-10-23 16:18:21 +11:00
AT
8ee8f2c085 added the abitliy to opt out of pinyin in control panel and in program plug in - this give a major perf boost (and I'm guessing it is not relevant for most users) 2019-10-20 22:15:24 +03:00
Amir Tepper
a3ba2276e2 renamed for Defualt match option 2019-10-20 15:45:06 +03:00
Amir Tepper
aefc90dc19 revert the change so you need declare an IGNORE_UWP in order to not use the windwos SDK 2019-10-20 15:43:50 +03:00
Jeremy Wu
511c0dd17c Merge branch 'enable_userselected_programloading' into dev 2019-10-18 21:39:49 +11:00
Jeremy Wu
e1b211ed8e update 2019-10-18 08:16:07 +11:00
Jeremy Wu
08f409993a update 2019-10-18 08:01:07 +11:00
Jeremy Wu
2e90cda34c Add reindex requirement for startup 2019-10-18 07:53:00 +11:00
Jeremy Wu
b97d674108 Update button positioning and label 2019-10-18 07:38:21 +11:00
Jeremy Wu
f8cbe053cc Add right click option on query to disable program 2019-10-17 22:47:00 +11:00
Amir Tepper
0e241a0fc5 added empty match option 2019-10-17 13:37:09 +03:00
Amir Tepper
31916384c1 update query defualt to string empty instead of null and update result plugin id to be internal 2019-10-17 13:11:23 +03:00
Amir Tepper
e6f17834a0 added sdk const by default 2019-10-17 12:21:57 +03:00
Amir Tepper
e1f2bc0a19 for unit tetsing 2019-10-17 12:19:52 +03:00
Jeremy Wu
12d3ca2d50 fix delete logic 2019-10-17 08:00:54 +11:00
Jeremy Wu
aa08125e43 fix directory drag drop 2019-10-17 07:35:27 +11:00
Jeremy Wu
9ce94a8398 update 2019-10-17 07:04:56 +11:00
Jeremy Wu
34a3535abe Add dynamic Delete to the Enable/Disable button 2019-10-17 06:43:18 +11:00
Jeremy Wu
ac79803f1b Update setting description summary 2019-10-16 22:38:44 +11:00
Jeremy Wu
006ec1abb8 Fix add button action to not duplicate + implement new model 2019-10-16 22:38:02 +11:00
Jeremy Wu
b2a47e6216 Add uniqiue identifier when adding customer user program source 2019-10-15 22:40:33 +11:00
Jeremy Wu
85638c23ae Add reindex call for enable/disable button
For when program source enable && disable + where program not in cache
2019-10-15 22:39:55 +11:00
Jeremy Wu
44c1c93e81 Change DisabledProgramSource class to inherit ProgramSource 2019-10-15 20:22:20 +11:00
Jeremy Wu
06c9ff49a0 Fix identation + display disabled program sources 2019-10-15 20:21:55 +11:00
Jeremy Wu
bbe72f52ba Update reindex call to use disabledprogramsources 2019-10-15 20:20:55 +11:00
Jeremy Wu
5793b85c5b Add Enable program source to Program plugin view 2019-10-15 08:05:21 +11:00
Jeremy Wu
eccc3717bc Merge branch 'master' into enable_userselected_programloading 2019-10-15 05:49:00 +11:00
Amir Tepper
a89b2ca450 remove the need for windows SDK 2019-10-14 14:22:20 +03:00
Jeremy Wu
41e5d2524b Merge branch 'add_reindix_program_suffix' into dev 2019-10-14 21:50:17 +11:00
Jeremy Wu
de55be515d Merge branch 'master' into add_reindix_program_suffix 2019-10-14 21:49:06 +11:00
Jeremy Wu
6a0c6047e6 Merge branch 'master' into dev 2019-10-11 21:36:23 +11:00
Jeremy Wu
0db8898577 Merge pull request #55 from jjw24/dev
Merge PR 54 from Dev to Master
2019-10-11 21:27:47 +11:00
Jeremy Wu
a38695ff8a Merge pull request #50 from jjw24/enable_manual_reloaddata
Enable manual plugin data reload
2019-10-11 20:58:39 +11:00
Jeremy Wu
5ab45a1185 Merge pull request #51 from jjw24/update_browserbookmark_subtitle_wording
Remove BrowserBookmark subtitle wording "Boomark"
2019-10-11 20:56:27 +11:00
Jeremy Wu
805d892dbb Merge pull request #49 from jjw24/fix_websearch_globalpluginwildcard_search
Fix WebSearch plugin missing query part when searching with global wildcard
2019-10-11 20:55:33 +11:00
Jeremy Wu
d5348cec70 remove duplicate 'success' as a result of merge from PR 50 2019-10-09 06:42:24 +11:00
Jeremy Wu
167ef06209 remove single white space, no code change 2019-10-09 06:24:42 +11:00
Jeremy Wu
d64a7cb739 Merge branch 'enable_manual_reloaddata' into dev 2019-10-09 06:18:55 +11:00
Jeremy Wu
b2584bb01b Add hide query window before actual reload + show success msg 2019-10-09 06:18:09 +11:00
Jeremy Wu
8b8cb12763 Add reload success message 2019-10-09 06:17:34 +11:00
Jeremy Wu
127e28a6f4 Remove task to wait for the program reload to complete 2019-10-09 06:16:53 +11:00
Jeremy Wu
73c46f2a85 Merge pull request #54 from ismailcarlik/dev
Added Turkish translation and some other i18n work.
2019-10-08 23:08:04 +11:00
Jeremy Wu
36e1fcc24a Reverse out test package for merge prep 2019-10-08 23:04:02 +11:00
İsmail Carlık
ed0e637207 fixed mistakes and added new translation keys 2019-10-08 14:48:56 +03:00
İsmail Carlık
6b8a55f55b Added Turkish translation and some other i18n work. 2019-10-07 18:08:06 +03:00
Jeremy Wu
509049d95a update package 2019-10-06 15:41:36 +11:00
Jeremy Wu
83280de352 Merge branch 'update_browserbookmark_subtitle_wording' into dev 2019-10-06 15:39:45 +11:00
Jeremy Wu
a4e4c8baaa Remove BrowserBookmark subtitle wording "Boomark" 2019-10-06 15:39:12 +11:00
Jeremy Wu
00d27bc313 update package 2019-10-06 14:18:06 +11:00
Jeremy Wu
78ce12bc60 Merge branch 'enable_manual_reloaddata' into dev 2019-10-06 14:16:19 +11:00
Jeremy Wu
7e8d7ef0c0 Update wording 2019-10-06 13:52:04 +11:00
Jeremy Wu
d1c01f476d update 2019-10-06 13:48:52 +11:00
Jeremy Wu
bb3c38a3b1 update 2019-10-06 13:47:52 +11:00
Jeremy Wu
8ca6e8c478 Add command for user to call in Plugin.Sys 2019-10-06 13:45:36 +11:00
Jeremy Wu
96660ebd2a Exposes reload command via IPublicAPI 2019-10-06 13:44:38 +11:00
Jeremy Wu
9e69d01db7 Add reload call for Programs plugin 2019-10-06 13:15:06 +11:00
Jeremy Wu
1c015e31f1 Add IReloadable interface and method 2019-10-06 11:58:36 +10:00
Jeremy Wu
bf12b127ac Move code from Main class to Bookmarks class for cleanliness 2019-10-06 11:55:57 +10:00
Jeremy Wu
dd733092a1 create static bookmark class that will contain bookmark functions 2019-10-06 11:52:18 +10:00
Jeremy Wu
30fd5fcf14 Add interface that will be used by plugins 2019-10-06 11:50:25 +10:00
Jeremy Wu
483940a98d Allow PluginManager class to manage the reload call 2019-10-06 11:49:47 +10:00
Jeremy Wu
615bc17cec Expose reload data call in PublicAPIInstance wider usage 2019-10-06 11:48:40 +10:00
Jeremy Wu
94cf350e5c update package 2019-10-05 18:31:17 +10:00
Jeremy Wu
fa594e732f Merge branch 'fix_websearch_globalpluginwildcard_search' into dev 2019-10-05 18:29:00 +10:00
Jeremy Wu
4c0c9eb7fb Fix missing query part when using global wildcard sign
when using global wildcard sign that is the same as action keyword
2019-10-05 18:24:12 +10:00
Jeremy Wu
e9cd95fc6a Update package 2019-10-05 12:30:27 +10:00
Jeremy Wu
b68675d9fd Merge branch 'fix_firefox_bookmarks_notshowing' into dev 2019-10-05 12:20:39 +10:00
Jeremy Wu
d4abfffa2f Merge branch 'fix_firefox_bookmarks_plugin' into dev 2019-10-05 12:20:30 +10:00
Jeremy Wu
2d6d664f77 Merge pull request #46 from jjw24/fix_firefox_bookmarks_notshowing
Fix Firefox bookmarks not showing
2019-10-05 11:51:43 +10:00
Jeremy Wu
c1f08cf2ea Merge pull request #45 from jjw24/fix_firefox_bookmarks_plugin
Fix BrowserBookmarks plugin crashing when using Firefox bookmarks
2019-10-05 11:49:22 +10:00
Jeremy Wu
f4d762c19b fix not closing the db connection after opening 2019-10-03 08:09:11 +10:00
Jeremy Wu
1ed7d34200 Update how plugin locates profile path 2019-10-03 08:06:56 +10:00
Jeremy Wu
4f5d805725 Merge branch 'fix_firefox_bookmarks_plugin' into fix_firefox_bookmarks_notshowing 2019-10-03 07:32:37 +10:00
Jeremy Wu
bde8dbba05 Fix BrowserBookmarks plugin for Firefox bookmarks 2019-10-02 07:28:25 +10:00
Jeremy Wu
f6b5404a04 Add package 2019-10-01 20:28:52 +10:00
Jeremy Wu
ce9f2157e8 Update README.md 2019-09-30 22:58:02 +10:00
Jeremy Wu
64cd9c0dd2 Merge pull request #43 from jjw24/fix_controlpanel_search
Fix ControlPanel plugin search bug
2019-09-30 22:02:43 +10:00
Jeremy Wu
ab4cc74aca Merge pull request #42 from jjw24/merge_hibernation_function
Add hibernation feature Sys plugin from upstream Dev
2019-09-30 22:01:21 +10:00
Jeremy Wu
8cdb5fe346 Merge pull request #39 from jjw24/make_fuzzysearch_userfriendly
Make fuzzy search user friendly
2019-09-30 21:55:37 +10:00
Jeremy Wu
aae7987df0 update 2019-09-30 21:51:15 +10:00
Jeremy Wu
1817105c94 Fix ControlPanel plugin search bug 2019-09-30 21:11:34 +10:00
Jeremy Wu
88ca98c5a6 Add code 2019-09-30 20:03:06 +10:00
Jeremy Wu
8717cd077c Add ui for user preference selection 2019-09-29 20:04:30 +10:00
Jeremy Wu
9658af4aa9 update 2019-09-29 15:18:50 +10:00
Jeremy Wu
d40a79576b Update ControlPanel plugin with new code 2019-09-29 15:18:34 +10:00
Jeremy Wu
481bd4ac68 Update Sys plugin with new code 2019-09-29 15:18:05 +10:00
Jeremy Wu
6625a2afd3 Update mainview model with new code 2019-09-29 15:17:40 +10:00
Jeremy Wu
cc23495591 Update Program plugin with new code 2019-09-29 15:03:30 +10:00
Jeremy Wu
acd42f9cc6 Update test with updated method name 2019-09-29 14:43:49 +10:00
Jeremy Wu
a2e439a155 Update browserbookmark plugin with new code 2019-09-29 14:42:34 +10:00
Jeremy Wu
d0fac80eb4 Update browserbookmark plugin with new code 2019-09-29 14:30:33 +10:00
Jeremy Wu
3f90611edf Initial prep of settings and start up default 2019-09-29 14:27:46 +10:00
Jeremy Wu
d8a9630548 Update test 2019-09-29 14:27:07 +10:00
Jeremy Wu
fbb5d4a4a6 Make FuzzMatcher class obsolete and keep backwards compatibility 2019-09-29 14:26:15 +10:00
Jeremy Wu
e5753c54a6 Convert StringMatcher class to static and move code from FuzzySearch 2019-09-29 14:24:38 +10:00
Jeremy Wu
9ab9ea4c2e Add precision score tests for new function 2019-09-29 13:27:28 +10:00
Jeremy Wu
2301478b3f update 2019-09-29 00:09:56 +10:00
Jeremy Wu
df9b09eeae Add tests for fuzzy search and CalScore method 2019-09-29 00:09:03 +10:00
Jeremy Wu
7e7b2797d7 Update README.md 2019-09-28 11:34:59 +10:00
Jeremy Wu
287f1ae042 Update readme project description 2019-09-28 11:33:32 +10:00
Jeremy Wu
4bc665c0d2 Merge pull request #37 from austintrose/fix-typo
Fix typo 'launche' -> 'launcher'.
2019-09-26 08:17:39 +10:00
Jeremy Wu
5390d0668b Merge pull request #36 from jjw24/update_testframework_add_adaptor
Update Test Framework + Add Test Adaptor
2019-09-26 08:07:44 +10:00
Jeremy Wu
f55724bf58 Update Test Framework + Add Test Adaptor 2019-09-26 07:53:56 +10:00
Austin Rose
4300b3a9e0 Fix typo 'launche' -> 'launcher'. 2019-09-25 15:03:35 -04:00
Jeremy Wu
c085b263a7 Add latest release link to badge 2019-09-22 21:54:44 +10:00
Jeremy Wu
3877014f83 Add badges 2019-09-22 21:38:20 +10:00
Jeremy Wu
83b1613002 Update readme with release package link 2019-09-22 20:41:37 +10:00
Jeremy Wu
329f7a2e00 Merge pull request #17 from jjw24/update_websearch_when_suggestions_on
Speed up WebSearch plugin when suggestions turned on
2019-09-22 18:30:12 +10:00
Jeremy Wu
0e0785db7b Merge branch 'master' into update_websearch_when_suggestions_on 2019-09-22 18:25:53 +10:00
Jeremy Wu
9638a4a4e6 Merge pull request #16 from jjw24/tunoff_auto_update
Set AutoUpdates off as default setting
2019-09-22 17:52:50 +10:00
Jeremy Wu
91be43169c Merge pull request #19 from jjw24/enable_portable_mode
Enable portable mode
2019-09-22 17:45:21 +10:00
Jeremy Wu
01af7e36cd Merge pull request #30 from jjw24/fix_folderplugin_equalitybug
Fix Result object comparison bug causing Folders plugin to open wrong location
2019-09-22 17:39:17 +10:00
Jeremy Wu
d30ca2345e Merge pull request #23 from jjw24/add_save_settingsmenue_close
Save all plugins' settings on closing Settings menu
2019-09-22 17:33:18 +10:00
Jeremy Wu
26be6ae7c5 bug fix 2019-09-13 07:26:24 +10:00
Jeremy Wu
31c0fc5742 Merge pull request #22 from jjw24/add_save_allsettings
Add to Sys plugin- save all Wox settings
2019-09-12 08:27:52 +10:00
Jeremy Wu
1a7f8d5319 Merge pull request #21 from jjw24/fix_success_word_typo
Fix typo of 'success'
2019-09-12 08:25:19 +10:00
Jeremy Wu
14e4a052bb Update btn name to 'All Programs' 2019-09-12 08:05:09 +10:00
Jeremy Wu
ae3d8860be Update multi-selection 2019-09-12 07:53:19 +10:00
Jeremy Wu
2eede422a4 Add sorting 2019-09-12 07:42:42 +10:00
Jeremy Wu
24debbf349 remove debug code 2019-09-11 08:05:20 +10:00
Jeremy Wu
81e252d564 Update load programsources with uniqueidentifier 2019-09-11 08:01:38 +10:00
Jeremy Wu
1ca9389110 Update class to inherite from Settings.ProgramSource 2019-09-11 07:16:38 +10:00
Jeremy Wu
10fb76377c Update disable logic and add unique identifier for programs 2019-09-10 07:57:03 +10:00
Jeremy Wu
4a6242b3a0 Add initial disable program code 2019-09-08 22:18:55 +10:00
Jeremy Wu
b540cc8ac4 Refactor Plugins.Program 2019-09-08 22:16:47 +10:00
Jeremy Wu
5fb0402216 Updated button positions and name 2019-09-07 16:28:16 +10:00
Jeremy Wu
bc202ecc98 Add disable programs functionality 2019-09-07 15:58:13 +10:00
Jeremy Wu
9d3f0d45d5 Add display of all loaded applications 2019-09-06 08:06:51 +10:00
Jeremy Wu
f51c391e84 Enable user selected program loading only
Update logic, add program source only loading
2019-09-05 08:05:17 +10:00
Jeremy Wu
909fbaab95 Fix Result object comparison bug 2019-08-31 16:58:15 +10:00
Jeremy Wu
67655d15cc Add reindex when updating plugin.program suffix 2019-08-25 17:40:59 +10:00
Jeremy Wu
83b4a3da30 Save all plugins' settings on settings menu close 2019-08-23 07:38:39 +10:00
Jeremy Wu
768a195c10 update showmsg 2019-08-23 07:20:50 +10:00
Jeremy Wu
16e8cfdf31 Revert get translation as none is provided 2019-08-22 22:03:51 +10:00
Jeremy Wu
c0c55a7af8 Add to Sys plugin- save all Wox settings 2019-08-22 21:37:36 +10:00
Jeremy Wu
e625dc63b4 Fix typo 'success' 2019-08-21 20:18:20 +10:00
Jeremy Wu
dedac39d99 Increase error message fade from 1 to 5 secs 2019-08-21 08:37:50 +10:00
Jeremy Wu
fe6d7d16c8 Handling chrome browser not installed 2019-08-21 08:30:18 +10:00
Jeremy Wu
de8e248f29 update 2019-08-20 21:47:03 +10:00
Jeremy Wu
7217ef5ec5 Move comment to PR 2019-08-20 21:43:32 +10:00
Jeremy Wu
6a33173384 Enable portable mode 2019-08-20 21:29:30 +10:00
Jeremy Wu
b520b26bd0 Add check null for event 2019-08-20 10:25:37 +10:00
Jeremy Wu
1761f63acd Merge pull request #13 from jjw24/update_browserbookmarks_open_newbrowser
Update BrowserBookmarks plugin to open in new browser window
2019-08-20 07:48:14 +10:00
Jeremy Wu
e58b09c1ea Merge branch 'master' into update_browserbookmarks_open_newbrowser 2019-08-20 07:47:01 +10:00
Jeremy Wu
7c7e2c4f3d Merge pull request #12 from jjw24/add_sharedplugin_commands
Add shared commands for all default plugins to use
2019-08-20 07:45:24 +10:00
Jeremy Wu
20abcaa011 Merge pull request #6 from jjw24/update_websearchplugin_as_systemplugin
Wox.Plugin.WebSearches- Update plugin to search web without specific action key word
2019-08-20 07:43:37 +10:00
Jeremy Wu
297e6543de Merge pull request #5 from jjw24/update_plugin_openurl_newbrowser
Wox.Plugin.URL- Open URL in new window browser
2019-08-20 07:38:09 +10:00
Jeremy Wu
ec54f9a549 Update README.md build instructions for VS 2017/2019 2019-08-20 06:44:51 +10:00
Jeremy Wu
c064ca3ca9 Merge pull request #4 from jjw24/update_readme_buildinstructions
Update readme VS build instructions
2019-08-20 06:37:28 +10:00
Jeremy Wu
56bd31fe22 Update README.md build instructions for VS 2017/2019 2019-08-20 06:30:25 +10:00
Jeremy Wu
ac8e042333 Speed up WebSearch plugin when suggestions turned on 2019-08-19 21:14:29 +10:00
Jeremy Wu
718b189f19 Merge pull request #11 from jjw24/add_browserbookmarks_defaultplugin
Add BrowserBookmarks plugin as default plugin
2019-08-15 23:06:16 +10:00
Jeremy Wu
1fa9543e47 Set AutoUpdates off as default setting 2019-08-13 20:02:26 +10:00
Jeremy Wu
563209d080 Merge pull request #7 from jjw24/fix_postbuild_script
Fix post_build.ps1 script failing due to PS ExecutionPolicy
2019-08-07 20:04:55 +10:00
Jeremy Wu
ca71c700c7 Merge pull request #10 from jjw24/add_blackandwhite_theme
Add Black And White Theme
2019-08-07 19:58:49 +10:00
Jeremy Wu
585e2627bf Use shared command and open in new browser window 2019-08-06 22:23:41 +10:00
Jeremy Wu
579bbe2b86 Merge branch 'add_sharedplugin_commands' into update_browserbookmarks_open_newbrowser 2019-08-06 22:20:57 +10:00
Jeremy Wu
5138644dc8 Merge branch 'add_browserbookmarks_defaultplugin' into update_browserbookmarks_open_newbrowser 2019-08-06 22:15:10 +10:00
Jeremy Wu
2310d36604 update 2019-08-06 22:00:38 +10:00
Jeremy Wu
7d9e848edb use shared commands 2019-08-06 21:58:46 +10:00
Jeremy Wu
a3770a8947 Merge branch 'add_sharedplugin_commands' into update_plugin_openurl_newbrowser 2019-08-06 21:51:46 +10:00
Jeremy Wu
06d4a82706 Add shared commands and move to shared 2019-08-06 21:49:51 +10:00
Jeremy Wu
c0095dc385 Merge branch 'add_sharedplugin_commands' into update_websearchplugin_as_systemplugin 2019-08-06 21:40:46 +10:00
Jeremy Wu
07060a8584 Add shared commands for plugins to use 2019-08-06 21:27:54 +10:00
Jeremy Wu
784e54f217 Add BrowserBooks plugin as default plugin 2019-08-06 20:36:28 +10:00
Jeremy Wu
104156d084 update 2019-08-04 22:08:38 +10:00
Jeremy Wu
48180b7ee8 update 2019-08-04 22:06:32 +10:00
Jeremy Wu
ef34a63f7a Update Initialisation of plugin method
Handle when plugin has a mix of global and non-global action keywords
2019-08-04 21:47:05 +10:00
Jeremy Wu
45483809c5 Update RemoveActionKeyword method
Update the method to handle removal when a plugin has multiple ActionKeywords ie. mix of global and non-global ActionKeywords
2019-08-04 21:44:56 +10:00
Jeremy Wu
9d89c1d692 update 2019-08-04 21:38:36 +10:00
Jeremy Wu
cb4fde9a0b Mini refactor
Move Process.Start to static class level
2019-08-04 11:42:08 +10:00
Jeremy Wu
8f17a49a24 Add Black And White Theme 2019-08-02 22:35:58 +10:00
Jeremy Wu
e18e923ac6 Bugfix and update
Fix bug when no browser path specified will be null instead of .Length == 0. 

Add open url in new browser window by default
2019-08-02 22:14:08 +10:00
Jeremy Wu
ed3b939477 Merge branch 'fix_postbuild_script' into update_plugin_openurl_newbrowser 2019-08-02 19:31:14 +10:00
Jeremy Wu
977d21c929 Bug fix- Edit & Delete buttons will crash if selected search source is null
SelectedSearchSource will be null if the user clicks on Edit or Delete after finishing with previous edit and not highlighting the search source again.
2019-08-02 13:18:38 +10:00
Jeremy Wu
89f0cdffc7 Update Main.cs 2019-08-02 12:32:02 +10:00
Jeremy Wu
9685dca4de Simplified command with Bypass 2019-08-02 00:39:08 +10:00
Jeremy Wu
010218b5ce Fix post_build.ps1 script failing due to PS ExecutionPolicy 2019-08-01 23:27:21 +10:00
Jeremy Wu
52252453d9 Update WebSearch plugin as System Plugin or User Plugin 2019-08-01 20:55:13 +10:00
Jeremy Wu
057108882f Open URL in new window browser 2019-08-01 20:52:50 +10:00
Jeremy Wu
90b3cfcf9f Merge pull request #3 from itziksi/branch_itziksi_1
Added build instructions for VS 2019
2019-08-01 08:00:46 +10:00
Jeremy Wu
4231d7b50a Merge pull request #1 from jjw24/add_folderplugin_displaylocation
Add folder location display to Wox.Plugin.Folder
2019-07-31 20:39:26 +10:00
Jeremy Wu
b85632cc99 Add folder location display 2019-07-31 20:11:50 +10:00
Itzik S
1b81570338 added build instructions for VS 2019 2019-06-24 18:01:00 +03:00
CHU Zhaowei
0e03b951d4 Merge branch 'dev'
# Conflicts:
#	Wox.Core/Resource/AvailableLanguages.cs
2019-06-21 14:34:11 +08:00
Jan-Henrich Mattfeld
6d05600eaf Link F1 help to current website (#2414)
Pressing F1 leads to the - now unavailable - old wox website.

The updated URL should be http://doc.wox.one/

#2413
2019-06-21 14:29:18 +08:00
ScratchBuild
807422c377 Update Japanese translation (#2511) 2019-06-20 16:53:37 +08:00
蝦米
768cef57c7 fix cs 2019-03-05 03:21:39 +08:00
CHU Zhaowei
bcf1d32cdd follow up for new language support 2019-03-04 11:04:04 +08:00
Vladimír Kubala
def67eca3b Added Slovak translation (#2376) 2019-03-04 11:02:14 +08:00
蝦米
388a8b6346 fix #2363 theme font changes both whenever one is changed 2019-03-04 11:00:57 +08:00
Vladimír Kubala
7ab937cf7b Added Slovak translation (#2376) 2019-02-25 22:34:00 +08:00
jhdxr
4bb460528f Merge branch 'dev' 2019-02-23 04:06:45 +08:00
KallistiMan
1ab636a4f1 fix unexpected hovor without mouse moving (#2368)
fix #975 
close #2043
2019-02-23 04:05:10 +08:00
magicdmer
a6e82475a3 Add everything plugin context menu and add settings in Url plugin (#2299)
1. Add useful context menu items in everything
2. Add settings in Url plugin, can set browser path

* let url plugin support multi Languages
2019-02-23 04:03:59 +08:00
蝦米
9de8b16aeb update badge to show status for master only
[ci skip][skip ci]
2018-12-25 14:32:33 +08:00
jhdxr
0baf7744bc error handling for theme loader 2018-12-25 13:33:50 +08:00
jhdxr
580c2b9e84 use Pack URIs for Base.xaml (as a demo for 3rd party themes) 2018-12-25 13:33:50 +08:00
jhdxr
84673f26f3 support user defined theme files in %appdata% (close #1267, #662) 2018-12-25 13:33:50 +08:00
Kanglai Qian
ab1efb0749 Open With Editor (#2261) 2018-12-25 13:17:35 +08:00
jhdxr
4b0532b072 fix loading language package for it, nb-NO, pt-br, sr, uk-UA (fix #1319) 2018-12-23 02:57:29 +08:00
jhdxr
d458500113 fix #1456 Error when empty recycle bin 2018-12-22 14:44:40 +08:00
jhdxr
d9fe2e0974 improve chinese translation 2018-12-22 14:44:39 +08:00
jhdxr
3fddb77564 validate path before save (fix #1869) 2018-12-22 14:44:39 +08:00
蝦米
3dd7a82dcc Update README.md 2018-12-22 12:48:16 +08:00
jhdxr
3dac6fd1c3 hide tray icon (close #563) 2018-12-19 12:15:05 +08:00
jhdxr
7fe01f0764 skip calculation of pinyin score if source string is too long (#1683) 2018-12-19 12:14:52 +08:00
Benedikt Strasser
d7da96b387 Removed FontFamily entries in Base Theme (#2186) 2018-12-19 00:36:28 +08:00
Patrick Sletvold
3f95584dac Translate to Norwegian Bokmål (dev branch, properly this time) (#2184)
* Translate to Norwegian Bokmål

* Add Norwegian to AvailableLanguages.cs
2018-12-18 23:36:02 +08:00
Lorenzo Marcolin
de5578c8f7 Add Italian language (#2143)
* Add Italian language
2018-12-18 23:35:52 +08:00
Tulio Leao
1d410fdb7d Add support for Portuguese (Brazil) (#2119)
Translates Language file into Portuguese (Brazil)
2018-12-18 23:35:43 +08:00
蝦米
54545d0bfc Update ISSUE_TEMPLATE.md
provide chinese translation for issue template
2018-07-16 00:04:21 +08:00
jhdxr
01131b2296 fix appveyor build failure 2018-07-16 00:04:09 +08:00
Zepp
9b2239d4fa UWP HiDPI icon support (#1515)
* Add HiDPI support for UWP on Windows 10

* Code structure improvement
2018-07-15 23:32:22 +08:00
Jonathan Clark
1b55201fbd Fix typo (#2055) 2018-07-15 23:32:08 +08:00
Dandjinh
be43c2156f skip broken folder when re-index (#2004)
* skip broken folder when re-index

* add log for DirectoryNotFoundException
2018-07-15 23:31:54 +08:00
Đorđe Pekić
c393db9c9f Added support for Serbian (#2029) 2018-07-15 23:31:40 +08:00
庄秋彬
4a749ce00d Update README.md (#2006)
Update README.md, set latest version link to 1.3.524
2018-07-15 11:25:19 +08:00
Yuichi Hirano
13e6c5eefc Translate some words into Japanese. (#1982) 2018-04-30 10:23:39 +08:00
Boris Makogonyuk
343b904607 ImageLoader now loads everything through IShellItemImageFactory::GetImage (#1836)
* Added thumbnail loader

* Deleted old shell icon extraction logic.
Refactored ImageLoader.Load to improve readibility.

* Moved error handling down into the API call itself

* Minor renamings in ImageLoader

* Load icons only for files that are not images. Fixes stutters when loading folders.

* Added the ability to load a full image through ImageLoader.
ImageLoader.Load now also has a "loadFullImage" parameter.

* Max image cache is now 5000 instead of 200.

* Added some commentaries on how thumbnails are loaded
2018-04-30 10:20:36 +08:00
bao-qian
553a6e8ff6 back 2018-02-25 02:56:41 +08:00
bao-qian
9423b8da57 update website 2018-02-25 02:18:35 +08:00
jhdxr
a7470345ff disable input method when binding hotkey (fix #1876) 2018-02-14 12:12:12 +08:00
Boris Makogonyuk
2aca12a49c Issue template update (#1846)
* Update to ISSUE_TEMPLATE

Template partially based on https://github.com/facebook/react-native/blob/master/.github/ISSUE_TEMPLATE.md
2018-01-19 23:12:39 +01:00
Duncan Ogilvie
810ee422a1 Execute the OpenResultComand with Ctrl and Alt modifiers when pressing enter (#1685) 2017-12-25 02:10:46 +08:00
Boris Makogonyuk
1c10ee106e Program paths fix + #1779 (#1780)
* ProgramPaths now searches for files on a per-folder basis using a Queue instead of calling EnumerateFiles.  This allows us to escape permission errors.
Issue #1779 is fixed because of this too.
2017-12-24 11:52:53 +01:00
Boris Makogonyuk
e251c59da1 Merge pull request #1783 from smallg0at/patch-1
Update README.md
2017-12-24 11:44:59 +01:00
YC L
df35844bb2 Update README.md
minor fix for "pinyin" part
2017-12-24 17:08:14 +08:00
Boris Makogonyuk
d8006087a2 Merge pull request #1778 from lances101/hotfix/detailed-aggregate-exception
Changed exception formatting back to default ToString call
2017-12-22 20:00:48 +01:00
Boris Makogonyuk Vasylev
1fa91cbb6f Changed ReportWindow's exception formatting back to Exception.ToString() call as it is more detailed and provides more information for AggregateException and others. 2017-12-22 19:44:40 +01:00
Boris Makogonyuk
3aacfdca20 Merge pull request #1776 from lances101/feature/cache-being-used
#1394 caching fix
2017-12-22 17:05:31 +01:00
Boris Makogonyuk Vasylev
b886422416 Added file length check before loading cache and removed BinaryStorage.Save when file was already locked. 2017-12-22 16:59:55 +01:00
Keul
a29ea0374c Updated French Translation (#1522)
added :
lastQueryMode
LastQueryPreserved
LastQuerySelected
LastQueryEmpty
checkUpdatesFailed
downloadUpdatesFailed
2017-12-16 15:10:34 +08:00
jhdxr
e6a09e7cf7 Merge branch 'dev' 2017-10-21 16:44:21 +08:00
jhdxr
83282ebcb8 fix #1397 action keywords should not be set to empty string 2017-10-21 16:23:22 +08:00
jhdxr
d3169b10f8 Merge branch 'master' into dev 2017-10-21 15:11:53 +08:00
蝦米
197c22c7fe Merge pull request #1628 from shufflecode/dev
since Yamp is not maintained anymore, replaced with Mages
2017-10-21 14:59:40 +08:00
Michael Wirth
cfe923b8c4 re-enabled exception during debug 2017-10-17 20:01:41 +02:00
Michael Wirth
742048f24e Fixed typos and swapped Brackets for parentheses, Corrections due to PR 2017-10-16 20:17:53 +02:00
Michael Wirth
36111aa001 since Yamp is not maintained anymore, i switched it for Mages
https://github.com/FlorianRappl/Mages
fixes also #1022
2017-10-15 20:21:23 +02:00
bao-qian
8a0f80181e Notes for maintenance 2017-04-23 23:33:53 +01:00
Hüseyin Tüfekçilerli
fd4fec5340 Removed extra leading space char (#1368) 2017-04-11 15:43:10 +01:00
LiuJianhua
808523b814 Fix folder UnauthorizedAccessException #1282 #1357 2017-04-11 15:40:11 +01:00
Michael Eichhorn
5640b2157f ContextMenu 4: for non c# plugin #1366 2017-04-11 14:50:26 +01:00
Michael Eichhorn
f3d79d906e ContextMenu 3: Format #1366 2017-04-11 14:50:25 +01:00
Michael Eichhorn
5198f70ebf ContextMenu 2: Extract DeserializedResult #1366 2017-04-11 14:50:25 +01:00
Michael Eichhorn
de12208d4a ContextMenu 1: Rename #1366 2017-04-11 14:50:09 +01:00
bao-qian
e20247d055 Merge pull request #1364 from martian-f/calculator-user-locale
Convert calculator numbers from/to user locale.
2017-04-11 11:45:34 +01:00
martian-f
0862326a79 Convert calculator numbers from/to user locale.
Tries to convert numbers in query string to invariant culture format before passing to YAMP, and the other way around when presenting result from
YAMP. Nothing fancy, just a regular expression scanning for substrings consisting of number, decimal separator and group separator, trying a
parse and convert on them. Translation is skipped if no conversion between user locale and invariant culture number format is necessary.

Closes #436.
2017-04-10 23:43:23 +02:00
bao-qian
16531653ab Merge branch 'master' into dev 2017-04-07 11:55:56 +01:00
bao-qian
2f3a2d495a Update ISSUE_TEMPLATE.md 2017-04-06 16:28:16 +01:00
bao-qian
baa9837702 Update ISSUE_TEMPLATE.md 2017-04-06 15:26:11 +01:00
bao-qian
cfa7d9820b remove annoying fail prompt #1339 2017-04-05 13:59:16 +01:00
bao-qian
3554d9fda2 Handle more exceptions for UWP #1309 2017-04-01 19:15:23 +01:00
bao-qian
cb2eebef40 More exception info 2017-04-01 18:56:29 +01:00
bao-qian
f4d0cc4dd1 Misc 2017-04-01 18:50:22 +01:00
bao-qian
d31347c0e0 Revert "Remove first chance exception"
This reverts commit 4aa4d98c08f3bcc176bd3ac1b9b718ab98298ca4.
The squirrel crash is not caused by this #1320
2017-04-01 18:45:57 +01:00
bao-qian
911a43337b error report windows won't crashs 2017-04-01 13:13:53 +01:00
bao-qian
f62f15cea7 Decouple runtime info and dependencies info 2017-04-01 13:02:07 +01:00
bao-qian
dcd27a5f7a Add more NonNull check 2017-04-01 12:54:05 +01:00
bao-qian
bf4c4561ce Remove some useless code for error reporting 2017-04-01 12:49:51 +01:00
bao-qian
cc6c18b5ad fix debug info 2017-04-01 12:49:51 +01:00
bao-qian
6b536ced92 let it crash 2017-04-01 12:49:51 +01:00
bao-qian
60ca0cbae3 Add build instruction 2017-03-31 11:39:20 +01:00
bao-qian
b16abfba9c Remove more duplicated dll 2017-03-30 18:52:49 +01:00
bao-qian
0a34143388 Ensure UpdateManager is Disposed #1320 2017-03-30 18:43:52 +01:00
bao-qian
1e79f202f4 Merge branch 'master' of https://github.com/Wox-launcher/Wox 2017-03-29 10:19:12 +01:00
bao-qian
90f7b5259b Remove first chance exception
Remove first chance exception,
it crash the app frequently when squirrel throw/catch exception internally.
2017-03-28 22:30:55 +01:00
bao-qian
2d143abda6 update #1266 help info 2017-03-27 00:18:47 +01:00
bao-qian
128671f5e9 fix github update error handling #1266 2017-03-27 00:10:02 +01:00
bao-qian
6945eb548f Add default config 2017-03-14 20:28:05 +00:00
bao-qian
ca3cd36887 add script into solution 2017-03-14 02:24:41 +00:00
bao-qian
31da08d186 fixup 2017-03-14 02:16:30 +00:00
bao-qian
1c90b09e2d Make the name same as post build event in vs 2017-03-14 02:14:20 +00:00
bao-qian
18056139fd ignore more files 2017-03-14 02:12:34 +00:00
bao-qian
0898632ba4 Clean solution items 2017-03-14 02:12:34 +00:00
bao-qian
f79a493083 Merge appveor build script and visual studio build script into one 2017-03-14 02:12:33 +00:00
bao-qian
2b159e24a7 fixup 2017-03-14 02:12:33 +00:00
bao-qian
d8032836bf Rewrite appveyor build script 2017-03-14 00:45:41 +00:00
bao-qian
b881f3c1c8 misc 2017-03-07 19:37:38 +00:00
bao-qian
6f42bcfa4f Use own update manager, so we can pass proxy #1266 2017-03-07 19:23:42 +00:00
bao-qian
ade6c46cca let it crash for http get 2017-03-07 18:57:47 +00:00
bao-qian
c6d0bf8d98 misc 2017-03-07 18:33:18 +00:00
bao-qian
c41035058a Merge update logic #1266 2017-03-06 01:54:06 +00:00
bao-qian
e66f7a206e Add new version popup 2017-03-06 01:30:47 +00:00
bao-qian
cec3d986a7 add local buil script 2017-03-06 01:04:51 +00:00
bao-qian
c6e65b4e24 test 2017-03-06 01:01:58 +00:00
bao-qian
ccb7e5270c Misc 2017-03-06 00:05:03 +00:00
bao-qian
ff29b6e84f fix can't catch exception issue
- Origin code can't catch exception in code, and all exceptions goes
into first chance exception hanlding.
- releated: #1266
- http://stackoverflow.com/a/5383408/2833083
-
https://msdn.microsoft.com/en-us/magazine/jj991977.aspx?f=255&MSPPError=-2147217396
2017-03-05 23:59:10 +00:00
bao-qian
6ed9e09451 More exception info 2017-03-04 16:41:03 +00:00
bao-qian
75ce6d42d0 update nuget package 2017-03-04 16:35:24 +00:00
Jason Ko
3bb0b93c79 make the font list sorted (#1263) fix #790 2017-03-02 11:07:52 +00:00
bao-qian
87834b74ef Update ISSUE_TEMPLATE.md 2017-03-02 00:42:23 +00:00
bao-qian
6ef434f26d Update README.md 2017-03-02 00:30:06 +00:00
bao-qian
15b4152dce fixup 2017-03-02 00:29:18 +00:00
bao-qian
4aa19d700d Update README.md 2017-03-02 00:27:16 +00:00
bao-qian
3edf667958 Add coding style 2017-03-02 00:16:58 +00:00
bao-qian
c9b3b6c1b8 Merge pull request #1265 from bagjob/master
Add Korean language.
2017-03-01 23:49:53 +00:00
bao-qian
6e3bc5e65d Save more 2017-03-01 23:47:50 +00:00
bao-qian
886e35477e Add more error handling, fix #1252 2017-03-01 23:21:34 +00:00
bagjob
2f7fbea567 Add Korean language.
Add Korean language.
2017-03-01 15:17:39 -08:00
bao-qian
b7ecbd3b51 fixup 2017-02-28 00:31:46 +00:00
bao-qian
92b636ab75 Don't remove /Theme/Dark.xaml 2017-02-28 00:12:53 +00:00
bao-qian
28c57f75e8 Fix #1255 2017-02-28 00:12:06 +00:00
bao-qian
cb1305c87f typo 2017-02-27 23:21:08 +00:00
bao-qian
392bfcca2d Add universal pretty print method 2017-02-26 20:44:35 +00:00
bao-qian
2f95b8f6b2 more error handling for i18n 2017-02-26 20:44:35 +00:00
bao-qian
96330b6f03 Update README.md 2017-02-24 12:25:39 +00:00
bao-qian
b509ae78b7 Merge pull request #1250 from jhdxr/bugfix/1199
PageUp/PageDown for result list
2017-02-23 14:52:30 +00:00
bao-qian
3a8a16bf48 fix #1252 #1251 2017-02-23 11:13:05 +00:00
jhdxr
8d2cab7b12 fix #1199 PageUp/PageDown for result list 2017-02-23 13:04:44 +08:00
bao-qian
9034d6194a update badges 2017-02-23 02:17:42 +00:00
bao-qian
f8e400deb9 fix mainwindow position issue #823 #1172
thanks @slav for https://github.com/Wox-launcher/Wox/pull/960
2017-02-23 02:01:27 +00:00
bao-qian
13290efac1 misc 2017-02-21 11:54:39 +00:00
bao-qian
1df4da210f remove useless code 2017-02-21 11:54:39 +00:00
bao-qian
d0c426a7f9 Completely rewrite resource load / update / remove
1. part of #468
2. fix #1245, bug introduced in 7e1c77beddf2c978fa1440e799fec4eb9554739d
2017-02-21 11:53:57 +00:00
bao-qian
17e5bb8d53 catch more json exception 2017-02-20 12:16:49 +00:00
bao-qian
019cd51333 click event will occur when setting is clicked and cause blur in center of setting window #711 2017-02-20 00:33:32 +00:00
bao-qian
d62458b07b Fix unremoved resource bug #711 2017-02-19 23:29:13 +00:00
bao-qian
2e01153363 remove blur when there is no blur in theme #711 2017-02-19 22:28:42 +00:00
bao-qian
50ef826114 add note 2017-02-19 20:27:25 +00:00
bao-qian
ddb28a9b90 null enhance 2017-02-13 09:38:48 +00:00
bao-qian
0656ddd50a fixup 30dfad29f6100153247db4edb6753d8db5112888 2017-02-13 00:49:09 +00:00
bao-qian
afdbf0adbf Add last query mode #1141 #1050
https://github.com/Wox-launcher/Wox/issues/1050
https://github.com/Wox-launcher/Wox/issues/1141
2017-02-12 22:34:12 +00:00
bao-qian
a5f5098beb backup existing broken file 2017-02-12 20:03:32 +00:00
bao-qian
e5c98e61c8 add nonnull check 2017-02-12 19:40:28 +00:00
bao-qian
2793c8dd03 add issue link to comment 2017-02-12 17:56:39 +00:00
bao-qian
e4e226b2c7 force pinyin library static constructor initialize #858 2017-02-12 17:22:56 +00:00
bao-qian
46f98ded10 change init order 2017-02-12 17:10:42 +00:00
bao-qian
86b2391543 Cache for pinyin https://github.com/Wox-launcher/Wox/issues/1189 2017-02-12 16:57:41 +00:00
bao-qian
00ea4f8701 Move initia and save from MainViewModel to App 2017-02-12 16:57:24 +00:00
bao-qian
f7c9a12510 remove storage dependency from jsonstorage 2017-02-07 00:21:39 +00:00
bao-qian
b6a7e049e6 fix null bug in 4c07698c99a1e30f441af5d2782a679c5ff68968 2017-02-07 00:20:55 +00:00
bao-qian
45b3863353 move constant into local scope 2017-02-06 22:16:58 +00:00
bao-qian
c2764fda45 use proper plugin metadata 2017-02-06 22:15:28 +00:00
bao-qian
d358a9d9fd remove useless virtual method 2017-02-06 22:04:52 +00:00
bao-qian
1a08ba0b57 Merge pull request #1210 from barakyaari/master
Fixed typo in HelloWorldCSharp plugin
2017-01-30 00:32:13 +00:00
bao-qian
974efc55ac remove custom exception 2017-01-30 00:26:11 +00:00
BarakYaari
dc46277d0c Fixed typo in HelloWorldCSharp 2017-01-28 11:29:06 +02:00
bao-qian
052048ad4c unfied log format validation and log format example 2017-01-25 00:24:00 +00:00
bao-qian
c361d8d16b fixup 2017-01-25 00:23:28 +00:00
bao-qian
045fd20d8c Rewrite all log message format 2017-01-24 01:02:32 +00:00
bao-qian
fdfd684e7a remove useless stream.close and more log 2017-01-14 14:21:02 +00:00
bao-qian
0a2592893d rename cache file 2017-01-14 14:10:30 +00:00
bao-qian
4c6c310e0a Use cache type directly instead of a new class, decouple binarystorage and storage 2017-01-13 15:40:32 +00:00
bao-qian
a5aa305773 remove unused stop watcher 2017-01-13 15:39:46 +00:00
bao-qian
196cf1cd18 faster startup time for control panel plugin 2017-01-13 14:15:48 +00:00
bao-qian
0cf654aa88 fixup 2017-01-13 01:32:54 +00:00
bao-qian
2cf20f4b6c genuine cache for program plugin 2017-01-13 01:21:00 +00:00
bao-qian
6b0ba94288 format 2017-01-12 20:50:17 +00:00
bao-qian
870ad008bf calculate score for addtional info 2017-01-12 20:50:12 +00:00
bao-qian
767aaa80a0 add pinyin cache for control panel plugin #858 2017-01-12 20:49:13 +00:00
bao-qian
5eadaa08aa prefill pinyin cache for program plugin #858 2017-01-12 20:47:29 +00:00
bao-qian
5cdc3e694f Add cache for pinyin query #858 2017-01-12 20:46:40 +00:00
bao-qian
e96382fdd9 auto change log level 2017-01-12 19:52:37 +00:00
bao-qian
a486319cc2 temp fix for slow pinyin query #1017 2017-01-12 02:16:53 +00:00
bao-qian
1432866798 add startup boundary to log 2016-11-30 02:35:56 +00:00
bao-qian
4a375b6563 fix 0 init time record 2016-11-30 01:08:29 +00:00
bao-qian
743658032a speedup program load time 2016-11-30 01:07:48 +00:00
bao-qian
e2f8f5095f fix stopwatch logging type 2016-11-30 00:39:03 +00:00
bao-qian
a22ca5b57f refactoring stopwatch 2016-11-30 00:32:30 +00:00
bao-qian
b43c6c00bb enhance exception logging 2016-11-30 00:32:30 +00:00
bao-qian
c56e4557f9 enhance lnk program exception handling 2016-11-30 00:32:30 +00:00
bao-qian
6b640ea55e fix location null 2016-11-29 01:55:11 +00:00
bao-qian
70f8a771a9 reorganize methods 2016-11-29 01:46:29 +00:00
bao-qian
4b4aec5bbd fix log logic 2016-11-29 01:26:47 +00:00
bao-qian
00198d5e49 fix image 2016-11-29 01:23:40 +00:00
bao-qian
8a19d25396 rewrite uwp by not using GetAppListEntriesAsync,
because
1. logo is not squarelogo44x44
2. can't get details info (background etc)
2016-11-29 01:23:40 +00:00
Enzo
8533f6edf1 Update Themes URL link 2016-11-29 01:23:40 +00:00
Enzo
bc9693d6f6 Updated French Translation 2016-11-29 01:23:40 +00:00
bao-qian
43a03d85a8 update ignore file 2016-11-21 22:03:23 +00:00
bao-qian
f0d63bed58 update nuget package version 2016-11-21 21:55:39 +00:00
bao-qian
0a3978ab8c update nuget package version 2016-11-18 00:29:36 +00:00
bao-qian
1c09b8baef Merge branch 'master' of https://github.com/Wox-launcher/Wox 2016-11-16 23:14:32 +00:00
Boris Makogonyuk
547b610454 Merge pull request #1012 from HA3IK/lang--uk-UA
Interface: added the Ukrainian language and corrected error in text in the Russian language
2016-11-11 23:05:49 +01:00
Boris Makogonyuk
9d39bed852 added getting started guide line 2016-11-11 22:12:55 +01:00
Boris Makogonyuk
70ff7cf74c 1.3.67 version link bumped to 1.3.183 2016-11-11 12:41:33 +01:00
Boris Makogonyuk
8908fb07a0 Merge pull request #1066 from jhdxr/patch-1
fixes typo in issue template
2016-11-08 20:10:25 +01:00
xiami
f2c4ac061c fix typo 2016-11-09 02:29:56 +08:00
HA3IK
b2871d8fc5 Corrected obvious error in the text in the template of Russian interface (ru.xaml) 2016-10-11 07:04:23 +01:00
HA3IK
f4c6e5a6fa Ukrainian language was added to the main list of languages 2016-10-11 06:47:34 +01:00
HA3IK
67d838b5fc Added new interface template (uk-UA.xaml) & was translated into the Ukrainian language 2016-10-11 06:44:26 +01:00
bao-qian
f15a354c29 comments 2016-09-06 01:25:00 +01:00
bao-qian
281e03055d Fix non exe lnk
for lnk like control panel.lnk, it has no target and no exe extension.
2016-09-06 01:16:42 +01:00
bao-qian
216e9c0125 fix uwp parts for #964 2016-09-05 22:41:09 +01:00
bao-qian
2c14f8b43b partial fix for #964 2016-09-05 22:30:29 +01:00
bao-qian
89a77feea7 temp hack for multipla application mismatch problem #198
e.g. mail and calendar, skype video and messaging

https://github.com/Wox-launcher/Wox/issues/198#issuecomment-244778783
2016-09-05 22:10:08 +01:00
bao-qian
5ca880c8fd Better logo handling for uwp #198 2016-09-05 20:33:31 +01:00
bao-qian
17671493bf Leave only exe programs from start menus #198 2016-09-05 18:08:30 +01:00
bao-qian
0d687eb348 fix js based application logo #198 2016-09-05 17:45:29 +01:00
bao-qian
1e01f94540 Merge branch 'master' into dev 2016-08-31 16:41:38 +01:00
Alex Meyer-Gleaves
335ef67971 Improve UWP indexing #954
1. enable WinJS based UWP
2. ms bug of InstalledLocation:
https://connect.microsoft.com/VisualStudio/feedback/details/1690879/vs2015-cannot-auto-uninstall-universal-windows-appss-debug-item
2016-08-31 16:39:13 +01:00
bao-qian
429d0c8df8 add common known problems 2016-08-30 21:11:33 +01:00
bao-qian
72b41f4322 fixup 2016-08-22 09:49:32 +01:00
bao-qian
fb5938280e Move context menu and socre into program model 2016-08-22 02:21:28 +01:00
bao-qian
2d72c58ae7 fixup 2016-08-22 02:21:28 +01:00
bao-qian
ad99e8edce Update README.md 2016-08-21 01:56:35 +01:00
bao-qian
d463f5a032 fixup 2016-08-20 21:46:48 +01:00
bao-qian
1415f74fe5 Check AppListEntry #198 2016-08-20 19:19:33 +01:00
bao-qian
8de84f03a0 Better title and subtitle 2016-08-20 18:50:14 +01:00
bao-qian
fe85ce5885 Fix multi application uwp package #198 2016-08-20 18:25:55 +01:00
bao-qian
9dc7142e4a fixup 2016-08-20 18:19:49 +01:00
bao-qian
34a8d0b99b fixup 2016-08-20 18:19:13 +01:00
bao-qian
176e2726e9 Fix unicode in lnk dexcrption 2016-08-20 18:18:41 +01:00
bao-qian
2e4a1680b9 Parallel linq everywhere
1. Parallel linq
2. remove depth
3. fix #257
2016-08-20 17:11:02 +01:00
bao-qian
1eddae9da6 Remove overlay of shortcut icon again
1. remove GDI dependency
2. remove unused pinvoke define
3. Remove overlay of shortcut icon
2016-08-20 13:10:33 +01:00
bao-qian
f217dbac51 fixup 2016-08-20 02:36:36 +01:00
bao-qian
eb74414b16 disable file watcher
Filewatcher will only watch directory given by user,
a bit useless.
disable for now
2016-08-20 01:18:43 +01:00
bao-qian
ee542f0fec Merge models 2016-08-20 01:17:28 +01:00
bao-qian
0c0ec29821 Add icon constant 2016-08-20 01:02:47 +01:00
bao-qian
955ce1dd2d Ignore broken cache #783 2016-08-20 01:02:20 +01:00
bao-qian
f32f37cfbb rename 2016-08-19 23:25:36 +01:00
bao-qian
8684788f1f rename 2016-08-19 23:25:13 +01:00
bao-qian
9e033d1673 rename 2016-08-19 23:24:21 +01:00
bao-qian
69c00d272b Fix can't find file exception caused by abnormal scale 2016-08-19 23:15:40 +01:00
bao-qian
19617e9dae Refactoring start menu source
1. refactoriong start menu source
2. fix depth problems involved in last commit
2016-08-19 23:05:59 +01:00
bao-qian
f8cc54d4f2 Refactoring App Paths source 2016-08-19 22:08:45 +01:00
bao-qian
8764aa9829 Remove suffixes from model 2016-08-19 20:34:20 +01:00
bao-qian
fb68f6eb60 Remove enable property from model 2016-08-19 19:16:06 +01:00
bao-qian
d09c42366a Remove bonus points 2016-08-19 19:09:11 +01:00
bao-qian
0298fa602a Code refactoring #198 2016-08-19 19:02:29 +01:00
bao-qian
30cbcbb3c4 Fix uwp background color / plated icon #198 2016-08-19 02:37:39 +01:00
bao-qian
1127d323d3 add missing dll 2016-08-18 01:29:45 +01:00
bao-qian
01e812aebf Initial support for uwp app #198
1. basic support, better than nothing...
2. thanks great contribution from @talynone
3. #198
2016-08-18 01:16:40 +01:00
bao-qian
e690bae7d1 Merge pull request #917 from meixger/issue846
Fixes issue #846 IndexOutOfRangeException when reading empty icon fro…
2016-08-15 14:58:24 +01:00
Martin Meixger
58c2c84120 Fixes issue #846 IndexOutOfRangeException when reading empty icon from registry in ControlPanel plugin 2016-08-10 14:33:58 +02:00
bao-qian
a96947c7e7 Merge pull request #904 from jondaniels/calc_fix3
fix typo preventing last PR from taking effect
2016-08-05 06:46:56 +01:00
Jon Daniels
45b40d903c fix typo preventing last PR from taking effect 2016-08-04 17:52:11 -07:00
bao-qian
b19033aa4f Merge pull request #903 from jondaniels/calc_fix2
added sqrt as calculator keyword too
2016-08-05 00:57:17 +01:00
Jon Daniels
adac0f3e51 added sqrt as calculator keyword too 2016-08-04 16:43:32 -07:00
bao-qian
3441482e8c Merge pull request #902 from jondaniels/calc_fix
added various operator keywords to calculator
2016-08-04 21:31:13 +01:00
Jon Daniels
781845905c added various keywords to calculator
Added functions I commonly use on e.g. google calculator but were missed by parser.

Specifically I added:
e (constant like pi)
tan, arcsin, and arctan
log and ln
2016-08-04 13:17:00 -07:00
bao-qian
b3c9b58350 Merge branch 'master' into dev 2016-08-03 23:19:19 +01:00
Salas
337a2cf319 update zh-tw locale strings for plugins (#898)
* update zh-tw locale strings for plugins
2016-08-03 23:18:57 +01:00
Salas
06fa04a448 update zh-tw locale strings 2016-08-03 23:17:35 +01:00
Gopal Adhikari
93e86b141d Change WindowIntelopHelper to WindowIntelopHelper (#887) 2016-08-01 14:12:53 +01:00
bao-qian
fc56027929 Merge branch 'dev' 2016-07-30 16:17:13 +01:00
Damir Ainullin
d2287328ad Simple fixes (#871) 2016-07-30 16:16:28 +01:00
bao-qian
b91834b813 Merge pull request #885 from zhiyue/dev
fixed the origin root images directory of web search plugin
2016-07-30 16:02:40 +01:00
zhiyue
8faf991bcb fixed the origin root directory of web search plugin ICon images directory. 2016-07-30 09:44:47 +08:00
bao-qian
84ac30b8d2 Merge pull request #884 from zhiyue/dev
fixed #881
2016-07-30 02:21:48 +01:00
zhiyue
0f17aebc52 fixed #881
could not normally display the Icon
2016-07-30 08:22:25 +08:00
bao-qian
2bff13d9e1 Merge branch 'master' into dev 2016-07-27 19:58:37 +01:00
bao-qian
7683db70cd Merge branch 'master' of https://github.com/Wox-launcher/Wox 2016-07-27 19:58:11 +01:00
bao-qian
94ba2ad24a Merge pull request #879 from he4d/dev
Added German and Danish language support
2016-07-27 19:57:53 +01:00
Tobias Tschinkowitz
e42a22d1f2 Added german and danish language support 2016-07-27 20:41:49 +02:00
Tobias Tschinkowitz
11b6946e00 Providing User Agent for Http.Download method (#874) 2016-07-27 14:25:16 +01:00
bao-qian
ba8a675eaa Update ISSUE_TEMPLATE.md 2016-07-22 15:30:16 +01:00
bao-qian
10f8941258 Program plugin: simple refactoring 2016-07-21 20:49:01 +01:00
bao-qian
0816fdf318 Program plugin: remove lock
lock is not needed since assignment is atomic
2016-07-21 20:07:23 +01:00
bao-qian
bcf43640fa Merge branch 'master' of https://github.com/Wox-launcher/Wox 2016-07-21 19:52:56 +01:00
bao-qian
1de68051e3 Program plugin: remove complicated inheritance 2016-07-21 19:52:48 +01:00
bao-qian
0c9015bb77 Program plugin: move files 2016-07-21 19:52:37 +01:00
bao-qian
a8c200f25a simple refactoring 2016-07-21 19:52:36 +01:00
Jordy Hulck
59fbb2acb1 Fix SearchSource editing when action keyword is not changed (#856)
* Fixed SearchSource edit

* Remove temp var
2016-07-21 19:52:35 +01:00
bao-qian
3b53527e9e fix #813 2016-07-21 19:52:25 +01:00
bao-qian
3c53c2c56c Program plugin: remove complicated inheritance 2016-07-21 19:51:52 +01:00
bao-qian
13a51b6bd3 move files 2016-07-21 19:51:52 +01:00
bao-qian
c8d81518cc simple refactoring 2016-07-21 19:51:52 +01:00
Jordy Hulck
390d49d599 Fix SearchSource editing when action keyword is not changed (#856)
* Fixed SearchSource edit

* Remove temp var
2016-07-21 14:50:37 +01:00
bao-qian
3604e6fa7d fix #813 #823 2016-07-20 23:37:06 +01:00
bao-qian
206532f195 add more exception info 2016-07-20 02:01:51 +01:00
bao-qian
c9f38fef45 fixup 2016-07-20 02:01:51 +01:00
bao-qian
b55c05095a Update ISSUE_TEMPLATE.md 2016-07-20 01:43:03 +01:00
Boris Makogonyuk
8f073c5b6f Hardcoded supported accents version 8 (Windows 8 is 6.2, Windows 7 is 6.1). (#817)
Added check before applying blur.
2016-07-20 00:30:15 +01:00
Jordy Hulck
f45ca180e9 Fixed hide on startup problem (#852)
* Fixed HideOnStartup
* Fixed tray icon not showing up and hiding properly
2016-07-20 00:25:36 +01:00
Søren Kottal
1eb549b137 Create da.xaml
Thanks for a great app - heres a danish translation!
2016-07-05 22:40:20 +02:00
bao-qian
3a9bfc84cd Merge pull request #828 from liubiantao/patch-1
Ramen Bless Your Repo
2016-07-05 16:02:43 +01:00
Haitao Yin
c9a8a2af07 Ramen Bless Your Repo 2016-07-05 22:44:14 +08:00
bao-qian
f5069aef6e fix everything error text 2016-06-23 23:01:20 +01:00
bao-qian
eb1af1e27e fix bug introduced in 2a3bf727be1c8bc185f1b436893b1c4385d982ac 2016-06-23 22:55:38 +01:00
bao-qian
d84ac0df9c fix names 2016-06-23 22:53:30 +01:00
Korzo
04275cd702 Add ability to configure Everything executable working directory (#718) 2016-06-23 22:45:34 +01:00
bao-qian
746bc7d7bd Merge pull request #798 from Wox-launcher/dev
History query related refactoring
2016-06-23 22:24:10 +01:00
bao-qian
15c5e9833a Bring history back
1. bring history back, disabled in
56d08663410916df0a4e408da6e4af3d2a2722c0
2. fix #632 #722
3. hotkey: ctrl+H
2016-06-23 22:17:47 +01:00
bao-qian
b589a1a13e Move ResultListBox Visibility
1. Move ResultListBox Visibility from MainViewModel to ResultsViewModel
2. Refactoring
2016-06-23 02:26:54 +01:00
bao-qian
5102770ad5 move properties into models 2016-06-23 02:25:55 +01:00
bao-qian
47f396cfce Fix #791 2016-06-23 00:03:01 +01:00
bao-qian
759d0a825b fixup 2016-06-22 00:57:27 +01:00
bao-qian
a8869c46b8 Temp fix for #667 by add wox.py to PYTHONPATH 2016-06-22 00:42:24 +01:00
bao-qian
4b31f40026 Fix python plugin bug introduced in d7399204 2016-06-22 00:00:53 +01:00
bao-qian
4f8dee8fcf Merge pull request #786 from Wox-launcher/dev
MVVM refactoring for web search plugin
2016-06-21 00:22:13 +01:00
bao-qian
cf5ab0ddef reformat 2016-06-21 00:18:35 +01:00
bao-qian
91e9d7431a MVVM refactoring for web search plugin, part 2
1. #486
2. rename
2016-06-21 00:17:55 +01:00
bao-qian
6e13440f1f MVVM refactoring for web search plugin, part 1
1. #486
2. fix #778 #763 #742
3. MVVM refactoring
4. remove IMultipleActionKeywords interface, use PluginManager directly
2016-06-21 00:14:32 +01:00
bao-qian
3efeb4a0a6 Refactoring proxy, part 2 2016-06-19 16:22:45 +01:00
bao-qian
764a372e9f Refactoring proxy, part 1 2016-06-19 16:18:08 +01:00
bao-qian
340087076e move nuget auto deploy back
not sure why I can't appveyor environment
2016-06-16 20:35:21 +01:00
bao-qian
ec5716c436 Fix #730 #766 2016-06-16 02:59:31 +01:00
bao-qian
3f3a34f788 Fix #762 2016-06-16 02:25:42 +01:00
bao-qian
e7879384b1 fix #749 2016-06-16 02:06:12 +01:00
bao-qian
853ee4bef1 Fix #706 , bug introduced in 2a3bf727be1c8bc185f1b436893b1c4385d982ac 2016-06-16 01:49:15 +01:00
Paweł Pastuszak
9be90dd035 Added plugins Polish translations (#764) 2016-06-16 01:29:38 +01:00
Xaver Schulz
4c7acca85a Update German translations (#759)
- some changes after review from @gappeh
- update for #505
2016-06-16 01:24:31 +01:00
jhdxr
d235bf9822 refactor IsWindowFullscreen. fix #687. (#712) 2016-06-16 01:24:30 +01:00
bao-qian
688d37fe76 update ignore file 2016-06-16 01:11:11 +01:00
Paweł Pastuszak
6c5f606682 Fixed languages files not included in build (#753) 2016-06-16 01:05:41 +01:00
bao-qian
ce5092036a Update README.md 2016-06-16 00:52:41 +01:00
Paweł Pastuszak
b745626a9f Added Polish language (#750) 2016-06-16 00:52:37 +01:00
bao-qian
c9d73bf1a4 fix #751 2016-06-16 00:52:33 +01:00
Paweł Pastuszak
6e76b7a7dd Improved English translations (#748)
* Improve English translation

* Improve plugins English translations
2016-06-16 00:52:14 +01:00
Kreen
fd41f0fe0d Update zh-tw.xaml (#725)
Make some adjustment to Chinese Traditional term.
2016-06-16 00:52:11 +01:00
bao-qian
d2e81d14d9 Update README.md 2016-06-16 00:52:05 +01:00
bao-qian
7d674b44d3 fix progressbar animation, bug introduced in 2a3bf727be1c8bc185f1b436893b1c4385d982ac 2016-06-16 00:51:55 +01:00
bao-qian
7d3617c27f add version number in installer, fix #696 2016-06-16 00:51:43 +01:00
bao-qian
cf6fca8e76 Fix #705 2016-06-16 00:51:30 +01:00
bao-qian
1560a823c3 fix #695 2016-06-16 00:51:04 +01:00
bao-qian
aba41d41ac fix #690 2016-06-16 00:50:48 +01:00
bao-qian
245cffc4f7 Refactoring visibility related events
1. remove unnecessary events from MainViewModel
2. remove usage of Obsolete api (show, hide etc)
3. fix space problem in #660
4. part of #486
5. fix up/down key bug introduced in 92b7ca6a1bafd254e39ee92812ff691906cd85c1
6. fix #678
2016-05-25 01:19:46 +01:00
bao-qian
3aada68eb9 temp disable history command 2016-05-25 01:06:26 +01:00
bao-qian
d15611fd44 Remove redundant OnPropertyChagned 2016-05-25 01:06:25 +01:00
bao-qian
82d4b866c0 fixup 2016-05-25 01:06:24 +01:00
Zaycn
4645dd0011 Add dutch translation (#683) 2016-05-25 01:03:55 +01:00
bao-qian
bec81ddbfe misc 2016-05-25 01:03:54 +01:00
bao-qian
6e4279e30f rename 2016-05-25 01:03:53 +01:00
bao-qian
e1131dcf3d More data bindings (MaxResultsToShow + ActivatedTimes) 2016-05-25 01:03:52 +01:00
bao-qian
762de84f34 Rename log file 2016-05-25 01:03:51 +01:00
bao-qian
e480cdbf9b fix #665 2016-05-25 01:03:51 +01:00
bao-qian
95cdc89795 Hotkey for mainwindow 2016-05-25 01:03:50 +01:00
bao-qian
e7f5491239 Save and close for setting tab 2016-05-25 01:03:48 +01:00
bao-qian
ba78637361 misc 2016-05-25 01:03:47 +01:00
bao-qian
b3119749d9 Databinding for proxy tab 2016-05-25 01:03:43 +01:00
bao-qian
cb56b98222 Databinding for hotkey tab
part of #660
2016-05-25 01:03:43 +01:00
bao-qian
2256183422 misc 2016-05-25 01:03:42 +01:00
bao-qian
0bfa8219ca remove unused code 2016-05-25 01:03:41 +01:00
bao-qian
4c21a68139 remove tab selection 2016-05-25 01:03:40 +01:00
bao-qian
38cf74d83b Databinding for theme tab 2016-05-25 01:03:39 +01:00
bao-qian
1867e56739 misc 2016-05-25 01:03:39 +01:00
bao-qian
826a69c531 misc 2016-05-25 01:03:38 +01:00
bao-qian
7056be0870 Databinding for plugin tab + faster image load 2016-05-25 01:03:37 +01:00
bao-qian
708dba6cb1 misc 2016-05-25 01:03:36 +01:00
bao-qian
164a34a340 Refactoring for tab selected event 2016-05-25 01:03:36 +01:00
bao-qian
3593a918b7 Databinding for general tab 2016-05-25 01:03:35 +01:00
bao-qian
7d2ac2f55d Introduce viewmodel for settingwindow 2016-05-25 01:03:34 +01:00
bao-qian
cc4b343cf4 Misc 2016-05-25 01:03:33 +01:00
bao-qian
597931f79b use propertychanged helper 2016-05-25 01:03:32 +01:00
bao-qian
299864a9cf rename 2016-05-25 01:03:32 +01:00
bao-qian
014757a0f7 update translation 2016-05-22 15:36:09 +01:00
bao-qian
032b5b8776 update gitignore 2016-05-21 18:47:38 +01:00
bao-qian
44107f9821 rename 2016-05-21 01:22:12 +01:00
bao-qian
b49e45827f fix #608 2016-05-21 00:16:58 +01:00
bao-qian
3cd405e9ea fix #628 2016-05-20 22:20:41 +01:00
bao-qian
b17a54a2d2 Use Segoe UI
#655
2016-05-20 22:01:31 +01:00
bao-qian
2d6d4d2db0 Update ISSUE_TEMPLATE.md 2016-05-20 21:20:02 +01:00
bao-qian
646b7a3118 Refactoring error report
1. fix #627
2. fix #646
3. remove exceptionless
2016-05-20 21:16:25 +01:00
bao-qian
e4c7842f34 rename, part 1 2016-05-20 19:38:38 +01:00
bao-qian
7490cb81b8 fix #655 2016-05-20 19:24:01 +01:00
bao-qian
9e105a362f fix #461 2016-05-20 19:24:01 +01:00
bao-qian
9c8cbdd0e6 Merge pull request #642 from jhdxr/master
move disabled plugins to the bottom of the list
2016-05-20 17:15:58 +01:00
xiami
635a8a24f2 fix null error when plugin doesn't set Action (#656) 2016-05-20 17:14:24 +01:00
jhdxr
6354d4b911 move disabled plugins to the bottom of the list 2016-05-20 16:40:42 +08:00
bao-qian
452e8ed8c5 Merge pull request #647 from Arthur2e5/patch-3
README: 看来我是对奇怪的大小写有种强迫症(
2016-05-20 02:43:41 +01:00
Mingye Wang
8a93e3c64c README: 看来我是对奇怪的大小写有种强迫症( 2016-05-19 20:56:40 -04:00
Mingye Wang
76fc9b78fe plugin/everything/lang/en: enlint (#645) 2016-05-20 01:40:29 +01:00
Mingye Wang
cf685b404d lang/en: enlint (#644) 2016-05-20 01:28:46 +01:00
bao-qian
747d97ecfc Misc 2016-05-20 00:03:12 +01:00
bao-qian
be5fd86aa7 rename, part 2 2016-05-19 23:44:08 +01:00
bao-qian
963f57868d rename 2016-05-19 23:34:51 +01:00
bao-qian
97f0516630 Misc 2016-05-19 23:28:13 +01:00
bao-qian
c896b445bd rename 2016-05-19 09:11:40 +01:00
bao-qian
f06c4f4049 Bring run command functionality back
#636
2016-05-19 09:04:31 +01:00
bao-qian
937ce34c36 Rename 2016-05-18 19:38:43 +01:00
bao-qian
cddfd1b319 fix #625 2016-05-18 19:35:37 +01:00
bao-qian
c42892ee35 Update README.md 2016-05-18 15:02:29 +01:00
bao-qian
bb3003dc3b Misc 2016-05-17 22:48:18 +01:00
bao-qian
2858dce664 Fix #620, part of #614 2016-05-17 22:23:37 +01:00
bao-qian
1517ae3fc9 Misc 2016-05-15 17:19:33 +01:00
bao-qian
cf9c41f437 Log first change exception 2016-05-15 17:03:06 +01:00
xzhao
87497d2d09 Fixed #586
- add option to hide main window on startup
- Fixed #586
2016-05-14 14:48:58 +01:00
bao-qian
67ab979a9b fix download plugin 2016-05-14 00:08:57 +01:00
bao-qian
05f23f89ae Fix #608 2016-05-13 23:55:03 +01:00
bao-qian
cdc244ec06 Misc 2016-05-13 23:54:41 +01:00
bao-qian
71308316b1 Add auto updates gui option 2016-05-13 23:54:37 +01:00
bao-qian
2d1dfece25 Use system web proxy 2016-05-13 23:28:17 +01:00
bao-qian
65577a67dc Add option to disable auto updates 2016-05-12 03:01:33 +01:00
bao-qian
45d5da98ca fix disable plugin + fix #575 #609 2016-05-12 02:45:39 +01:00
bao-qian
455e067e73 Update README.md 2016-05-12 00:54:40 +01:00
bao-qian
6359826fd9 use unified http method for plugin installation + add more exceptions
#573
#610
2016-05-10 20:26:52 +01:00
bao-qian
8325083402 Log more update exceptions #611 2016-05-10 20:26:52 +01:00
bao-qian
0f1a1d5f56 Update README.md 2016-05-10 01:12:30 +01:00
bao-qian
52d6f4343c Merge pull request #607 from Wox-launcher/dev
Dev
2016-05-10 01:10:14 +01:00
bao-qian
405d55f3f6 Don't call init() and constructor for disabled plugins
part of #351
2016-05-10 01:08:54 +01:00
bao-qian
06010b1366 Merge remote-tracking branch 'refs/remotes/origin/master' into dev 2016-05-10 00:00:18 +01:00
bao-qian
21aa31f963 Fix proxy for github update 2016-05-09 23:51:10 +01:00
bao-qian
3f709cc39e Fix notify icon + move hotkey into MainViewModel 2016-05-09 23:35:20 +01:00
bao-qian
f376e1ab01 Fix #606 2016-05-09 22:56:05 +01:00
bao-qian
fb3ba16a92 fix SingleInstance 2016-05-09 22:45:24 +01:00
bao-qian
21285f02b8 Refactoring updater
1. move into a separate class
2. remove unused nuget package
2016-05-09 22:45:24 +01:00
bao-qian
05adf6f907 Update README.md 2016-05-09 22:10:20 +01:00
bao-qian
06fa171f7a Update README.md 2016-05-09 22:08:55 +01:00
bao-qian
4eae5be995 Update README.md 2016-05-09 22:05:38 +01:00
bao-qian
6d02617422 Add hello world csharp example 2016-05-09 05:04:33 +01:00
bao-qian
c2f07d14f3 Update README.md 2016-05-09 04:32:05 +01:00
bao-qian
52fe91f8bc Update README.md 2016-05-09 04:05:18 +01:00
bao-qian
98cb0f978e Finally 1.3 !!!! 2016-05-09 03:49:40 +01:00
bao-qian
977a83cce8 Merge pull request #605 from Wox-launcher/dev
Dev
2016-05-09 03:47:55 +01:00
bao-qian
4d92f9bf18 ignore more files 2016-05-09 03:45:20 +01:00
bao-qian
c459d60fc6 remove commit number 2016-05-09 03:42:32 +01:00
bao-qian
ad2e8a3c96 fix ci 2016-05-09 03:26:19 +01:00
bao-qian
7dd9b3fa0c Misc 2016-05-09 03:18:36 +01:00
bao-qian
340a151302 fixup 2016-05-09 03:15:37 +01:00
bao-qian
9f70af009f Remove prerelease 2016-05-09 03:15:37 +01:00
bao-qian
bf1a65b8e8 msbuild based installer generation is not working in appveyor, not sure why 2016-05-09 03:06:11 +01:00
bao-qian
037ab02a71 fixup 2016-05-09 02:59:42 +01:00
bao-qian
0039ec2958 fixup ci 2016-05-09 02:42:19 +01:00
bao-qian
08571d51fa Misc 2016-05-09 02:41:46 +01:00
bao-qian
6ac33b0568 Add manually check updates option
1. manually check updates
2. refactoring get http request to use async
3. remove some generic exception catch
4. remove unused code
2016-05-09 02:32:47 +01:00
bao-qian
373da78b7b Misc 2016-05-08 22:26:46 +01:00
bao-qian
c3d22335e2 move installer into msbuild 2016-05-08 22:26:37 +01:00
bao-qian
4216eec494 fix dynamic assembly 2016-05-08 22:22:36 +01:00
bao-qian
e88e912c3c Remove unused updater and command line arguments 2016-05-08 22:13:23 +01:00
bao-qian
d06fb83fee Dispose when restart 2016-05-08 17:47:28 +01:00
bao-qian
e0b9a81c9b Installer + auto update on startup
1. installer
2. auto check update on startup
3. auto start on next startup
4. remove command line arguments which breaks squirrel
5. auto generate installer on continue integration
2016-05-08 17:28:02 +01:00
bao-qian
192e4b8877 Refactoring results update 2016-05-08 17:28:02 +01:00
bao-qian
02d44a6cca Misc 2016-05-08 17:28:01 +01:00
bao-qian
39ba1e0582 Move websearch images to %APPDATA% 2016-05-08 17:28:00 +01:00
roose
ae121895e9 Added solution for executable plugins 2016-05-08 17:28:00 +01:00
bao-qian
11ecf20f89 fix tests 2016-05-08 17:27:59 +01:00
bao-qian
3646a7d12d Update README.md 2016-05-08 17:27:58 +01:00
bao-qian
db5f45da83 rename plugin main file, part 2 2016-05-08 17:27:58 +01:00
bao-qian
52a4bfa25f rename plugin main file, part 1 2016-05-08 17:27:57 +01:00
stafford
099b62b645 Cleanup proxy enable/disable, fix #518 2016-05-08 17:27:56 +01:00
stafford
e37332a5d2 Allow open settings from main window context menu, fix #519 2016-05-08 17:27:56 +01:00
bao-qian
f36cc56c81 Fix #548 2016-05-08 17:27:55 +01:00
bao-qian
b20750b936 fix #587 2016-05-08 17:27:54 +01:00
bao-qian
407f58da54 fix selected item
part of #412
2016-05-08 17:27:54 +01:00
bao-qian
fe5bb1d885 parallel foreach + list is not thread safe 2016-05-08 17:27:53 +01:00
bao-qian
92f45567d7 Focuses first textbox on load
fix #516
thanks @staff0rd for idea!
2016-05-06 00:29:27 +01:00
bao-qian
a4c0e0a59c Fix select result when there is no results
part of #412
2016-05-06 00:00:54 +01:00
bao-qian
d536377329 Refactoring multithreading
1. ThreadPool -> Task
2. fix deadlock
3. remove unnecessory application.dispatcher.invoke
4. enable non-main thread access to results collection
5. Misc
6. part of #412
2016-05-06 00:00:43 +01:00
bao-qian
923f4ed045 We don't need use ping to test website speed 2016-05-05 20:26:19 +01:00
bao-qian
9191cae144 temp hack for folder plugin results 2016-05-05 16:30:56 +01:00
bao-qian
e8c142353c Fix default icon path when add new web search 2016-05-05 16:21:35 +01:00
bao-qian
ba1e22955e Web search suggestion is loaded async
1. suggestion is async
2. if ping time of domain less than 300ms, then suggestion is still sync
3. #578 #539
2016-05-05 16:08:48 +01:00
bao-qian
c41847c0d7 Update README.md 2016-05-05 12:42:25 +01:00
bao-qian
e1d7c25c98 Update README.md 2016-05-05 12:41:57 +01:00
bao-qian
3d8e845233 Update ISSUE_TEMPLATE.md 2016-05-05 12:38:43 +01:00
bao-qian
0fa126a6b8 fixup test code 2016-05-05 12:30:23 +01:00
bao-qian
1961816ba7 Fix #572 2016-05-05 02:54:26 +01:00
bao-qian
4410b679a0 Add missing sdk files 2016-05-05 02:38:35 +01:00
bao-qian
e6214b3c97 Misc 2016-05-05 02:29:57 +01:00
bao-qian
7e7637a1b3 Misc 2016-05-05 02:21:04 +01:00
bao-qian
86b201623d Delete unused files 2016-05-05 02:21:03 +01:00
bao-qian
785843198a Use existing installed python
1. use installed python
2. add settings to choose python directory
3. add py3 compability
4. create hello world python example
2016-05-05 01:57:03 +01:00
bao-qian
bc0f5a9136 Use existing Everything, dll is loaded by platform
fix #574
2016-05-04 02:26:19 +01:00
bao-qian
461e650e05 fix missing image cache 2016-05-03 23:36:47 +01:00
bao-qian
c2132e3772 Fix file associated icon 2016-05-03 23:21:03 +01:00
bao-qian
174c7a776e Refactoring Refactoring icon, part 2
1. Add baidu, fix #576, #582
2. Refactoring
2016-05-03 21:22:11 +01:00
bao-qian
730864609f Refactoring icon, part 1, rename 2016-05-03 21:18:51 +01:00
bao-qian
784137fdac Misc 2016-05-03 00:04:04 +01:00
bao-qian
c6aff8424c Save when exit
1. fix image cache
2. fix save when exit since destructor won't be called
3. fix #583 #582 (partially)  #581 (partially)  #580
2016-05-02 22:37:01 +01:00
bao-qian
a7a34ac6b2 fixup 2016-04-27 23:17:06 +01:00
bao-qian
57492023f9 manually deploy use appveyoe 2016-04-27 23:04:18 +01:00
bao-qian
aff1e160b4 fixup 2016-04-27 23:00:59 +01:00
bao-qian
b8d12bd0cd rename 2016-04-27 22:54:27 +01:00
bao-qian
5ab33e831d Fix logger name and move logger to %APPDATA% 2016-04-27 22:52:53 +01:00
bao-qian
dc3b01dc15 use %APPDATA%
1. Fix can't find Result.ctor bug for plugin introduced in
c0889de1f9ae460b2cc189eb59e5bd90ddb7d17e
2. use %APPDATA% for all data, part of #389
3. MISC
2016-04-27 02:35:17 +01:00
bao-qian
e96bd5a0e7 Misc 2016-04-26 22:45:31 +01:00
bao-qian
57c33fe693 Fix #472 #476 #509 #523 #525 #557
Fix numerous web search plugin bugs
2016-04-26 02:40:23 +01:00
bao-qian
fc2d7b41d8 Move ImageLoader to Wox.Infrastructure, part 2 2016-04-26 01:20:10 +01:00
bao-qian
fd139d4903 Move ImageLoader to Wox.Infrastructure, part 1 2016-04-26 01:19:09 +01:00
bao-qian
813d33fc4d Json: Overwriting instead of add to list
http://stackoverflow.com/questions/29113063/json-net-why-does-it-add-to-list-instead-of-overwriting
2016-04-26 00:54:09 +01:00
bao-qian
26addf809e Use consistent new icons
https://icons8.com
2016-04-26 00:25:43 +01:00
bao-qian
a9e090c454 Fix bug introduced in 7c2e2a01c2 by @aaroncampf 2016-04-26 00:24:50 +01:00
bao-qian
59355cf79f Add plugin info entry for all context menu 2016-04-26 00:24:50 +01:00
bao-qian
c200c53268 Misc 2016-04-26 00:24:49 +01:00
bao-qian
a572ff9fca Fix #483
Thanks @wjcsharp to provide method
2016-04-26 00:24:48 +01:00
bao-qian
1ab4f99a37 Fix progressbar loading 2016-04-26 00:24:48 +01:00
bao-qian
99006465e6 fix #412
- use Task instead of QueueUserWorkItem
- add CancellationTokenSource when updating result panel and executing
query for all plugins
2016-04-26 00:24:47 +01:00
bao-qian
4a7e9c16d0 Fix flashing bug introduced in 152a7d719b15b3fb4559bea09b378b963555fe45
part of #565
2016-04-26 00:24:27 +01:00
bao-qian
d416a77866 Fix #559
fix program suffixes
2016-04-24 18:34:49 +01:00
bao-qian
07fe141f8a Fix #565
1. Fix resultlistbox visibility
2. Fix #565
3. Remove unused convertor
2016-04-24 17:06:28 +01:00
bao-qian
c2de80f532 Add Development / Author Status 2016-04-24 16:32:13 +01:00
bao-qian
e742bdfacf Update README.md 2016-04-24 16:29:38 +01:00
bao-qian
24950a098f fix #570 2016-04-24 14:47:18 +01:00
bao-qian
bed65745cc Use WorkingDirectory when strat process
As proposed in #569
2016-04-24 13:35:21 +01:00
bao-qian
04a4833c6e Fix uninitialized ui
fix #569
2016-04-24 03:49:04 +01:00
bao-qian
4aa0a733fc Merge branch 'dev' 2016-04-24 02:53:45 +01:00
bao-qian
082191412e Fix suffixes converter, part 2
rename file
2016-04-24 02:53:20 +01:00
bao-qian
e3a7d0807e Fix suffixes converter, part 1
1. fix #568, fix #566 fix #553, fix #559
2. simple refactoring
2016-04-24 02:53:20 +01:00
bao-qian
0ee3d1160a Remove NLog schema from git 2016-04-24 02:53:19 +01:00
bao-qian
b600bce23f Refactoring pinyin
1. use custom patched pinyin library Pinyin4Net
2. fix memory leak on startup: 360mb -> 160mb when using vs15 debugger
2016-04-24 02:53:18 +01:00
bao-qian
952b5fab89 Add custom patched pinyin library 2016-04-24 02:53:15 +01:00
bao-qian
6c705e1e25 Add RequireNonNull
http://www.yinwang.org/blog-cn/2015/11/21/programming-philosophy
2016-04-24 02:53:15 +01:00
bao-qian
349e8b2da7 Use resharper annotation nuget package 2016-04-24 02:53:14 +01:00
bao-qian
39ce74c1e0 Update appveyor.yml 2016-04-24 02:53:13 +01:00
bao-qian
77cf392300 Update READEME.md 2016-04-24 02:53:12 +01:00
bao-qian
b6225ccc38 Add Github prerelease for stable master build 2016-04-24 02:53:12 +01:00
bao-qian
a38eaad281 Add gitter 2016-04-24 02:53:11 +01:00
bao-qian
1b6d8a2b8d Remove NLog schema from git 2016-04-24 01:50:18 +01:00
bao-qian
cbc1c935bf fix missing pinyin file 2016-04-24 01:43:23 +01:00
bao-qian
391bf4113a fixup (bump library version) 2016-04-24 00:46:35 +01:00
bao-qian
718bff7469 Refactoring pinyin
1. use custom patched pinyin library Pinyin4Net
2. fix memory leak on startup: 360mb -> 160mb when using vs15 debugger
2016-04-24 00:37:25 +01:00
bao-qian
e67f60182d Add custom patched pinyin library 2016-04-23 02:34:47 +01:00
bao-qian
6bb0d736be Add RequireNonNull
http://www.yinwang.org/blog-cn/2015/11/21/programming-philosophy
2016-04-22 23:29:38 +01:00
bao-qian
5bc74fc296 Use resharper annotation nuget package 2016-04-22 23:13:14 +01:00
bao-qian
fea237a3ea Merge branch 'master' into dev 2016-04-22 23:04:05 +01:00
bao-qian
6f3cdeda70 Refactoring Program plugin to use parallel linq
much master when use parallel
2016-04-22 23:03:32 +01:00
bao-qian
8476baacc7 Use default thread pool settings 2016-04-22 22:42:43 +01:00
bao-qian
681f57f703 Misc 2016-04-22 22:42:26 +01:00
bao-qian
03051a95cf Refactoring image cache
use parallel linq to preload images, should be faster
2016-04-22 01:42:37 +01:00
bao-qian
80f31f75ad Rename, part 3 2016-04-21 22:41:30 +01:00
bao-qian
e0da4c81da Rename. part 2 2016-04-21 22:40:03 +01:00
bao-qian
57a5b90be7 Rename, part 1 2016-04-21 22:39:47 +01:00
bao-qian
98928dba9d Stop everything before every build 2016-04-21 22:36:49 +01:00
bao-qian
c83577cb81 Remove unused code 2016-04-21 21:04:33 +01:00
bao-qian
39edf1a8ed Remove instance logic for BinaryStorage and JsonStorage, part 2
1. part of #389
2. file rename
3. fixup
2016-04-21 20:56:53 +01:00
bao-qian
8d10c9aa41 Remove instance logic for BinaryStorage and JsonStorage, part 1
1. part of #389
2. huge refactoring
2016-04-21 20:42:07 +01:00
Goren G
0bcb76fa81 Load Everything base on CPU architecture 2016-04-21 20:37:08 +01:00
bao-qian
aceb9e4de7 Bump library version
Fix #538
2016-04-21 20:36:19 +01:00
bao-qian
a249ced37c Update appveyor.yml 2016-04-19 10:15:41 +01:00
bao-qian
375078a9a4 Update READEME.md 2016-04-18 23:17:11 +01:00
bao-qian
273a7d82a2 Add Github prerelease for stable master build 2016-04-18 23:04:41 +01:00
bao-qian
26f5e52ad8 Merge branch 'master' into dev 2016-03-28 19:26:13 +01:00
bao-qian
2a32f8f681 Add gitter 2016-03-28 15:02:53 +01:00
bao-qian
7dad0aa1da Bump library version
Fix #538
2016-03-28 13:56:38 +01:00
bao-qian
c742b73133 Merge pull request #540 from cmzy/dev
Add Chinese translation for ignoreHotkeysOnFullscreen resources
2016-03-28 12:10:37 +01:00
Andy Zhang
fece31a9aa Add Chinese translation for ignoreHotkeysOnFullscreen resources 2016-03-28 15:59:40 +08:00
bao-qian
b22a4501cc Use variable instead of global static method
1. introduce variable
2. part of #389
3. refactoring program suffix in program plugin
4. 全局变量一时爽,代码重构火葬场
2016-03-28 03:09:57 +01:00
bao-qian
c596039453 Rearrange query execution order
1. remove usage of PushResult
2. rearrange query execution order
3. decouple UserSetting dependency
4. remove instant query
5. remove backkeydown event
6. part of #389
2016-03-28 03:02:30 +01:00
bao-qian
7eea6ebe57 Remove unused code 2016-03-27 23:23:37 +01:00
bao-qian
b6a42ecf48 Kill Wox before solution build
ref:
http://stackoverflow.com/questions/2295454/solution-wide-pre-build-event/2295583#2295583
2016-03-27 18:43:48 +01:00
bao-qian
95f3d4fffa Update git ignore file 2016-03-27 18:15:10 +01:00
bao-qian
95becde93d Add error info when file/application can't be open
1. Fix #492
2. FIx #478
2016-03-27 02:49:05 +01:00
bao-qian
0538d082dc Fix dll has been blocked problems
1. Fix #536
2. Fix #279
ref: https://msdn.microsoft.com/en-us/library/dd409252(v=vs.110).aspx
2016-03-27 00:55:05 +00:00
bao-qian
c3b6b8d821 Remove unused code 2016-03-26 18:15:28 +00:00
bao-qian
c41fbbb93e Cleanup using Resharper 2016-03-26 04:46:39 +00:00
bao-qian
0728d96339 Bump nuget package version 2016-03-26 04:45:03 +00:00
bao-qian
abc335143b Misc 2016-03-26 03:15:28 +00:00
bao-qian
dc9908eac1 Refactoring ContextMenu
1. Remove ItemDropEvent
2. Remove ShowContextMenus from API
3. Fix context menu item can't be opened ( #535 ), bug introduced from PR #494 (commit 45dbb50)
4. Move open result command and load context menu command back to
MainViewModel
5. unify load context menu logic
6. other performance enhancement and potential bug fixed
2016-03-26 03:01:39 +00:00
bao-qian
6274b617f4 Fix position
1. Fix "Remember launch location", this was introduced since e7aa6022.
Fix #511
2. Fix opening position ( #510 ), bug introduced from PR #494 (commit e7aa602)
2016-03-26 03:01:37 +00:00
bao-qian
c5d45c6b44 Refactoring CustomizedPluginConfig
1. Reorder the sequence of initialization of UserSettings.
2. Use dictionary for CustomizedPluginConfigs, so code logic like
`.FirstOrDefault(o => o.ID == id);` are removed
3. part of #389
2016-03-26 03:01:36 +00:00
stafford
ef1a195036 made margins consistent 2016-03-26 03:01:35 +00:00
bao-qian
5ac0837be3 Refactoring ContextMenu
1. Remove ItemDropEvent
2. Remove ShowContextMenus from API
3. Fix context menu item can't be opened ( #535 ), bug introduced from PR #494 (commit 45dbb50)
4. Move open result command and load context menu command back to
MainViewModel
5. unify load context menu logic
6. other performance enhancement and potential bug fixed
2016-03-26 01:26:21 +00:00
bao-qian
fbc6f78cb5 Fix position
1. Fix "Remember launch location", this was introduced since e7aa6022.
Fix #511
2. Fix opening position ( #510 ), bug introduced from PR #494 (commit e7aa602)
2016-03-26 01:25:56 +00:00
bao-qian
d6f9fddc94 Refactoring CustomizedPluginConfig
1. Reorder the sequence of initialization of UserSettings.
2. Use dictionary for CustomizedPluginConfigs, so code logic like
`.FirstOrDefault(o => o.ID == id);` are removed
3. part of #389
2016-03-25 01:22:31 +00:00
bao-qian
199011feb8 Merge pull request #505 from schulz3000/add_german_translations
Add German Translation
2016-03-24 21:51:45 +00:00
bao-qian
98f1d5cd9b Merge pull request #517 from staff0rd/settings_margins
Consistent margins
2016-03-24 21:48:38 +00:00
bao-qian
b9c83ca06d Merge branch 'dev' 2016-03-24 21:46:26 +00:00
bao-qian
f0b7a00ae6 Emphasize the master build 2016-03-24 17:07:10 +00:00
bao-qian
a8a9a93317 Merge branch 'master' of https://github.com/Wox-launcher/Wox 2016-03-23 20:32:30 +00:00
bao-qian
32e9a7fa06 Misc 2016-03-23 20:31:59 +00:00
stafford
88a47e7788 made margins consistent 2016-03-11 12:13:47 +11:00
bao-qian
4b4a414259 Merge pull request #514 from staff0rd/websearchsetting_spelling
Fix spelling
2016-03-11 00:53:13 +00:00
bao-qian
68281dce66 Merge pull request #513 from staff0rd/websearch_plugin_en
Cleanup english
2016-03-11 00:52:55 +00:00
stafford
221cc8ab10 spelling 2016-03-11 11:39:41 +11:00
stafford
c6e47a868b grammar 2016-03-11 11:34:49 +11:00
stafford
0c5c261196 cleanup english translation 2016-03-11 11:32:51 +11:00
bao-qian
c7372aabfd Add issue template 2016-03-01 18:03:45 +00:00
Xaver Schulz
7d1dbbb27a Add German Translation
Add German Translation to Core and Defaultplugins
2016-02-28 17:22:51 +01:00
bao-qian
c00583dd98 Remove harder coded text
1. Remove harder coded text, part of refactoring for PR #494
2. Remove other arguments redundant
2016-02-27 00:10:39 +00:00
bao-qian
49ca3bfd00 Refactoring 2016-02-26 23:43:57 +00:00
bao-qian
3adc3ed5d2 Fix textbox keyboard focusing 2016-02-26 21:34:27 +00:00
bao-qian
bdca59b3d7 merge dev 2016-02-26 12:13:04 +00:00
bao-qian
d5ab4093a9 Refactoring for PR #499, part 2 2016-02-26 12:08:56 +00:00
bao-qian
e6df19efbc Refactoring for PR #499, part 1 2016-02-26 12:01:48 +00:00
bao-qian
b7948c5344 Merge pull request #499 from rmterra/issue_495
Fix MainWindow.xaml preview
2016-02-26 11:55:19 +00:00
rmterra
a13557d71d Merge branch 'dev' 2016-02-23 23:07:35 -03:00
bao-qian
e2338fcedf Remove yoda conditions
part of refactoring for PR #494
2016-02-22 21:47:58 +00:00
bao-qian
43bfeff2be Remove redundant code 2016-02-22 21:43:37 +00:00
bao-qian
1a489652ff Merge branch 'dev' 2016-02-22 19:20:52 +00:00
rmterra
1ac92c561b removes VisibilityConverter .cs 2016-02-21 18:27:45 -03:00
rmterra
cb952b0d3a updates MainWindow visibility bindings to use System.Windows.Visibility instead of bool 2016-02-21 18:27:05 -03:00
rmterra
5919dd998b adds System.Windows.Visibility extension methods to validates if current value is Visible or not 2016-02-21 17:49:43 -03:00
bao-qian
320f78b31b Remove redundant code
1. remove this
2. auto property should be only 1 line
3. misc
4. part of refactoring for PR #494
2016-02-21 18:46:04 +00:00
bao-qian
533bc4c2fe Misc
part of refactoring for PR #494
2016-02-21 17:10:24 +00:00
bao-qian
eb8aa195c2 ResultItem -> Result, part 2
part of refactoring for PR #494
2016-02-21 17:10:23 +00:00
bao-qian
4197580b04 ResultItem -> Result, part 1
part of refactoring for PR #494
2016-02-21 17:10:22 +00:00
bao-qian
0e92f7bfff UserControl -> ListBox 2016-02-21 17:10:21 +00:00
bao-qian
927277a6cd ActionPanel -> ContextMenu
part of refactoring for PR #494
2016-02-21 17:10:21 +00:00
bao-qian
d5696010d9 ResultPanelViewModel -> ResultsViewModel, part 2
part of refactoring for PR #494
2016-02-21 17:10:15 +00:00
bao-qian
9db37c2799 ResultPanelViewModel -> ResultsViewModel, part 1
part of refactoring for PR #494
2016-02-21 17:04:29 +00:00
bao-qian
7e7b41cd8c ResultPanel -> ResultListBox, part 2
part of refactoring for PR #494
2016-02-21 17:04:28 +00:00
bao-qian
fc3a369d3d ResultPanel -> ResultListBox, part 1
part of refactoring for PR #494
2016-02-21 17:04:27 +00:00
bao-qian
5df766466a Misc
part of refactoring for PR #494
2016-02-21 15:26:57 +00:00
bao-qian
6814130570 ResultItem -> Result, part 2
part of refactoring for PR #494
2016-02-21 15:19:42 +00:00
bao-qian
cb6160f1e4 ResultItem -> Result, part 1
part of refactoring for PR #494
2016-02-21 15:13:27 +00:00
bao-qian
b00214bdbd UserControl -> ListBox 2016-02-21 14:53:32 +00:00
bao-qian
4643810b75 ActionPanel -> ContextMenu
part of refactoring for PR #494
2016-02-21 14:40:10 +00:00
bao-qian
45246bccd7 ResultPanelViewModel -> ResultsViewModel, part 1
part of refactoring for PR #494
2016-02-21 14:33:18 +00:00
bao-qian
78b44a1319 ResultPanelViewModel -> ResultsViewModel, part 1
part of refactoring for PR #494
2016-02-21 14:30:13 +00:00
bao-qian
0e6cd0f72a ResultPanel -> ResultListBox, part 2
part of refactoring for PR #494
2016-02-21 14:22:34 +00:00
bao-qian
0aeba7c5af tmp rename 2016-02-21 14:14:27 +00:00
bao-qian
525c00ea18 ResultPanel -> ResultListBox, part 1
part of refactoring for PR #494
2016-02-21 13:53:20 +00:00
bao-qian
c056bd4d4c Delete unnecessary file
part of refactoring for PR #494
2016-02-20 15:59:29 +00:00
bao-qian
93682fb42b Merge pull request #494 from LingForCC/MVVM_MainWindow_ResultPanel
Refactor MainWindow and ResultPanel
2016-02-19 18:39:41 +00:00
Colin Liu
aa9ec603a9 Try to fix the problem that the designer preview is empty 2016-02-20 01:47:47 +08:00
Colin Liu
6f83bf3af2 Remove ResultOpened related events
Since we are going to refactor plugin-UI interaction mechanism in the
near future, we just keep current implementation as simple as possible.
2016-02-19 23:26:13 +08:00
Colin Liu
d5245f0730 Bug Fixing - The caret is not at the last of search text when switching back from context menu 2016-02-19 22:59:01 +08:00
Colin Liu
1b4cc556be Revert Hotkey from InputBinding back to KeyDown event 2016-02-19 22:58:27 +08:00
Colin Liu
2efcbd060a Implement ToString and GetHashCode methods for ResultItemViewModel 2016-02-19 22:55:58 +08:00
Colin Liu
68ee35d03b Bug Fixing - IsSelected is not implemented in ResultItemViewModel
If this property is not implemented, the Theme of selected search result
won't take effect.
2016-02-19 21:36:44 +08:00
Colin Liu
1b6a43ae15 Add support for design time DataContext binding
Add this support to suppress the warning from Resharper
2016-02-19 21:25:55 +08:00
Colin Liu
8de26af246 Fix UI Flickering issue 2016-02-18 22:53:41 +08:00
Colin Liu
c3fd732243 Refactor according to MVVM implementation 2016-02-18 20:56:53 +08:00
Colin Liu
3ce0b8bc97 Remove unused code
- ListBoxItem_OnDrop Event Handler
- ItemDropEvent Handler
- UpdateItemNumber method
2016-02-18 20:29:51 +08:00
Colin Liu
2846eea956 Remove unused code 2016-02-18 19:44:07 +08:00
Colin Liu
ca3bedc9a1 Fix dependency bugs 2016-02-18 19:43:35 +08:00
Colin Liu
2d4d7b80c1 Support for Sys Tray Icon 2016-02-18 19:42:57 +08:00
Colin Liu
df85543337 Implement the support for shortcut key 2016-02-18 19:40:47 +08:00
Colin Liu
e15baeb4a2 Remove unused code and add required code for MVVM 2016-02-18 19:35:17 +08:00
Colin Liu
f16804c0f8 Comment out code for later update 2016-02-18 19:32:48 +08:00
Colin Liu
934a41e414 Refactor ResultPanel/ResultItem with MVVM 2016-02-18 19:31:15 +08:00
Colin Liu
8621fe2e3c Refactor MainWindow with MVVM
- Add MVVM structure(BaseViewModel)
- Create ViewModel for MainWindow
- Refactor MainWindow.xaml to support MVVM
- Move PublicAPI implementation from MainViewModel to PublicAPIInstance
2016-02-18 19:30:36 +08:00
bao-qian
bbf2c29a4a Merge branch 'dev' 2016-02-17 16:59:09 +00:00
bao-qian
0a148166e1 Fix websearch plugin query content 2016-02-17 16:58:32 +00:00
bao-qian
79b4716b95 Fix "NoTranslation" bug for plugins
1. fix #475
2. remove GetLanguagesFolder, part of #468
3. bug introduced since 1f939ff3
2016-02-17 15:49:55 +00:00
qianlifeng
57437f04c9 Merge pull request #490 from qazbnm456/master
fix typo
2016-02-15 15:33:23 +08:00
Leo
8bbcd267cd fix typo 2016-02-15 13:03:04 +08:00
qianlifeng
e885cb6c45 Merge pull request #485 from niwatolli3/niwatolli3/japanese_support
Japanese support
2016-02-14 17:44:59 +08:00
niwatolli3
8182141e93 refs #485
* Add more Japanese support
2016-02-09 23:53:06 +09:00
niwatolli3
d7d2efd58e refs #484
* Add japanese Support.
* I add following language file
* Plugins/Wox.Plugin.WebSearch/Languages/ja.xaml
* Wox/Languages/ja.xaml
2016-02-09 23:30:54 +09:00
bao-qian
02033a675a Merge pull request #477 from Kingwl/master
Misc
2016-01-22 13:12:39 +00:00
kingwl
ca0f7bb74c comment fix 2016-01-22 20:47:00 +08:00
bao-qian
d676ecfaa8 Merge pull request #469 from Wox-launcher/dev
Refactoring directory handling
Fix #353
2016-01-08 02:23:04 +00:00
bao-qian
a0f556b2a9 Refactoring directory path for plugins 2016-01-08 02:18:19 +00:00
bao-qian
6071319acd Refactoring directory path for misc 2016-01-08 01:57:11 +00:00
bao-qian
e9ddfa6cf9 Refactoring directory path for python plugin 2016-01-08 01:55:24 +00:00
bao-qian
8ee94d75ca Refactoring directory path for plugin 2016-01-08 01:49:00 +00:00
bao-qian
ec40956721 Merge language and theme into resource folder 2016-01-07 20:04:37 +00:00
bao-qian
8504d01688 Refactoring directory path for UI resource 2016-01-07 04:47:28 +00:00
bao-qian
c8a932b6b3 Refactoring directory path for storage 2016-01-07 02:31:17 +00:00
bao-qian
b1ed51e72c Fix missing using directive 2016-01-07 00:14:16 +00:00
bao-qian
b386af4121 Add executable directory path 2016-01-06 22:18:27 +00:00
bao-qian
0daa3a8f57 ReSharper: remove redundant code 2016-01-06 21:34:42 +00:00
bao-qian
ae42c4df16 Fix accident bug 2016-01-06 21:18:36 +00:00
bao-qian
252ff9d3c5 Merge branch 'master' into dev 2016-01-06 19:33:40 +00:00
bao-qian
38c9ad6986 remove roslen cache 2016-01-06 19:33:11 +00:00
bao-qian
ad84b222a5 merge 'master' 2016-01-06 19:22:24 +00:00
bao-qian
c3e4a08b00 Fix using for Release build 2016-01-06 19:07:33 +00:00
bao-qian
f589bdc78d Optimize using 2016-01-06 06:45:08 +00:00
bao-qian
1a8efdbf2c Replace DelayInvoke with Task + Async 2016-01-06 06:31:17 +00:00
bao-qian
b78e0144de Remove unused files 2016-01-06 06:03:50 +00:00
bao-qian
3c27b50ff6 Update score when titles are same 2016-01-06 04:58:40 +00:00
bao-qian
e8e5c8dff1 Merge pull request #464 from lances101/translations-line-endings
Changed line endings for translation files to CL from CRLF, fix #463
2016-01-04 17:40:47 +00:00
bao-qian
f66dd51084 Merge pull request #462 from lances101/bugfix-447
Fix #447 Trailing slash for folders plugin
2016-01-04 17:36:51 +00:00
Boris Makogonyuk
54096d56d3 Changed line endings for translation files to CL from CRLF 2016-01-04 18:36:40 +01:00
Boris Makogonyuk
832119f6b1 Now checks if path has trailing slash before adding a new one 2016-01-04 18:30:11 +01:00
Boris Makogonyuk
5abd4dcc66 Added trailing slash to saved folders action for Folder plugin 2016-01-04 16:17:04 +01:00
bao-qian
a4936a6ff3 Ignore Roslyn caches 2016-01-04 05:04:20 +00:00
bao-qian
ebe4804b00 Including more web search by default
1. Fix #376
2. Thanks @ishu3101
2016-01-04 05:03:23 +00:00
bao-qian
098db9adf6 Remove unused file since ShellRun has been removed 2016-01-04 00:48:35 +00:00
bao-qian
38b3c82ece Remove ShellRun
1. Remove ShellRun using p/invoke
2. Remove ResolveShortcut when open contanning folder
3. fix #88
2016-01-04 00:01:48 +00:00
bao-qian
99a7453f28 Merge pull request #454 from Wox-launcher/dotnet45
Upgrade Wox to .net 4.5
2016-01-03 17:32:02 +00:00
bao-qian
8ade52c8d9 Merge pull request #423 from lances101/bugfix-271-positioning
Bugfix #271 positioning
2016-01-03 17:31:44 +00:00
bao-qian
a3ca1febbc ResultPanel should be empty when there is no result 2016-01-02 23:22:58 +00:00
bao-qian
767430d065 Merge pull request #426 from lances101/bugfix-404
Fix Crash when open containing folder of *.lnk item
Fix #404
2016-01-02 22:41:56 +00:00
bao-qian
f9e27ef67c Fix UI flickering under .net 4.5
1. This is part of .net 4.5 fix, check #393 to see more
2. This bug is introduced since commit df4ca3fecc9784a3b55f93806d8b2a662523056f
2016-01-02 06:59:35 +00:00
bao-qian
4d25d505e0 Fix color of selected item and mouse item
This is part of .net 4.5 fix, check #393 to see more
2016-01-02 04:34:20 +00:00
bao-qian
74fb470647 Merge pull request #453 from Wox-launcher/master
Merge branch 'master' into 'dotnet45'
2016-01-02 02:10:37 +00:00
bao-qian
6404aac986 update build script
1. remove update generator from build script
2. add build version to release binary file name
3. remove installer script from deploy folder
2016-01-02 02:05:15 +00:00
bao-qian
4fcb8d5540 Merge branch 'dev' 2016-01-02 00:23:12 +00:00
bao-qian
4251ad7d45 Fix crashes for context menu on empty query
Fixed issue #434, thanks @pieper126
2016-01-02 00:22:43 +00:00
bao-qian
d87317f937 Merge pull request #427 from lances101/bugfix-397
Bugfix for issue #397
2016-01-01 17:09:40 +00:00
bao-qian
b202b75bf7 Merge remote-tracking branch 'refs/remotes/origin/master' into dev 2015-12-16 20:15:36 +00:00
bao-qian
5761ede9e1 Update README.md 2015-12-15 20:41:41 +00:00
bao-qian
cf15cb1e13 Recover downloads count. 2015-12-15 20:40:25 +00:00
bao-qian
e5c6136950 The bitdeli badge is useless 2015-12-15 12:14:56 +00:00
bao-qian
37f90e6f1c Update README.md
download badges is not working.
2015-12-15 12:13:44 +00:00
bao-qian
6416fe1934 Update link for badges 2015-12-15 00:57:38 +00:00
bao-qian
3b50428f82 Add downloads count 2015-12-15 00:55:06 +00:00
bao-qian
d4b22ee472 Merge pull request #432 from bitdeli-chef/master
Add a Bitdeli Badge to README
2015-12-15 00:42:18 +00:00
Bitdeli Chef
35c8197881 Add a Bitdeli badge to README 2015-12-15 00:58:21 +00:00
bao-qian
a860acaf0d Remove .net 4 compability 2015-12-14 10:32:45 +00:00
bao-qian
dccd240b66 fixup 2015-12-14 00:31:40 +00:00
bao-qian
35522ae77d Update demo 2015-12-14 00:31:39 +00:00
bao-qian
e40c1ff09e Fix leave open option for cmd plugin
Add "Wait for a key press before closing" option.
See #141 for more info.
2015-12-14 00:30:24 +00:00
Boris Makogonyuk
d71ddd7ad0 Stripped ShortcutHelper of unneeded p/invoke methods 2015-12-13 23:37:27 +01:00
Boris Makogonyuk
ba8300508d - Removed IWshRuntimeLibrary. It is no longer needed for the plugin.
- Added ShortcutHelper for invocation calls.
2015-12-13 22:22:17 +01:00
Boris Makogonyuk
734505ee73 Bugfix for issue #397
Wallpaper is not cached in Wox's memory, so that the wallpaper file remains unlocked
2015-12-13 21:43:58 +01:00
Boris Makogonyuk
dd65c173a9 Bugfix for #404
When opening containing folder for `*.lnk` that cannot be resolved to a file name, the folder containing the `.lnk` will be opened.
2015-12-13 20:58:51 +01:00
bao-qian
ebae675961 Fixup missing reference 2015-12-13 13:36:29 +00:00
bao-qian
539eadf533 Merge master 2015-12-13 13:32:30 +00:00
bao-qian
3beebd42a8 delete junk 2015-12-13 13:16:33 +00:00
Boris Makogonyuk
66e00bb79a Messages should now display correctly on high dpi devices: now using Device Aware Pixels too. 2015-12-13 04:50:23 +01:00
Boris Makogonyuk
83985aa44c Added Pixel to Device Independent Pixel transformation to WindowIntelopHelper
MainWindow GetWindowsTop and GetWindowsLeft will use DIP when searching for the center of the screen
2015-12-13 04:22:01 +01:00
bao-qian
bb9684f7d3 Remove https link to getwox due to ssl certificate expired
Fix #421
2015-12-09 19:25:29 +00:00
bao-qian
ddfe79b3ac Merge pull request #417 from Wox-launcher/dev
Change https to http becuase the SSL has expired
2015-12-06 18:27:31 +00:00
qianlifeng
c852ad1d45 change https to http becuase the SSL has expired 2015-12-03 23:21:53 +08:00
bao-qian
29f535da94 Upgrade json package 2015-11-30 22:45:04 +00:00
bao-qian
d5b6744a41 Update README.md 2015-11-30 21:57:07 +00:00
bao-qian
cbc3cfc33b Fix duplication of tray icons
Fix #413
2015-11-30 19:49:46 +00:00
bao-qian
547bd46bb3 Disable blur when os is not supported
Releated: #330
2015-11-29 12:47:04 +00:00
bao-qian
8b8a303365 Fix hardcode
Fix #385
2015-11-29 08:50:17 +00:00
bao-qian
7b386c4f41 Fix FindResource
http://windowsasusual.blogspot.ie/2015/10/wpf-applicationcurrentfindresource-and.html
2015-11-29 08:20:13 +00:00
bao-qian
5b8fa5ec8d Refresh UI after change font 2015-11-29 07:40:56 +00:00
bao-qian
2c81ff90da Use opacity to set blur
releated: #330
2015-11-29 07:23:05 +00:00
bao-qian
66e118abdf Misc 2015-11-29 07:19:58 +00:00
bao-qian
38791e50ea Refactoring blur
1. Refactoring blur, see discussion in : 7f8bb80
2. Releated issue: #330
2015-11-29 06:29:32 +00:00
bao-qian
a8c6a97579 Better mutex cleanup 2015-11-29 05:14:56 +00:00
bao-qian
5bb90828f8 Fix Wox restart by wait Mutex to be released
Fix bug in 24866ff032829e9bd34704d3d5970d227a4c8db3.
Wait existing Mutex to release itself instead of create a new one.
Relate issue: #322
2015-11-29 03:28:47 +00:00
bao-qian
e3e5085214 Merge branch 'master' into dev 2015-11-28 11:48:28 +00:00
bao-qian
9be12da34e Merge pull request #408 from vankasteelj/dev
add french locale & xaml
2015-11-28 11:23:43 +00:00
bao-qian
8e7b40efec Misc 2015-11-28 10:55:07 +00:00
bao-qian
d7d71d9ff1 Add solution level AssemblyInfo file, and bump version
1. Add solution level AssemblyInfo file
2. Bump assembly version
3. Fix #324
2015-11-28 10:47:49 +00:00
vankasteelj
2d68e3d4f3 add fr to csproj 2015-11-27 23:22:29 +01:00
vankasteelj
53236faaa0 add french locale & xaml 2015-11-27 22:04:13 +01:00
bao-qian
daca1b3615 Update README.md 2015-11-26 11:09:56 +00:00
bao-qian
9a8032a673 Add more badges. 2015-11-26 08:15:50 +00:00
bao-qian
b11972d1b7 Merge remote-tracking branch 'origin/master' into dotnet45 2015-11-26 07:45:12 +00:00
bao-qian
041ea2fbb1 Merge branch 'master' into dev 2015-11-26 07:43:44 +00:00
bao-qian
5167611da5 Merge remote-tracking branch 'origin/master' into dotnet45 2015-11-26 07:43:00 +00:00
bao-qian
4526378b33 Merge remote-tracking branch 'origin/master' into dotnet45 2015-11-26 07:42:09 +00:00
bao-qian
bc2a9cf1c0 Misc
IDE Misc
2015-11-26 07:09:08 +00:00
bao-qian
c4a5eeabcc merge master 2015-11-26 06:57:12 +00:00
bao-qian
00836cd38b Update faq for how to report bugs 2015-11-26 05:33:44 +00:00
bao-qian
c0009c7e62 Manually restart is no longer needed.
24866ff032829e9bd34704d3d5970d227a4c8db3 fix the restart
2015-11-26 05:24:27 +00:00
bao-qian
6023f415a4 Fix Wox restart
1. refactoring restart
2. delte some windows forms methods
3. using string inteperlation and delete hard coeded new line char

should fix #322
2015-11-26 05:01:00 +00:00
bao-qian
f55daf65e3 Merge pull request #406 from marshallmick007/master
Updated spelling and grammar
2015-11-26 03:52:21 +00:00
marshallmick007
fe3c23d29c Updated spelling and grammar 2015-11-25 20:43:34 -07:00
bao-qian
f0765ba743 Fix System Command plugin
1. Fix error code handle for 39191a55187a36141bff42fcaf803135c0fe0b3c
2. use WPF MessageBox
3. Fix postion / window handle for
39191a55187a36141bff42fcaf803135c0fe0b3c
2015-11-26 01:27:18 +00:00
bao-qian
672c623757 Merge pull request #405 from SweBeat/NewSystemFeatures
Add more system commands
2015-11-26 00:15:21 +00:00
Tobias Johansson
e33799701b *Moved everything to dev branch
- Sorry for the trouble
2015-11-25 18:49:44 +01:00
bao-qian
e5e64a4b6d Merge pull request #399 from ReadmeCritic/master
Update README URLs based on HTTP redirects
2015-11-23 17:36:47 +00:00
ReadmeCritic
63f1c1f7b5 Update README URLs based on HTTP redirects 2015-11-23 07:34:59 -08:00
bao-qian
005de550c1 Merge pull request #396 from kayone/master
Updated google search logo
2015-11-17 18:42:05 +00:00
Keivan Beigi
20fd3bdc20 Updated google search logo 2015-11-17 10:35:08 -08:00
bao-qian
e29f53a82d Merge branch 'master' into dotnet45 2015-11-13 05:15:00 +00:00
bao-qian
f272470871 Add equality checking for old keyword and new keyword 2015-11-13 05:14:27 +00:00
qianlifeng
9c082a573c Merge pull request #383 from lances101/dev
Wox now has Blur
2015-11-13 11:05:29 +08:00
bao-qian
7de0a0a44a Fix "The type initializer for 'System.Windows.Application' threw an exception." 2015-11-12 22:14:22 +00:00
bao-qian
e848c78dba Merge branch 'master' into dotnet45 2015-11-12 22:02:40 +00:00
bao-qian
3f60723425 Fix some unresolved reference for xaml 2015-11-12 20:36:32 +00:00
bao-qian
8b97914438 Fix web search icon
part of #384
bug introduced in 38cc115c1f9e1efbb2256f6e88168493797adb5c
2015-11-12 19:53:43 +00:00
bao-qian
a8967bab39 Fix incorrect fuzzy match result for program plugin
Fix #270
2015-11-11 06:20:52 +00:00
bao-qian
1248307b96 Fix the order of everything results
Try to fix #381
2015-11-11 05:42:06 +00:00
bao-qian
de1491a310 Temp fix for CMD hotkey 2015-11-11 05:12:37 +00:00
bao-qian
b5a08c3ba4 Merge branch 'dev' 2015-11-11 01:18:16 +00:00
bao-qian
49bf86a8d5 Fix missing dll for CMD plugin
1. Fix #382
2. Part of #387
2015-11-11 01:17:37 +00:00
bao-qian
5e4cfbaf3f Better error log 2015-11-11 00:42:49 +00:00
bao-qian
11aed2ab61 Fix output path for Wox.Core 2015-11-11 00:42:34 +00:00
bao-qian
e6f19a4abf Fix unhandled exception 2015-11-11 00:33:33 +00:00
bao-qian
b3b6dc2e94 Update faq for how to report bugs 2015-11-10 20:05:18 +00:00
Boris Makogonyuk
ece09a93cd Changed WindowsAccentMode (int32) Theme setting to ThemeBlurEnabled (boolean):
- Exposed a new function "SetBlurForWindow" in WindowIntelopHelper that handles the blur.
- Deleted Accent and Test themes
- Changed SimpleBlur and Base themes according to changes
2015-11-10 12:18:03 +01:00
Boris Makogonyuk
9a56ebea81 Black and White Themes updated and staged 2015-11-10 06:54:23 +01:00
Boris Makogonyuk
287e15fddc *forgot to stage files on last commit 2015-11-10 06:36:08 +01:00
Boris Makogonyuk
724cb0787d Applying theme before actually setting the theme accent.
UserSettingStorage now stores current theme accent mode.

Themes:
Added a bunch of them. Testing what works.
2015-11-10 06:35:09 +01:00
Boris Makogonyuk
d8b806966a Reversing MainWindow Blur call and settings window modification
Added WindowsAccentMode to Base theme
2015-11-10 03:37:34 +01:00
Boris Makogonyuk
f24a6f0e3c MainWindow: AllowsTransparency set to True
WindowIntelopHelper: Added accent handling
SettingsWindow: Added combobox with accent selector to Theme tab (not functional yet)
Languages: Added entries for accent colors (all are in english for now)

[TEMP] Blur and Accent themes experiments
[TEMP] blur set in mainwindow on load.
2015-11-10 00:51:22 +01:00
bao-qian
34c516709b Merge pull request #377 from Wox-launcher/dev
Fix UI flickering
2015-11-09 16:21:55 +00:00
bao-qian
6d03eac9a1 Remove outdated chocolatey downloads 2015-11-09 05:40:32 +00:00
bao-qian
c456ef9118 Fix namespace
bug introduced since  e037e88
2015-11-09 03:59:20 +00:00
bao-qian
4351080aea Fix icon path for Web Search plugin 2015-11-09 03:56:56 +00:00
bao-qian
8aee2858ea Fix setting for multiple action keywords
1. completed rewrite the action keyword setting logic.
2. Fix setting for multiple action keywords in #352
3. Fix setting for Web Search plugin
2015-11-09 03:20:02 +00:00
bao-qian
da5a930e89 Move namespace 2015-11-09 01:32:33 +00:00
bao-qian
5131cc8e43 Typo 2015-11-08 23:49:33 +00:00
qianlifeng
60f06f97fa fix a null pointer issue 2015-11-08 19:31:44 +08:00
qianlifeng
c0216e0800 Merge branch 'dev' of https://github.com/Wox-launcher/Wox.git 2015-11-08 19:22:07 +08:00
qianlifeng
2be68342bb use caculated score for sys plugin item 2015-11-08 19:21:48 +08:00
bao-qian
c43a29f058 Update readme 2015-11-08 05:03:34 +00:00
bao-qian
ab14b9c8bb Update readme
Because of the ongoing refactoring, the doc is outdated.
2015-11-08 04:56:50 +00:00
bao-qian
fa3e496aae Update readme 2015-11-08 04:54:40 +00:00
bao-qian
543cd5af80 Fix progress bar
Bug introduced in 9962ddf2ed80a00036ebdb2965429675c4355472
2015-11-08 03:06:34 +00:00
bao-qian
e3cdfe27d1 Fix query history for the new result panel 2015-11-08 02:50:33 +00:00
bao-qian
d946e18fa2 Fix CMD plugin for new result panel 2015-11-08 02:27:37 +00:00
bao-qian
b33b696336 Misc 2015-11-08 02:27:13 +00:00
bao-qian
e928b4c9e0 Fix web search plugin for new result panel 2015-11-08 02:27:08 +00:00
bao-qian
2b27e84956 Enhance result panel update
The last commit f132cb54baa000a245feb5da87149960f6dbd9f5 only fix UI
flickering for different icon. This commit also fix the commit for same
icon. e.g. in web search plugin, although the title is different, but
the icon is not changes.
part of #350
2015-11-08 01:44:28 +00:00
bao-qian
9627272b57 Fix clearance of old results
part of #350
2015-11-07 20:48:18 +00:00
bao-qian
705354a3d6 Better logger
1. Throw exception for fatal/error log when debugging
2. Write to debug output for warn/debug/info log when debugging
3. part of #355
2015-11-07 17:32:58 +00:00
bao-qian
7d52b0cc96 Fix exclusive for action keyword 2015-11-07 03:50:26 +00:00
bao-qian
8662e963ac Misc 2015-11-07 03:50:15 +00:00
bao-qian
08594f0b96 Upgrade to .net 4.5 2015-11-07 03:09:10 +00:00
bao-qian
7db73cbd44 tmp 2015-11-07 02:23:40 +00:00
bao-qian
cae8485092 Fix UI flickering
See #350
2015-11-06 21:30:38 +00:00
bao-qian
64e020b1ad Better crash report 2015-11-06 19:55:48 +00:00
bao-qian
2dd2208f48 Fix ui for action keywords 2015-11-06 18:12:46 +00:00
bao-qian
ddc28c43c8 Merge pull request #372 from Wox-launcher/dev
Multiple action keywords implemented
2015-11-06 02:37:11 +00:00
bao-qian
7c889e3523 Add more comments
See #352
2015-11-06 02:34:50 +00:00
bao-qian
af7beb2c34 Improve UI for multiple action keywords
See #352
2015-11-06 02:29:32 +00:00
bao-qian
7b50febba3 Misc 2015-11-06 01:19:13 +00:00
bao-qian
00543bca17 Fix PluginManagement plugin for multiple action keyword
1. Fixup, part of #352
2. Windows.Form -> WPF
3. Refactoring
2015-11-06 01:17:34 +00:00
bao-qian
178710dabc Fix PluginIndicator for multiple action keywords
1. Fixup, part of #352
2. Refactoring
2015-11-06 01:16:37 +00:00
bao-qian
99d9d14d3b Misc
1. Rename
2. Fix progress bar: progress bar should not be loaded when only white
spaces typed
2015-11-06 01:09:08 +00:00
bao-qian
a07d6aa1e7 Enable multiple action keywords
See issue #352
2015-11-05 19:29:45 +00:00
bao-qian
59a4abff7c Better name
Timeit.Stopwatch -> Stopwatch.Normal
Timeit.StopwatchDebug -> Stopwatch.Debug
2015-11-05 19:29:45 +00:00
bao-qian
df0f310ddd Replace Dispose with Lambda
1. Faster
2. Fix #361
2015-11-04 21:35:04 +00:00
bao-qian
57a06aa122 Merge pull request #363 from Wox-launcher/dev
Auto completion for the folder plugin
2015-11-04 18:06:04 +00:00
bao-qian
f110dce520 Merge branch 'master' into dev 2015-11-04 18:02:58 +00:00
bao-qian
3085799c3c Fix #357
Fix bug introduced since a5abe9234faafcd170f9468a70f42bf60eda0f0d
2015-11-04 17:21:45 +00:00
bao-qian
3d9b9af55e Fix #362 2015-11-04 17:08:27 +00:00
bao-qian
ad21909b5c Remove unused reference 2015-11-04 16:40:10 +00:00
bao-qian
d98d00556d Merge branch 'master' into dev 2015-11-04 16:23:50 +00:00
bao-qian
5c7a4323e3 Merge branch 'ci' 2015-11-04 16:20:08 +00:00
bao-qian
183701a00a bat -> ps1 Fix bug for 8fe993ddd5 2015-11-04 16:17:10 +00:00
bao-qian
549987296c Merge branch 'ci' 2015-11-04 16:12:51 +00:00
bao-qian
9918e49bb1 Only deploy to NuGet when API changed (interface or implementation), see #360 2015-11-04 16:07:46 +00:00
bao-qian
d57ef1e928 Only tested build should be deployed 2015-11-04 16:03:05 +00:00
bao-qian
203af0fc76 Better instruction 2015-11-04 05:04:08 +00:00
bao-qian
a446c0a9c9 Change nuget api keys 2015-11-04 04:47:14 +00:00
bao-qian
b2aba7918d Update instruction for ci builds 2015-11-04 04:46:29 +00:00
bao-qian
fc2c877a57 Merge pull request #359 from Wox-launcher/ci
Fix continue integration in AppVeyor
2015-11-04 04:38:17 +00:00
bao-qian
f2a93887c9 Fix continue integration in AppVeyor 2015-11-04 04:30:54 +00:00
qianlifeng
b1eb48d201 Fix typo 2015-11-04 10:04:54 +08:00
bao-qian
d372d786ef Appveyor is case sensitive now 2015-11-04 01:21:51 +00:00
bao-qian
dc8df9c62f Enable PreLoadImages
Fix bug introduced in
cf87f68b42
2015-11-04 01:10:54 +00:00
bao-qian
5b3ea08b39 Ignore query test
Current query is tightly integrated with GUI, can't be tested.
2015-11-04 01:05:03 +00:00
bao-qian
72a754676a Misc 2015-11-04 00:29:13 +00:00
bao-qian
cb1da686ec Fix System.NullReferenceException for #356 2015-11-04 00:26:15 +00:00
bao-qian
8a78e4e9f4 Update build script for new nuget retore 2015-11-04 00:12:40 +00:00
bao-qian
b9b59ac2e0 Add simple usage 2015-11-03 23:21:27 +00:00
bao-qian
549b982c5f Update installation instruction 2015-11-03 22:32:23 +00:00
bao-qian
558f527f20 Change copyright 2015-11-03 21:16:29 +00:00
bao-qian
d897d64aa5 Ignore python in github language statistics 2015-11-03 21:15:26 +00:00
qianlifeng
59463958d3 Update README.md 2015-11-03 23:34:59 +08:00
qianlifeng
d4a606884c Update README.md 2015-11-03 18:50:41 +08:00
qianlifeng
ff3a2f6b67 Merge pull request #347 from happlebao/refactoring
Refactoring
2015-11-03 18:21:15 +08:00
bao-qian
288ac62448 Refactoring Query initialisation 2015-11-03 05:09:54 +00:00
bao-qian
f5d3df65b0 Misc 2015-11-03 01:33:53 +00:00
bao-qian
fc6ac662cd Refactoring instant query 2015-11-03 00:34:27 +00:00
bao-qian
cd0d9052e8 Misc 2015-11-02 22:15:06 +00:00
bao-qian
86da8cbd17 Refactoring Plugin.Feature 2015-11-02 19:27:46 +00:00
bao-qian
7a38143f5e Remove AssemblyHelper 2015-11-02 19:27:36 +00:00
bao-qian
818802cf5e Refactoring GetPlugins<T>() 2015-11-02 18:52:34 +00:00
bao-qian
a668ed5e24 Refactoring LoadPluginInterfaces 2015-11-02 18:13:53 +00:00
bao-qian
c9edc217fd Misc 2015-11-02 13:43:19 +00:00
bao-qian
89dc9e7e7f Better log info 2015-11-02 13:43:09 +00:00
bao-qian
96b6832dff Remove LoadInterfacesFromAppDomain
Much faster. ApplyPluginLanguages is 10 times faster now. 7ms vs 100ms.
2015-11-02 13:42:52 +00:00
bao-qian
881e414043 Fix ResourceMerger
1. Fix duplication for loading resource.
2. Fix null reference when plugin is not loaded.
3. speedup.
2015-11-02 02:49:38 +00:00
bao-qian
b5a8312167 Add startup time measurement 2015-11-02 02:47:43 +00:00
bao-qian
ac3a282876 Fix bug for CMD
This bug is introduced since commit:
73dadde5f077896129aa574d028c0343485f3ddc
2015-11-02 01:06:57 +00:00
bao-qian
a3117fa61d Misc 2015-11-02 00:09:42 +00:00
bao-qian
bfa0db3ba3 Replace all Stopwatch with Timeit 2015-11-02 00:04:05 +00:00
bao-qian
79fdba969b Don't sort plugins every time, sort it when set it 2015-11-01 23:32:17 +00:00
bao-qian
79461d52c2 Rearrange code
Fields -> Properties -> Init method -> Query methods -> Is methods ->
Get Methods
2015-11-01 22:59:56 +00:00
bao-qian
8c7bac7dbb Refactoring GetExclusivePlugin and GetActionKeywordPlugin
System plugin = plugin with action keyword *
Non system plugin = exclusive plugin + action keyword plugin
2015-11-01 19:47:20 +00:00
bao-qian
bb3b982dea Refactoring Query Dispatch
half lines of code :)
2015-11-01 17:28:13 +00:00
bao-qian
f3038e4fef Fix System.ArgumentException
Fix System.ArgumentException("Illegal characters in path") when parsing
path string
2015-11-01 01:19:00 +00:00
bao-qian
cfeb637685 Use Nlog.Schema from Nuget 2015-11-01 01:18:59 +00:00
bao-qian
f37fd5c5e3 Move NLog.xsd, let it handled by nuget 2015-11-01 01:18:54 +00:00
bao-qian
4368602684 Use consistent name convention 2015-11-01 01:18:53 +00:00
bao-qian
a67ced29a3 Remove sensitive information 2015-11-01 01:18:53 +00:00
bao-qian
ca8293ebdb Migrate MSBuild-Integrated solutions to use Automatic Package Restore
http://docs.nuget.org/consume/package-restore/migrating-to-automatic-package-restore
2015-11-01 01:18:40 +00:00
bao-qian
4a95dd8ba3 Use NuGet for NAppUpdate 2015-10-31 18:49:37 +00:00
bao-qian
1616aa87bd Remove PluginDebugger 2015-10-31 18:20:43 +00:00
bao-qian
9d9400f4d9 Fix Debug output
DebugHelper is useless, bacuase the return statement is always executed before the actual code.
2015-10-31 18:06:57 +00:00
bao-qian
a6f8eb28f2 Refactoring Query 2015-10-31 16:02:56 +00:00
bao-qian
251834143c Better comment 2015-10-30 23:23:08 +00:00
bao-qian
ad8b6c806d Optimize using directives 2015-10-30 23:23:01 +00:00
bao-qian
26a6264039 Refactoring DelayInvoke
In MainWindow.xaml.cs, the reference of originQuery, lastQuery and
tbQuery.Text are same, so remove originQuery is fine.
2015-10-30 23:22:54 +00:00
bao-qian
2dfcee6b25 Remove unnecessary thread switch 2015-10-30 23:22:47 +00:00
bao-qian
b283977281 Remove unnecessary decoration 2015-10-30 23:22:42 +00:00
bao-qian
2538a79ef0 Remove unused reference
System.xaml also removed because .net 3.5 doesn't has this dll, and it resolve the issue when using code metrics
2015-10-30 23:22:25 +00:00
qianlifeng
267f2afab6 Merge pull request #341 from lances101/master
Fixed #339. Hotkeys were ignored on desktop
2015-10-15 12:17:52 +08:00
Boris Makogonyuk
559eebbb70 Issue: If Wox was set to ignore hotkeys on full-screen it would fail.
Cause: Compared IntPtr with null. IntPtr is never null.
2015-10-14 18:41:45 +02:00
qianlifeng
326ee9a9c2 Merge pull request #340 from lances101/master
Option to ignore hotkeys on fullscreen windows
2015-10-08 12:14:29 +08:00
Boris Makogonyuk
dc4c33c0d5 Reflected functionality changes from the last commit on the whole project. 2015-10-08 01:02:36 +02:00
Boris Makogonyuk
3fbebfc283 ~Changed how the fullscreen detection work. Checking by Topmost was a stupid idea. It will now check for the window to fill the whole screen area. 2015-10-08 00:52:52 +02:00
Boris Makogonyuk
7273e1218a Wox now has an option to ignore hotkeys when the focused window is topmost. This will ignore not only the main Wox hotkey but also plugin hotkeys.
~ WindowIntelopHelper edited
~ User settings entry added
~ Checkbox added to General tab (as well as its events)
~ Language entries added for en/ru
2015-10-08 00:17:37 +02:00
qianlifeng
69e96f24c2 Merge pull request #339 from lances101/master
Fixed commit #334 multiple SelectionChanged firing
2015-10-07 18:24:09 +08:00
Boris Makogonyuk
92ddf2ca41 Fixed commit #334 multiple SelectionChanged firing 2015-10-06 14:46:12 +02:00
qianlifeng
3662afeaa7 Merge pull request #334 from JohnTheGr8/master
Couple improvements to settings
2015-09-28 12:34:29 +08:00
Ioannis G
860210628e close settings with esc 2015-09-26 00:50:22 +03:00
Ioannis G
a1988f91c1 fix tab populating in settings (fixes #291) 2015-09-25 23:43:09 +03:00
qianlifeng
6f6393493b Merge pull request #329 from lances101/master
Added Russian translation
2015-09-06 13:14:16 +08:00
Boris Makogonyuk
878213887f Change Russian to Русский for the language selector 2015-09-04 22:38:28 +01:00
Boris Makogonyuk
805b83da9c Added Russian translations to Wox 2015-09-04 22:35:52 +01:00
qianlifeng
fe4319ad07 Merge pull request #323 from renzhn/fix-wox
Fix wox
2015-08-28 09:41:12 +08:00
renzhn
1bda9d5a26 fix disable plugin not working 2015-08-28 08:02:30 +08:00
renzhn
9ce239dedb fix StringNullOrEmptyToVisibilityConverter has no 0 parameter constructor 2015-08-28 08:02:23 +08:00
renzhn
bc86c9b57d setting window: plugin 2015-08-28 08:02:09 +08:00
renzhn
d9b9e02412 set port number if not zero 2015-08-28 08:01:41 +08:00
renzhn
2f7b5dd041 update plugin program translation 2015-08-28 08:01:28 +08:00
qianlifeng
5ffb7bba83 Merge pull request #319 from danisein/dev
Auto completion for the folder plugin
2015-08-24 00:07:12 +08:00
qianlifeng
436bffcb0e Merge pull request #320 from druellan/master
readme.md corrections and suggestions on the redaction
2015-08-24 00:05:48 +08:00
Dario Ruellan
99ce747720 readme.md corrections and suggestions on the redaction 2015-08-23 12:38:11 -03:00
danisein@qq.com
f3fbbed7ee Auto completion for the folder plugin 2015-08-23 15:40:18 +08:00
qianlifeng
b7c024d275 Merge pull request #312 from junjie020/master
Specify a working directory when run a program from a process
2015-08-17 11:31:50 +08:00
junjie020
cf76c943b8 Fix ShellExecCmdLine fucntion. Using global::System.Diagnostics.Process.Start to run program without working directory specifying. 2015-08-17 11:22:45 +08:00
qianlifeng
2a0e641de7 Update README.md 2015-07-19 23:08:13 +08:00
qianlifeng
630456f700 add missing sleep images and translations 2015-07-17 15:38:50 +08:00
qianlifeng
618ba376b2 Ajust maxium result item UI 2015-07-17 15:23:38 +08:00
qianlifeng
c8a445275b merge with master 2015-07-17 15:08:39 +08:00
qianlifeng
68b3c449a6 misc 2015-07-17 14:37:38 +08:00
qianlifeng
aee7d171c5 Merge pull request #303 from kerams/sleep
Add option to put computer to sleep
2015-07-15 09:12:52 +08:00
kerams
2089406eaf Add option to put computer to sleep 2015-07-14 17:59:24 +02:00
qianlifeng
298e041b80 Merge pull request #302 from kerams/max-results
Make the number of results shown at a time customizable
2015-07-13 10:17:05 +08:00
kerams
c79bf1ca3a Make the number of results show at a time customizable 2015-07-12 21:13:30 +02:00
qianlifeng
207546b53c Update README.md 2015-06-10 13:08:40 +08:00
qianlifeng
a54898b062 Update README.md 2015-06-10 13:05:12 +08:00
qianlifeng
124803c89d Merge pull request #288 from Leon99/dev
Support for assigning any key as a hotkey; minor refactoring
2015-06-08 10:21:50 +08:00
Leon V
825128b630 Support for assigning any key as a hotkey; minor refactoring 2015-06-07 13:45:06 +10:00
qianlifeng
dcd20f42b9 Merge pull request #278 from dstiert/program-source-details
Improve configurability of Programs plguin
2015-05-03 14:25:46 +08:00
Devin Stiert
b6f14a752c Google translated translations 2015-05-02 10:31:20 -04:00
Devin Stiert
40f58d7054 Support editing 2015-05-02 10:17:42 -04:00
Devin Stiert
485afcfa6e Allow disabling of default program sources 2015-05-02 09:47:03 -04:00
Devin Stiert
e82bc859f5 Fix csproj 2015-04-22 09:22:55 -04:00
Devin Stiert
5615e02cdb fix proj file 2015-04-20 20:35:03 -04:00
Devin Stiert
4c5a046bc0 Add max depth and suffixes per program source 2015-04-20 20:32:10 -04:00
qianlifeng
6b6ab5e752 fix #249 Characters not being properly escaped in Python plugins 2015-03-08 14:58:14 +08:00
qianlifeng
6d3f3985a2 Remove context shell load codes and change image cache path 2015-03-07 16:30:54 +08:00
qianlifeng
64e57c5419 Update README.md 2015-03-04 09:25:19 +08:00
qianlifeng
7e11c319e7 fix #249, replace escapes before sending json rpc request to plugin [WIP] 2015-03-03 18:29:36 +08:00
qianlifeng
12265def19 Add translation for CMD plugin 2015-02-28 18:30:08 +08:00
qianlifeng
45f60ae646 Fix UI issues when using web search plugin with suggestions 2015-02-28 18:20:06 +08:00
qianlifeng
72988cc6fb Using new thread to check upgrade 2015-02-27 18:04:49 +08:00
qianlifeng
4d3df4cda6 fix #256 2015-02-27 09:28:07 +08:00
qianlifeng
a0b7768a86 Fix #255, can't delete items in folder plugin 2015-02-26 17:12:21 +08:00
qianlifeng
7aae1b262e Add translation for icon tray. 2015-02-21 21:57:00 +08:00
qianlifeng
5ace62a5fd Merge branch 'dev' of https://github.com/qianlifeng/Wox.git 2015-02-20 22:29:29 +08:00
qianlifeng
48e01d3ea3 adding fixed height for caculating windows top 2015-02-20 22:18:27 +08:00
qianlifeng
d93c705737 fix #251 add auto center Wox option 2015-02-20 21:45:42 +08:00
qianlifeng
b1a97eca39 fix #252 web search items lost after restart Wox 2015-02-20 21:14:15 +08:00
qianlifeng
d91088879c Implement ShellContextMenu [WIP] 2015-02-12 18:58:39 +08:00
qianlifeng
21e5f33487 Add shell context [WIP] 2015-02-12 00:12:28 +08:00
qianlifeng
48f7c37d3b Merge branch 'V1.2.0' 2015-02-11 00:01:44 +08:00
qianlifeng
815d911143 Add log for storage crashing 2015-02-10 23:48:09 +08:00
qianlifeng
d90baed5b5 Add bountysource 2015-02-10 09:42:52 +08:00
qianlifeng
e767cee4c0 Update query history language 2015-02-09 22:14:38 +08:00
qianlifeng
eafce4442c Change project generate sequence 2015-02-09 21:59:23 +08:00
qianlifeng
3652394dab Update version 2015-02-09 21:34:29 +08:00
qianlifeng
a942882c73 Add QueryHistory to Wox (Ctrl+Up and Ctrl+Down) 2015-02-09 19:16:13 +08:00
qianlifeng
b8f829dbc3 Add item number [WIP] 2015-02-09 00:13:08 +08:00
qianlifeng
8d33644749 Add a new theme 2015-02-08 21:25:59 +08:00
qianlifeng
268df23739 Add uninstalleverything command as everything serivce will prevent move/remove wox folder. 2015-02-08 17:09:14 +08:00
qianlifeng
6c731f50a9 Improve Everything plugin user experience 2015-02-08 16:27:41 +08:00
qianlifeng
dc2f3cd166 Improve setting window performance (theme). 2015-02-08 10:38:32 +08:00
qianlifeng
877ad53ead fix a plugin query issue 2015-02-08 00:06:22 +08:00
qianlifeng
bc7dce6026 Add IContextMenu interface & lazy load context menus 2015-02-07 23:49:46 +08:00
qianlifeng
c24e216f26 fix #246 prompt restart wox after uninstall plugin 2015-02-07 21:40:25 +08:00
qianlifeng
2d05ecc81f Add title translations 2015-02-07 21:27:48 +08:00
qianlifeng
437c1a154c Add plugin title translations 2015-02-07 20:17:49 +08:00
qianlifeng
82d30c6e74 Allow searches in context menu 2015-02-07 16:53:33 +08:00
qianlifeng
998eecb94d fix regressive issues 2015-02-06 18:13:22 +08:00
qianlifeng
02e22e5781 Add top most function. 2015-02-05 23:29:41 +08:00
qianlifeng
ad11ca0a87 Add IExclusivePlugin 2015-02-05 22:20:42 +08:00
qianlifeng
7b0a643de3 Add IExclusiveSearch interface [WIP] 2015-02-05 18:43:05 +08:00
qianlifeng
fa53bce27a Add init time and query time to setting view 2015-02-05 00:03:35 +08:00
qianlifeng
1d3f1fd7d0 Improve instant search ue 2015-02-04 23:16:41 +08:00
qianlifeng
5d9a94466a Add drop event. 2015-02-03 18:32:16 +08:00
qianlifeng
b5175ae8b0 Update README.md 2015-02-03 12:45:41 +08:00
qianlifeng
38948053cc Merge 2015-02-03 12:29:58 +08:00
qianlifeng
4a5a496802 Merge branch 'V1.2.0' of https://github.com/qianlifeng/Wox into V1.2.0 2015-02-03 12:29:26 +08:00
qianlifeng
30b6c8aa03 Add hotkey for navigating result items. 2015-02-03 12:27:59 +08:00
qianlifeng
95e468c90a Add drop event [WIP] 2015-02-02 23:28:40 +08:00
qianlifeng
d74dd48d24 Merge branch 'V1.2.0' 2015-02-01 22:48:33 +08:00
qianlifeng
5ef72b81ae Add upgrade dialog 2015-02-01 22:46:56 +08:00
qianlifeng
691cf1ce72 Merge remote-tracking branch 'origin/V1.2.0' into V1.2.0 2015-02-01 12:39:01 +08:00
qianlifeng
5b70064fa4 Update upgrade feed url 2015-02-01 12:32:22 +08:00
qianlifeng
80e01a4d3d Merge pull request #242 from Boelensman1/V1.2.0
Added open in folder to the program plugin.
2015-01-31 23:09:51 +08:00
Boelensman1
b30f3d6b8f Forgot to remove some lines.
No longer opening explorer with admin rights.
2015-01-30 15:54:02 +01:00
Boelensman1
4672628ee2 Added open in folder to the program plugin. 2015-01-30 02:18:18 +01:00
qianlifeng
a112c6d9ee Remove autohotkey and add toggle command args 2015-01-29 22:35:01 +08:00
qianlifeng
2b1e343186 Add autohotkey 2015-01-29 18:26:50 +08:00
qianlifeng
36ce0c8271 Merge 2015-01-28 10:16:10 +08:00
qianlifeng
b521318e82 proj file changes. 2015-01-28 10:13:48 +08:00
qianlifeng
9f64a384d6 Implement IInstantSearch for CMD and WebSearch plugin 2015-01-27 22:59:03 +08:00
qianlifeng
4ecff94aec Change update logic 2015-01-27 21:51:29 +08:00
qianlifeng
c7e73924c8 Add clean script to Wox.csproj 2015-01-27 19:29:32 +08:00
qianlifeng
87958d9db8 Move web search setting to its own project 2015-01-26 22:50:38 +08:00
qianlifeng
56fa719931 API changes 2015-01-26 20:54:01 +08:00
qianlifeng
6ee6cd3977 Add everything plugin 2015-01-26 19:06:03 +08:00
qianlifeng
7821f41723 some API changes for Query class and renames. 2015-01-26 17:46:55 +08:00
qianlifeng
ddf6154600 Remove all obsolete methods 2015-01-24 22:42:06 +08:00
qianlifeng
929cc2727d Add pluginID for result. 2015-01-24 22:34:55 +08:00
qianlifeng
4379145231 Add activate statistics 2015-01-23 21:52:46 +08:00
qianlifeng
42d86fab8e make some renames 2015-01-23 20:49:00 +08:00
qianlifeng
cb41a4c386 update cleanup.bat 2015-01-23 20:12:52 +08:00
qianlifeng
672abbcaad Implement #202 2015-01-23 18:28:14 +08:00
qianlifeng
17bc9c35a7 add Cleanup CI job 2015-01-23 13:01:52 +08:00
qianlifeng
50587735b5 Update CI 2015-01-22 23:02:13 +08:00
qianlifeng
21edfdb62e Add Wox.UpdateFeedGenerator 2015-01-22 22:57:54 +08:00
qianlifeng
bda67afd4f Update CI 2015-01-22 21:02:52 +08:00
qianlifeng
c4ca06d5e5 Sort plugin and themes in setting dialog 2015-01-22 20:24:15 +08:00
qianlifeng
f4904e06c8 Change CI 2015-01-22 19:02:34 +08:00
qianlifeng
1273a6fb74 update ci 2015-01-21 23:51:12 +08:00
qianlifeng
3c626fd01e Update CI builds. 2015-01-21 23:25:57 +08:00
qianlifeng
00953850b3 Improve the update progress. 2015-01-21 23:00:56 +08:00
qianlifeng
563370f10b Remove unnecessary unit test 2015-01-21 21:09:35 +08:00
qianlifeng
62a33fe7fc remove unnessary files. 2015-01-20 22:41:19 +08:00
qianlifeng
ea18fda0a3 Merge with v1.2.0 2015-01-20 22:35:53 +08:00
qianlifeng
1ef163f827 Change log facility. 2015-01-20 22:33:45 +08:00
qianlifeng
3f6cb3cd73 Fix an issue if update failed 2015-01-20 20:05:38 +08:00
qianlifeng
284767409a Merge branch 'V1.2.0' of https://github.com/qianlifeng/Wox.git 2015-01-19 23:09:00 +08:00
qianlifeng
5e3d29df4c Add Auto Updater [WIP] & remove UAC project 2015-01-19 23:08:53 +08:00
qianlifeng
c380049b21 Refactoring 2015-01-19 19:14:02 +08:00
qianlifeng
b49209a0d9 Add query history plugin & upgrade all third-party packages 2015-01-18 18:21:48 +08:00
qianlifeng
9d39b616f9 Better exception report. 2015-01-16 23:42:12 +08:00
qianlifeng
32e0074f26 downgrade to .net framework 3.5 2015-01-15 21:01:43 +08:00
qianlifeng
8d746cd206 Upgrade to .net framework 4.5 2015-01-15 20:47:48 +08:00
qianlifeng
bc341d193f Upgrade to .net framework 4.0 2015-01-14 22:19:44 +08:00
qianlifeng
3ad2b2bfcc close #233 2015-01-13 09:47:56 +08:00
qianlifeng
acfad7ec5b add translation for crash reporter 2015-01-12 22:46:36 +08:00
qianlifeng
5be6511529 Add Wox.CrashReporter 2015-01-11 21:52:30 +08:00
qianlifeng
f20b4d570e Change output folders for plugins in Release 2015-01-09 12:45:56 +08:00
qianlifeng
06a9478555 Merge pull request #232 from allanpk716/V1.2.0
1,fix ImageLoader GetIcon() trigger FileNotFoundException when file not ...
2015-01-09 10:43:02 +08:00
716
6e3ca5391a 1,fix ImageLoader GetIcon() trigger FileNotFoundException when file not exist;
2,In FolderPluginSettings when trigger Delete Action need confirm;
3,Add drag and drop functionality in ProgramSetting and FileSystemSettings.

Signed-off-by: 716 <525223688@qq.com>
2015-01-09 10:30:12 +08:00
qianlifeng
2422a4200c Merge 2015-01-09 09:45:40 +08:00
qianlifeng
56788c8b8f Project structure change 2015-01-09 09:44:03 +08:00
qianlifeng
220ac2fa2d Fix a global hotkey issues in CMD, which will hang Wox on init. 2015-01-08 22:49:42 +08:00
qianlifeng
3143d0d8aa Merge pull request #230 from allanpk716/patch-1
FIx FileNotFoundException in GetIcon
2015-01-08 09:41:26 +08:00
Chin allan
0bb1669efa 修复 GetIcon 可能出现的 FileNotFoundException 异常
重启电脑的时候会提示 FileNotFoundException ,所以在这里加一个检查。
2015-01-08 08:47:24 +08:00
qianlifeng
288be8dd71 update plugin languages 2015-01-07 22:23:10 +08:00
qianlifeng
d3bf71a22d Add translation for folder plugin 2015-01-07 18:59:55 +08:00
qianlifeng
12abca39a2 Add translation for CMD plugin 2015-01-07 18:51:11 +08:00
qianlifeng
898c8854aa Add translation for web search plugin 2015-01-07 18:45:55 +08:00
qianlifeng
492e33aeda Add translations for Program plugin. 2015-01-06 23:24:11 +08:00
qianlifeng
ce9c832e00 Implement plugin i18n [WIP] 2015-01-06 18:28:23 +08:00
qianlifeng
5e0821417e Merge 2015-01-06 09:44:42 +08:00
qianlifeng
ce451e4dd4 Move some user settings to its own dll (cmd,folder plugin and etc) 2015-01-05 22:41:17 +08:00
qianlifeng
714d8c7092 Fix a issue when deserialize binary storage. 2015-01-05 18:18:29 +08:00
qianlifeng
6162904c59 Refactoring 2015-01-04 23:08:26 +08:00
qianlifeng
4d65b4c7a5 Fix crash issues when deserialize failed 2015-01-04 18:14:50 +08:00
qianlifeng
4243843951 Refactoring. Move system plugins to seperate DLLs. 2015-01-03 15:20:34 +08:00
qianlifeng
203965043e Add i18n support [WIP] 2015-01-02 23:07:49 +08:00
qianlifeng
bf87500e35 Add multiple language. [WIP] 2015-01-02 16:16:09 +08:00
qianlifeng
a038587224 Fix typo 2015-01-01 23:07:14 +08:00
qianlifeng
96d908094b Merge branch 'V1.2.0' of https://github.com/qianlifeng/Wox into V1.2.0 2014-12-31 12:43:02 +08:00
qianlifeng
61dc148d34 Fix a crash issue. 2014-12-31 12:42:49 +08:00
qianlifeng
f753369d1a Add unittest [WIP] 2014-12-29 23:02:50 +08:00
qianlifeng
72c2fa3863 Fix issues if didn't has permission to create dir 2014-12-29 22:09:54 +08:00
qianlifeng
ba0bda6aa6 Update the installer 2014-12-29 21:55:27 +08:00
qianlifeng
890397bae7 Refactoring. Move plugin related work to Wox.Core 2014-12-28 15:17:58 +08:00
qianlifeng
d9b2863382 Refactoring. 2014-12-27 12:34:51 +08:00
qianlifeng
ccc8d7e5cd Refactoring. 2014-12-26 22:51:04 +08:00
qianlifeng
50f6044a2f Refactoring [WIP] 2014-12-26 19:36:43 +08:00
qianlifeng
31281c7faa Update README.md 2014-12-24 18:32:57 +08:00
qianlifeng
e9b545a187 Update README.md 2014-12-24 18:31:08 +08:00
qianlifeng
be1ecdb0c8 Update README.md 2014-12-24 10:27:00 +08:00
qianlifeng
115e08d0c8 Fix a http request issues. 2014-12-23 22:22:20 +08:00
qianlifeng
e2a892eda3 Upgrade to v1.1.1 2014-12-23 21:17:15 +08:00
qianlifeng
5d536dd975 Upcate CI Scripts 2014-12-22 23:05:31 +08:00
qianlifeng
af258dcf41 Update CI 2014-12-22 22:54:05 +08:00
qianlifeng
bbb46a29a9 Add installer 2014-12-22 22:52:27 +08:00
qianlifeng
3f7c1b0750 Remove unittest for httprequest 2014-12-22 19:17:55 +08:00
qianlifeng
2b211c2ba0 Refactoring 2014-12-21 22:03:03 +08:00
qianlifeng
c20314f83c fix Wox handled exception at launch #221 2014-12-21 20:44:31 +08:00
qianlifeng
57bc1f2032 Preload top used images. 2014-12-18 19:22:47 +08:00
qianlifeng
d370f7e721 Change icon for thirdpartyplugin indicator. 2014-12-18 12:23:07 +08:00
qianlifeng
00c8ebbfe8 Revert "Add crashreproter"
This reverts commit ad81dfa001493272d1ea7e4a19ae74ca65c84622.
2014-12-18 12:20:58 +08:00
qianlifeng
17951d7fe0 Add crashreproter 2014-12-17 19:10:28 +08:00
qianlifeng
3e5288836d Add new version window 2014-12-16 23:29:25 +08:00
qianlifeng
6c94c3aa7b Add About Page. 2014-12-16 22:25:22 +08:00
qianlifeng
6a24794457 Remove unnessary codes. 2014-12-16 21:36:48 +08:00
qianlifeng
443e7df1b6 fix #216. Cound't open url with port 2014-12-16 00:07:12 +08:00
qianlifeng
82106c1c8b fix #185. Loading index cache on startup. 2014-12-15 22:58:49 +08:00
qianlifeng
32867d3666 make plugin folder name readable. 2014-12-15 20:38:42 +08:00
qianlifeng
384b4226f2 fix #151. 2014-12-15 18:50:28 +08:00
qianlifeng
cecd4aa36a Merge branch 'dev' of https://github.com/qianlifeng/Wox.git 2014-12-15 18:29:42 +08:00
qianlifeng
0dffd66651 Fix a crash issues when inputing after wox start. 2014-12-15 18:29:16 +08:00
qianlifeng
c34afae250 fix #203. Improve the weight of user selected items. 2014-12-15 18:26:15 +08:00
qianlifeng
128453fad1 Add upgrade check. 2014-12-14 23:16:29 +08:00
qianlifeng
ac3b86fb85 Update wpm to use the new api 2014-12-14 22:24:05 +08:00
qianlifeng
e303982ad8 Deploy nuget only when commits on master branch. 2014-12-13 22:01:23 +08:00
qianlifeng
df763c4dbd update ci scripts 2014-12-13 16:47:17 +08:00
qianlifeng
85fd46e1c6 update ci scripts 2014-12-13 16:33:19 +08:00
qianlifeng
51b37a49d5 update CI scripts 2014-12-13 16:30:00 +08:00
qianlifeng
4838813a38 update ci scripts. 2014-12-13 16:17:54 +08:00
qianlifeng
9867bd257f Update CI scripts 😢 2014-12-13 16:09:44 +08:00
qianlifeng
259985d328 Update CI scripts 😢 2014-12-13 15:17:44 +08:00
qianlifeng
2c4a9897ea Update CI scripts 2014-12-13 15:09:46 +08:00
qianlifeng
2dbc404544 Update CI scripts 2014-12-13 14:59:47 +08:00
qianlifeng
3d622a2c5a Update CI build script. 2014-12-12 19:12:30 +08:00
qianlifeng
8b342c2ddb Update CI build script 2014-12-12 18:59:44 +08:00
qianlifeng
ca1f441f5a Update CI build script 2014-12-12 18:36:01 +08:00
qianlifeng
0fefead7d5 Update auto build script 2014-12-12 18:32:21 +08:00
qianlifeng
cb9bc6ad12 Auto publish Wox.Plugin to nuget. 2014-12-12 18:22:17 +08:00
qianlifeng
b6d01133c4 Reduce the icon size and remove unnecessary images. 2014-12-12 13:02:13 +08:00
qianlifeng
9ddaee9830 Remove unnecessary codes merged from v1.1.0 2014-12-12 12:37:01 +08:00
qianlifeng
a5b54c50d1 Remove all third-party plugins into separate repos (except WPM). 2014-12-12 12:32:58 +08:00
qianlifeng
5c84ffe5dc Merge branch 'V1.1.0' into dev 2014-12-12 12:21:23 +08:00
qianlifeng
f178c8cce2 Solution files change. 2014-12-10 10:02:39 +08:00
qianlifeng
36bcafea98 Change the default width for themes. 2014-12-10 09:50:55 +08:00
qianlifeng
95cd051a4f Remove unnecessary files. 2014-12-10 09:49:42 +08:00
qianlifeng
125c5523e6 Merge pull request #211 from JohnTheGr8/dev
Display plugin icons
2014-12-10 09:43:31 +08:00
Ioannis G
374ed12811 display plugin icons in 'wpm list/uninstall' 2014-12-09 17:45:23 +02:00
Ioannis G
b489e54da4 display plugin icons in 'activate plugin' query 2014-12-09 17:42:20 +02:00
qianlifeng
e928c78749 Change the default with of Wox.
Remove Aero themes.
2014-11-27 13:01:12 +08:00
qianlifeng
34dbed7733 Merge branch 'master' into V1.1.0 2014-11-27 12:55:58 +08:00
qianlifeng
6df3066b49 Remove XP related description
We will not provide support for Wox in XP.
2014-11-27 12:38:13 +08:00
qianlifeng
10c4b93b60 Merge branch 'dev' 2014-11-27 12:20:33 +08:00
qianlifeng
3fabd2975e Update assemblyinfo 2014-11-27 12:19:01 +08:00
qianlifeng
217a7a34f8 fix #189 startup is too slow 2014-11-27 12:14:02 +08:00
qianlifeng
5855ff0d27 Fix errors that collections has been changed while foreach collections 2014-11-04 18:21:07 +08:00
qianlifeng
3c4a9a05a0 Add search monitor 2014-11-03 18:49:18 +08:00
qianlifeng
9481d04a19 Add custom context menu setting for findfile plugin and improve the search speed. 2014-11-03 17:30:48 +08:00
qianlifeng
90c7bf4413 Merge 2014-10-27 20:47:11 +08:00
qianlifeng
0b09f788c5 Merge 2014-10-27 20:38:47 +08:00
qianlifeng
3045611452 Reduce memory usage. 2014-10-27 18:22:25 +08:00
qianlifeng
0b3d028c2f Merge branch 'V1.1.0' of https://github.com/qianlifeng/Wox into V1.1.0 2014-10-27 17:16:24 +08:00
qianlifeng
a64be42f39 Update AssemblyInfo.cs 2014-10-27 16:50:09 +08:00
qianlifeng
8405301500 Merge branch 'dev' 2014-10-27 15:11:20 +08:00
qianlifeng
07ed6a6416 fix #189 startup is too slow 2014-10-27 15:08:32 +08:00
qianlifeng
970c9e70e4 Move MFTSearch to find file plugin. 2014-10-27 14:53:44 +08:00
qianlifeng
f76f29f533 Merge branch 'V1.1.0' of https://github.com/qianlifeng/Wox into V1.1.0 2014-10-24 19:47:24 +08:00
qianlifeng
c3ecf2d84e Merge branch 'V1.1.0' of https://github.com/qianlifeng/Wox into V1.1.0 2014-10-24 16:48:24 +08:00
qianlifeng
a7dfb9cb97 Allow unsafe codes in Release build. 2014-10-24 16:48:14 +08:00
qianlifeng
225d46b228 Update README.md 2014-10-24 16:14:36 +08:00
qianlifeng
f399ef8f69 fix #151 Add context menu for programs 2014-10-24 13:09:51 +08:00
qianlifeng
c61db8c957 Revert MFT Changes. 2014-10-24 09:43:43 +08:00
qianlifeng
30afc095b9 Revert MFTSearch changes. 2014-10-23 23:23:40 +08:00
qianlifeng
755e7bc232 Add Context menu 2014-10-23 18:39:11 +08:00
qianlifeng
80e38fc430 Add find file plugin. 2014-10-22 22:49:34 +08:00
qianlifeng
581423a87c Add MFT Searcher 2014-10-22 18:36:49 +08:00
qianlifeng
3634ca624d Fix a issues that JSONPRCAction could be null. 2014-10-22 16:20:50 +08:00
qianlifeng
be33ac3c4f Refactoring command args and change the signal instance implement. 2014-10-21 18:16:05 +08:00
qianlifeng
1cf79d8fbc Add more python plugin api. 2014-10-17 16:36:19 +08:00
qianlifeng
acba67f67d Merge branch 'master' 2014-10-13 17:14:53 +08:00
qianlifeng
1573738584 Revert readme 2014-10-13 17:13:35 +08:00
qianlifeng
5376171538 #192 fix json loads encoding issues. 2014-10-13 13:57:55 +08:00
qianlifeng
90c41aceab #191 add pip.bat for pip installing. 2014-10-11 18:08:43 +08:00
qianlifeng
6e10dc2893 Merge branch 'dev' of https://github.com/qianlifeng/Wox into dev 2014-09-19 17:26:28 +08:00
qianlifeng
87ce03e13e Move Log to Infrastructure project. 2014-09-19 16:57:48 +08:00
qianlifeng
4db7577448 Fix #181 that directory could be removed by user when wox running. 2014-09-19 16:23:43 +08:00
qianlifeng
afdee44dd1 Fix #183 2014-09-19 16:18:54 +08:00
qianlifeng
d929205bec fix typo 2014-09-19 11:02:28 +08:00
qianlifeng
0758d4f567 Merge pull request #171 from zlsun/dev
WebSearch: convert search word to url encoding before opening the url
2014-08-25 17:17:22 +08:00
zlsun
db0f228f4d WebSearch: convert search word to url encoding before opening the url 2014-08-25 16:20:08 +08:00
qianlifeng
a30f60c2ba Fix a clipboard crash issues & don't default exit Wox when exception happens. 2014-08-20 22:12:45 +08:00
qianlifeng
1d13943caf Merge branch 'dev' of https://github.com/qianlifeng/Wox into dev 2014-08-19 18:10:54 +08:00
qianlifeng
e91e4042ba close #150 Use tab to cycle switch candidates 2014-08-19 15:21:26 +08:00
qianlifeng
18720904f9 Update README.md 2014-08-19 13:13:23 +08:00
qianlifeng
8d2aa1fc09 Update README.md 2014-08-19 13:09:44 +08:00
qianlifeng
0e5155c85a Fix plugin API issues. 2014-08-17 22:35:46 +08:00
qianlifeng
3144a54c5b Including PythonHome in CI building 2014-08-17 16:15:01 +08:00
qianlifeng
49362ce5ab Add afterload event for LoadDefaultConfig 2014-08-17 15:57:25 +08:00
qianlifeng
13e629e17d fix #46 Reload index cache when the file changed in index directories 2014-08-14 22:21:07 +08:00
qianlifeng
8eb2f66b14 #149 fix Path including space in their name issues 2014-08-14 21:07:56 +08:00
qianlifeng
4fb0279f9a Expose index suffix setting 2014-08-14 19:45:48 +08:00
qianlifeng
5d1006f05b Expose index file suffixes config [WIP] 2014-08-13 23:16:45 +08:00
qianlifeng
eee76222bd Add reindex button to programs setting dialog. 2014-08-12 23:07:54 +08:00
qianlifeng
4121bbc772 Fix a programs bug if custom program folder is not exist. 2014-08-12 12:21:04 +08:00
qianlifeng
7926dd9aeb Add F1 to open wox function guide page. 2014-08-10 22:47:37 +08:00
qianlifeng
20ffcfb91e Refactoring Programs system plugin and adding re-index function when adding new location. 2014-08-10 22:22:54 +08:00
qianlifeng
961bfcc481 Fix sys plugin setting panel style issue. 2014-08-10 18:27:36 +08:00
qianlifeng
eee50eef46 close #137 2014-08-10 17:05:27 +08:00
qianlifeng
1329f3d2c7 Merge branch 'master' of https://github.com/qianlifeng/Wox 2014-08-10 16:50:45 +08:00
qianlifeng
0e812b911e Adjust score weight for programs. 2014-08-10 16:50:35 +08:00
qianlifeng
28bd5f33c6 Merge pull request #145 from dgoon/master
fix a typo: suggeestion -> suggestion
2014-07-30 17:10:09 +08:00
dgoon
673b72f327 fix a typo: suggeestion -> suggestion 2014-07-30 12:11:33 +09:00
qianlifeng
3fea8eb820 Fix a crash in Win8 2014-07-27 17:15:12 +08:00
qianlifeng
6e2e067d66 Merge pull request #134 from aaroncampf/master
Changes: See Comment
2014-07-25 10:02:42 +08:00
Aaron Campf
e09fe4acf0 Forgot to add Files 2014-07-24 17:32:19 -07:00
Aaron Campf
0385662197 Changes: Added Sys Folder, Moved Sys into folder, Added SysSettings, Made Sys use an AddRange and added ISettingProvider 2014-07-24 17:27:59 -07:00
qianlifeng
4ba222f19c Merge pull request #133 from aaroncampf/master
Combined Redundant Cases
2014-07-24 12:19:45 +08:00
Aaron Campf
6820a05efc Finally Fixed AutoFormatting 2014-07-23 13:46:19 -07:00
Aaron Campf
0982e12a80 Corrected Automatic Formatting 2014-07-23 13:36:07 -07:00
Aaron Campf
0536a2be33 Combined 2 cases
Stupid automatic formatting changed more then I wanted

Here is the change I made if you just want the code
case Key.Tab:
case Key.Enter:
AcceptSelect(resultCtrl.GetActiveResult());
e.Handled = true;
break;
2014-07-23 13:20:24 -07:00
qianlifeng
24c5aae77f Merge pull request #132 from CoenraadS/master
Optimize default icon method.
2014-07-22 19:37:25 +08:00
CoenraadS
a972a52be4 Optimize default icon method.
Simply return the first pointer, ignore the others. Assume if the first
one doesn't work, none of them will work.
2014-07-22 13:30:39 +02:00
qianlifeng
f473c29430 Merge pull request #131 from CoenraadS/master
Fix default icon retrieval.
2014-07-22 19:30:23 +08:00
CoenraadS
7cd9768880 Fix default icon retrieval.
And replace continue; with if() statements (supposably more compile
friendly)
2014-07-22 13:13:26 +02:00
qianlifeng
0a45a6fea9 #129 exclude system plugins results when searching websearch. 2014-07-21 23:18:39 +08:00
qianlifeng
9805ab8761 #129 fix space issues in searching programs 2014-07-21 22:54:18 +08:00
qianlifeng
b4bb98b230 Fix websearch setting issues. 2014-07-21 22:35:40 +08:00
qianlifeng
e11e141b5e remove bing search suggestions. 2014-07-21 22:30:04 +08:00
qianlifeng
83e199a0de #129 Make web search suggestion optional and add baidu suggeestion source. 2014-07-21 22:27:57 +08:00
qianlifeng
4e87211d39 Replace all obsoleted method 2014-07-21 19:48:17 +08:00
qianlifeng
88208285a4 Contron panel item priority should be lower when compared to programs. 2014-07-21 19:45:47 +08:00
qianlifeng
ae062586d7 Update README.md 2014-07-21 19:32:22 +08:00
qianlifeng
fa72389c07 Update Backup Download Link. 2014-07-21 19:28:21 +08:00
qianlifeng
ea94cb8650 Merge pull request #127 from CoenraadS/master
Control Panel Command handeling
2014-07-20 23:10:39 +08:00
Coenraad Stijne
39d6ccd11c Control Panel Command handeling
Now works for everything
2014-07-20 10:54:12 +02:00
qianlifeng
a62b225fe0 Merge pull request #125 from CoenraadS/master
Control Panel Split Logic
2014-07-20 10:13:38 +08:00
Coenraad Stijne
a72d1a13b6 Better path handeling
Thanks @orzFly
2014-07-19 18:14:31 +02:00
Coenraad Stijne
60df499584 Better icon-handeling.
And enumerate through ICON instead of GROUP_ICON
2014-07-19 15:34:52 +02:00
Coenraad Stijne
10204a4526 Save icons using GUID filename 2014-07-19 14:31:19 +02:00
Coenraad Stijne
a5d63bc383 Control Panel Split Logic 2014-07-19 12:39:26 +02:00
qianlifeng
fcd276dccb Update README.md 2014-07-19 10:58:36 +08:00
qianlifeng
fc66fba577 Refactoring FolderLink and URL plugin. 2014-07-19 10:12:11 +08:00
qianlifeng
f1697313c0 Fix potential issues in control panel. 2014-07-19 08:15:51 +08:00
qianlifeng
6d8244ba5c Merge pull request #122 from CoenraadS/master
Update Control Panel
2014-07-19 07:47:19 +08:00
Coenraad Stijne
102d5fdd7f Update Control Panel
The Control Panel now also includes third party panel items.
2014-07-18 20:15:35 +02:00
qianlifeng
2a86b06e0c Fix python env issues. 2014-07-18 23:12:50 +08:00
qianlifeng
7b4d6ba57e Pack python env to zip 2014-07-18 20:00:55 +08:00
qianlifeng
7be02731ee Fix issues in ControlPanel plugin. 2014-07-18 14:09:52 +08:00
qianlifeng
3cfa4f9cb7 Merge pull request #119 from CoenraadS/master
Added Control Panel
2014-07-18 09:43:16 +08:00
CoenraadS
10302f4bc9 Optimized search
Removed redundant check.
2014-07-17 20:05:09 +02:00
CoenraadS
b576ee300b Save icon's as .bmp
.ico hack was unneccassary.
2014-07-17 19:37:51 +02:00
CoenraadS
77afcc2293 Only return top 2 relevent results 2014-07-17 17:47:58 +02:00
CoenraadS
574e711f33 Added priority to title results 2014-07-17 17:43:29 +02:00
CoenraadS
4cab77a57d Trim query 2014-07-17 17:36:19 +02:00
CoenraadS
6cbc9493c9 Cosmetic changes
Setting => Settings
2014-07-17 17:24:08 +02:00
CoenraadS
1d5f72f9ab Added Control Panel 2014-07-17 17:14:58 +02:00
qianlifeng
b8e034e33c Add proxy setting UI #118 2014-07-17 19:20:00 +08:00
qianlifeng
4f8c6e64fb Fix an issue when switch between plugin with icons and without icons. 2014-07-17 18:51:34 +08:00
qianlifeng
39aadaa220 close #113 can't check checkbox by clicking label 2014-07-17 18:42:11 +08:00
qianlifeng
5c373f0d25 Add browse more plugin and theme link to setting dialog. 2014-07-16 20:17:51 +08:00
qianlifeng
088c3984d8 Merge branch 'master' of https://github.com/qianlifeng/Wox 2014-07-16 18:52:37 +08:00
qianlifeng
3a61a7992a Async loading item images => huge performance improvements for old machines. 2014-07-16 18:52:00 +08:00
qianlifeng
d694791d0f Merge pull request #110 from caoyue/master
get firefox default profile directory from profiles.ini
2014-07-15 18:18:29 +08:00
caoyue
5e9ea4196c get firefox default profile directory from profiles.ini 2014-07-15 16:54:01 +08:00
qianlifeng
e7f000147b Add open pluign directory link in plugin setting page. 2014-07-14 23:18:57 +08:00
qianlifeng
15e27e7e1d Merge branch 'json-rpc' 2014-07-14 22:28:54 +08:00
qianlifeng
855d75f1bb Add image loader class 2014-07-14 19:03:52 +08:00
qianlifeng
e8f3a30a72 Python plugin loader bug fix. 2014-07-11 18:36:39 +08:00
qianlifeng
948e44d867 Merge pull request #106 from CoenraadS/master
Cosmetic changes
2014-07-11 09:41:40 +08:00
Coenraad Stijne
c0e671d506 Pixel perfect alignment
Seems the designview differs from reality
2014-07-10 21:25:25 +02:00
Coenraad Stijne
2d895b52a4 Cosmetic changes
Taskbar Setting => Settings

Alignment of combo boxes
Alignment of checkboxes and text
2014-07-10 21:07:44 +02:00
qianlifeng
4436a72b9f Merge pull request #105 from CoenraadS/master
[WebSearch/Programs] Fix MessageBox behaviour
2014-07-10 23:58:27 +08:00
qianlifeng
f1ce98eb07 Implement #15 2014-07-10 23:57:08 +08:00
Coenraad Stijne
418aa44960 Fix spelling mistake
seleted => selected
2014-07-10 17:16:46 +02:00
Coenraad Stijne
b91850262d [Programs] Fix MessageBox behaviour
Fix MessageBox asking user to select item if he clicks No after trying
to Delete an item in Programs Settings.
2014-07-10 17:06:50 +02:00
Coenraad Stijne
ed2dc101bb [WebSearch] Fix MessageBox behaviour
Fix MessageBox asking user to select item if he clicks No.
2014-07-10 16:52:18 +02:00
qianlifeng
d89968cfa5 Add HackerNews python plugin as the Demo. 2014-07-10 18:39:04 +08:00
qianlifeng
5f7c1ea4f4 Add v2ex python plugin demo. 2014-07-09 23:44:57 +08:00
qianlifeng
e307524458 Add missing files. 2014-07-09 18:24:42 +08:00
qianlifeng
53cb4189d8 Add portable python environment 2014-07-09 18:15:23 +08:00
qianlifeng
3efe3d63ce Refactoring [WIP] 2014-07-07 23:05:06 +08:00
qianlifeng
e44a05f18d Update README.md 2014-07-07 17:46:31 +08:00
qianlifeng
d9574591fd Update README.md 2014-07-07 17:39:06 +08:00
qianlifeng
55c27516b2 Refactoring Plugin Loader [WIP]. 2014-07-06 22:57:11 +08:00
qianlifeng
659ff866e1 Add Executable Plugin Loader 2014-07-05 23:10:34 +08:00
qianlifeng
f01de3a69d Move CMD settings to CMD plugin details. 2014-07-04 15:34:31 +08:00
qianlifeng
0c75cf6055 Some plugin style changes. 2014-07-04 15:12:22 +08:00
qianlifeng
95613a1881 Merge branch 'master' of https://github.com/qianlifeng/Wox.git 2014-07-04 12:08:45 +08:00
qianlifeng
7bcbe5d791 close #21 Allow user to set their custom ActionKeyword 2014-07-04 12:08:37 +08:00
qianlifeng
bcc2ca7ce9 Merge pull request #100 from JohnTheGr8/master
Improvements for Firefox bookmarks
2014-07-04 08:54:47 +08:00
Ioannis G
365ca9180f improved Firefox bookmark-parsing query
now gets bookmark title from moz_bookmarks table instead of moz_places
2014-07-03 21:10:48 +03:00
Ioannis G
cfe1e7745f cache Firefox bookmarks and support pinyin search 2014-07-03 21:08:18 +03:00
qianlifeng
d0d9de8583 Merge pull request #99 from JohnTheGr8/master
Firefox bookmarks
2014-07-03 21:11:16 +08:00
qianlifeng
a304d75645 Update README.md 2014-07-03 13:19:18 +08:00
Ioannis G
9f4f27d08f update plugin.json for the BrowserBookmarks plugin 2014-07-02 18:44:19 +03:00
Ioannis G
73530f59de Make sure the places.sqlite file exists
before loading Firefox bookmarks.
2014-07-02 18:43:54 +03:00
Ioannis G
6807dcbd5d add search for Firefox bookmarks 2014-07-02 18:01:31 +03:00
qianlifeng
e275ce6063 #21 Add Disable option for each plugin. 2014-07-01 22:19:46 +08:00
qianlifeng
6352408d87 Add folder existence check for USERPROFILE environment variable. 2014-07-01 18:14:41 +08:00
qianlifeng
6870e03ffe Add Empty Check for GetEnvironmentVariable Method. 2014-07-01 18:04:35 +08:00
qianlifeng
d4641b45ac Merge pull request #98 from zlsun/master
Change cwd to %USERPROFILE% before executing command.
2014-07-01 17:50:42 +08:00
zlsun
fad796f834 Change cwd to %USERPROFILE% before executing command. 2014-07-01 17:37:28 +08:00
qianlifeng
9e874b241a Revert 3bbe54bb71 2014-07-01 09:56:10 +08:00
qianlifeng
3f83361a7a Merge pull request #96 from zlsun/master
Fix the problem of sleep command and change the behavior of executing command.
2014-07-01 09:28:30 +08:00
qianlifeng
a75b7b9be6 Bug fix for drag drop plugin installer. 2014-06-30 22:55:27 +08:00
qianlifeng
e4898bbbb3 Allow drag drop to install wox plugin. 2014-06-30 22:50:54 +08:00
zlsun
132d5ec8cc Revert "Use sleep instead of ping."
This reverts commit 3f1064b22d.
2014-06-30 22:38:51 +08:00
qianlifeng
59741ed04a Optimize files. 2014-06-30 22:27:56 +08:00
qianlifeng
fad6a406a1 Add system plugin descriptions. 2014-06-30 21:31:13 +08:00
qianlifeng
4ee0731472 fix some bookmark plugin issues. 2014-06-30 18:29:14 +08:00
qianlifeng
4fe530d257 close #83 Merge Plugin tab and Feature tab 2014-06-30 18:12:45 +08:00
qianlifeng
d23eb291f7 #94 and close #91. Make bookmark as plugin. 2014-06-30 18:05:42 +08:00
zlsun
3bbe54bb71 Change cwd to %HOME% before executing command. 2014-06-20 17:34:01 +08:00
qianlifeng
7aca726c33 Merge pull request #90 from zlsun/master
Some modifications.
2014-06-16 17:03:56 +08:00
zlsun
3f1064b22d Use sleep instead of ping. 2014-06-16 14:08:48 +08:00
zlsun
6fdbc9cdfa Remove unnecessary code. 2014-06-16 14:08:11 +08:00
zlsun
12b03518ee Add remember window position support. 2014-06-16 14:06:24 +08:00
qianlifeng
fcd3a86589 Merge pull request #89 from antigravity/plugin-colors
Colors
2014-06-04 23:29:15 +08:00
Yaroslav Zyubanov
2ee671a1ae Add post-action 2014-06-04 21:22:34 +06:00
Yaroslav Zyubanov
47a0642c4d Missed logo and title 2014-06-04 17:26:41 +06:00
Yaroslav Zyubanov
db1cd3efbc HEX colors plugin 2014-06-04 16:15:38 +06:00
qianlifeng
f6803a2c52 Merge branch 'master' of https://github.com/qianlifeng/Wox 2014-06-04 16:47:39 +08:00
qianlifeng
f8d810a787 When user querying thirdparty plugins, system plugins shouldn't be included 2014-06-04 16:47:14 +08:00
qianlifeng
c8d865e26b #87 Add plugin deatails in Plugin tab. [WIP] 2014-06-01 23:23:48 +08:00
qianlifeng
e1c7705182 Revert last two commits pushed by @aaroncampf, which will cause build erros. 2014-05-25 18:11:27 +08:00
Aaron Campf
6aed2ec311 Error Fix 2014-05-24 19:02:22 -07:00
Aaron Campf
4c3f51cae3 Added Enabled & PluginId to BaseSystemPlugin
We still need a way to save the Enabled property
2014-05-24 18:57:02 -07:00
Yeechan Lu
f3088d1c49 Merge pull request #84 from antigravity/dev
Dev
2014-05-24 03:34:35 -05:00
Yaroslav Zyubanov
be25226172 URL plugin 2014-05-24 14:29:56 +06:00
Yaroslav Zyubanov
33d7e40e7c Namespaces fix 2014-05-24 14:07:03 +06:00
Yaroslav Zyubanov
9eefd8839c Extract all converters into separate folder 2014-05-24 14:06:09 +06:00
Aaron Campf
d748e34d7e Working on Adding CheckBox 2014-05-20 21:53:32 -07:00
Aaron Campf
cefa8326e3 FileSystemPlugin
Check for invalid paths
[Open this directory] Action always appears at top is path is existing
directory or parent is
2014-05-20 16:45:11 -07:00
Aaron Campf
60f4937aae Updated Ignore List 2014-05-13 10:20:05 -07:00
Aaron Campf
841e90dc46 Solving issues from last commit 2014-05-09 21:21:55 -07:00
Aaron Campf
81467a86cc Cleaned FileSystemPlugin + Enhanced
THIS NEEDS TESTING!
2014-05-09 18:24:16 -07:00
Aaron Campf
498634fd13 Uncommented and removed junk code 2014-05-08 17:51:05 -07:00
Aaron Campf
d751805254 Files added to search results after folders
I think it is time we release version 2
2014-05-08 17:38:51 -07:00
Aaron Campf
7c2e2a01c2 Fixed Image Errors + Handing Bad ShellRun 2014-05-08 15:58:38 -07:00
Aaron Campf
0b70c5225d Tab: Now adds Next s Title to tbQuery 2014-05-08 14:05:48 -07:00
qianlifeng
b07d1b027c Fix crash issue when user clicked cancel in UAC prompt window. 2014-04-13 18:16:58 +08:00
Yeechan Lu
58801f8fb6 Fix crash on invalid chars in path 2014-04-13 16:06:51 +08:00
Yeechan Lu
c589978e84 Combine FolderLinks and DirectoryIndicator into FileSystemPlugin
cc @aaroncampf
2014-04-13 15:38:12 +08:00
qianlifeng
36f3c293f0 close #65 Hide when app loses focus 2014-04-13 10:08:33 +08:00
qianlifeng
54417115f3 Fix python plugin crash issues. 2014-04-13 01:07:15 +08:00
Yeechan Lu
4006e4045c Merge pull request #75 from kerams/master
PeHeaderReader class, fixed bug in e0eb8c8
2014-04-12 19:53:41 +08:00
kerams
bdf57b5203 Added PeHeaderReader class, which is used to check whether an application is CUI. This fixes the issue introduced in e0eb8c8. 2014-04-12 13:01:29 +02:00
Yeechan Lu
1d27ffbffb Merge pull request #74 from kerams/master
WindowOpener class
2014-04-12 03:15:56 +08:00
kerams
c36b5c77fc Feature: Added WindowOpener class, which prevents having duplicate windows of the same type opened at the same time 2014-04-11 19:16:59 +02:00
Yeechan Lu
ac5cd90cc6 Merge pull request #73 from kerams/master
Opening Settings from tray and the ability to leave the windows command prompt open after running a command
2014-04-11 10:01:01 +08:00
kerams
e0eb8c83e2 - added option to open Wox Settings from the tray menu
- added a checkbox option specifying whether to leave the command line open after having run a command like >ping google.com
2014-04-10 23:44:57 +02:00
Aaron Campf
b8f513fffe Removed FileSystemSourceShallow 2014-04-01 11:50:01 -07:00
qianlifeng
7d4dd9c699 fix null references issues in commit 6b9f96697b @aaroncampf 2014-03-31 12:24:05 +08:00
Aaron Campf
a254b996e0 Upgrading Features
Now Parent folder will appear in search results.
2014-03-30 16:26:20 -07:00
Aaron Campf
6b9f96697b Added Plugin for searching additional directories 2014-03-30 16:03:07 -07:00
Aaron Campf
dc5eeb8476 Merge branch 'master' of https://github.com/qianlifeng/Wox 2014-03-30 10:59:38 -07:00
qianlifeng
7d40105023 Merge branch 'master' of https://github.com/qianlifeng/Wox.git 2014-03-30 21:52:03 +08:00
qianlifeng
3d73dc2fb7 Add restart wox command into sys plugin. 2014-03-30 21:51:42 +08:00
Yeechan Lu
94f217f4d7 Use a better method to calculate relative coordinates while moving among screens 2014-03-30 15:42:33 +08:00
Aaron Campf
00319c1fe2 a 2014-03-29 22:15:14 -07:00
qianlifeng
67ac5a9c6a Fix issues in 636350c395 2014-03-30 11:20:21 +08:00
qianlifeng
79b3b0fffc System Plugin File Structure change. 2014-03-30 11:16:44 +08:00
qianlifeng
ab6a29191d Merge pull request #67 from aaroncampf/master
Added Features
2014-03-30 10:59:44 +08:00
Aaron Campf
636350c395 Added Features
Feature: Search additional folders by default (shallow search)
Feature: Disable bookmarks
2014-03-29 14:32:29 -07:00
Yeechan Lu
c076717133 Show Wox on Mouse Screen 2014-03-30 00:53:46 +08:00
Yeechan Lu
943a438a6c Use Unidecoder instead of ChineseToPinYin
// Please do not use the binary version on NuGet since there are some issues with the data table
2014-03-29 23:29:07 +08:00
Yeechan Lu
a104693f97 Fix performance issues while loading fonts 2014-03-29 23:16:18 +08:00
Yeechan Lu
8283c89614 Optimize settings order 2014-03-29 16:17:01 +08:00
Yeechan Lu
c9790d7bb8 Move WebSearch into featureBox 2014-03-29 16:13:36 +08:00
Yeechan Lu
80ec16b9bd Rename Wox.Plugin.System to Wox.Plugin.SystemPlugins
Finish moving ProgramSetting into featureBox
2014-03-29 15:52:57 +08:00
Yeechan Lu
479945455b Move ProgramSetting into Feature 2014-03-29 14:42:43 +08:00
Yeechan Lu
4512854c2a Add Feature Tab in Settings. (Still WIP) 2014-03-28 22:42:28 +08:00
Yeechan Lu
70950b8267 Remove useless code 2014-03-27 21:22:59 +08:00
Yeechan Lu
eec96b8549 Fix Google Suggestion crash on network error 2014-03-27 21:14:41 +08:00
Yeechan Lu
30961babde Remove duplicated code 2014-03-27 19:01:43 +08:00
Yeechan Lu
a00c530f36 Prevent from accessing last results if query has changed 2014-03-27 18:48:56 +08:00
qianlifeng
0af1e06c57 remove useless file. 2014-03-27 17:53:01 +08:00
Yeechan Lu
c0d52ef905 Fix duplicated results in CMD 2014-03-27 17:25:06 +08:00
Yeechan Lu
59d9840d7b Fix issues with web search icons 2014-03-27 17:19:50 +08:00
Yeechan Lu
9a2ffc1d7c Add Google suggestions for web searches
Fix issues with push results
2014-03-27 16:56:50 +08:00
Yeechan Lu
c8fcfcd28c Fix error in ac81d38acc 2014-03-27 14:53:47 +08:00
Yeechan Lu
ac81d38acc Add PushResults for push results before Query results return 2014-03-27 14:50:42 +08:00
Yeechan Lu
9bc4b74888 Add error report (however it has no sending feature at this commit) 2014-03-27 12:58:36 +08:00
Yeechan Lu
2ec71c9942 Fix issue with Layered Window 2014-03-26 19:26:10 +08:00
Yeechan Lu
343da4878d Add opacity mode settings 2014-03-26 17:34:19 +08:00
Yeechan Lu
45f32ba62c Change Themes tab layout and add wallpaper behind preview. 2014-03-26 15:30:59 +08:00
Yeechan Lu
f157e6a9f5 Enable themes of Windows Common Controls and Dialogs in Wox.UAC 2014-03-26 15:29:55 +08:00
Yeechan Lu
33485024af Fix issues with Aero 2014-03-26 12:43:02 +08:00
Yeechan Lu
90efb967fe Revert "Use short name of Assembly instead of full name." since there are some Assembly loading issues.
This reverts commit cf7ae900.

Short name will produce no errors when debugging using Visual Studio hosting process. However, this will crash outside Visual Studio.
2014-03-26 11:50:21 +08:00
Yeechan Lu
5fa62151f6 Add Aero theme 2014-03-25 21:45:32 +08:00
Yeechan Lu
3a55985b20 Fix issues with DwmDropShadow 2014-03-25 20:27:02 +08:00
Yeechan Lu
4a0411b7fc Fix crash on querying when plugins are initializing 2014-03-25 17:08:35 +08:00
Yeechan Lu
7094675d5e Fix a bug with family typefaces 2014-03-25 17:00:40 +08:00
Yeechan Lu
cf7ae90097 Use short name of Assembly instead of full name. 2014-03-25 14:47:29 +08:00
Yeechan Lu
53b19dad87 Revert "Revert use FuzzyMatcher on Bookmarks since it's too slow" 2014-03-25 13:36:33 +08:00
Yeechan Lu
b10caecbba Allow change FontStyle, FontWeight, FontStretch 2014-03-25 13:25:43 +08:00
Yeechan Lu
60d64ad2a6 Merge pull request #63 from cxfksword/master
Optimize fuzzy match
2014-03-25 07:05:19 +08:00
cxfksword
fd71200284 Directory change use fuzzy to search 2014-03-24 21:14:56 +08:00
cxfksword
de13ad1cd5 Optimize fuzzy match 2014-03-24 21:14:10 +08:00
Yeechan Lu
97bd617566 Merge pull request #62 from cxfksword/master
Change Directory plugin subdirectory list action
2014-03-24 02:49:15 +08:00
Yeechan Lu
2583b38a17 Fix a file missing bug 2014-03-24 01:10:50 +08:00
cxfksword
e1f71cae37 Change Directory plugin subdirectory list action 2014-03-24 00:51:07 +08:00
Yeechan Lu
d78ecdc203 Fix bug with theme in Windows 8 2014-03-24 00:08:56 +08:00
Yeechan Lu
0dd540a048 Add supportedRuntime v4.0 2014-03-23 20:27:17 +08:00
qianlifeng
d8536c20b0 Fix added websearch twice issue. 2014-03-23 18:14:46 +08:00
qianlifeng
1a5bc2ddfe Merge branch 'master' of https://github.com/qianlifeng/Wox.git 2014-03-23 17:43:53 +08:00
qianlifeng
61c1232690 close #47 Add log level config 2014-03-23 17:43:46 +08:00
Yeechan Lu
2554165963 Fix a bug when creating Config directory 2014-03-23 16:58:19 +08:00
Yeechan Lu
fc4778159c Fix 'Path' is an ambiguous reference between 'System.IO.Path' and 'System.Windows.Shapes.Path' 2014-03-23 16:51:08 +08:00
Yeechan Lu
d2105a7169 Update VS2010 Solution 2014-03-23 16:40:53 +08:00
Yeechan Lu
19ec14e4c2 Fix issues with AppDomain.CurrentDomain.BaseDirectory 2014-03-23 16:33:23 +08:00
qianlifeng
3dbef1400c Refactor setting storage related 2014-03-23 16:20:00 +08:00
qianlifeng
4ca0453cff close #48 Refactor setting storage. 2014-03-23 16:17:41 +08:00
qianlifeng
fc07979966 Remove Plugins 2014-03-23 10:41:10 +08:00
Yeechan Lu
7dda2df54b Support data URI as Icon 2014-03-23 04:22:57 +08:00
Yeechan Lu
0d95636b0f Allow plugins return null 2014-03-23 02:46:14 +08:00
qianlifeng
9ad424c537 Merge branch 'master' of https://github.com/qianlifeng/Wox.git 2014-03-22 17:27:18 +08:00
qianlifeng
8c57dde0a6 Remove all plugins to their own repo 2014-03-22 17:27:11 +08:00
Yeechan Lu
31bbf3cfd5 Fix applicationDirectory issues and add plugin debuggerMode 2014-03-22 16:51:09 +08:00
qianlifeng
9d404b6679 Merge branch 'master' of https://github.com/qianlifeng/Wox.git 2014-03-22 16:43:04 +08:00
qianlifeng
dc274aed48 Remove douban movie plugin to https://github.com/qianlifeng/Wox.Plugin.DoubanMovie 2014-03-22 16:42:49 +08:00
qianlifeng
51eda2ef74 Merge pull request #61 from cxfksword/master
Fix Alt+Space hotkey bug
2014-03-22 16:40:42 +08:00
cxfksword
f30f6378ac Add Directory Plugin support list child directory and search 2014-03-22 16:25:22 +08:00
cxfksword
3b09276395 Fix Alt+Space hotkey affect by system
if no disable control box,  sometimes awake Wox with alt+space hotkey,
the first input key is swallowed by system
2014-03-22 15:02:28 +08:00
cxfksword
dbdd6c701b Add support ClickOnce application
ex. Github for Windows use this file extension
2014-03-22 14:01:36 +08:00
cxfksword
eb094eaebb Filter duplicate program item 2014-03-22 13:50:20 +08:00
qianlifeng
9177f4b47d Merge branch 'master' of https://github.com/qianlifeng/Wox.git 2014-03-22 11:21:29 +08:00
qianlifeng
d4446b2605 Update WPM. 2014-03-22 11:21:21 +08:00
Yeechan Lu
356db288ad Fix a bug with WindowsShellRun 2014-03-21 04:38:50 +08:00
Yeechan Lu
8a6690b6df Optimize for text selection after pressing Win+R 2014-03-21 04:32:11 +08:00
Yeechan Lu
1281059076 Move ProgramSources 2014-03-21 04:31:42 +08:00
Yeechan Lu
4622c86ae1 Fix a bug with WindowsShellRun 2014-03-21 04:07:31 +08:00
Yeechan Lu
5c6b741dc4 Use ShellRun to provide unified experience 2014-03-21 03:53:18 +08:00
qianlifeng
25cedff47a Merge branch 'master' of https://github.com/qianlifeng/Wox.git 2014-03-20 22:01:33 +08:00
qianlifeng
5971802eb9 Remove useless code. 2014-03-20 22:01:22 +08:00
Yeechan Lu
b40ff9ef66 Fix some icon issues of some file types 2014-03-20 21:58:14 +08:00
qianlifeng
3b2e54a156 Fix a UI issue. 2014-03-20 21:41:30 +08:00
qianlifeng
b3f3cd2ffd Merge branch 'master' of https://github.com/qianlifeng/Wox.git 2014-03-20 19:12:36 +08:00
qianlifeng
288b46947d Limit the display result item to 6 at most. 2014-03-20 19:12:26 +08:00
Yeechan Lu
98add4b958 Add Windows 8 installation note and prefer 3.5 SP1 rather than 3.5 to XP users 2014-03-20 14:25:44 +08:00
qianlifeng
99b1c5a456 [skip ci] Fix typos 2014-03-20 12:34:12 +08:00
Yeechan Lu
305fc52e73 Merge pull request #60 from cxfksword/master
Fix Everything not handle .ico image type
2014-03-20 10:16:22 +08:00
cxfksword
425b209414 Fix miss default font 2014-03-20 10:05:12 +08:00
cxfksword
58b016a9c0 Fix not handle .ico image type 2014-03-20 10:01:00 +08:00
Yeechan Lu
6c17107f39 Fix incorrect behavior with App Paths 2014-03-20 04:15:05 +08:00
Yeechan Lu
8b153121ac Auto Complete for CMD mode 2014-03-20 04:12:50 +08:00
Yeechan Lu
4fc1169fa3 Fix typo Widow -> Window 2014-03-20 02:26:00 +08:00
Yeechan Lu
27dde4e70d Fix #49. Alt + F4 will hide app now rather than crash 2014-03-20 02:02:18 +08:00
Yeechan Lu
10cbe25f17 Merge pull request #59 from cxfksword/master
Add Everything support show file icon
2014-03-20 00:23:33 +08:00
cxfksword
14edd948ac Add Everything support show file icon
and add a file icon cache associate with file extension
2014-03-19 23:58:05 +08:00
qianlifeng
386b54cf6a Change the default grid height of Custom Plugin Hotkey Panel. 2014-03-19 22:44:51 +08:00
Yeechan Lu
c068366ae2 Fix #58: don't calc when input.length <= 2 2014-03-19 22:32:41 +08:00
Yeechan Lu
bc85b3599e Revert "Limit Calculator trigger must has one number at least"
This reverts commit fe124310de.
2014-03-19 22:32:01 +08:00
Yeechan Lu
4d299f5b17 Merge pull request #58 from cxfksword/master
Fix Calculator & Everything plugin bug
2014-03-19 22:31:04 +08:00
qianlifeng
224c3eb99c Merge branch 'master' of https://github.com/qianlifeng/Wox.git 2014-03-19 22:17:19 +08:00
qianlifeng
4e537ac4d8 #56 Add Font setting 2014-03-19 22:17:01 +08:00
cxfksword
fe124310de Limit Calculator trigger must has one number at least
make not affect some keyword like "pi"
2014-03-19 21:34:18 +08:00
cxfksword
19f25e45bb Fix Everything not support keyword with space 2014-03-19 21:23:17 +08:00
Yeechan Lu
1fa4be9ebb Close #42 Program Source settings GUI 2014-03-19 20:16:45 +08:00
qianlifeng
f4e74065ec #2 change Everything default search mode 2014-03-19 19:57:22 +08:00
Yeechan Lu
f07cd08789 Close #52: Encoding issues with Everything plugin 2014-03-19 12:13:43 +08:00
Yeechan Lu
28bddb713b Make Python plugin enabled by default #51 2014-03-19 11:49:31 +08:00
Yeechan Lu
0b86e0ae41 Merge pull request #51 from Rovak/python-optional
Make python plugins optional
2014-03-19 11:42:46 +08:00
Yeechan Lu
da058197c7 Remove useless field in ProgramSource 2014-03-19 04:08:58 +08:00
Yeechan Lu
cf0d7067eb Add ProgramSources settings (code only, without GUI) #42 2014-03-19 04:05:27 +08:00
Yeechan Lu
baa50069cf Read .exe file description for program name 2014-03-19 03:24:37 +08:00
Yeechan Lu
aab0bf369d Add PortableApps.com program source support. #42 2014-03-19 03:05:43 +08:00
Yeechan Lu
07c13d84be Refactor to support multiple program sources #42
App Paths is supported now #41
2014-03-19 02:07:08 +08:00
Yeechan Lu
47982d092b Merge pull request #50 from Rovak/fix/typos
Renamed several typos
2014-03-19 02:05:55 +08:00
Roy van Kaathoven
ef63f11bbb Make python plugins optional 2014-03-18 18:27:59 +01:00
Roy van Kaathoven
46e0656fe9 Save StartWoxOnSystemStartup setting 2014-03-18 18:20:51 +01:00
Roy van Kaathoven
bdc2decd06 Registe -> Register 2014-03-18 17:36:00 +01:00
Roy van Kaathoven
69204e3998 add missing imports + save project changes 2014-03-18 17:34:54 +01:00
Roy van Kaathoven
4419c20f33 move files to new globalhotkey file 2014-03-18 17:33:51 +01:00
Roy van Kaathoven
f9ffa9c387 gloablHotkey -> GlobalHotkey 2014-03-18 17:26:09 +01:00
qianlifeng
b402bd6c0e Remove useless codes. 2014-03-18 23:41:34 +08:00
Yeechan Lu
4f7c96326d Optimize speed for CMD mode 2014-03-18 22:40:37 +08:00
qianlifeng
ad36bd23c8 close #38 Change Virtualizing Mode from Recycling to Standard. 2014-03-18 22:09:48 +08:00
qianlifeng
86fe78ba95 Add drag support #44 2014-03-18 20:42:23 +08:00
Yeechan Lu
9678f1d1f2 Merge pull request #43 from cxfksword/master
fix Everything plugin closure bug
2014-03-18 19:16:29 +08:00
cxfksword
d0d6ddd3c1 fix closure bug
sometimes will always open the last action item.
2014-03-18 18:49:03 +08:00
Yeechan Lu
6dcd2e4b03 Optimize Program results 2014-03-18 13:17:09 +08:00
Yeechan Lu
b9c58adae6 Remove compiler warnings 2014-03-18 12:28:48 +08:00
Yeechan Lu
b7893c2820 Merge pull request #40 from cxfksword/master
add Calculator system plugin
2014-03-18 01:11:21 +08:00
cxfksword
fd1de0ef85 add Calculator system plugin 2014-03-18 00:43:20 +08:00
qianlifeng
9c1fba3d79 Fix a null references issue that may crash wox. 2014-03-18 00:25:27 +08:00
Yeechan Lu
1185bd5d86 Close #39: Remove the shortcut arrow overlay 2014-03-18 00:11:39 +08:00
Yeechan Lu
70616de215 Fix line ending [skip ci] 2014-03-18 00:10:02 +08:00
Yeechan Lu
acf564756e Remove PyImportTest 2014-03-18 00:09:35 +08:00
qianlifeng
616b9af5ed Change AssemblyInfos [skip ci] 2014-03-17 23:37:26 +08:00
qianlifeng
38b20987fb Remove xml files in build folder. 2014-03-17 23:20:09 +08:00
qianlifeng
5f6d3078b7 Remove dropshadow since it's buggy. 2014-03-17 23:04:22 +08:00
qianlifeng
2e0a8ee657 Revert "Fix Image didn't copy to output directory issues." 2014-03-17 22:13:04 +08:00
Yeechan Lu
659a1dbe53 Change OutputPath 2014-03-17 21:51:50 +08:00
qianlifeng
753124ec27 Add CI status. 2014-03-17 21:27:23 +08:00
qianlifeng
73dab9ebf4 Merge branch 'master' of https://github.com/qianlifeng/Wox.git 2014-03-17 21:19:25 +08:00
qianlifeng
716d6aca9f Fix Image didn't copy to output directory issues. 2014-03-17 21:19:18 +08:00
Yeechan Lu
ec761802eb Copy Images to output directory 2014-03-17 21:09:34 +08:00
Yeechan Lu
1a782a6938 Update NuGet configuration 2014-03-17 20:43:08 +08:00
Yeechan Lu
63d693b388 Fix error in projects... 2014-03-17 20:12:39 +08:00
Yeechan Lu
5b1563b851 Add missing NuGet packages into Wox.UAC 2014-03-17 19:54:09 +08:00
Yeechan Lu
d794c4c81f Clean build configuration 2014-03-17 19:28:26 +08:00
Yeechan Lu
70f0d8d558 Add bookmarks support for Chromium / ChromeSxS and multiple profiles 2014-03-17 12:32:19 +08:00
Yeechan Lu
2c50adb6f2 Revert use FuzzyMatcher on Bookmarks since it's too slow 2014-03-17 11:36:13 +08:00
Yeechan Lu
71c4d60bbf Fixed Pythonnet 2.7 configuration 2014-03-17 11:14:30 +08:00
Yeechan Lu
798faff7b2 Add support for PageUp & PageDown 2014-03-17 03:52:52 +08:00
Yeechan Lu
94ed77353e FuzzyMatcher for Bookmarks and some tweaks 2014-03-17 03:38:36 +08:00
Yeechan Lu
a7159ecf1d ToPinyin: Convert to SimpChinese at first 2014-03-17 03:38:36 +08:00
Yeechan Lu
b65f562c61 Fix the bug in WindowsShellRun 2014-03-17 03:38:35 +08:00
Yeechan Lu
9918b4ee42 GetAllRemainingParameter trick 2014-03-17 03:38:35 +08:00
Yeechan Lu
069781bcdd Update 2010 Solution file
Fix a bug in Everything plugin configuration
2014-03-17 03:38:35 +08:00
qianlifeng
3596a5588d Merge branch 'master' of https://www.github.com/qianlifeng/wox 2014-03-16 22:53:16 +08:00
qianlifeng
69890972bc fix a null references issues. 2014-03-16 22:51:50 +08:00
qianlifeng
313dd0cc6a Update README.md 2014-03-16 00:23:36 +08:00
qianlifeng
dc30e4f8e0 Update README.md 2014-03-16 00:11:25 +08:00
qianlifeng
a7b3ef34d8 Remove AllowsTransparency which is buggy in XP and poor performance. 2014-03-15 23:42:23 +08:00
qianlifeng
f0b728a71b Merge branch 'master' of https://www.github.com/qianlifeng/wox 2014-03-15 22:02:46 +08:00
qianlifeng
dfce6564a1 Small issue changes. 2014-03-15 22:01:35 +08:00
qianlifeng
3b924ff1e6 Update README.md 2014-03-15 18:37:10 +08:00
qianlifeng
15bc01576a Change Default Style. 2014-03-15 17:47:06 +08:00
qianlifeng
19f4f6e1cc Merge branch 'master' of https://www.github.com/qianlifeng/wox 2014-03-15 00:18:14 +08:00
qianlifeng
ea4e25ea28 Add round corner support for Wox. 2014-03-15 00:17:37 +08:00
qianlifeng
fd6ea77f7b Add tooltip for subtitle 2014-03-14 18:54:05 +08:00
qianlifeng
1b382e4391 Add ReleaseBuild bat. 2014-03-14 00:35:06 +08:00
qianlifeng
091aba7aad implement WPM Plugin 2014-03-13 22:31:44 +08:00
qianlifeng
49c151c1b4 Strange changes. 2014-03-12 21:27:16 +08:00
qianlifeng
3ffc4fad6d Remove unnecessary file. 2014-03-12 21:01:54 +08:00
qianlifeng
73dc6b768f Fix bugs in CMD plugin and PluginMangerment Plugin. 2014-03-12 19:18:07 +08:00
qianlifeng
413d8e6662 Merge branch 'master' of https://github.com/qianlifeng/Wox.git 2014-03-12 09:16:38 +08:00
qianlifeng
5d2ce27ea8 Add youdao plugin. 2014-03-12 09:16:22 +08:00
qianlifeng
1d3a1a1345 implement issue#8 part 1 2014-03-11 23:54:37 +08:00
qianlifeng
9adf764af8 Fix issue#24 2014-03-11 22:17:10 +08:00
qianlifeng
8ef6827bd9 Add global unhandled exception check. 2014-03-11 21:52:29 +08:00
qianlifeng
79d011bd5c Merge branch 'master' of https://github.com/qianlifeng/WinAlfred.git 2014-03-11 21:40:32 +08:00
qianlifeng
430ce9c136 Refactoring "startup with windows" option. 2014-03-11 21:40:25 +08:00
qianlifeng
fe7afe3dec Fix issues#13. Add image cache. 2014-03-10 07:21:26 +08:00
qianlifeng
8922cc72fc Merge branch 'master' of https://github.com/qianlifeng/WinAlfred.git 2014-03-09 17:01:45 +08:00
qianlifeng
200181623e Fix issues#33 2014-03-09 17:01:39 +08:00
qianlifeng
ab24afa31d Update README.md 2014-03-05 22:48:52 +08:00
qianlifeng
b38fa395ce Fix mouse click issues and add a new hotmovie plugin. 2014-03-05 22:32:21 +08:00
qianlifeng
62475f9bcf Fix issue#26 "not count execute error command in history will be better" 2014-03-02 11:38:13 +08:00
qianlifeng
674d6389b7 Merge branch 'master' of https://github.com/qianlifeng/WinAlfred.git 2014-03-02 11:29:22 +08:00
qianlifeng
7ae98ca9fe Fix issue#32 2014-03-02 11:29:14 +08:00
qianlifeng
13ed55ac10 Add wox plugin installer. 2014-03-02 11:04:30 +08:00
qianlifeng
fce020f4dd Change plugin config file format (from ini to json) 2014-03-01 15:42:33 +08:00
qianlifeng
8c2376457b Update README.md 2014-03-01 13:56:49 +08:00
qianlifeng
1dde832e31 Resert changes 2014-03-01 11:49:53 +08:00
qianlifeng
8c86ae2461 Socket research 2014-03-01 11:46:24 +08:00
qianlifeng
695abb481d Merge branch 'master' of https://github.com/qianlifeng/WinAlfred.git 2014-02-28 23:21:09 +08:00
qianlifeng
7f769e00b9 Add clipboard plugin. 2014-02-28 23:21:01 +08:00
qianlifeng
b2e4544b52 Merge branch 'master' of https://github.com/qianlifeng/Wox.git 2014-02-24 09:28:55 +08:00
qianlifeng
7d1ee33e1f Merge branch 'MoreResponsibleUI' 2014-02-23 13:33:09 +08:00
qianlifeng
2ade16a87a Fix dependency references issue of c# plugins. 2014-02-23 13:32:28 +08:00
qianlifeng
67fd2b4ac0 Merge branch 'master' of https://github.com/qianlifeng/WinAlfred.git 2014-02-23 10:36:50 +08:00
qianlifeng
26294a5742 Change python plugin interface. 2014-02-23 10:36:37 +08:00
qianlifeng
db8371d3af Fix crash issue when user didn't install python. 2014-02-23 10:27:19 +08:00
qianlifeng
f308496ef9 Update README.md 2014-02-22 22:26:32 +08:00
qianlifeng
a0507bd14d Log python plugin error. 2014-02-22 18:04:59 +08:00
qianlifeng
92d95db40b Fix select result item delay issue. 2014-02-22 16:55:15 +08:00
qianlifeng
2309d30909 Merge branch 'MoreResponsibleUI' 2014-02-22 16:28:23 +08:00
qianlifeng
0f023113ec Change default height for result item 2014-02-22 16:10:15 +08:00
qianlifeng
b3e5f09c83 Add custom plugin hotkey feature. 2014-02-22 15:52:20 +08:00
qianlifeng
2f5a4f63b6 Add hotkey setting 2014-02-22 11:55:48 +08:00
qianlifeng
85515079d6 Fix theme bugs. 2014-02-21 23:43:52 +08:00
qianlifeng
a9123d2966 UI changes. 2014-02-21 18:59:47 +08:00
qianlifeng
efdd8daa01 Merge branch 'master' of https://github.com/qianlifeng/WinAlfred.git 2014-02-20 23:15:09 +08:00
qianlifeng
8f2d69b7f7 Add NHotkey library. 2014-02-20 23:15:03 +08:00
qianlifeng
18ee6ecf80 fix some small UI issue 2014-02-20 21:46:23 +08:00
qianlifeng
5a3669cbe7 Bug fix 2014-02-20 18:26:01 +08:00
qianlifeng
a1c78b3a44 remove useless codes 2014-02-20 09:37:30 +08:00
qianlifeng
4e0ea5f941 bug fix 2014-02-20 09:34:30 +08:00
qianlifeng
c425313ae6 Fix title aligment issue when subtitle is empty. 2014-02-19 23:42:21 +08:00
qianlifeng
4736921d05 Replace ResultItem usercontrol with listbox to improve ui performance 2014-02-19 22:50:15 +08:00
qianlifeng
45aedd8111 Update README.md 2014-02-18 22:35:16 +08:00
qianlifeng
445f06f4b3 Merge branch 'master' of https://github.com/qianlifeng/WinAlfred.git 2014-02-18 22:03:04 +08:00
qianlifeng
b8fbc837dc Fix "startup wox on window start" issue. 2014-02-18 22:02:55 +08:00
qianlifeng
72bcc16a46 Update README.md 2014-02-18 09:03:12 +08:00
qianlifeng
729640d6ec Init 2014-02-11 20:53:41 +08:00
qianlifeng
fcdb9e39c6 Add modifier key support when user action items. 2014-02-09 20:55:18 +08:00
qianlifeng
953adadd62 Remove number placeholder in the right of result item. 2014-02-09 11:24:47 +08:00
cxfksword
a9fa1fb66b add fuzzy string match support for Programs plugin 2014-02-09 01:39:23 +08:00
cxfksword
8c7547ab03 fix build error on release mode and add miss SharpZipLib nuget package 2014-02-09 01:39:20 +08:00
Yeechan Lu
e94fed0137 Merge pull request #27 from zsxsoft/master
Fix crash when UAC blocks the program.
2014-02-08 14:43:02 +08:00
zsxsoft
353a8ff768 Fix crash when UAC blocks the program.
=_=英语不好连个说明和注释都写不出了
2014-02-08 14:37:40 +08:00
qianlifeng
3442081d20 "start wox on system startup" config changes. 2014-02-07 22:10:00 +08:00
qianlifeng
67f14d6a62 Add start Wox on system startup config & code refactorying. 2014-02-06 22:22:02 +08:00
qianlifeng
9e1980f843 Revert project file changes of everything sdk. 2014-02-03 00:08:11 +08:00
qianlifeng
495e0ce89b Implement WebSearch feature. 2014-02-02 16:15:34 +08:00
qianlifeng
76fa97e0a0 Add Everything x64 dll 2014-02-02 14:29:52 +08:00
Yeechan Lu
cc49948a59 Fix: Prevent user from closing the main window via Alt+F4 2014-01-30 01:02:49 +08:00
Yeechan Lu
5adcbb775d Fix: remove unnecessary binary Python.Runtime.dll 2014-01-30 01:01:57 +08:00
Yeechan Lu
02ed3e4e8b Fix crash on null Action binded to Result 2014-01-30 00:55:03 +08:00
Yeechan Lu
f9ff9af094 Add support for Everything both 32-bit and 64-bit 2014-01-30 00:55:03 +08:00
qianlifeng
529b8c2183 Merge branch 'master' of https://github.com/qianlifeng/WinAlfred.git 2014-01-29 22:45:06 +08:00
qianlifeng
fa3ae62254 Add web search feature & some UI changes. 2014-01-29 22:44:57 +08:00
qianlifeng
71ccbb9336 Update README.md 2014-01-29 22:31:55 +08:00
Yeechan Lu
9f22a6d26d Updating README.md 2014-01-29 18:38:48 +08:00
Yeechan Lu
4db3bd7423 Rename the project. 2014-01-29 18:33:24 +08:00
qianlifeng
4393b0c80d Update README.md 2014-01-29 18:09:49 +08:00
qianlifeng
c217828c18 Merge pull request #22 from orzFly/master
Simulate Windows Run Dialog behaviors in the CMD worlflow
2014-01-28 07:44:29 -08:00
Yeechan Lu
a502f69b34 Simulate Windows Run Dialog behaviors in the CMD worlflow. 2014-01-28 21:33:13 +08:00
Yeechan Lu
6f3e0f5162 Fixed: File not found - ico.png 2014-01-28 21:33:12 +08:00
Yeechan Lu
0e44cae1e3 Fixed: Calling null callback "hookedKeyboardCallback" 2014-01-28 21:33:12 +08:00
Yeechan Lu
99b0defcf7 Create the "Docsets" directory if it not exists 2014-01-28 21:33:12 +08:00
qianlifeng
c6be74ac5b Merge branch 'master' of https://github.com/qianlifeng/WinAlfred 2014-01-28 11:22:35 +08:00
qianlifeng
84af5a277e code refactoring and add web searches setting window. 2014-01-28 11:19:27 +08:00
qianlifeng
266e3ab270 Update README.md 2014-01-27 23:14:49 +08:00
qianlifeng
1da5a0a4ca Update README.md 2014-01-27 23:12:09 +08:00
qianlifeng
2c17d450dd fix Issue #16 2014-01-27 20:45:26 +08:00
qianlifeng
41c4cbe3a6 fix win+r issue. 2014-01-26 21:44:57 +08:00
qianlifeng
c7dfaac61a Mouse select support & Code refactoring 2014-01-26 21:18:01 +08:00
qianlifeng
36018fe570 show top 5 CMD history when CMD query is empty. 2014-01-26 18:06:38 +08:00
qianlifeng
e8b284a89c change the scrollbar style. 2014-01-26 17:47:58 +08:00
qianlifeng
a8ea9a8dbe change vs2010 solution file. 2014-01-26 11:39:14 +08:00
qianlifeng
78f26a3689 fix CMD issues and add history support. 2014-01-26 11:01:13 +08:00
qianlifeng
671db12336 Merge pull request #14 from orzFly/master
Add some workarounds for clean environment and use the NuGet version of InputSimulator
2014-01-25 17:57:32 -08:00
Yeechan Lu
a5dc3bcc75 Clean some references 2014-01-26 02:53:25 +08:00
Yeechan Lu
54819eb367 Use the NuGet version of InputSimulator 2014-01-26 02:13:52 +08:00
Yeechan Lu
71ec4ad403 Add some workarounds for clean environment. 2014-01-26 01:29:40 +08:00
qianlifeng
8644fb66c0 Add replace win + r option 2014-01-26 00:37:15 +08:00
qianlifeng
71b5d4fe5a add theme function. And provide two themes default. 2014-01-25 18:00:13 +08:00
qianlifeng
abedc0be80 update doc workflow 2014-01-25 00:21:16 +08:00
qianlifeng
63072205d6 Merge branch 'master' of https://github.com/qianlifeng/WinAlfred.git 2014-01-24 20:03:45 +08:00
qianlifeng
0ac7d9829a add doc workflow 2014-01-24 20:01:20 +08:00
qianlifeng
7989ca7504 Update README.md 2014-01-17 20:12:47 +08:00
qianlifeng
56118a7142 add AutoAjustScore option for results 2014-01-15 22:45:02 +08:00
qianlifeng
93d8f66afc Merge branch 'master' of https://github.com/qianlifeng/WinAlfred.git 2014-01-14 23:31:52 +08:00
qianlifeng
ea0e80b12b add some comments 2014-01-14 23:31:24 +08:00
qianlifeng
cfdb5456aa Update README.md 2014-01-14 23:00:38 +08:00
qianlifeng
5baeadbe92 Update README.md 2014-01-14 22:58:49 +08:00
qianlifeng
8a57a32233 Update README.md 2014-01-14 22:57:15 +08:00
qianlifeng
af954a0578 Add kill process workflow 2014-01-13 19:32:27 +08:00
qianlifeng
b6bbd6899e fix issues 2014-01-13 18:43:44 +08:00
qianlifeng
f7edc853da project file change 2014-01-13 09:45:31 +08:00
qianlifeng
820d0cde86 add v2ex workflow 2014-01-12 21:02:39 +08:00
qianlifeng
2249bbb0f5 Add one instance support. 2014-01-12 18:15:30 +08:00
qianlifeng
4a37a6f497 Merge branch 'master' of https://github.com/qianlifeng/WinAlfred.git 2014-01-12 16:42:35 +08:00
qianlifeng
0ce742fa8a Delete useless files 2014-01-12 16:42:28 +08:00
qianlifeng
86725b1ef1 Update README.md 2014-01-12 16:39:56 +08:00
qianlifeng
7a3ec4194e Merge "PythonPlugin" branch 2014-01-12 16:34:18 +08:00
qianlifeng
53120faeba Merge branch 'PythonPlugin' 2014-01-12 16:31:06 +08:00
qianlifeng
c9ca331d30 Add winalfred workflow installer 2014-01-12 16:28:11 +08:00
qianlifeng
cce3749563 Merge branch 'master' of https://github.com/qianlifeng/WinAlfred.git 2014-01-11 18:24:08 +08:00
qianlifeng
f389b1ae93 Fix issue#13 2014-01-11 18:23:59 +08:00
qianlifeng
a275ce8738 delete cpp codes 2014-01-11 17:26:57 +08:00
qianlifeng
03dfa19c0e Update README.md 2014-01-11 15:32:45 +08:00
qianlifeng
b5087002d2 Update README.md 2014-01-11 15:31:14 +08:00
qianlifeng
4df5cdd312 Update README.md 2014-01-11 15:23:05 +08:00
qianlifeng
73867d87d7 research python plugin: seems ok in multiple thread now. 2014-01-11 15:02:17 +08:00
qianlifeng
76009ca6eb try to use python.net as the bridge. 2014-01-11 00:19:14 +08:00
qianlifeng
935d26f956 research 2014-01-09 22:16:19 +08:00
qianlifeng
8d931e290a project file change 2014-01-09 20:33:47 +08:00
qianlifeng
1cd846fbf1 Merge branch 'master' 2014-01-09 20:32:29 +08:00
qianlifeng
c284d5d2f4 Merge branch 'master' of https://github.com/qianlifeng/WinAlfred.git 2014-01-09 20:21:57 +08:00
qianlifeng
713a794e9a structure change 2014-01-09 20:21:46 +08:00
qianlifeng
e1cc09a837 Update README.md 2014-01-08 23:48:44 +08:00
qianlifeng
3ebb35ac6a Update README.md 2014-01-08 23:46:14 +08:00
qianlifeng
3f377d4efc add browser bookmark (chrome) plugin 2014-01-08 23:21:37 +08:00
qianlifeng
881d265579 update msg window 2014-01-08 19:08:48 +08:00
qianlifeng
70339423d0 start issue#11 2014-01-07 23:27:05 +08:00
qianlifeng
a5f3359d32 Add progress bar 2014-01-07 19:27:51 +08:00
qianlifeng
13f00edefd fix shutdown didn't work issue 2014-01-06 22:21:08 +08:00
qianlifeng
97b5526cc1 fix program plugin doesn't work in XP issue. 2014-01-06 21:25:24 +08:00
qianlifeng
3901422a54 Add missed changes 2014-01-06 19:03:20 +08:00
qianlifeng
2db2136117 remove unused codes 2014-01-05 19:33:36 +08:00
qianlifeng
fc40ed52f3 Merge branch 'master' of https://github.com/qianlifeng/WinAlfred.git 2014-01-05 17:56:11 +08:00
qianlifeng
b2081dcbc9 add translator plugin 2014-01-05 17:56:02 +08:00
qianlifeng
fd42549733 Update README.md 2014-01-05 17:07:13 +08:00
qianlifeng
07d002da48 Add Program Plugin 2014-01-04 20:26:13 +08:00
qianlifeng
dc51bc39ab structure change 2014-01-03 23:52:36 +08:00
qianlifeng
411932c96b python plugin test 2014-01-03 19:29:46 +08:00
qianlifeng
1eb3f449e2 Add system commands 2014-01-03 18:16:05 +08:00
qianlifeng
188e7910dd add pywinalfred test project 2013-12-29 21:50:56 +08:00
qianlifeng
5893564f46 Change Python C Wrapper 2013-12-27 20:06:49 +08:00
qianlifeng
bdf77b2782 Fix scroll issues 2013-12-27 00:39:07 +08:00
qianlifeng
ece5cc7dd5 UI staff 2013-12-26 20:18:08 +08:00
qianlifeng
db18b0f8e2 fixing embedding Python multithread problems 2013-12-25 19:26:58 +08:00
qianlifeng
94cd2c0599 UI staff 2013-12-25 00:21:54 +08:00
qianlifeng
87225e64fa regular update 2013-12-23 23:53:38 +08:00
qianlifeng
fffb97ea8d add PyWinAlfred 2013-12-23 19:21:51 +08:00
qianlifeng
57b381311c UI staff 2013-12-23 00:10:46 +08:00
qianlifeng
121db63778 UI staff 2013-12-22 19:35:21 +08:00
qianlifeng
dcf52085ae some UI staff 2013-12-22 00:44:56 +08:00
qianlifeng
2d339ba00a add portable python environment 2013-12-21 01:22:42 +08:00
qianlifeng
422e19724a add IronPython environment to execute python plugins 2013-12-21 01:20:17 +08:00
qianlifeng
f25f4f7dc8 regular commit 2013-12-20 19:38:10 +08:00
qianlifeng
c8fca3d63f project stucture change 2013-12-19 23:55:23 +08:00
qianlifeng
fd1ee23adc init 2013-12-19 23:51:20 +08:00
qianlifeng
a540165280 Initial commit 2013-12-19 07:49:32 -08:00
1482 changed files with 140812 additions and 29607 deletions

4
.editorconfig Normal file
View File

@@ -0,0 +1,4 @@
[*.cs]
# SA1201: Elements should appear in the correct order
dotnet_diagnostic.SA1201.severity = none

View File

@@ -6,11 +6,11 @@
<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist
* [] Applies to #xxx
* [] CLA signed. If not, go over [here](https://cla.opensource.microsoft.com/microsoft/PowerToys) and sign the CLA
* [] Tests added/passed
* [] Requires documentation to be updated
* [] I've discussed this with core contributors already. If not checked, I'm ready to accept this work might be rejected in favor of a different grand plan. Issue number where discussion took place: #xxx
* [ ] 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
<!-- Provide a more detailed description of the PR, other things fixed or any additional comments/features here -->
## Detailed Description of the Pull Request / Additional comments

13
.gitignore vendored
View File

@@ -301,6 +301,8 @@ __pycache__/
# Cake - Uncomment if you are using it
# tools/**
# !tools/packages.config
ImageResizer/tools/**
!ImageResizer/tools/packages.config
# Tabs Studio
*.tss
@@ -328,3 +330,14 @@ ASALocalRun/
# MFractors (Xamarin productivity tool) working folder
.mfractor/
# Temp build files
src/settings/settings-html/200.html
src/settings/settings-html/404.html
# Temp telemetry files.
src/common/Telemetry/*.etl
# Don't ignore MergeModules
!**/MergeModules/Release/
!**/MergeModules/Debug/

View File

@@ -1,4 +1,5 @@
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.16299.0
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat" -arch=amd64 -host_arch=amd64 -winsdk=10.0.18362.0
SET IsPipeline=1
call msbuild ../installer/PowerToysSetup.sln /p:Configuration=Release /p:Platform=x64 || exit /b 1

View File

@@ -1,4 +1,8 @@
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.16299.0
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat" -arch=amd64 -host_arch=amd64 -winsdk=10.0.18362.0
call msbuild ../PowerToys.sln /p:Configuration=Release /p:Platform=x64 || exit /b 1
call msbuild ../src/common/notifications/notifications_dll.vcxproj /p:Configuration=Release /p:Platform=x64 || exit /b 1
call msbuild ../src/common/notifications_winrt/notifications.vcxproj /p:Configuration=Release /p:Platform=x64 || exit /b 1
SET PTRoot=..
call "..\installer\PowerToysSetup\publish.cmd"

View File

@@ -3,6 +3,8 @@ trigger:
branches:
include:
- master
- dev/build-features
- dev/PowerLauncher
paths:
exclude:
- doc/*
@@ -13,6 +15,8 @@ pr:
branches:
include:
- master
- dev/build-features
- dev/PowerLauncher
# 0.0.yyMM.dd##
# 0.0.1904.0900

View File

@@ -3,13 +3,14 @@ parameters:
steps:
- checkout: self
fetchDepth: 1
submodules: true
clean: true
- task: NuGetToolInstaller@0
displayName: Ensure NuGet 4.8.1
displayName: Ensure NuGet 5.5.0
inputs:
versionSpec: 4.8.1
versionSpec: 5.5.0
- task: VisualStudioTestPlatformInstaller@1
displayName: Ensure VSTest Platform
@@ -33,3 +34,16 @@ steps:
msbuildArgs: ${{ parameters.additionalBuildArguments }}
clean: true
maximumCpuCount: true
- task: VSTest@2
inputs:
platform: '$(BuildPlatform)'
configuration: '$(BuildConfiguration)'
testSelector: 'testAssemblies'
testAssemblyVer2: |
**\PreviewPaneUnitTests.dll
**\UnitTests-SvgPreviewHandler.dll
**\UnitTests-PreviewHandlerCommon.dll
**\powerpreviewTest.dll
!**\*TestAdapter.dll
!**\obj\**

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Microsoft.PowerToys.Telemetry" version="2.0" />
</packages>

View File

@@ -2,10 +2,10 @@ environment:
host:
os: 'windows'
flavor: 'server'
version: '2016'
version: '2019'
runtime:
provider: 'appcontainer'
image: 'cdpxwin.azurecr.io/user/powertoys/vs2019:3.0'
image: 'cdpxwin1809.azurecr.io/global/vse2019:latest'
source_mode: 'map'
version:
@@ -41,14 +41,85 @@ build:
name: 'Build Power Toys'
command: '.pipelines\build.cmd'
artifacts:
- to: 'Symbols'
include:
- 'x64/**/*.pdb'
exclude:
- 'x64/Release/obj/**/*.pdb'
- from: 'x64/Release'
to: 'Build_Output'
include:
- 'PowerToys.exe'
- 'PowerToysSettings.exe'
- 'modules\FancyZonesEditor.exe'
- 'modules\fancyzones.dll'
- 'modules\shortcut_guide.dll'
- 'action_runner.exe'
- 'modules\ar\ImageResizer.resources.dll'
- 'modules\bg\ImageResizer.resources.dll'
- 'modules\ca\ImageResizer.resources.dll'
- 'modules\cs\ImageResizer.resources.dll'
- 'modules\de\ImageResizer.resources.dll'
- 'modules\es\ImageResizer.resources.dll'
- 'modules\eu-ES\ImageResizer.resources.dll'
- 'modules\fr\ImageResizer.resources.dll'
- 'modules\he\ImageResizer.resources.dll'
- 'modules\hu\ImageResizer.resources.dll'
- 'modules\it\ImageResizer.resources.dll'
- 'modules\nb-NO\ImageResizer.resources.dll'
- 'modules\nl\ImageResizer.resources.dll'
- 'modules\pl\ImageResizer.resources.dll'
- 'modules\pt-BR\ImageResizer.resources.dll'
- 'modules\ru\ImageResizer.resources.dll'
- 'modules\sk\ImageResizer.resources.dll'
- 'modules\tr\ImageResizer.resources.dll'
- 'modules\zh-Hans\ImageResizer.resources.dll'
- 'modules\FancyZones\fancyzones.dll'
- 'modules\FancyZones\FancyZonesEditor.exe'
- 'modules\FileExplorerPreview\MarkdownPreviewHandler.dll'
- 'modules\FileExplorerPreview\powerpreview.dll'
- 'modules\FileExplorerPreview\PreviewHandlerCommon.dll'
- 'modules\FileExplorerPreview\SvgPreviewHandler.dll'
- 'modules\ImageResizer.exe'
- 'modules\ImageResizerExt.dll'
- 'modules\KeyboardManager.dll'
- 'modules\launcher\Microsoft.PowerToys.Settings.UI.Lib.dll'
- 'modules\launcher\Plugins\Microsoft.Plugin.Calculator\Microsoft.Plugin.Caculator.dll'
- 'modules\launcher\Plugins\Microsoft.Plugin.Calculator\Wox.Infrastructure.dll'
- 'modules\launcher\Plugins\Microsoft.Plugin.Calculator\Wox.Plugin.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'
- 'modules\launcher\Plugins\Microsoft.Plugin.Indexer\Microsoft.Plugin.Indexer.dll'
- 'modules\launcher\Plugins\Microsoft.Plugin.Indexer\Wox.Infrastructure.dll'
- 'modules\launcher\Plugins\Microsoft.Plugin.Program\Microsoft.Plugin.Program.dll'
- 'modules\launcher\Plugins\Microsoft.Plugin.Program\Wox.Infrastructure.dll'
- 'modules\launcher\Plugins\Microsoft.Plugin.Program\Wox.Plugin.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'
- 'modules\launcher\Plugins\Microsoft.Plugin.WindowWalker\Microsoft.Plugin.WindowWalker.dll'
- 'modules\launcher\Plugins\Microsoft.Plugin.WindowWalker\Wox.Infrastructure.dll'
- 'modules\launcher\Plugins\Microsoft.Plugin.WindowWalker\Wox.Plugin.dll'
- 'modules\launcher\PowerLauncher.dll'
- 'modules\launcher\PowerLauncher.exe'
- 'modules\launcher\PowerLauncher.Telemetry.dll'
- 'modules\launcher\PowerLauncher.UI.exe'
- 'modules\launcher\PowerToysInterop.dll'
- 'modules\launcher\Telemetry.dll'
- 'modules\launcher\Wox.Core.dll'
- 'modules\launcher\Wox.dll'
- 'modules\launcher\Wox.Infrastructure.dll'
- 'modules\launcher\Wox.Plugin.dll'
- 'modules\Microsoft.Launcher.dll'
- 'modules\PowerRenameExt.dll'
- 'modules\shortcut_guide.dll'
- 'Notifications.dll'
- 'os-detection.dll'
- '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'
signing_options:
sign_inline: true # This does signing a soon as this command completes
- !!buildcommand
@@ -58,24 +129,37 @@ build:
- from: 'installer\PowerToysSetup\x64\Release'
to: 'Build_Installer_Output'
include:
- 'PowerToysSetup.msi'
- 'PowerToysSetup-*.msi'
signing_options:
sign_inline: true # This does signing a soon as this command completes
package:
commands:
- !!buildcommand
name: 'Build MSIX package'
command: 'installer\msix\build_msix_cdpx.cmd'
artifacts:
- from: 'installer\msix\bin'
to: 'Build_MSIX_Package_Output'
include:
- '*.msix'
- '*.msixbundle'
signing_options:
profile: '400'
static_analysis_options:
binskim_options:
files_to_scan:
- from: 'installer/packages'
exclude:
exclude:
- 'WiX.3.11.1/**/*.dll'
- 'Wix.3.11.1/**/*.exe'
- 'WiX.*/**/*.dll'
- 'Wix.*/**/*.exe'
moderncop_options:
files_to_scan:
- from: 'src'
exclude:
- '**/just.config.js'
- '**/webpack.config.js'
- '**/webpack.serve.config.js'
- '**/dist/bundle.js'
- '**/just.config.js'
- '**/webpack.config.js'
- '**/webpack.serve.config.js'
- '**/dist/bundle.js'

View File

@@ -1,6 +1,6 @@
cd /D "%~dp0"
set PROJECT="..\src\modules\fancyzones\editor\FancyZonesEditor\FancyZonesEditor.csproj"
set TELEMETRY_PKG="Microsoft.PowerToys.Telemetry"
call nuget.exe restore -PackagesDirectory . packages.config || exit /b 1
dotnet add %PROJECT% package %TELEMETRY_PKG%
move /Y "Microsoft.PowerToys.Telemetry.2.0.0\build\include\TraceLoggingDefines.h" "..\src\common\Telemetry\TraceLoggingDefines.h" || exit /b 1
move /Y "Microsoft.PowerToys.Telemetry.2.0.0\build\include\TelemetryBase.cs" "..\src\common\Telemetry\TelemetryBase.cs" || exit /b 1

9
CODE_OF_CONDUCT.md Normal file
View File

@@ -0,0 +1,9 @@
# Microsoft Open Source Code of Conduct
This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).
Resources:
- [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/)
- [Microsoft Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/)
- Contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with questions or concerns

View File

@@ -1,4 +1,4 @@
The MIT License (MIT)
The MIT License
Copyright (c) Microsoft Corporation. All rights reserved.

125
NOTICE.md Normal file
View File

@@ -0,0 +1,125 @@
# NOTICES AND INFORMATION
This software incorporates material from third parties.
## PowerToy: ImageResizer
### Brice Lams's Image Resizer License
**Source**: https://github.com/bricelam/ImageResizer/
The MIT License (MIT)
Copyright (c) Brice Lambson. All rights reserved.
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: Launcher
### Wox License
**Source**: https://github.com/Wox-launcher/Wox
The MIT License (MIT)
Copyright (c) 2015 Wox
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.
### Beta Tadele's Window Walker License
**Source**: https://github.com/betsegaw/windowwalker
The MIT License (MIT)
Copyright 2020 Betsegaw Tadele
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.
### 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
**Source**: https://github.com/chrdavis/SmartRename
MIT License
Copyright (c) 2017 Chris Davis
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.

View File

@@ -5,17 +5,44 @@ VisualStudioVersion = 16.0.28803.452
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "runner", "src\runner\runner.vcxproj", "{9412D5C6-2CF2-4FC2-A601-B55508EA9B27}"
ProjectSection(ProjectDependencies) = postProject
{217DF501-135C-4E38-BFC8-99D4821032EA} = {217DF501-135C-4E38-BFC8-99D4821032EA}
{0E072714-D127-460B-AFAD-B4C40B412798} = {0E072714-D127-460B-AFAD-B4C40B412798}
{48804216-2A0E-4168-A6D8-9CD068D14227} = {48804216-2A0E-4168-A6D8-9CD068D14227}
{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}
{0B593A6C-4143-4337-860E-DB5710FB87DB} = {0B593A6C-4143-4337-860E-DB5710FB87DB}
{E364F67B-BB12-4E91-B639-355866EBCD8B} = {E364F67B-BB12-4E91-B639-355866EBCD8B}
{DA425894-6E13-404F-8DCB-78584EC0557A} = {DA425894-6E13-404F-8DCB-78584EC0557A}
{2BE46397-4DFA-414C-9BD4-41E4BBF8CB34} = {2BE46397-4DFA-414C-9BD4-41E4BBF8CB34}
{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}
{89F34AF7-1C34-4A72-AA6E-534BCF972BD9} = {89F34AF7-1C34-4A72-AA6E-534BCF972BD9}
{E6410BFC-B341-498C-8C67-312C20CDD8D5} = {E6410BFC-B341-498C-8C67-312C20CDD8D5}
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}") = "shortcut_guide", "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("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "example_powertoy", "src\modules\example_powertoy\example_powertoy.vcxproj", "{44CC9375-3E6E-4D99-8913-7FB748807EBD}"
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
@@ -32,21 +59,28 @@ 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}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cpprestsdk", "deps\cpprestsdk\cpprestsdk.vcxproj", "{4E577735-DFAB-41AF-8A6E-B6E8872A2928}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "deps", "deps", "{1FAF749F-0D6F-4BF5-A563-31A4B5279D27}"
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}"
EndProject
@@ -56,6 +90,7 @@ 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}"
@@ -69,15 +104,160 @@ 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}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "imageresizer", "imageresizer", "{6C7F47CC-2151-44A3-A546-41C70025132C}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ImageResizerUI", "src\modules\imageresizer\ui\ImageResizerUI.csproj", "{2BE46397-4DFA-414C-9BD4-41E4BBF8CB34}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ImageResizerExt", "src\modules\imageresizer\dll\ImageResizerExt.vcxproj", "{0B43679E-EDFA-4DA0-AD30-F4628B308B1B}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ImageResizerUITest", "src\modules\imageresizer\tests\ImageResizerUITest.csproj", "{E0CC7526-D85E-43AC-844F-D5DF0D2F5AB8}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "KeyboardManagerUI", "src\modules\keyboardmanager\ui\KeyboardManagerUI.vcxproj", "{EAF23649-EF6E-478B-980E-81FAD96CCA2A}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "action_runner", "src\action_runner\action_runner.vcxproj", "{D29DDD63-E2CF-4657-9FD5-2AEDE4257E5D}"
ProjectSection(ProjectDependencies) = postProject
{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}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "keyboardmanager", "keyboardmanager", "{38BDB927-829B-4C65-9CD9-93FB05D66D65}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "KeyboardManagerCommon", "src\modules\keyboardmanager\common\KeyboardManagerCommon.vcxproj", "{8AFFA899-0B73-49EC-8C50-0FADDA57B2FC}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "launcher", "launcher", "{C140A3EF-6DBF-4084-9D4C-4EB5A99FEE68}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Wox", "src\modules\launcher\Wox\Wox.csproj", "{DB90F671-D861-46BB-93A3-F1304F5BA1C5}"
ProjectSection(ProjectDependencies) = postProject
{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}
{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("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Wox.Core", "src\modules\launcher\Wox.Core\Wox.Core.csproj", "{B749F0DB-8E75-47DB-9E5E-265D16D0C0D2}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Wox.Infrastructure", "src\modules\launcher\Wox.Infrastructure\Wox.Infrastructure.csproj", "{4FD29318-A8AB-4D8F-AA47-60BC241B8DA3}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Wox.Plugin", "src\modules\launcher\Wox.Plugin\Wox.Plugin.csproj", "{8451ECDD-2EA4-4966-BB0A-7BBC40138E80}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Wox.Test", "src\modules\launcher\Wox.Test\Wox.Test.csproj", "{FF742965-9A80-41A5-B042-D6C7D3A21708}"
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}"
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
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Plugin.Program", "src\modules\launcher\Plugins\Microsoft.Plugin.Program\Microsoft.Plugin.Program.csproj", "{FDB3555B-58EF-4AE6-B5F1-904719637AB4}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Plugin.Shell", "src\modules\launcher\Plugins\Microsoft.Plugin.Shell\Microsoft.Plugin.Shell.csproj", "{C21BFF9C-2C99-4B5F-B7C9-A5E6DDDB37B0}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Plugin.Indexer", "src\modules\launcher\Plugins\Microsoft.Plugin.Indexer\Microsoft.Plugin.Indexer.csproj", "{F8B870EB-D5F5-45BA-9CF7-A5C459818820}"
ProjectSection(ProjectDependencies) = postProject
{8451ECDD-2EA4-4966-BB0A-7BBC40138E80} = {8451ECDD-2EA4-4966-BB0A-7BBC40138E80}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Microsoft.Launcher", "src\modules\launcher\Microsoft.Launcher\Microsoft.Launcher.vcxproj", "{E364F67B-BB12-4E91-B639-355866EBCD8B}"
ProjectSection(ProjectDependencies) = postProject
{F97E5003-F263-4D4A-A964-0F1F3C82DEF2} = {F97E5003-F263-4D4A-A964-0F1F3C82DEF2}
EndProjectSection
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PowerLauncher", "src\modules\launcher\PowerLauncher\PowerLauncher.csproj", "{F97E5003-F263-4D4A-A964-0F1F3C82DEF2}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PowerLauncher.UI", "src\modules\launcher\PowerLauncher.UI\PowerLauncher.UI.csproj", "{4A3DE70C-684C-410D-B851-C23B6DAEDF16}"
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}"
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}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "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}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "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}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "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}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "powerpreviewTest", "src\modules\previewpane\powerpreviewTest\powerpreviewTest.vcxproj", "{47310AB4-9034-4BD1-8D8B-E88AD21A171B}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "core", "core", "{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}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{4981CCD1-4CD9-4A49-B240-00AA46493FF8}"
ProjectSection(SolutionItems) = preProject
.editorconfig = .editorconfig
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.Lib", "src\core\Microsoft.PowerToys.Settings.UI.Lib\Microsoft.PowerToys.Settings.UI.Lib.csproj", "{B1BCC8C6-46B5-4BFA-8F22-20F32D99EC6A}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.PowerToys.Settings.UnitTest", "src\core\Microsoft.PowerToys.Settings.UnitTest\Microsoft.PowerToys.Settings.UnitTest.csproj", "{A80355C2-780D-4245-BD80-25B8DE698EE3}"
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}") = "interop-tests", "src\common\interop-tests\interop-tests.csproj", "{437AD818-3F1F-4CA5-A79B-25233A157026}"
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}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "os-detection", "src\common\os-detection\os-detection.vcxproj", "{E6410BFC-B341-498C-8C67-312C20CDD8D5}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x64 = Debug|x64
@@ -97,7 +277,9 @@ Global
{A46629C4-1A6C-40FA-A8B6-10E5102BB0BA}.Release|x64.ActiveCfg = Release|x64
{A46629C4-1A6C-40FA-A8B6-10E5102BB0BA}.Release|x64.Build.0 = Release|x64
{44CC9375-3E6E-4D99-8913-7FB748807EBD}.Debug|x64.ActiveCfg = Debug|x64
{44CC9375-3E6E-4D99-8913-7FB748807EBD}.Debug|x64.Build.0 = Debug|x64
{44CC9375-3E6E-4D99-8913-7FB748807EBD}.Release|x64.ActiveCfg = Release|x64
{44CC9375-3E6E-4D99-8913-7FB748807EBD}.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
@@ -114,10 +296,6 @@ Global
{9C6A7905-72D4-4BF5-B256-ABFDAEF68AE9}.Debug|x64.Build.0 = Debug|x64
{9C6A7905-72D4-4BF5-B256-ABFDAEF68AE9}.Release|x64.ActiveCfg = Release|x64
{9C6A7905-72D4-4BF5-B256-ABFDAEF68AE9}.Release|x64.Build.0 = Release|x64
{4E577735-DFAB-41AF-8A6E-B6E8872A2928}.Debug|x64.ActiveCfg = Debug|x64
{4E577735-DFAB-41AF-8A6E-B6E8872A2928}.Debug|x64.Build.0 = Debug|x64
{4E577735-DFAB-41AF-8A6E-B6E8872A2928}.Release|x64.ActiveCfg = Release|x64
{4E577735-DFAB-41AF-8A6E-B6E8872A2928}.Release|x64.Build.0 = Release|x64
{1A066C63-64B3-45F8-92FE-664E1CCE8077}.Debug|x64.ActiveCfg = Debug|x64
{1A066C63-64B3-45F8-92FE-664E1CCE8077}.Debug|x64.Build.0 = Debug|x64
{1A066C63-64B3-45F8-92FE-664E1CCE8077}.Release|x64.ActiveCfg = Release|x64
@@ -146,6 +324,186 @@ Global
{2151F984-E006-4A9F-92EF-C6DDE3DC8413}.Debug|x64.Build.0 = Debug|x64
{2151F984-E006-4A9F-92EF-C6DDE3DC8413}.Release|x64.ActiveCfg = Release|x64
{2151F984-E006-4A9F-92EF-C6DDE3DC8413}.Release|x64.Build.0 = Release|x64
{64A80062-4D8B-4229-8A38-DFA1D7497749}.Debug|x64.ActiveCfg = Debug|x64
{64A80062-4D8B-4229-8A38-DFA1D7497749}.Debug|x64.Build.0 = Debug|x64
{64A80062-4D8B-4229-8A38-DFA1D7497749}.Release|x64.ActiveCfg = Release|x64
{64A80062-4D8B-4229-8A38-DFA1D7497749}.Release|x64.Build.0 = Release|x64
{0485F45C-EA7A-4BB5-804B-3E8D14699387}.Debug|x64.ActiveCfg = Debug|x64
{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
{89F34AF7-1C34-4A72-AA6E-534BCF972BD9}.Release|x64.Build.0 = Release|x64
{2BE46397-4DFA-414C-9BD4-41E4BBF8CB34}.Debug|x64.ActiveCfg = Debug|x64
{2BE46397-4DFA-414C-9BD4-41E4BBF8CB34}.Debug|x64.Build.0 = Debug|x64
{2BE46397-4DFA-414C-9BD4-41E4BBF8CB34}.Release|x64.ActiveCfg = Release|x64
{2BE46397-4DFA-414C-9BD4-41E4BBF8CB34}.Release|x64.Build.0 = Release|x64
{0B43679E-EDFA-4DA0-AD30-F4628B308B1B}.Debug|x64.ActiveCfg = Debug|x64
{0B43679E-EDFA-4DA0-AD30-F4628B308B1B}.Debug|x64.Build.0 = Debug|x64
{0B43679E-EDFA-4DA0-AD30-F4628B308B1B}.Release|x64.ActiveCfg = Release|x64
{0B43679E-EDFA-4DA0-AD30-F4628B308B1B}.Release|x64.Build.0 = Release|x64
{E0CC7526-D85E-43AC-844F-D5DF0D2F5AB8}.Debug|x64.ActiveCfg = Debug|x64
{E0CC7526-D85E-43AC-844F-D5DF0D2F5AB8}.Debug|x64.Build.0 = Debug|x64
{E0CC7526-D85E-43AC-844F-D5DF0D2F5AB8}.Release|x64.ActiveCfg = Release|x64
{E0CC7526-D85E-43AC-844F-D5DF0D2F5AB8}.Release|x64.Build.0 = Release|x64
{EAF23649-EF6E-478B-980E-81FAD96CCA2A}.Debug|x64.ActiveCfg = Debug|x64
{EAF23649-EF6E-478B-980E-81FAD96CCA2A}.Debug|x64.Build.0 = Debug|x64
{EAF23649-EF6E-478B-980E-81FAD96CCA2A}.Release|x64.ActiveCfg = Release|x64
{EAF23649-EF6E-478B-980E-81FAD96CCA2A}.Release|x64.Build.0 = Release|x64
{D29DDD63-E2CF-4657-9FD5-2AEDE4257E5D}.Debug|x64.ActiveCfg = Debug|x64
{D29DDD63-E2CF-4657-9FD5-2AEDE4257E5D}.Debug|x64.Build.0 = Debug|x64
{D29DDD63-E2CF-4657-9FD5-2AEDE4257E5D}.Release|x64.ActiveCfg = Release|x64
{D29DDD63-E2CF-4657-9FD5-2AEDE4257E5D}.Release|x64.Build.0 = Release|x64
{17DA04DF-E393-4397-9CF0-84DABE11032E}.Debug|x64.ActiveCfg = Debug|x64
{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
{8AFFA899-0B73-49EC-8C50-0FADDA57B2FC}.Debug|x64.ActiveCfg = Debug|x64
{8AFFA899-0B73-49EC-8C50-0FADDA57B2FC}.Debug|x64.Build.0 = Debug|x64
{8AFFA899-0B73-49EC-8C50-0FADDA57B2FC}.Release|x64.ActiveCfg = Release|x64
{8AFFA899-0B73-49EC-8C50-0FADDA57B2FC}.Release|x64.Build.0 = Release|x64
{DB90F671-D861-46BB-93A3-F1304F5BA1C5}.Debug|x64.ActiveCfg = Debug|x64
{DB90F671-D861-46BB-93A3-F1304F5BA1C5}.Debug|x64.Build.0 = Debug|x64
{DB90F671-D861-46BB-93A3-F1304F5BA1C5}.Release|x64.ActiveCfg = Release|x64
{DB90F671-D861-46BB-93A3-F1304F5BA1C5}.Release|x64.Build.0 = Release|x64
{B749F0DB-8E75-47DB-9E5E-265D16D0C0D2}.Debug|x64.ActiveCfg = Debug|x64
{B749F0DB-8E75-47DB-9E5E-265D16D0C0D2}.Debug|x64.Build.0 = Debug|x64
{B749F0DB-8E75-47DB-9E5E-265D16D0C0D2}.Release|x64.ActiveCfg = Release|x64
{B749F0DB-8E75-47DB-9E5E-265D16D0C0D2}.Release|x64.Build.0 = Release|x64
{4FD29318-A8AB-4D8F-AA47-60BC241B8DA3}.Debug|x64.ActiveCfg = Debug|x64
{4FD29318-A8AB-4D8F-AA47-60BC241B8DA3}.Debug|x64.Build.0 = Debug|x64
{4FD29318-A8AB-4D8F-AA47-60BC241B8DA3}.Release|x64.ActiveCfg = Release|x64
{4FD29318-A8AB-4D8F-AA47-60BC241B8DA3}.Release|x64.Build.0 = Release|x64
{8451ECDD-2EA4-4966-BB0A-7BBC40138E80}.Debug|x64.ActiveCfg = Debug|x64
{8451ECDD-2EA4-4966-BB0A-7BBC40138E80}.Debug|x64.Build.0 = Debug|x64
{8451ECDD-2EA4-4966-BB0A-7BBC40138E80}.Release|x64.ActiveCfg = Release|x64
{8451ECDD-2EA4-4966-BB0A-7BBC40138E80}.Release|x64.Build.0 = Release|x64
{FF742965-9A80-41A5-B042-D6C7D3A21708}.Debug|x64.ActiveCfg = Debug|x64
{FF742965-9A80-41A5-B042-D6C7D3A21708}.Debug|x64.Build.0 = Debug|x64
{FF742965-9A80-41A5-B042-D6C7D3A21708}.Release|x64.ActiveCfg = Release|x64
{FF742965-9A80-41A5-B042-D6C7D3A21708}.Release|x64.Build.0 = Release|x64
{59BD9891-3837-438A-958D-ADC7F91F6F7E}.Debug|x64.ActiveCfg = Debug|x64
{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
{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
{74F1B9ED-F59C-4FE7-B473-7B453E30837E}.Release|x64.Build.0 = Release|x64
{FDB3555B-58EF-4AE6-B5F1-904719637AB4}.Debug|x64.ActiveCfg = Debug|x64
{FDB3555B-58EF-4AE6-B5F1-904719637AB4}.Debug|x64.Build.0 = Debug|x64
{FDB3555B-58EF-4AE6-B5F1-904719637AB4}.Release|x64.ActiveCfg = Release|x64
{FDB3555B-58EF-4AE6-B5F1-904719637AB4}.Release|x64.Build.0 = Release|x64
{C21BFF9C-2C99-4B5F-B7C9-A5E6DDDB37B0}.Debug|x64.ActiveCfg = Debug|x64
{C21BFF9C-2C99-4B5F-B7C9-A5E6DDDB37B0}.Debug|x64.Build.0 = Debug|x64
{C21BFF9C-2C99-4B5F-B7C9-A5E6DDDB37B0}.Release|x64.ActiveCfg = Release|x64
{C21BFF9C-2C99-4B5F-B7C9-A5E6DDDB37B0}.Release|x64.Build.0 = Release|x64
{F8B870EB-D5F5-45BA-9CF7-A5C459818820}.Debug|x64.ActiveCfg = Debug|x64
{F8B870EB-D5F5-45BA-9CF7-A5C459818820}.Debug|x64.Build.0 = Debug|x64
{F8B870EB-D5F5-45BA-9CF7-A5C459818820}.Release|x64.ActiveCfg = Release|x64
{F8B870EB-D5F5-45BA-9CF7-A5C459818820}.Release|x64.Build.0 = Release|x64
{E364F67B-BB12-4E91-B639-355866EBCD8B}.Debug|x64.ActiveCfg = Debug|x64
{E364F67B-BB12-4E91-B639-355866EBCD8B}.Debug|x64.Build.0 = Debug|x64
{E364F67B-BB12-4E91-B639-355866EBCD8B}.Release|x64.ActiveCfg = Release|x64
{E364F67B-BB12-4E91-B639-355866EBCD8B}.Release|x64.Build.0 = Release|x64
{F97E5003-F263-4D4A-A964-0F1F3C82DEF2}.Debug|x64.ActiveCfg = Debug|x64
{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
{4A3DE70C-684C-410D-B851-C23B6DAEDF16}.Debug|x64.ActiveCfg = Debug|x64
{4A3DE70C-684C-410D-B851-C23B6DAEDF16}.Debug|x64.Build.0 = Debug|x64
{4A3DE70C-684C-410D-B851-C23B6DAEDF16}.Release|x64.ActiveCfg = Release|x64
{4A3DE70C-684C-410D-B851-C23B6DAEDF16}.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
{AF2349B8-E5B6-4004-9502-687C1C7730B1}.Release|x64.Build.0 = Release|x64
{6A71162E-FC4C-4A2C-B90F-3CF94F59A9BB}.Debug|x64.ActiveCfg = Debug|x64
{6A71162E-FC4C-4A2C-B90F-3CF94F59A9BB}.Debug|x64.Build.0 = Debug|x64
{6A71162E-FC4C-4A2C-B90F-3CF94F59A9BB}.Release|x64.ActiveCfg = Release|x64
{6A71162E-FC4C-4A2C-B90F-3CF94F59A9BB}.Release|x64.Build.0 = Release|x64
{A2B51B8B-8F90-424E-BC97-F9AB7D76CA1A}.Debug|x64.ActiveCfg = Debug|x64
{A2B51B8B-8F90-424E-BC97-F9AB7D76CA1A}.Debug|x64.Build.0 = Debug|x64
{A2B51B8B-8F90-424E-BC97-F9AB7D76CA1A}.Release|x64.ActiveCfg = Release|x64
{A2B51B8B-8F90-424E-BC97-F9AB7D76CA1A}.Release|x64.Build.0 = Release|x64
{DA425894-6E13-404F-8DCB-78584EC0557A}.Debug|x64.ActiveCfg = Debug|x64
{DA425894-6E13-404F-8DCB-78584EC0557A}.Debug|x64.Build.0 = Debug|x64
{DA425894-6E13-404F-8DCB-78584EC0557A}.Release|x64.ActiveCfg = Release|x64
{DA425894-6E13-404F-8DCB-78584EC0557A}.Release|x64.Build.0 = Release|x64
{060D75DA-2D1C-48E6-A4A1-6F0718B64661}.Debug|x64.ActiveCfg = Debug|x64
{060D75DA-2D1C-48E6-A4A1-6F0718B64661}.Debug|x64.Build.0 = Debug|x64
{060D75DA-2D1C-48E6-A4A1-6F0718B64661}.Release|x64.ActiveCfg = Release|x64
{060D75DA-2D1C-48E6-A4A1-6F0718B64661}.Release|x64.Build.0 = Release|x64
{748417CA-F17E-487F-9411-CAFB6D3F4877}.Debug|x64.ActiveCfg = Debug|x64
{748417CA-F17E-487F-9411-CAFB6D3F4877}.Debug|x64.Build.0 = Debug|x64
{748417CA-F17E-487F-9411-CAFB6D3F4877}.Release|x64.ActiveCfg = Release|x64
{748417CA-F17E-487F-9411-CAFB6D3F4877}.Release|x64.Build.0 = Release|x64
{217DF501-135C-4E38-BFC8-99D4821032EA}.Debug|x64.ActiveCfg = Debug|x64
{217DF501-135C-4E38-BFC8-99D4821032EA}.Debug|x64.Build.0 = Debug|x64
{217DF501-135C-4E38-BFC8-99D4821032EA}.Release|x64.ActiveCfg = Release|x64
{217DF501-135C-4E38-BFC8-99D4821032EA}.Release|x64.Build.0 = Release|x64
{47310AB4-9034-4BD1-8D8B-E88AD21A171B}.Debug|x64.ActiveCfg = Debug|x64
{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
{A7D5099E-F0FD-4BF3-8522-5A682759F915}.Release|x64.Build.0 = Release|x64
{B1BCC8C6-46B5-4BFA-8F22-20F32D99EC6A}.Debug|x64.ActiveCfg = Debug|x64
{B1BCC8C6-46B5-4BFA-8F22-20F32D99EC6A}.Debug|x64.Build.0 = Debug|x64
{B1BCC8C6-46B5-4BFA-8F22-20F32D99EC6A}.Release|x64.ActiveCfg = Release|x64
{B1BCC8C6-46B5-4BFA-8F22-20F32D99EC6A}.Release|x64.Build.0 = Release|x64
{A80355C2-780D-4245-BD80-25B8DE698EE3}.Debug|x64.ActiveCfg = Debug|x64
{A80355C2-780D-4245-BD80-25B8DE698EE3}.Debug|x64.Build.0 = Debug|x64
{A80355C2-780D-4245-BD80-25B8DE698EE3}.Release|x64.ActiveCfg = Release|x64
{A80355C2-780D-4245-BD80-25B8DE698EE3}.Release|x64.Build.0 = Release|x64
{F055103B-F80B-4D0C-BF48-057C55620033}.Debug|x64.ActiveCfg = Debug|x64
{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
{787B8AA6-CA93-4C84-96FE-DF31110AD1C4}.Release|x64.Build.0 = Release|x64
{08C8C05F-0362-41BC-818C-724572DF8B06}.Debug|x64.ActiveCfg = Debug|x64
{08C8C05F-0362-41BC-818C-724572DF8B06}.Debug|x64.Build.0 = Debug|x64
{08C8C05F-0362-41BC-818C-724572DF8B06}.Release|x64.ActiveCfg = Release|x64
{08C8C05F-0362-41BC-818C-724572DF8B06}.Release|x64.Build.0 = Release|x64
{5D00D290-4016-4CFE-9E41-1E7C724509BA}.Debug|x64.ActiveCfg = Debug|x64
{5D00D290-4016-4CFE-9E41-1E7C724509BA}.Debug|x64.Build.0 = Debug|x64
{5D00D290-4016-4CFE-9E41-1E7C724509BA}.Release|x64.ActiveCfg = Release|x64
{5D00D290-4016-4CFE-9E41-1E7C724509BA}.Release|x64.Build.0 = Release|x64
{E6410BFC-B341-498C-8C67-312C20CDD8D5}.Debug|x64.ActiveCfg = Debug|x64
{E6410BFC-B341-498C-8C67-312C20CDD8D5}.Debug|x64.Build.0 = Debug|x64
{E6410BFC-B341-498C-8C67-312C20CDD8D5}.Release|x64.ActiveCfg = Release|x64
{E6410BFC-B341-498C-8C67-312C20CDD8D5}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -153,13 +511,12 @@ Global
GlobalSection(NestedProjects) = preSolution
{74485049-C722-400F-ABE5-86AC52D929B3} = {1AFB6476-670D-4E80-A464-657E01DFF482}
{A46629C4-1A6C-40FA-A8B6-10E5102BB0BA} = {4574FDD0-F61D-4376-98BF-E5A1262C11EC}
{44CC9375-3E6E-4D99-8913-7FB748807EBD} = {4574FDD0-F61D-4376-98BF-E5A1262C11EC}
{44CC9375-3E6E-4D99-8913-7FB748807EBD} = {BEEAB7F2-FFF6-45AB-9CDB-B04CC0734B88}
{3BB8493E-D18E-4485-A320-CB40F90F55AE} = {4574FDD0-F61D-4376-98BF-E5A1262C11EC}
{D1D6BC88-09AE-4FB4-AD24-5DED46A791DD} = {4574FDD0-F61D-4376-98BF-E5A1262C11EC}
{F9C68EDF-AC74-4B77-9AF1-005D9C9F6A99} = {D1D6BC88-09AE-4FB4-AD24-5DED46A791DD}
{48804216-2A0E-4168-A6D8-9CD068D14227} = {D1D6BC88-09AE-4FB4-AD24-5DED46A791DD}
{9C6A7905-72D4-4BF5-B256-ABFDAEF68AE9} = {D1D6BC88-09AE-4FB4-AD24-5DED46A791DD}
{4E577735-DFAB-41AF-8A6E-B6E8872A2928} = {1FAF749F-0D6F-4BF5-A563-31A4B5279D27}
{1A066C63-64B3-45F8-92FE-664E1CCE8077} = {1AFB6476-670D-4E80-A464-657E01DFF482}
{5CCC8468-DEC8-4D36-99D4-5C891BEBD481} = {D1D6BC88-09AE-4FB4-AD24-5DED46A791DD}
{89E20BCE-EB9C-46C8-8B50-E01A82E6FDC3} = {4574FDD0-F61D-4376-98BF-E5A1262C11EC}
@@ -168,6 +525,55 @@ 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}
{0B43679E-EDFA-4DA0-AD30-F4628B308B1B} = {6C7F47CC-2151-44A3-A546-41C70025132C}
{E0CC7526-D85E-43AC-844F-D5DF0D2F5AB8} = {6C7F47CC-2151-44A3-A546-41C70025132C}
{EAF23649-EF6E-478B-980E-81FAD96CCA2A} = {38BDB927-829B-4C65-9CD9-93FB05D66D65}
{17DA04DF-E393-4397-9CF0-84DABE11032E} = {1AFB6476-670D-4E80-A464-657E01DFF482}
{38BDB927-829B-4C65-9CD9-93FB05D66D65} = {4574FDD0-F61D-4376-98BF-E5A1262C11EC}
{8AFFA899-0B73-49EC-8C50-0FADDA57B2FC} = {38BDB927-829B-4C65-9CD9-93FB05D66D65}
{C140A3EF-6DBF-4084-9D4C-4EB5A99FEE68} = {4574FDD0-F61D-4376-98BF-E5A1262C11EC}
{DB90F671-D861-46BB-93A3-F1304F5BA1C5} = {C140A3EF-6DBF-4084-9D4C-4EB5A99FEE68}
{B749F0DB-8E75-47DB-9E5E-265D16D0C0D2} = {C140A3EF-6DBF-4084-9D4C-4EB5A99FEE68}
{4FD29318-A8AB-4D8F-AA47-60BC241B8DA3} = {C140A3EF-6DBF-4084-9D4C-4EB5A99FEE68}
{8451ECDD-2EA4-4966-BB0A-7BBC40138E80} = {C140A3EF-6DBF-4084-9D4C-4EB5A99FEE68}
{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}
{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}
{4A3DE70C-684C-410D-B851-C23B6DAEDF16} = {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}
{A2B51B8B-8F90-424E-BC97-F9AB7D76CA1A} = {2F305555-C296-497E-AC20-5FA1B237996A}
{DA425894-6E13-404F-8DCB-78584EC0557A} = {2F305555-C296-497E-AC20-5FA1B237996A}
{060D75DA-2D1C-48E6-A4A1-6F0718B64661} = {2F305555-C296-497E-AC20-5FA1B237996A}
{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}
{A80355C2-780D-4245-BD80-25B8DE698EE3} = {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}
{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}
{E6410BFC-B341-498C-8C67-312C20CDD8D5} = {1AFB6476-670D-4E80-A464-657E01DFF482}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {C3A2F9D1-7930-4EF4-A6FC-7EE0A99821D0}

234
README.md
View File

@@ -1,156 +1,176 @@
# Overview
<img align="right" width="200" src="./doc/images/Logo.jpg">
<img src="./doc/images/overview/PT%20hero%20image.png"/>
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/).
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/).
## Build Status
[What's Happening](#whats-happening) | [Downloading & Release notes][github-release-link] | [Contributing to PowerToys](#contributing)
[![Build Status](https://dev.azure.com/ms/PowerToys/_apis/build/status/microsoft.PowerToys?branchName=master)](https://dev.azure.com/ms/PowerToys/_build?definitionId=35096)
## Build status
## Installation
[![Build Status](https://dev.azure.com/ms/PowerToys/_apis/build/status/microsoft.PowerToys?branchName=master)](https://dev.azure.com/ms/PowerToys/_build?definitionId=219)
_**Note:** in order to run PowerToys, you'll need to be running at least Windows build 17134 or higher._
## Current PowerToy Utilities
The latest release of PowerToys can be downloaded currently a few different ways. Our current recommended way is via GitHub.
### FancyZones
| x64 | x86 | ARM |
|:---:|:---:|:---:|
| Supported | [Issue #602](https://github.com/microsoft/PowerToys/issues/602) | [Issue #490](https://github.com/microsoft/PowerToys/issues/490)|
[<img align="left" src="./doc/images/overview/FancyZones_small.png" />](/src/modules/fancyzones/) [FancyZones](/src/modules/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>
### GitHub
### Shortcut Guide
The preview of these utilities can be installed from the [PowerToys GitHub releases page](https://github.com/Microsoft/powertoys/releases). Click on `Assets` to show the files available in the release and then click on `PowerToysSetup.msi` to download the PowerToys installer. <br />
PDB symbols for the release are available in a separate zip file `PDB symbols.zip`.
[<img align="left" src="./doc/images/overview/Shortcut guide_small.png" />](/src/modules/shortcut_guide) [Windows key shortcut guide](/src/modules/shortcut_guide) appears when a user holds the Windows key down for more than one second and shows the available shortcuts for the current state of the desktop.
<br>
<br>
<br>
<br>
<br>
### Windows Store
### PowerRename
On backlog, [Issue #413](https://github.com/microsoft/PowerToys/issues/413)
[<img align="left" src="./doc/images/overview/PowerRename_small.PNG" />](/src/modules/powerrename) [PowerRename](/src/modules/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>
<br>
### Chocolatey (Unofficial)
### File Explorer (Preview Panes)
Download and upgrade PowerToys from [Chocolatey](https://chocolatey.org).
[<img align="left" src="./doc/images/overview/PowerPreview_small.PNG" />](/src/modules/previewpane) [File Explorer](/src/modules/previewpane) add-ons right now are just limited to Preview Pane additions for File Explorer. Preview Pane is an existing feature in the File Explorer. To enable it, you just click the View tab in the ribbon and then click "Preview Pane".
To install PowerToys, run the following command from the command line or from PowerShell:
PowerToys will now enable two types of files to be previewed: Markdown (.md) & SVG (.svg)
<br>
<br>
### Image Resizer
[<img align="left" src="./doc/images/overview/ImageResizer_small.png" />](/src/modules/imageresizer) [Image Resizer](/src/modules/imageresizer) is a Windows Shell Extension for quickly resizing images. With a simple right click from File Explorer, resize one or many images instantly. This code is based on [Brice Lambson's Image Resizer](https://github.com/bricelam/ImageResizer).
<br>
<br>
<br>
<br>
### Keyboard Manager
[<img align="left" src="./doc/images/overview/KBM_small.png" />](src/modules/keyboardmanager/) [Keyboard Manager](src/modules/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>
<br>
### PowerToys Run
[<img align="left" src="./doc/images/overview/PowerLauncher_small.png" />](src/modules/launcher/) [PowerToys Run](src/modules/launcher/) is a new toy in PowerToys that can help you search and launch your app instantly with a simple alt-space 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>
<br>
## Installing and running Microsoft PowerToys
**Requirements:**
- Microsoft PowerToys requires 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 will prompt this but we want to directly make people aware.
### Via Github with MSI [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.18.1-x64.msi` to download the PowerToys installer.
**Note:** After installing, you will have to start PowerToys for the first time. We will improve install experience this moving forward but due to a possible install dependency, we can't start after install currently.
This is our preferred method.
### 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:
```powershell
WinGet install powertoys
```
### Other install methods
#### Via Chocolatey (Unofficial)
Download and upgrade PowerToys from [Chocolatey](https://chocolatey.org). If you have any issues when installing/upgrading the package please go to the [package page](https://chocolatey.org/packages/powertoys) and follow the [Chocolatey triage process](https://chocolatey.org/docs/package-triage-process)
To install PowerToys, run the following command from the command line / PowerShell:
```powershell
choco install powertoys
```
To upgrade PowerToys, run the following command from the command line or from PowerShell:
To upgrade PowerToys, run the following command from the command line / PowerShell:
```powershell
choco upgrade powertoys
```
If you have any issues when installing/upgrading the package please go to the [package page](https://chocolatey.org/packages/powertoys) and follow the [Chocolatey triage process](https://chocolatey.org/docs/package-triage-process)
### Processor support
## PowerToy Utilities
We currently support the matrix below.
### FancyZones
[FancyZones](/src/modules/fancyzones/) - FancyZones is a window manager that makes it easy to create complex window layouts and quickly position windows into those layouts. The FancyZones backlog can be found [here](https://github.com/Microsoft/PowerToys/tree/master/doc/planning/FancyZonesBacklog.md)
### Shortcut
[Windows key shortcut guide](/src/modules/shortcut_guide) - The shortcut guide appears when a user holds the Windows key down for more than one second and shows the available shortcuts for the current state of the desktop. The shortcut guide backlog can be found [here](https://github.com/Microsoft/PowerToys/tree/master/doc/planning/ShortcutGuideBacklog.md)
### PowerRename
[PowerRename](/src/modules/powerrename) - PowerRename is a Windows Shell Extension for advanced bulk renaming using search and replace or regular expressions. PowerRename allows simple search and replace or more advanced regular expression matching. While you type in the search and replace input fields, the preview area will show what the items will be renamed to. PowerRename then calls into the Windows Explorer file operations engine to perform the rename. This has the benefit of allowing the rename operation to be undone after PowerRename exits.
Chris Davis contributed his [SmartRename tool](https://github.com/chrdavis/SmartRename) into PowerToys!
![SmartRename](https://github.com/microsoft/PowerToys/raw/master/src/modules/powerrename/images/PowerRenameDemo.gif)
### Additional utilities in the pipeline are
* Maximize to new desktop widget - The MTND widget shows a pop-up button when a user hovers over the maximize / restore button on any window. Clicking it creates a new desktop, sends the app to that desktop and maximizes the app on the new desktop.
* [Process terminate tool](doc/specs/Terminate%20Spec.md)
* [Animated gif screen recorder](doc/specs/Gif-Maker.md)
### Backlog
The full backlog of utilities can be found [here](https://github.com/Microsoft/PowerToys/tree/master/doc/planning/PowerToysBacklog.md)
| x64 | x86 | ARM |
|:---:|:---:|:---:|
| [Supported][github-release-link] | [Issue #602](https://github.com/microsoft/PowerToys/issues/602) | [Issue #490](https://github.com/microsoft/PowerToys/issues/490) |
## What's Happening
### December Update
### May 2020 Update
We're planning to ship 0.14 before December with a handful of key bug fixes from the community. After that 0.15 will bring .msix installer support and deployment and automatic updates from the Windows Store and 0.16 will add support for X86 and ARM64 processors (including the Surface Pro X).
Our goals for 0.18 release cycle was three big items, PowerToys Run, Keyboard manager, and migrating to the new settings system. This is also the first time we'll test out the auto-updating system.
Feedback is critical. We know there are areas for improvement on PT Run. We would love feedback so we can improve. We also would love to know if you want us to be more aggressive on auto-upgrading.
- We shipped [v0.18][github-release-link]!
- New Utilities
- PowerToys Run, our new application launcher (use alt-space to activate)
- Keyboard manager, a quick easy way to remap your keyboard
- Fixed [#243](https://github.com/microsoft/PowerToys/issues/243)'s setting issue
- Improved performance on FancyZones [#1264](https://github.com/microsoft/PowerToys/issues/1264)
- Lots of bug fixes!
For [0.19](https://github.com/microsoft/PowerToys/issues?q=is%3Aopen+is%3Aissue+project%3Amicrosoft%2FPowerToys%2F4), we are proactively working on:
- Enable PT Run to be mapped to Win-Keys
- Stability / tech debt fixes
- Performance improvements with FancyZones
- A testing utility for FancyZones to be sure we can test different window configurations.
### Version 1.0 plan
Our plan for all the [goals and utilities for v1.0 detailed over here in the wiki][v1].
## Developer Guidance
### Build Prerequisites
* Windows 10 1803 (build 10.0.17134.0) or above to build and run PowerToys.
* Visual Studio 2019 Community edition or higher, with the 'Desktop Development with C++' component and the Windows 10 SDK version 10.0.18362.0 or higher.
### Building the Code
* 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.
### Prerequisites to Build the Installer
* Install the [WiX Toolset Visual Studio 2019 Extension](https://marketplace.visualstudio.com/items?itemName=RobMensching.WiXToolset).
* Install the [WiX Toolset build tools](https://wixtoolset.org/releases/).
### Building the .msi Installer
* From the `installer` folder open `PowerToysSetup.sln` in Visual Studio, in the `Solutions Configuration` drop-down menu select `Release` or `Debug`, from the `Build` menu choose `Build Solution`.
* The resulting `PowerToysSetup.msi` installer will be available in the `installer\PowerToysSetup\x64\Release\` folder.
### Debugging
The following configuration issue only applies if the user is a member of the Administrators group.
Some PowerToys modules require being run with the highest permission level if the current user is a member of the Administrators group. The highest permission level is required to be able to perform some actions when an elevated application (e.g. Task Manager) is in the foreground or is the target of an action. Without elevated privileges some PowerToys modules will still work but with some limitations:
* the `FancyZones` module will be not be able to move an elevated window to a zone.
* the `Shortcut Guide` module will not appear if the foreground window belongs to an elevated application.
To run and debug PowerToys from Visual Studio when the user is a member of the Administrators group, Visual Studio has to be started with elevated privileges. If you want to avoid running Visual Studio with elevated privileges and don't mind the limitations described above, you can do the following: open the `runner` project properties and navigate to the `Linker -> Manifest File` settings, edit the `UAC Execution Level` property and change it from `highestAvailable (level='highestAvailable')` to `asInvoker (/level='asInvoker')`, save the changes.
### How to create new PowerToys
See the instructions on [how to install the PowerToys Module project template](tools/project_template). <br />
Specifications for the [PowerToys settings API](doc/specs/PowerToys-settings.md).
### Coding Guidance
Please review these brief docs below relating to our coding standards etc.
> 👉 If you find something missing from these docs, feel free to contribute to any of our documentation files anywhere in the repository (or make some new ones\!)
This is a work in progress as we learn what we'll need to provide people in order to be effective contributors to our project.
* [Coding Style](doc/coding/style.md)
* [Code Organization](doc/coding/organization.md)
Please read the [developer docs](/doc/devdocs) for a detailed breakdown.
## Contributing
This project welcomes contributions and suggestions and we are excited to work with the power user community to build a set of tools for helping you get the most out of Windows.
This project welcomes contributions of all times. Help spec'ing, design, documentation, finding bugs are ways everyone can help on top of coding features / bug fixes. We are excited to work with the power user community to build a set of tools for helping you get the most out of Windows.
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.
> ⚠ **Note**: PowerToys is still a nascent project and the team is actively working out of this repository. We will be periodically re-structuring 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**.
### ⚠ State of code ⚠
> ⚠ **License Info**: Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.
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**.
When you submit a pull request, a CLA-bot will automatically determine whether you need to provide
a CLA and decorate the PR appropriately (e.g. status check, comment). Simply follow the instructions
provided by the bot. You will only need to do this once across all repos using our CLA.
### License Info
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.
## Code of Conduct
This project has adopted the [Microsoft Open Source Code of Conduct][conduct-code]. For more information see the [Code of Conduct FAQ][conduct-FAQ] or contact [opencode@microsoft.com][conduct-email] with any additional questions or comments.
[conduct-code]: https://opensource.microsoft.com/codeofconduct/
[conduct-FAQ]: https://opensource.microsoft.com/codeofconduct/faq/
[conduct-email]: mailto:opencode@microsoft.com
This project has adopted the [Microsoft Open Source Code of Conduct][oss-conduct-code].
## Privacy Statement
The application logs basic telemetry. Our Telemetry Data page (Coming Soon) has the trends from the telemetry. Please read the [Microsoft privacy statement](http://go.microsoft.com/fwlink/?LinkId=521839) 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][privacyLink] for more information.
[oss-CLA]: https://cla.opensource.microsoft.com
[oss-conduct-code]: CODE_OF_CONDUCT.md
[github-release-link]: https://github.com/microsoft/PowerToys/releases/
[v1]: https://github.com/microsoft/PowerToys/wiki/Version-1.0-Strategy
[privacyLink]: http://go.microsoft.com/fwlink/?LinkId=521839

View File

@@ -0,0 +1,53 @@
param (
[switch]$all = $false
)
if(!(Get-Command "git" -ErrorAction SilentlyContinue)) {
throw "You need to have a git in path to be able to format only the dirty files!"
}
$clangFormat = "clang-format.exe"
if(!(Get-Command $clangFormat -ErrorAction SilentlyContinue)) {
Write-Information "Can't find clang-format.exe in %PATH%, trying to use %VCINSTALLDIR%..."
$clangFormat="$env:VCINSTALLDIR\Tools\Llvm\bin\clang-format.exe"
if(!(Test-Path -Path $clangFormat -PathType leaf)) {
throw "Can't find clang-format.exe executable. Make sure you either have it in %PATH% or run this script from vcvars.bat!"
}
}
$sourceExtensions = New-Object System.Collections.Generic.HashSet[string]
$sourceExtensions.Add(".cpp") | Out-Null
$sourceExtensions.Add(".h") | Out-Null
function Get-Dirty-Files-From-Git() {
$repo_root = & git rev-parse --show-toplevel
$staged = & git diff --name-only --diff-filter=d --cached | % { $repo_root + "/" + $_ }
$unstaged = & git ls-files -m
$untracked = & git ls-files --others --exclude-standard
$result = New-Object System.Collections.Generic.List[string]
$staged, $unstaged, $untracked | % {
$_.Split(" ") |
where {$sourceExtensions.Contains((Get-Item $_).Extension)} |
foreach {$result.Add($_)}
}
return $result
}
if($all) {
$filesToFormat =
Get-ChildItem -Recurse -File ..\src |
Resolve-Path -Relative |
where { (Get-Item $_).Directory -notmatch "(Generated Files)|node_modules" -And
$sourceExtensions.Contains((Get-Item $_).Extension)}
}
else {
$filesToFormat = Get-Dirty-Files-From-Git
}
$filesToFormat | % {
Write-Host "Formatting $_"
& $clangFormat -i -style=file -fallback-style=none $_ 2>&1
}
Write-Host "Done!"

13
community.md Normal file
View File

@@ -0,0 +1,13 @@
# Community
The PowerToys team is extremely grateful to have the support of an amazing active community. The work you do is incredibly important. PowerToys wouldnt be near what it is without your help filing bugs, updating documentation, guiding the design, or writing features. We want to say thanks and to recognize your work. This is a living document dedicated to highlighting the high impact community members and their contributions.
## High impact community members
### [@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).
### [@riverar](https://github.com/riverar) - [Rafael Rivera](https://withinrafael.com/)
Rafael has helped do the [upgrade from CppWinRT 1.x to 2.0](https://github.com/microsoft/PowerToys/issues/1907). He directly provided feedback to the CppWinRT team for bugs from this migration as well.

View File

@@ -1,12 +0,0 @@
# C++ Rest SDK - JSON library
This JSON library is taken from the C++ REST SDK in https://github.com/microsoft/cpprestsdk
Based in the [v2.10.13 release](https://github.com/microsoft/cpprestsdk/tree/v2.10.13/Release), it consists of the needed files to build and use the JSON classes described in `include/cpprest/json.h`.
Changes made to the files in order to build in the PowerToys project:
- Removal of `#include` references to files that are not needed.
- `#include "pch.h"` instead of `#include "stdafx.h"` to use the PowerToys pre-compiled header.
- `#define _NO_ASYNCRTIMP` in [`include/cpprest/details/cpprest_compat.h`](./include/cpprest/details/cpprest_compat.h) since this class will be statically linked.
The contents of the C++ Rest SDK license are included in [license.txt](./license.txt).

View File

@@ -1,697 +0,0 @@
/***
* Copyright (C) Microsoft. All rights reserved.
* Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
*
* =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
*
* Various common utilities.
*
* For the latest on this and related APIs, please see: https://github.com/Microsoft/cpprestsdk
*
* =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
****/
#pragma once
#include "cpprest/details/basic_types.h"
//#include "pplx/pplxtasks.h"
#include <chrono>
#include <cstdint>
#include <limits.h>
#include <locale.h>
#include <random>
#include <string>
#include <system_error>
#include <vector>
#ifndef _WIN32
#include <sys/time.h>
#if !defined(ANDROID) && !defined(__ANDROID__) && defined(HAVE_XLOCALE_H) // CodePlex 269
/* Systems using glibc: xlocale.h has been removed from glibc 2.26
The above include of locale.h is sufficient
Further details: https://sourceware.org/git/?p=glibc.git;a=commit;h=f0be25b6336db7492e47d2e8e72eb8af53b5506d */
#include <xlocale.h>
#endif
#endif
/// Various utilities for string conversions and date and time manipulation.
namespace utility
{
// Left over from VS2010 support, remains to avoid breaking.
typedef std::chrono::seconds seconds;
/// Functions for converting to/from std::chrono::seconds to xml string.
namespace timespan
{
/// <summary>
/// Converts a timespan/interval in seconds to xml duration string as specified by
/// http://www.w3.org/TR/xmlschema-2/#duration
/// </summary>
_ASYNCRTIMP utility::string_t __cdecl seconds_to_xml_duration(utility::seconds numSecs);
/// <summary>
/// Converts an xml duration to timespan/interval in seconds
/// http://www.w3.org/TR/xmlschema-2/#duration
/// </summary>
_ASYNCRTIMP utility::seconds __cdecl xml_duration_to_seconds(const utility::string_t& timespanString);
} // namespace timespan
/// Functions for Unicode string conversions.
namespace conversions
{
/// <summary>
/// Converts a UTF-16 string to a UTF-8 string.
/// </summary>
/// <param name="w">A two byte character UTF-16 string.</param>
/// <returns>A single byte character UTF-8 string.</returns>
_ASYNCRTIMP std::string __cdecl utf16_to_utf8(const utf16string& w);
/// <summary>
/// Converts a UTF-8 string to a UTF-16
/// </summary>
/// <param name="s">A single byte character UTF-8 string.</param>
/// <returns>A two byte character UTF-16 string.</returns>
_ASYNCRTIMP utf16string __cdecl utf8_to_utf16(const std::string& s);
/// <summary>
/// Converts a ASCII (us-ascii) string to a UTF-16 string.
/// </summary>
/// <param name="s">A single byte character us-ascii string.</param>
/// <returns>A two byte character UTF-16 string.</returns>
_ASYNCRTIMP utf16string __cdecl usascii_to_utf16(const std::string& s);
/// <summary>
/// Converts a Latin1 (iso-8859-1) string to a UTF-16 string.
/// </summary>
/// <param name="s">A single byte character UTF-8 string.</param>
/// <returns>A two byte character UTF-16 string.</returns>
_ASYNCRTIMP utf16string __cdecl latin1_to_utf16(const std::string& s);
/// <summary>
/// Converts a Latin1 (iso-8859-1) string to a UTF-8 string.
/// </summary>
/// <param name="s">A single byte character UTF-8 string.</param>
/// <returns>A single byte character UTF-8 string.</returns>
_ASYNCRTIMP utf8string __cdecl latin1_to_utf8(const std::string& s);
/// <summary>
/// Converts to a platform dependent Unicode string type.
/// </summary>
/// <param name="s">A single byte character UTF-8 string.</param>
/// <returns>A platform dependent string type.</returns>
#ifdef _UTF16_STRINGS
_ASYNCRTIMP utility::string_t __cdecl to_string_t(std::string&& s);
#else
inline utility::string_t&& to_string_t(std::string&& s) { return std::move(s); }
#endif
/// <summary>
/// Converts to a platform dependent Unicode string type.
/// </summary>
/// <param name="s">A two byte character UTF-16 string.</param>
/// <returns>A platform dependent string type.</returns>
#ifdef _UTF16_STRINGS
inline utility::string_t&& to_string_t(utf16string&& s) { return std::move(s); }
#else
_ASYNCRTIMP utility::string_t __cdecl to_string_t(utf16string&& s);
#endif
/// <summary>
/// Converts to a platform dependent Unicode string type.
/// </summary>
/// <param name="s">A single byte character UTF-8 string.</param>
/// <returns>A platform dependent string type.</returns>
#ifdef _UTF16_STRINGS
_ASYNCRTIMP utility::string_t __cdecl to_string_t(const std::string& s);
#else
inline const utility::string_t& to_string_t(const std::string& s) { return s; }
#endif
/// <summary>
/// Converts to a platform dependent Unicode string type.
/// </summary>
/// <param name="s">A two byte character UTF-16 string.</param>
/// <returns>A platform dependent string type.</returns>
#ifdef _UTF16_STRINGS
inline const utility::string_t& to_string_t(const utf16string& s) { return s; }
#else
_ASYNCRTIMP utility::string_t __cdecl to_string_t(const utf16string& s);
#endif
/// <summary>
/// Converts to a UTF-16 from string.
/// </summary>
/// <param name="value">A single byte character UTF-8 string.</param>
/// <returns>A two byte character UTF-16 string.</returns>
_ASYNCRTIMP utf16string __cdecl to_utf16string(const std::string& value);
/// <summary>
/// Converts to a UTF-16 from string.
/// </summary>
/// <param name="value">A two byte character UTF-16 string.</param>
/// <returns>A two byte character UTF-16 string.</returns>
inline const utf16string& to_utf16string(const utf16string& value) { return value; }
/// <summary>
/// Converts to a UTF-16 from string.
/// </summary>
/// <param name="value">A two byte character UTF-16 string.</param>
/// <returns>A two byte character UTF-16 string.</returns>
inline utf16string&& to_utf16string(utf16string&& value) { return std::move(value); }
/// <summary>
/// Converts to a UTF-8 string.
/// </summary>
/// <param name="value">A single byte character UTF-8 string.</param>
/// <returns>A single byte character UTF-8 string.</returns>
inline std::string&& to_utf8string(std::string&& value) { return std::move(value); }
/// <summary>
/// Converts to a UTF-8 string.
/// </summary>
/// <param name="value">A single byte character UTF-8 string.</param>
/// <returns>A single byte character UTF-8 string.</returns>
inline const std::string& to_utf8string(const std::string& value) { return value; }
/// <summary>
/// Converts to a UTF-8 string.
/// </summary>
/// <param name="value">A two byte character UTF-16 string.</param>
/// <returns>A single byte character UTF-8 string.</returns>
_ASYNCRTIMP std::string __cdecl to_utf8string(const utf16string& value);
/// <summary>
/// Encode the given byte array into a base64 string
/// </summary>
_ASYNCRTIMP utility::string_t __cdecl to_base64(const std::vector<unsigned char>& data);
/// <summary>
/// Encode the given 8-byte integer into a base64 string
/// </summary>
_ASYNCRTIMP utility::string_t __cdecl to_base64(uint64_t data);
/// <summary>
/// Decode the given base64 string to a byte array
/// </summary>
_ASYNCRTIMP std::vector<unsigned char> __cdecl from_base64(const utility::string_t& str);
template<typename Source>
CASABLANCA_DEPRECATED("All locale-sensitive APIs will be removed in a future update. Use stringstreams directly if "
"locale support is required.")
utility::string_t print_string(const Source& val, const std::locale& loc = std::locale())
{
utility::ostringstream_t oss;
oss.imbue(loc);
oss << val;
if (oss.bad())
{
throw std::bad_cast();
}
return oss.str();
}
CASABLANCA_DEPRECATED("All locale-sensitive APIs will be removed in a future update. Use stringstreams directly if "
"locale support is required.")
inline utility::string_t print_string(const utility::string_t& val) { return val; }
namespace details
{
#if defined(__ANDROID__)
template<class T>
inline std::string to_string(const T t)
{
std::ostringstream os;
os.imbue(std::locale::classic());
os << t;
return os.str();
}
#endif
template<class T>
inline utility::string_t to_string_t(const T t)
{
#ifdef _UTF16_STRINGS
using std::to_wstring;
return to_wstring(t);
#else
#if !defined(__ANDROID__)
using std::to_string;
#endif
return to_string(t);
#endif
}
template<typename Source>
utility::string_t print_string(const Source& val)
{
utility::ostringstream_t oss;
oss.imbue(std::locale::classic());
oss << val;
if (oss.bad())
{
throw std::bad_cast();
}
return oss.str();
}
inline const utility::string_t& print_string(const utility::string_t& val) { return val; }
template<typename Source>
utf8string print_utf8string(const Source& val)
{
return conversions::to_utf8string(print_string(val));
}
inline const utf8string& print_utf8string(const utf8string& val) { return val; }
template<typename Target>
Target scan_string(const utility::string_t& str)
{
Target t;
utility::istringstream_t iss(str);
iss.imbue(std::locale::classic());
iss >> t;
if (iss.bad())
{
throw std::bad_cast();
}
return t;
}
inline const utility::string_t& scan_string(const utility::string_t& str) { return str; }
} // namespace details
template<typename Target>
CASABLANCA_DEPRECATED("All locale-sensitive APIs will be removed in a future update. Use stringstreams directly if "
"locale support is required.")
Target scan_string(const utility::string_t& str, const std::locale& loc = std::locale())
{
Target t;
utility::istringstream_t iss(str);
iss.imbue(loc);
iss >> t;
if (iss.bad())
{
throw std::bad_cast();
}
return t;
}
CASABLANCA_DEPRECATED("All locale-sensitive APIs will be removed in a future update. Use stringstreams directly if "
"locale support is required.")
inline utility::string_t scan_string(const utility::string_t& str) { return str; }
} // namespace conversions
namespace details
{
/// <summary>
/// Cross platform RAII container for setting thread local locale.
/// </summary>
class scoped_c_thread_locale
{
public:
_ASYNCRTIMP scoped_c_thread_locale();
_ASYNCRTIMP ~scoped_c_thread_locale();
#if !defined(ANDROID) && !defined(__ANDROID__) // CodePlex 269
#ifdef _WIN32
typedef _locale_t xplat_locale;
#else
typedef locale_t xplat_locale;
#endif
static _ASYNCRTIMP xplat_locale __cdecl c_locale();
#endif
private:
#ifdef _WIN32
std::string m_prevLocale;
int m_prevThreadSetting;
#elif !(defined(ANDROID) || defined(__ANDROID__))
locale_t m_prevLocale;
#endif
scoped_c_thread_locale(const scoped_c_thread_locale&);
scoped_c_thread_locale& operator=(const scoped_c_thread_locale&);
};
/// <summary>
/// Our own implementation of alpha numeric instead of std::isalnum to avoid
/// taking global lock for performance reasons.
/// </summary>
inline bool __cdecl is_alnum(const unsigned char uch) CPPREST_NOEXCEPT
{ // test if uch is an alnum character
// special casing char to avoid branches
// clang-format off
static CPPREST_CONSTEXPR bool is_alnum_table[UCHAR_MAX + 1] = {
/* X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 XA XB XC XD XE XF */
/* 0X */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 1X */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 2X */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 3X */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, /* 0-9 */
/* 4X */ 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* A-Z */
/* 5X */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
/* 6X */ 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* a-z */
/* 7X */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0
/* non-ASCII values initialized to 0 */
};
// clang-format on
return (is_alnum_table[uch]);
}
/// <summary>
/// Our own implementation of alpha numeric instead of std::isalnum to avoid
/// taking global lock for performance reasons.
/// </summary>
inline bool __cdecl is_alnum(const char ch) CPPREST_NOEXCEPT { return (is_alnum(static_cast<unsigned char>(ch))); }
/// <summary>
/// Our own implementation of alpha numeric instead of std::isalnum to avoid
/// taking global lock for performance reasons.
/// </summary>
template<class Elem>
inline bool __cdecl is_alnum(Elem ch) CPPREST_NOEXCEPT
{
// assumes 'x' == L'x' for the ASCII range
typedef typename std::make_unsigned<Elem>::type UElem;
const auto uch = static_cast<UElem>(ch);
return (uch <= static_cast<UElem>('z') && is_alnum(static_cast<unsigned char>(uch)));
}
/// <summary>
/// Simplistic implementation of make_unique. A better implementation would be based on variadic templates
/// and therefore not be compatible with Dev10.
/// </summary>
template<typename _Type>
std::unique_ptr<_Type> make_unique()
{
return std::unique_ptr<_Type>(new _Type());
}
template<typename _Type, typename _Arg1>
std::unique_ptr<_Type> make_unique(_Arg1&& arg1)
{
return std::unique_ptr<_Type>(new _Type(std::forward<_Arg1>(arg1)));
}
template<typename _Type, typename _Arg1, typename _Arg2>
std::unique_ptr<_Type> make_unique(_Arg1&& arg1, _Arg2&& arg2)
{
return std::unique_ptr<_Type>(new _Type(std::forward<_Arg1>(arg1), std::forward<_Arg2>(arg2)));
}
template<typename _Type, typename _Arg1, typename _Arg2, typename _Arg3>
std::unique_ptr<_Type> make_unique(_Arg1&& arg1, _Arg2&& arg2, _Arg3&& arg3)
{
return std::unique_ptr<_Type>(
new _Type(std::forward<_Arg1>(arg1), std::forward<_Arg2>(arg2), std::forward<_Arg3>(arg3)));
}
template<typename _Type, typename _Arg1, typename _Arg2, typename _Arg3, typename _Arg4>
std::unique_ptr<_Type> make_unique(_Arg1&& arg1, _Arg2&& arg2, _Arg3&& arg3, _Arg4&& arg4)
{
return std::unique_ptr<_Type>(new _Type(
std::forward<_Arg1>(arg1), std::forward<_Arg2>(arg2), std::forward<_Arg3>(arg3), std::forward<_Arg4>(arg4)));
}
template<typename _Type, typename _Arg1, typename _Arg2, typename _Arg3, typename _Arg4, typename _Arg5>
std::unique_ptr<_Type> make_unique(_Arg1&& arg1, _Arg2&& arg2, _Arg3&& arg3, _Arg4&& arg4, _Arg5&& arg5)
{
return std::unique_ptr<_Type>(new _Type(std::forward<_Arg1>(arg1),
std::forward<_Arg2>(arg2),
std::forward<_Arg3>(arg3),
std::forward<_Arg4>(arg4),
std::forward<_Arg5>(arg5)));
}
template<typename _Type, typename _Arg1, typename _Arg2, typename _Arg3, typename _Arg4, typename _Arg5, typename _Arg6>
std::unique_ptr<_Type> make_unique(_Arg1&& arg1, _Arg2&& arg2, _Arg3&& arg3, _Arg4&& arg4, _Arg5&& arg5, _Arg6&& arg6)
{
return std::unique_ptr<_Type>(new _Type(std::forward<_Arg1>(arg1),
std::forward<_Arg2>(arg2),
std::forward<_Arg3>(arg3),
std::forward<_Arg4>(arg4),
std::forward<_Arg5>(arg5),
std::forward<_Arg6>(arg6)));
}
/// <summary>
/// Cross platform utility function for performing case insensitive string equality comparison.
/// </summary>
/// <param name="left">First string to compare.</param>
/// <param name="right">Second strong to compare.</param>
/// <returns>true if the strings are equivalent, false otherwise</returns>
_ASYNCRTIMP bool __cdecl str_iequal(const std::string& left, const std::string& right) CPPREST_NOEXCEPT;
/// <summary>
/// Cross platform utility function for performing case insensitive string equality comparison.
/// </summary>
/// <param name="left">First string to compare.</param>
/// <param name="right">Second strong to compare.</param>
/// <returns>true if the strings are equivalent, false otherwise</returns>
_ASYNCRTIMP bool __cdecl str_iequal(const std::wstring& left, const std::wstring& right) CPPREST_NOEXCEPT;
/// <summary>
/// Cross platform utility function for performing case insensitive string less-than comparison.
/// </summary>
/// <param name="left">First string to compare.</param>
/// <param name="right">Second strong to compare.</param>
/// <returns>true if a lowercase view of left is lexicographically less than a lowercase view of right; otherwise,
/// false.</returns>
_ASYNCRTIMP bool __cdecl str_iless(const std::string& left, const std::string& right) CPPREST_NOEXCEPT;
/// <summary>
/// Cross platform utility function for performing case insensitive string less-than comparison.
/// </summary>
/// <param name="left">First string to compare.</param>
/// <param name="right">Second strong to compare.</param>
/// <returns>true if a lowercase view of left is lexicographically less than a lowercase view of right; otherwise,
/// false.</returns>
_ASYNCRTIMP bool __cdecl str_iless(const std::wstring& left, const std::wstring& right) CPPREST_NOEXCEPT;
/// <summary>
/// Convert a string to lowercase in place.
/// </summary>
/// <param name="target">The string to convert to lowercase.</param>
_ASYNCRTIMP void __cdecl inplace_tolower(std::string& target) CPPREST_NOEXCEPT;
/// <summary>
/// Convert a string to lowercase in place.
/// </summary>
/// <param name="target">The string to convert to lowercase.</param>
_ASYNCRTIMP void __cdecl inplace_tolower(std::wstring& target) CPPREST_NOEXCEPT;
#ifdef _WIN32
/// <summary>
/// Category error type for Windows OS errors.
/// </summary>
class windows_category_impl : public std::error_category
{
public:
virtual const char* name() const CPPREST_NOEXCEPT { return "windows"; }
virtual std::string message(int errorCode) const CPPREST_NOEXCEPT;
virtual std::error_condition default_error_condition(int errorCode) const CPPREST_NOEXCEPT;
};
/// <summary>
/// Gets the one global instance of the windows error category.
/// </summary>
/// </returns>An error category instance.</returns>
_ASYNCRTIMP const std::error_category& __cdecl windows_category();
#else
/// <summary>
/// Gets the one global instance of the linux error category.
/// </summary>
/// </returns>An error category instance.</returns>
_ASYNCRTIMP const std::error_category& __cdecl linux_category();
#endif
/// <summary>
/// Gets the one global instance of the current platform's error category.
/// </summary>
_ASYNCRTIMP const std::error_category& __cdecl platform_category();
/// <summary>
/// Creates an instance of std::system_error from a OS error code.
/// </summary>
inline std::system_error __cdecl create_system_error(unsigned long errorCode)
{
std::error_code code((int)errorCode, platform_category());
return std::system_error(code, code.message());
}
/// <summary>
/// Creates a std::error_code from a OS error code.
/// </summary>
inline std::error_code __cdecl create_error_code(unsigned long errorCode)
{
return std::error_code((int)errorCode, platform_category());
}
/// <summary>
/// Creates the corresponding error message from a OS error code.
/// </summary>
inline utility::string_t __cdecl create_error_message(unsigned long errorCode)
{
return utility::conversions::to_string_t(create_error_code(errorCode).message());
}
} // namespace details
class datetime
{
public:
typedef uint64_t interval_type;
/// <summary>
/// Defines the supported date and time string formats.
/// </summary>
enum date_format
{
RFC_1123,
ISO_8601
};
/// <summary>
/// Returns the current UTC time.
/// </summary>
static _ASYNCRTIMP datetime __cdecl utc_now();
/// <summary>
/// An invalid UTC timestamp value.
/// </summary>
enum : interval_type
{
utc_timestamp_invalid = static_cast<interval_type>(-1)
};
/// <summary>
/// Returns seconds since Unix/POSIX time epoch at 01-01-1970 00:00:00.
/// If time is before epoch, utc_timestamp_invalid is returned.
/// </summary>
static interval_type utc_timestamp()
{
const auto seconds = utc_now().to_interval() / _secondTicks;
if (seconds >= 11644473600LL)
{
return seconds - 11644473600LL;
}
else
{
return utc_timestamp_invalid;
}
}
datetime() : m_interval(0) {}
/// <summary>
/// Creates <c>datetime</c> from a string representing time in UTC in RFC 1123 format.
/// </summary>
/// <returns>Returns a <c>datetime</c> of zero if not successful.</returns>
static _ASYNCRTIMP datetime __cdecl from_string(const utility::string_t& timestring, date_format format = RFC_1123);
/// <summary>
/// Returns a string representation of the <c>datetime</c>.
/// </summary>
_ASYNCRTIMP utility::string_t to_string(date_format format = RFC_1123) const;
/// <summary>
/// Returns the integral time value.
/// </summary>
interval_type to_interval() const { return m_interval; }
datetime operator-(interval_type value) const { return datetime(m_interval - value); }
datetime operator+(interval_type value) const { return datetime(m_interval + value); }
bool operator==(datetime dt) const { return m_interval == dt.m_interval; }
bool operator!=(const datetime& dt) const { return !(*this == dt); }
static interval_type from_milliseconds(unsigned int milliseconds) { return milliseconds * _msTicks; }
static interval_type from_seconds(unsigned int seconds) { return seconds * _secondTicks; }
static interval_type from_minutes(unsigned int minutes) { return minutes * _minuteTicks; }
static interval_type from_hours(unsigned int hours) { return hours * _hourTicks; }
static interval_type from_days(unsigned int days) { return days * _dayTicks; }
bool is_initialized() const { return m_interval != 0; }
private:
friend int operator-(datetime t1, datetime t2);
static const interval_type _msTicks = static_cast<interval_type>(10000);
static const interval_type _secondTicks = 1000 * _msTicks;
static const interval_type _minuteTicks = 60 * _secondTicks;
static const interval_type _hourTicks = 60 * 60 * _secondTicks;
static const interval_type _dayTicks = 24 * 60 * 60 * _secondTicks;
// Private constructor. Use static methods to create an instance.
datetime(interval_type interval) : m_interval(interval) {}
// Storing as hundreds of nanoseconds 10e-7, i.e. 1 here equals 100ns.
interval_type m_interval;
};
inline int operator-(datetime t1, datetime t2)
{
auto diff = (t1.m_interval - t2.m_interval);
// Round it down to seconds
diff /= 10 * 1000 * 1000;
return static_cast<int>(diff);
}
/// <summary>
/// Nonce string generator class.
/// </summary>
class nonce_generator
{
public:
/// <summary>
/// Define default nonce length.
/// </summary>
enum
{
default_length = 32
};
/// <summary>
/// Nonce generator constructor.
/// </summary>
/// <param name="length">Length of the generated nonce string.</param>
nonce_generator(int length = default_length)
: m_random(static_cast<unsigned int>(utility::datetime::utc_timestamp())), m_length(length)
{
}
/// <summary>
/// Generate a nonce string containing random alphanumeric characters (A-Za-z0-9).
/// Length of the generated string is set by length().
/// </summary>
/// <returns>The generated nonce string.</returns>
_ASYNCRTIMP utility::string_t generate();
/// <summary>
/// Get length of generated nonce string.
/// </summary>
/// <returns>Nonce string length.</returns>
int length() const { return m_length; }
/// <summary>
/// Set length of the generated nonce string.
/// </summary>
/// <param name="length">Lenght of nonce string.</param>
void set_length(int length) { m_length = length; }
private:
std::mt19937 m_random;
int m_length;
};
} // namespace utility

View File

@@ -1,391 +0,0 @@
/***
* Copyright (C) Microsoft. All rights reserved.
* Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
*
* =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
*
* Protocol independent support for URIs.
*
* For the latest on this and related APIs, please see: https://github.com/Microsoft/cpprestsdk
*
* =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
****/
#pragma once
#include "cpprest/asyncrt_utils.h"
#include "cpprest/details/basic_types.h"
#include <map>
#include <string>
#include <utility>
#include <vector>
namespace web
{
namespace details
{
struct uri_components
{
uri_components() : m_path(_XPLATSTR("/")), m_port(-1) {}
uri_components(const uri_components&) = default;
uri_components& operator=(const uri_components&) = default;
// This is for VS2013 compatibility -- replace with '= default' when VS2013 is completely dropped.
uri_components(uri_components&& other) CPPREST_NOEXCEPT : m_scheme(std::move(other.m_scheme)),
m_host(std::move(other.m_host)),
m_user_info(std::move(other.m_user_info)),
m_path(std::move(other.m_path)),
m_query(std::move(other.m_query)),
m_fragment(std::move(other.m_fragment)),
m_port(other.m_port)
{
}
// This is for VS2013 compatibility -- replace with '= default' when VS2013 is completely dropped.
uri_components& operator=(uri_components&& other) CPPREST_NOEXCEPT
{
if (this != &other)
{
m_scheme = std::move(other.m_scheme);
m_host = std::move(other.m_host);
m_user_info = std::move(other.m_user_info);
m_path = std::move(other.m_path);
m_query = std::move(other.m_query);
m_fragment = std::move(other.m_fragment);
m_port = other.m_port;
}
return *this;
}
_ASYNCRTIMP utility::string_t join();
utility::string_t m_scheme;
utility::string_t m_host;
utility::string_t m_user_info;
utility::string_t m_path;
utility::string_t m_query;
utility::string_t m_fragment;
int m_port;
};
} // namespace details
/// <summary>
/// A single exception type to represent errors in parsing, encoding, and decoding URIs.
/// </summary>
class uri_exception : public std::exception
{
public:
uri_exception(std::string msg) : m_msg(std::move(msg)) {}
~uri_exception() CPPREST_NOEXCEPT {}
const char* what() const CPPREST_NOEXCEPT { return m_msg.c_str(); }
private:
std::string m_msg;
};
/// <summary>
/// A flexible, protocol independent URI implementation.
///
/// URI instances are immutable. Querying the various fields on an empty URI will return empty strings. Querying
/// various diagnostic members on an empty URI will return false.
/// </summary>
/// <remarks>
/// This implementation accepts both URIs ('http://msn.com/path') and URI relative-references
/// ('/path?query#frag').
///
/// This implementation does not provide any scheme-specific handling -- an example of this
/// would be the following: 'http://path1/path'. This is a valid URI, but it's not a valid
/// http-uri -- that is, it's syntactically correct but does not conform to the requirements
/// of the http scheme (http requires a host).
/// We could provide this by allowing a pluggable 'scheme' policy-class, which would provide
/// extra capability for validating and canonicalizing a URI according to scheme, and would
/// introduce a layer of type-safety for URIs of differing schemes, and thus differing semantics.
///
/// One issue with implementing a scheme-independent URI facility is that of comparing for equality.
/// For instance, these URIs are considered equal 'http://msn.com', 'http://msn.com:80'. That is --
/// the 'default' port can be either omitted or explicit. Since we don't have a way to map a scheme
/// to it's default port, we don't have a way to know these are equal. This is just one of a class of
/// issues with regard to scheme-specific behavior.
/// </remarks>
class uri
{
public:
/// <summary>
/// The various components of a URI. This enum is used to indicate which
/// URI component is being encoded to the encode_uri_component. This allows
/// specific encoding to be performed.
///
/// Scheme and port don't allow '%' so they don't need to be encoded.
/// </summary>
class components
{
public:
enum component
{
user_info,
host,
path,
query,
fragment,
full_uri
};
};
/// <summary>
/// Encodes a URI component according to RFC 3986.
/// Note if a full URI is specified instead of an individual URI component all
/// characters not in the unreserved set are escaped.
/// </summary>
/// <param name="raw">The URI as a string.</param>
/// <returns>The encoded string.</returns>
_ASYNCRTIMP static utility::string_t __cdecl encode_uri(const utility::string_t& raw,
uri::components::component = components::full_uri);
/// <summary>
/// Encodes a string by converting all characters except for RFC 3986 unreserved characters to their
/// hexadecimal representation.
/// </summary>
/// <returns>The encoded string.</returns>
_ASYNCRTIMP static utility::string_t __cdecl encode_data_string(const utility::string_t& data);
/// <summary>
/// Decodes an encoded string.
/// </summary>
/// <param name="encoded">The URI as a string.</param>
/// <returns>The decoded string.</returns>
_ASYNCRTIMP static utility::string_t __cdecl decode(const utility::string_t& encoded);
/// <summary>
/// Splits a path into its hierarchical components.
/// </summary>
/// <param name="path">The path as a string</param>
/// <returns>A <c>std::vector&lt;utility::string_t&gt;</c> containing the segments in the path.</returns>
_ASYNCRTIMP static std::vector<utility::string_t> __cdecl split_path(const utility::string_t& path);
/// <summary>
/// Splits a query into its key-value components.
/// </summary>
/// <param name="query">The query string</param>
/// <returns>A <c>std::map&lt;utility::string_t, utility::string_t&gt;</c> containing the key-value components of
/// the query.</returns>
_ASYNCRTIMP static std::map<utility::string_t, utility::string_t> __cdecl split_query(
const utility::string_t& query);
/// <summary>
/// Validates a string as a URI.
/// </summary>
/// <remarks>
/// This function accepts both uris ('http://msn.com') and uri relative-references ('path1/path2?query').
/// </remarks>
/// <param name="uri_string">The URI string to be validated.</param>
/// <returns><c>true</c> if the given string represents a valid URI, <c>false</c> otherwise.</returns>
_ASYNCRTIMP static bool __cdecl validate(const utility::string_t& uri_string);
/// <summary>
/// Creates an empty uri
/// </summary>
uri() : m_uri(_XPLATSTR("/")) {}
/// <summary>
/// Creates a URI from the given encoded string. This will throw an exception if the string
/// does not contain a valid URI. Use uri::validate if processing user-input.
/// </summary>
/// <param name="uri_string">A pointer to an encoded string to create the URI instance.</param>
_ASYNCRTIMP uri(const utility::char_t* uri_string);
/// <summary>
/// Creates a URI from the given encoded string. This will throw an exception if the string
/// does not contain a valid URI. Use uri::validate if processing user-input.
/// </summary>
/// <param name="uri_string">An encoded URI string to create the URI instance.</param>
_ASYNCRTIMP uri(const utility::string_t& uri_string);
/// <summary>
/// Copy constructor.
/// </summary>
uri(const uri&) = default;
/// <summary>
/// Copy assignment operator.
/// </summary>
uri& operator=(const uri&) = default;
/// <summary>
/// Move constructor.
/// </summary>
// This is for VS2013 compatibility -- replace with '= default' when VS2013 is completely dropped.
uri(uri&& other) CPPREST_NOEXCEPT : m_uri(std::move(other.m_uri)), m_components(std::move(other.m_components)) {}
/// <summary>
/// Move assignment operator
/// </summary>
// This is for VS2013 compatibility -- replace with '= default' when VS2013 is completely dropped.
uri& operator=(uri&& other) CPPREST_NOEXCEPT
{
if (this != &other)
{
m_uri = std::move(other.m_uri);
m_components = std::move(other.m_components);
}
return *this;
}
/// <summary>
/// Get the scheme component of the URI as an encoded string.
/// </summary>
/// <returns>The URI scheme as a string.</returns>
const utility::string_t& scheme() const { return m_components.m_scheme; }
/// <summary>
/// Get the user information component of the URI as an encoded string.
/// </summary>
/// <returns>The URI user information as a string.</returns>
const utility::string_t& user_info() const { return m_components.m_user_info; }
/// <summary>
/// Get the host component of the URI as an encoded string.
/// </summary>
/// <returns>The URI host as a string.</returns>
const utility::string_t& host() const { return m_components.m_host; }
/// <summary>
/// Get the port component of the URI. Returns -1 if no port is specified.
/// </summary>
/// <returns>The URI port as an integer.</returns>
int port() const { return m_components.m_port; }
/// <summary>
/// Get the path component of the URI as an encoded string.
/// </summary>
/// <returns>The URI path as a string.</returns>
const utility::string_t& path() const { return m_components.m_path; }
/// <summary>
/// Get the query component of the URI as an encoded string.
/// </summary>
/// <returns>The URI query as a string.</returns>
const utility::string_t& query() const { return m_components.m_query; }
/// <summary>
/// Get the fragment component of the URI as an encoded string.
/// </summary>
/// <returns>The URI fragment as a string.</returns>
const utility::string_t& fragment() const { return m_components.m_fragment; }
/// <summary>
/// Creates a new uri object with the same authority portion as this one, omitting the resource and query portions.
/// </summary>
/// <returns>The new uri object with the same authority.</returns>
_ASYNCRTIMP uri authority() const;
/// <summary>
/// Gets the path, query, and fragment portion of this uri, which may be empty.
/// </summary>
/// <returns>The new URI object with the path, query and fragment portion of this URI.</returns>
_ASYNCRTIMP uri resource() const;
/// <summary>
/// An empty URI specifies no components, and serves as a default value
/// </summary>
bool is_empty() const { return this->m_uri.empty() || this->m_uri == _XPLATSTR("/"); }
/// <summary>
/// A loopback URI is one which refers to a hostname or ip address with meaning only on the local machine.
/// </summary>
/// <remarks>
/// Examples include "localhost", or ip addresses in the loopback range (127.0.0.0/24).
/// </remarks>
/// <returns><c>true</c> if this URI references the local host, <c>false</c> otherwise.</returns>
bool is_host_loopback() const
{
return !is_empty() &&
((host() == _XPLATSTR("localhost")) || (host().size() > 4 && host().substr(0, 4) == _XPLATSTR("127.")));
}
/// <summary>
/// A wildcard URI is one which refers to all hostnames that resolve to the local machine (using the * or +)
/// </summary>
/// <example>
/// http://*:80
/// </example>
bool is_host_wildcard() const
{
return !is_empty() && (this->host() == _XPLATSTR("*") || this->host() == _XPLATSTR("+"));
}
/// <summary>
/// A portable URI is one with a hostname that can be resolved globally (used from another machine).
/// </summary>
/// <returns><c>true</c> if this URI can be resolved globally (used from another machine), <c>false</c>
/// otherwise.</returns> <remarks> The hostname "localhost" is a reserved name that is guaranteed to resolve to the
/// local machine, and cannot be used for inter-machine communication. Likewise the hostnames "*" and "+" on Windows
/// represent wildcards, and do not map to a resolvable address.
/// </remarks>
bool is_host_portable() const { return !(is_empty() || is_host_loopback() || is_host_wildcard()); }
/// <summary>
/// A default port is one where the port is unspecified, and will be determined by the operating system.
/// The choice of default port may be dictated by the scheme (http -> 80) or not.
/// </summary>
/// <returns><c>true</c> if this URI instance has a default port, <c>false</c> otherwise.</returns>
bool is_port_default() const { return !is_empty() && this->port() == 0; }
/// <summary>
/// An "authority" URI is one with only a scheme, optional userinfo, hostname, and (optional) port.
/// </summary>
/// <returns><c>true</c> if this is an "authority" URI, <c>false</c> otherwise.</returns>
bool is_authority() const { return !is_empty() && is_path_empty() && query().empty() && fragment().empty(); }
/// <summary>
/// Returns whether the other URI has the same authority as this one
/// </summary>
/// <param name="other">The URI to compare the authority with.</param>
/// <returns><c>true</c> if both the URI's have the same authority, <c>false</c> otherwise.</returns>
bool has_same_authority(const uri& other) const { return !is_empty() && this->authority() == other.authority(); }
/// <summary>
/// Returns whether the path portion of this URI is empty
/// </summary>
/// <returns><c>true</c> if the path portion of this URI is empty, <c>false</c> otherwise.</returns>
bool is_path_empty() const { return path().empty() || path() == _XPLATSTR("/"); }
/// <summary>
/// Returns the full (encoded) URI as a string.
/// </summary>
/// <returns>The full encoded URI string.</returns>
utility::string_t to_string() const { return m_uri; }
/// <summary>
/// Returns an URI resolved against <c>this</c> as the base URI
/// according to RFC3986, Section 5 (https://tools.ietf.org/html/rfc3986#section-5).
/// </summary>
/// <param name="relativeUri">The relative URI to be resolved against <c>this</c> as base.</param>
/// <returns>The new resolved URI string.</returns>
_ASYNCRTIMP utility::string_t resolve_uri(const utility::string_t& relativeUri) const;
_ASYNCRTIMP bool operator==(const uri& other) const;
bool operator<(const uri& other) const { return m_uri < other.m_uri; }
bool operator!=(const uri& other) const { return !(this->operator==(other)); }
private:
friend class uri_builder;
/// <summary>
/// Creates a URI from the given URI components.
/// </summary>
/// <param name="components">A URI components object to create the URI instance.</param>
_ASYNCRTIMP uri(const details::uri_components& components);
// Used by uri_builder
static utility::string_t __cdecl encode_query_impl(const utf8string& raw);
utility::string_t m_uri;
details::uri_components m_components;
};
} // namespace web

File diff suppressed because it is too large Load Diff

View File

@@ -1,131 +0,0 @@
/***
* Copyright (C) Microsoft. All rights reserved.
* Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
*
* =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
*
* Platform-dependent type definitions
*
* For the latest on this and related APIs, please see: https://github.com/Microsoft/cpprestsdk
*
* =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
****/
#pragma once
#include "cpprest/details/cpprest_compat.h"
#include <fstream>
#include <iostream>
#include <sstream>
#include <string>
#ifndef _WIN32
#ifndef __STDC_LIMIT_MACROS
#define __STDC_LIMIT_MACROS
#endif
#include <stdint.h>
#else
#include <cstdint>
#endif
#include "cpprest/details/SafeInt3.hpp"
namespace utility
{
#ifdef _WIN32
#define _UTF16_STRINGS
#endif
// We should be using a 64-bit size type for most situations that do
// not involve specifying the size of a memory allocation or buffer.
typedef uint64_t size64_t;
#ifndef _WIN32
typedef uint32_t HRESULT; // Needed for PPLX
#endif
#ifdef _UTF16_STRINGS
//
// On Windows, all strings are wide
//
typedef wchar_t char_t;
typedef std::wstring string_t;
#define _XPLATSTR(x) L##x
typedef std::wostringstream ostringstream_t;
typedef std::wofstream ofstream_t;
typedef std::wostream ostream_t;
typedef std::wistream istream_t;
typedef std::wifstream ifstream_t;
typedef std::wistringstream istringstream_t;
typedef std::wstringstream stringstream_t;
#define ucout std::wcout
#define ucin std::wcin
#define ucerr std::wcerr
#else
//
// On POSIX platforms, all strings are narrow
//
typedef char char_t;
typedef std::string string_t;
#define _XPLATSTR(x) x
typedef std::ostringstream ostringstream_t;
typedef std::ofstream ofstream_t;
typedef std::ostream ostream_t;
typedef std::istream istream_t;
typedef std::ifstream ifstream_t;
typedef std::istringstream istringstream_t;
typedef std::stringstream stringstream_t;
#define ucout std::cout
#define ucin std::cin
#define ucerr std::cerr
#endif // endif _UTF16_STRINGS
#ifndef _TURN_OFF_PLATFORM_STRING
// The 'U' macro can be used to create a string or character literal of the platform type, i.e. utility::char_t.
// If you are using a library causing conflicts with 'U' macro, it can be turned off by defining the macro
// '_TURN_OFF_PLATFORM_STRING' before including the C++ REST SDK header files, and e.g. use '_XPLATSTR' instead.
#define U(x) _XPLATSTR(x)
#endif // !_TURN_OFF_PLATFORM_STRING
} // namespace utility
typedef char utf8char;
typedef std::string utf8string;
typedef std::stringstream utf8stringstream;
typedef std::ostringstream utf8ostringstream;
typedef std::ostream utf8ostream;
typedef std::istream utf8istream;
typedef std::istringstream utf8istringstream;
#ifdef _UTF16_STRINGS
typedef wchar_t utf16char;
typedef std::wstring utf16string;
typedef std::wstringstream utf16stringstream;
typedef std::wostringstream utf16ostringstream;
typedef std::wostream utf16ostream;
typedef std::wistream utf16istream;
typedef std::wistringstream utf16istringstream;
#else
typedef char16_t utf16char;
typedef std::u16string utf16string;
typedef std::basic_stringstream<utf16char> utf16stringstream;
typedef std::basic_ostringstream<utf16char> utf16ostringstream;
typedef std::basic_ostream<utf16char> utf16ostream;
typedef std::basic_istream<utf16char> utf16istream;
typedef std::basic_istringstream<utf16char> utf16istringstream;
#endif
#if defined(_WIN32)
// Include on everything except Windows Desktop ARM, unless explicitly excluded.
#if !defined(CPPREST_EXCLUDE_WEBSOCKETS)
#if defined(WINAPI_FAMILY)
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) && defined(_M_ARM)
#define CPPREST_EXCLUDE_WEBSOCKETS
#endif
#else
#if defined(_M_ARM)
#define CPPREST_EXCLUDE_WEBSOCKETS
#endif
#endif
#endif
#endif

View File

@@ -1,91 +0,0 @@
/***
* Copyright (C) Microsoft. All rights reserved.
* Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
*
* =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
*
* Standard macros and definitions.
* This header has minimal dependency on windows headers and is safe for use in the public API
*
* For the latest on this and related APIs, please see: https://github.com/Microsoft/cpprestsdk
*
* =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
****/
#pragma once
#if defined(_WIN32)
#if _MSC_VER >= 1900
#define CPPREST_NOEXCEPT noexcept
#define CPPREST_CONSTEXPR constexpr
#else
#define CPPREST_NOEXCEPT
#define CPPREST_CONSTEXPR const
#endif // _MSC_VER >= 1900
#define CASABLANCA_UNREFERENCED_PARAMETER(x) (x)
#include <sal.h>
#else // ^^^ _WIN32 ^^^ // vvv !_WIN32 vvv
#define __declspec(x) __attribute__((x))
#define dllimport
#define novtable /* no novtable equivalent */
#define __assume(x) \
do \
{ \
if (!(x)) __builtin_unreachable(); \
} while (false)
#define CASABLANCA_UNREFERENCED_PARAMETER(x) (void)x
#define CPPREST_NOEXCEPT noexcept
#define CPPREST_CONSTEXPR constexpr
#include <assert.h>
#define _ASSERTE(x) assert(x)
// No SAL on non Windows platforms
#include "cpprest/details/nosal.h"
#if !defined(__cdecl)
#if defined(cdecl)
#define __cdecl __attribute__((cdecl))
#else // ^^^ defined cdecl ^^^ // vvv !defined cdecl vvv
#define __cdecl
#endif // defined cdecl
#endif // not defined __cdecl
#if defined(__ANDROID__)
// This is needed to disable the use of __thread inside the boost library.
// Android does not support thread local storage -- if boost is included
// without this macro defined, it will create references to __tls_get_addr
// which (while able to link) will not be available at runtime and prevent
// the .so from loading.
#if not defined BOOST_ASIO_DISABLE_THREAD_KEYWORD_EXTENSION
#define BOOST_ASIO_DISABLE_THREAD_KEYWORD_EXTENSION
#endif // not defined BOOST_ASIO_DISABLE_THREAD_KEYWORD_EXTENSION
#endif // defined(__ANDROID__)
#ifdef __clang__
#include <cstdio>
#endif // __clang__
#endif // _WIN32
#define _NO_ASYNCRTIMP
#ifdef _NO_ASYNCRTIMP
#define _ASYNCRTIMP
#else // ^^^ _NO_ASYNCRTIMP ^^^ // vvv !_NO_ASYNCRTIMP vvv
#ifdef _ASYNCRT_EXPORT
#define _ASYNCRTIMP __declspec(dllexport)
#else // ^^^ _ASYNCRT_EXPORT ^^^ // vvv !_ASYNCRT_EXPORT vvv
#define _ASYNCRTIMP __declspec(dllimport)
#endif // _ASYNCRT_EXPORT
#endif // _NO_ASYNCRTIMP
#ifdef CASABLANCA_DEPRECATION_NO_WARNINGS
#define CASABLANCA_DEPRECATED(x)
#else
#define CASABLANCA_DEPRECATED(x) __declspec(deprecated(x))
#endif // CASABLANCA_DEPRECATION_NO_WARNINGS

View File

@@ -1,223 +0,0 @@
/***
* Copyright (C) Microsoft. All rights reserved.
* Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
*
* =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
*
* utility classes used by the different web:: clients
*
* =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
****/
#pragma once
#include "cpprest/asyncrt_utils.h"
#include "cpprest/uri.h"
namespace web
{
namespace details
{
class zero_memory_deleter
{
public:
_ASYNCRTIMP void operator()(::utility::string_t* data) const;
};
typedef std::unique_ptr<::utility::string_t, zero_memory_deleter> plaintext_string;
#if defined(_WIN32) && !defined(CPPREST_TARGET_XP)
#if defined(__cplusplus_winrt)
class winrt_encryption
{
public:
winrt_encryption() {}
_ASYNCRTIMP winrt_encryption(const std::wstring& data);
_ASYNCRTIMP plaintext_string decrypt() const;
private:
::pplx::task<Windows::Storage::Streams::IBuffer ^> m_buffer;
};
#else
class win32_encryption
{
public:
win32_encryption() {}
_ASYNCRTIMP win32_encryption(const std::wstring& data);
_ASYNCRTIMP ~win32_encryption();
_ASYNCRTIMP plaintext_string decrypt() const;
private:
std::vector<char> m_buffer;
size_t m_numCharacters;
};
#endif
#endif
} // namespace details
/// <summary>
/// Represents a set of user credentials (user name and password) to be used
/// for authentication.
/// </summary>
class credentials
{
public:
/// <summary>
/// Constructs an empty set of credentials without a user name or password.
/// </summary>
credentials() {}
/// <summary>
/// Constructs credentials from given user name and password.
/// </summary>
/// <param name="username">User name as a string.</param>
/// <param name="password">Password as a string.</param>
credentials(utility::string_t username, const utility::string_t& password)
: m_username(std::move(username)), m_password(password)
{
}
/// <summary>
/// The user name associated with the credentials.
/// </summary>
/// <returns>A string containing the user name.</returns>
const utility::string_t& username() const { return m_username; }
/// <summary>
/// The password for the user name associated with the credentials.
/// </summary>
/// <returns>A string containing the password.</returns>
CASABLANCA_DEPRECATED(
"This API is deprecated for security reasons to avoid unnecessary password copies stored in plaintext.")
utility::string_t password() const
{
#if defined(_WIN32) && !defined(CPPREST_TARGET_XP)
return utility::string_t(*m_password.decrypt());
#else
return m_password;
#endif
}
/// <summary>
/// Checks if credentials have been set
/// </summary>
/// <returns><c>true</c> if user name and password is set, <c>false</c> otherwise.</returns>
bool is_set() const { return !m_username.empty(); }
details::plaintext_string _internal_decrypt() const
{
// Encryption APIs not supported on XP
#if defined(_WIN32) && !defined(CPPREST_TARGET_XP)
return m_password.decrypt();
#else
return details::plaintext_string(new ::utility::string_t(m_password));
#endif
}
private:
::utility::string_t m_username;
#if defined(_WIN32) && !defined(CPPREST_TARGET_XP)
#if defined(__cplusplus_winrt)
details::winrt_encryption m_password;
#else
details::win32_encryption m_password;
#endif
#else
::utility::string_t m_password;
#endif
};
/// <summary>
/// web_proxy represents the concept of the web proxy, which can be auto-discovered,
/// disabled, or specified explicitly by the user.
/// </summary>
class web_proxy
{
enum web_proxy_mode_internal
{
use_default_,
use_auto_discovery_,
disabled_,
user_provided_
};
public:
enum web_proxy_mode
{
use_default = use_default_,
use_auto_discovery = use_auto_discovery_,
disabled = disabled_
};
/// <summary>
/// Constructs a proxy with the default settings.
/// </summary>
web_proxy() : m_address(_XPLATSTR("")), m_mode(use_default_) {}
/// <summary>
/// Creates a proxy with specified mode.
/// </summary>
/// <param name="mode">Mode to use.</param>
web_proxy(web_proxy_mode mode) : m_address(_XPLATSTR("")), m_mode(static_cast<web_proxy_mode_internal>(mode)) {}
/// <summary>
/// Creates a proxy explicitly with provided address.
/// </summary>
/// <param name="address">Proxy URI to use.</param>
web_proxy(uri address) : m_address(address), m_mode(user_provided_) {}
/// <summary>
/// Gets this proxy's URI address. Returns an empty URI if not explicitly set by user.
/// </summary>
/// <returns>A reference to this proxy's URI.</returns>
const uri& address() const { return m_address; }
/// <summary>
/// Gets the credentials used for authentication with this proxy.
/// </summary>
/// <returns>Credentials to for this proxy.</returns>
const web::credentials& credentials() const { return m_credentials; }
/// <summary>
/// Sets the credentials to use for authentication with this proxy.
/// </summary>
/// <param name="cred">Credentials to use for this proxy.</param>
void set_credentials(web::credentials cred)
{
if (m_mode == disabled_)
{
throw std::invalid_argument("Cannot attach credentials to a disabled proxy");
}
m_credentials = std::move(cred);
}
/// <summary>
/// Checks if this proxy was constructed with default settings.
/// </summary>
/// <returns>True if default, false otherwise.</param>
bool is_default() const { return m_mode == use_default_; }
/// <summary>
/// Checks if using a proxy is disabled.
/// </summary>
/// <returns>True if disabled, false otherwise.</returns>
bool is_disabled() const { return m_mode == disabled_; }
/// <summary>
/// Checks if the auto discovery protocol, WPAD, is to be used.
/// </summary>
/// <returns>True if auto discovery enabled, false otherwise.</returns>
bool is_auto_discovery() const { return m_mode == use_auto_discovery_; }
/// <summary>
/// Checks if a proxy address is explicitly specified by the user.
/// </summary>
/// <returns>True if a proxy address was explicitly specified, false otherwise.</returns>
bool is_specified() const { return m_mode == user_provided_; }
private:
web::uri m_address;
web_proxy_mode_internal m_mode;
web::credentials m_credentials;
};
} // namespace web

File diff suppressed because it is too large Load Diff

View File

@@ -1,21 +0,0 @@
/***
* Copyright (C) Microsoft. All rights reserved.
* Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
*
* =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
*
* Protocol independent support for URIs.
*
* For the latest on this and related APIs, please see: https://github.com/Microsoft/cpprestsdk
*
* =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
****/
#pragma once
#ifndef CASA_URI_H
#define CASA_URI_H
#include "cpprest/base_uri.h"
#include "cpprest/uri_builder.h"
#endif

View File

@@ -1,295 +0,0 @@
/***
* Copyright (C) Microsoft. All rights reserved.
* Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
*
* =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
*
* Builder style class for creating URIs.
*
* For the latest on this and related APIs, please see: https://github.com/Microsoft/cpprestsdk
*
* =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
****/
#pragma once
#include "cpprest/base_uri.h"
#include <string>
namespace web
{
/// <summary>
/// Builder for constructing URIs incrementally.
/// </summary>
class uri_builder
{
public:
/// <summary>
/// Creates a builder with an initially empty URI.
/// </summary>
uri_builder() = default;
/// <summary>
/// Creates a builder with a existing URI object.
/// </summary>
/// <param name="uri_str">Encoded string containing the URI.</param>
uri_builder(const uri& uri_str) : m_uri(uri_str.m_components) {}
/// <summary>
/// Get the scheme component of the URI as an encoded string.
/// </summary>
/// <returns>The URI scheme as a string.</returns>
const utility::string_t& scheme() const { return m_uri.m_scheme; }
/// <summary>
/// Get the user information component of the URI as an encoded string.
/// </summary>
/// <returns>The URI user information as a string.</returns>
const utility::string_t& user_info() const { return m_uri.m_user_info; }
/// <summary>
/// Get the host component of the URI as an encoded string.
/// </summary>
/// <returns>The URI host as a string.</returns>
const utility::string_t& host() const { return m_uri.m_host; }
/// <summary>
/// Get the port component of the URI. Returns -1 if no port is specified.
/// </summary>
/// <returns>The URI port as an integer.</returns>
int port() const { return m_uri.m_port; }
/// <summary>
/// Get the path component of the URI as an encoded string.
/// </summary>
/// <returns>The URI path as a string.</returns>
const utility::string_t& path() const { return m_uri.m_path; }
/// <summary>
/// Get the query component of the URI as an encoded string.
/// </summary>
/// <returns>The URI query as a string.</returns>
const utility::string_t& query() const { return m_uri.m_query; }
/// <summary>
/// Get the fragment component of the URI as an encoded string.
/// </summary>
/// <returns>The URI fragment as a string.</returns>
const utility::string_t& fragment() const { return m_uri.m_fragment; }
/// <summary>
/// Set the scheme of the URI.
/// </summary>
/// <param name="scheme">Uri scheme.</param>
/// <returns>A reference to this <c>uri_builder</c> to support chaining.</returns>
uri_builder& set_scheme(const utility::string_t& scheme)
{
m_uri.m_scheme = scheme;
return *this;
}
/// <summary>
/// Set the user info component of the URI.
/// </summary>
/// <param name="user_info">User info as a decoded string.</param>
/// <param name="do_encoding">Specify whether to apply URI encoding to the given string.</param>
/// <returns>A reference to this <c>uri_builder</c> to support chaining.</returns>
uri_builder& set_user_info(const utility::string_t& user_info, bool do_encoding = false)
{
if (do_encoding)
{
m_uri.m_user_info = uri::encode_uri(user_info, uri::components::user_info);
}
else
{
m_uri.m_user_info = user_info;
}
return *this;
}
/// <summary>
/// Set the host component of the URI.
/// </summary>
/// <param name="host">Host as a decoded string.</param>
/// <param name="do_encoding">Specify whether to apply URI encoding to the given string.</param>
/// <returns>A reference to this <c>uri_builder</c> to support chaining.</returns>
uri_builder& set_host(const utility::string_t& host, bool do_encoding = false)
{
if (do_encoding)
{
m_uri.m_host = uri::encode_uri(host, uri::components::host);
}
else
{
m_uri.m_host = host;
}
return *this;
}
/// <summary>
/// Set the port component of the URI.
/// </summary>
/// <param name="port">Port as an integer.</param>
/// <returns>A reference to this <c>uri_builder</c> to support chaining.</returns>
uri_builder& set_port(int port)
{
m_uri.m_port = port;
return *this;
}
/// <summary>
/// Set the port component of the URI.
/// </summary>
/// <param name="port">Port as a string.</param>
/// <returns>A reference to this <c>uri_builder</c> to support chaining.</returns>
/// <remarks>When string can't be converted to an integer the port is left unchanged.</remarks>
_ASYNCRTIMP uri_builder& set_port(const utility::string_t& port);
/// <summary>
/// Set the path component of the URI.
/// </summary>
/// <param name="path">Path as a decoded string.</param>
/// <param name="do_encoding">Specify whether to apply URI encoding to the given string.</param>
/// <returns>A reference to this <c>uri_builder</c> to support chaining.</returns>
uri_builder& set_path(const utility::string_t& path, bool do_encoding = false)
{
if (do_encoding)
{
m_uri.m_path = uri::encode_uri(path, uri::components::path);
}
else
{
m_uri.m_path = path;
}
return *this;
}
/// <summary>
/// Set the query component of the URI.
/// </summary>
/// <param name="query">Query as a decoded string.</param>
/// <param name="do_encoding">Specify whether apply URI encoding to the given string.</param>
/// <returns>A reference to this <c>uri_builder</c> to support chaining.</returns>
uri_builder& set_query(const utility::string_t& query, bool do_encoding = false)
{
if (do_encoding)
{
m_uri.m_query = uri::encode_uri(query, uri::components::query);
}
else
{
m_uri.m_query = query;
}
return *this;
}
/// <summary>
/// Set the fragment component of the URI.
/// </summary>
/// <param name="fragment">Fragment as a decoded string.</param>
/// <param name="do_encoding">Specify whether to apply URI encoding to the given string.</param>
/// <returns>A reference to this <c>uri_builder</c> to support chaining.</returns>
uri_builder& set_fragment(const utility::string_t& fragment, bool do_encoding = false)
{
if (do_encoding)
{
m_uri.m_fragment = uri::encode_uri(fragment, uri::components::fragment);
}
else
{
m_uri.m_fragment = fragment;
}
return *this;
}
/// <summary>
/// Clears all components of the underlying URI in this uri_builder.
/// </summary>
void clear() { m_uri = details::uri_components(); }
/// <summary>
/// Appends another path to the path of this uri_builder.
/// </summary>
/// <param name="path">Path to append as a already encoded string.</param>
/// <param name="do_encoding">Specify whether to apply URI encoding to the given string.</param>
/// <returns>A reference to this uri_builder to support chaining.</returns>
_ASYNCRTIMP uri_builder& append_path(const utility::string_t& path, bool do_encoding = false);
/// <summary>
/// Appends the raw contents of the path argument to the path of this uri_builder with no separator de-duplication.
/// </summary>
/// <remarks>
/// The path argument is appended after adding a '/' separator without regards to the contents of path. If an empty
/// string is provided, this function will immediately return without changes to the stored path value. For example:
/// if the current contents are "/abc" and path="/xyz", the result will be "/abc//xyz".
/// </remarks>
/// <param name="path">Path to append as a already encoded string.</param>
/// <param name="do_encoding">Specify whether to apply URI encoding to the given string.</param>
/// <returns>A reference to this uri_builder to support chaining.</returns>
_ASYNCRTIMP uri_builder& append_path_raw(const utility::string_t& path, bool do_encoding = false);
/// <summary>
/// Appends another query to the query of this uri_builder.
/// </summary>
/// <param name="query">Query to append as a decoded string.</param>
/// <param name="do_encoding">Specify whether to apply URI encoding to the given string.</param>
/// <returns>A reference to this uri_builder to support chaining.</returns>
_ASYNCRTIMP uri_builder& append_query(const utility::string_t& query, bool do_encoding = false);
/// <summary>
/// Appends an relative uri (Path, Query and fragment) at the end of the current uri.
/// </summary>
/// <param name="relative_uri">The relative uri to append.</param>
/// <returns>A reference to this uri_builder to support chaining.</returns>
_ASYNCRTIMP uri_builder& append(const uri& relative_uri);
/// <summary>
/// Appends another query to the query of this uri_builder, encoding it first. This overload is useful when building
/// a query segment of the form "element=10", where the right hand side of the query is stored as a type other than
/// a string, for instance, an integral type.
/// </summary>
/// <param name="name">The name portion of the query string</param>
/// <param name="value">The value portion of the query string</param>
/// <returns>A reference to this uri_builder to support chaining.</returns>
template<typename T>
uri_builder& append_query(const utility::string_t& name, const T& value, bool do_encoding = true)
{
if (do_encoding)
append_query_encode_impl(name, utility::conversions::details::print_utf8string(value));
else
append_query_no_encode_impl(name, utility::conversions::details::print_string(value));
return *this;
}
/// <summary>
/// Combine and validate the URI components into a encoded string. An exception will be thrown if the URI is
/// invalid.
/// </summary>
/// <returns>The created URI as a string.</returns>
_ASYNCRTIMP utility::string_t to_string() const;
/// <summary>
/// Combine and validate the URI components into a URI class instance. An exception will be thrown if the URI is
/// invalid.
/// </summary>
/// <returns>The create URI as a URI class instance.</returns>
_ASYNCRTIMP uri to_uri() const;
/// <summary>
/// Validate the generated URI from all existing components of this uri_builder.
/// </summary>
/// <returns>Whether the URI is valid.</returns>
_ASYNCRTIMP bool is_valid();
private:
_ASYNCRTIMP void append_query_encode_impl(const utility::string_t& name, const utf8string& value);
_ASYNCRTIMP void append_query_no_encode_impl(const utility::string_t& name, const utility::string_t& value);
details::uri_components m_uri;
};
} // namespace web

View File

@@ -1,10 +0,0 @@
/***
* Copyright (C) Microsoft. All rights reserved.
* Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
*
*/
#define CPPREST_VERSION_MINOR 10
#define CPPREST_VERSION_MAJOR 2
#define CPPREST_VERSION_REVISION 13
#define CPPREST_VERSION (CPPREST_VERSION_MAJOR * 100000 + CPPREST_VERSION_MINOR * 100 + CPPREST_VERSION_REVISION)

34
deps/cpprestsdk/pch.h vendored
View File

@@ -1,34 +0,0 @@
#include <winrt/base.h>
#include <Windows.h>
#include <dxgi1_3.h>
#include <d3d11_2.h>
#include <d2d1_3.h>
#include <d2d1_3helper.h>
#include <d2d1helper.h>
#include <dwrite.h>
#include <dcomp.h>
#include <dwmapi.h>
#include <Shobjidl.h>
#include <Shlwapi.h>
#include <string>
#include <algorithm>
#include <chrono>
#include <mutex>
#include <thread>
#include <functional>
#include <condition_variable>
#include <stdexcept>
#include <tuple>
#include <unordered_set>
#include <string>
#include <vector>
// cpprestsdk headers
#include "cpprest/details/basic_types.h"
#include "cpprest/details/cpprest_compat.h"
#include "cpprest/version.h"
// json
#include "cpprest/json.h"
// utilities
#include "cpprest/asyncrt_utils.h"
#include "cpprest/details/web_utilities.h"

View File

@@ -1,475 +0,0 @@
/***
* Copyright (C) Microsoft. All rights reserved.
* Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
*
* =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
*
* HTTP Library: JSON parser and writer
*
* For the latest on this and related APIs, please see: https://github.com/Microsoft/cpprestsdk
*
* =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
****/
#include "pch.h"
using namespace web;
bool json::details::g_keep_json_object_unsorted = false;
void json::keep_object_element_order(bool keep_order) { json::details::g_keep_json_object_unsorted = keep_order; }
utility::ostream_t& web::json::operator<<(utility::ostream_t& os, const web::json::value& val)
{
val.serialize(os);
return os;
}
utility::istream_t& web::json::operator>>(utility::istream_t& is, json::value& val)
{
val = json::value::parse(is);
return is;
}
web::json::value::value()
: m_value(utility::details::make_unique<web::json::details::_Null>())
#ifdef ENABLE_JSON_VALUE_VISUALIZER
, m_kind(value::Null)
#endif
{
}
web::json::value::value(int32_t value)
: m_value(utility::details::make_unique<web::json::details::_Number>(value))
#ifdef ENABLE_JSON_VALUE_VISUALIZER
, m_kind(value::Number)
#endif
{
}
web::json::value::value(uint32_t value)
: m_value(utility::details::make_unique<web::json::details::_Number>(value))
#ifdef ENABLE_JSON_VALUE_VISUALIZER
, m_kind(value::Number)
#endif
{
}
web::json::value::value(int64_t value)
: m_value(utility::details::make_unique<web::json::details::_Number>(value))
#ifdef ENABLE_JSON_VALUE_VISUALIZER
, m_kind(value::Number)
#endif
{
}
web::json::value::value(uint64_t value)
: m_value(utility::details::make_unique<web::json::details::_Number>(value))
#ifdef ENABLE_JSON_VALUE_VISUALIZER
, m_kind(value::Number)
#endif
{
}
web::json::value::value(double value)
: m_value(utility::details::make_unique<web::json::details::_Number>(value))
#ifdef ENABLE_JSON_VALUE_VISUALIZER
, m_kind(value::Number)
#endif
{
}
web::json::value::value(bool value)
: m_value(utility::details::make_unique<web::json::details::_Boolean>(value))
#ifdef ENABLE_JSON_VALUE_VISUALIZER
, m_kind(value::Boolean)
#endif
{
}
web::json::value::value(utility::string_t value)
: m_value(utility::details::make_unique<web::json::details::_String>(std::move(value)))
#ifdef ENABLE_JSON_VALUE_VISUALIZER
, m_kind(value::String)
#endif
{
}
web::json::value::value(utility::string_t value, bool has_escape_chars)
: m_value(utility::details::make_unique<web::json::details::_String>(std::move(value), has_escape_chars))
#ifdef ENABLE_JSON_VALUE_VISUALIZER
, m_kind(value::String)
#endif
{
}
web::json::value::value(const utility::char_t* value)
: m_value(utility::details::make_unique<web::json::details::_String>(value))
#ifdef ENABLE_JSON_VALUE_VISUALIZER
, m_kind(value::String)
#endif
{
}
web::json::value::value(const utility::char_t* value, bool has_escape_chars)
: m_value(utility::details::make_unique<web::json::details::_String>(utility::string_t(value), has_escape_chars))
#ifdef ENABLE_JSON_VALUE_VISUALIZER
, m_kind(value::String)
#endif
{
}
web::json::value::value(const value& other)
: m_value(other.m_value->_copy_value())
#ifdef ENABLE_JSON_VALUE_VISUALIZER
, m_kind(other.m_kind)
#endif
{
}
web::json::value& web::json::value::operator=(const value& other)
{
if (this != &other)
{
m_value = std::unique_ptr<details::_Value>(other.m_value->_copy_value());
#ifdef ENABLE_JSON_VALUE_VISUALIZER
m_kind = other.m_kind;
#endif
}
return *this;
}
web::json::value::value(value&& other) CPPREST_NOEXCEPT : m_value(std::move(other.m_value))
#ifdef ENABLE_JSON_VALUE_VISUALIZER
,
m_kind(other.m_kind)
#endif
{
}
web::json::value& web::json::value::operator=(web::json::value&& other) CPPREST_NOEXCEPT
{
if (this != &other)
{
m_value.swap(other.m_value);
#ifdef ENABLE_JSON_VALUE_VISUALIZER
m_kind = other.m_kind;
#endif
}
return *this;
}
web::json::value web::json::value::null() { return web::json::value(); }
web::json::value web::json::value::number(double value) { return web::json::value(value); }
web::json::value web::json::value::number(int32_t value) { return web::json::value(value); }
web::json::value web::json::value::number(uint32_t value) { return web::json::value(value); }
web::json::value web::json::value::number(int64_t value) { return web::json::value(value); }
web::json::value web::json::value::number(uint64_t value) { return web::json::value(value); }
web::json::value web::json::value::boolean(bool value) { return web::json::value(value); }
web::json::value web::json::value::string(utility::string_t value)
{
std::unique_ptr<details::_Value> ptr = utility::details::make_unique<details::_String>(std::move(value));
return web::json::value(std::move(ptr)
#ifdef ENABLE_JSON_VALUE_VISUALIZER
,
value::String
#endif
);
}
web::json::value web::json::value::string(utility::string_t value, bool has_escape_chars)
{
std::unique_ptr<details::_Value> ptr =
utility::details::make_unique<details::_String>(std::move(value), has_escape_chars);
return web::json::value(std::move(ptr)
#ifdef ENABLE_JSON_VALUE_VISUALIZER
,
value::String
#endif
);
}
#ifdef _WIN32
web::json::value web::json::value::string(const std::string& value)
{
std::unique_ptr<details::_Value> ptr =
utility::details::make_unique<details::_String>(utility::conversions::to_utf16string(value));
return web::json::value(std::move(ptr)
#ifdef ENABLE_JSON_VALUE_VISUALIZER
,
value::String
#endif
);
}
#endif
web::json::value web::json::value::object(bool keep_order)
{
std::unique_ptr<details::_Value> ptr = utility::details::make_unique<details::_Object>(keep_order);
return web::json::value(std::move(ptr)
#ifdef ENABLE_JSON_VALUE_VISUALIZER
,
value::Object
#endif
);
}
web::json::value web::json::value::object(std::vector<std::pair<::utility::string_t, value>> fields, bool keep_order)
{
std::unique_ptr<details::_Value> ptr =
utility::details::make_unique<details::_Object>(std::move(fields), keep_order);
return web::json::value(std::move(ptr)
#ifdef ENABLE_JSON_VALUE_VISUALIZER
,
value::Object
#endif
);
}
web::json::value web::json::value::array()
{
std::unique_ptr<details::_Value> ptr = utility::details::make_unique<details::_Array>();
return web::json::value(std::move(ptr)
#ifdef ENABLE_JSON_VALUE_VISUALIZER
,
value::Array
#endif
);
}
web::json::value web::json::value::array(size_t size)
{
std::unique_ptr<details::_Value> ptr = utility::details::make_unique<details::_Array>(size);
return web::json::value(std::move(ptr)
#ifdef ENABLE_JSON_VALUE_VISUALIZER
,
value::Array
#endif
);
}
web::json::value web::json::value::array(std::vector<value> elements)
{
std::unique_ptr<details::_Value> ptr = utility::details::make_unique<details::_Array>(std::move(elements));
return web::json::value(std::move(ptr)
#ifdef ENABLE_JSON_VALUE_VISUALIZER
,
value::Array
#endif
);
}
const web::json::number& web::json::value::as_number() const { return m_value->as_number(); }
double web::json::value::as_double() const { return m_value->as_double(); }
int web::json::value::as_integer() const { return m_value->as_integer(); }
bool web::json::value::as_bool() const { return m_value->as_bool(); }
json::array& web::json::value::as_array() { return m_value->as_array(); }
const json::array& web::json::value::as_array() const { return m_value->as_array(); }
json::object& web::json::value::as_object() { return m_value->as_object(); }
const json::object& web::json::value::as_object() const { return m_value->as_object(); }
bool web::json::number::is_int32() const
{
switch (m_type)
{
case signed_type:
return m_intval >= (std::numeric_limits<int32_t>::min)() && m_intval <= (std::numeric_limits<int32_t>::max)();
case unsigned_type: return m_uintval <= (std::numeric_limits<int32_t>::max)();
case double_type:
default: return false;
}
}
bool web::json::number::is_uint32() const
{
switch (m_type)
{
case signed_type: return m_intval >= 0 && m_intval <= (std::numeric_limits<uint32_t>::max)();
case unsigned_type: return m_uintval <= (std::numeric_limits<uint32_t>::max)();
case double_type:
default: return false;
}
}
bool web::json::number::is_int64() const
{
switch (m_type)
{
case signed_type: return true;
case unsigned_type: return m_uintval <= static_cast<uint64_t>((std::numeric_limits<int64_t>::max)());
case double_type:
default: return false;
}
}
bool web::json::details::_String::has_escape_chars(const _String& str)
{
return std::any_of(std::begin(str.m_string), std::end(str.m_string), [](utility::string_t::value_type const x) {
if (x <= 31)
{
return true;
}
if (x == '"')
{
return true;
}
if (x == '\\')
{
return true;
}
return false;
});
}
web::json::value::value_type json::value::type() const { return m_value->type(); }
bool json::value::is_integer() const
{
if (!is_number())
{
return false;
}
return m_value->is_integer();
}
bool json::value::is_double() const
{
if (!is_number())
{
return false;
}
return m_value->is_double();
}
json::value& web::json::details::_Object::index(const utility::string_t& key) { return m_object[key]; }
bool web::json::details::_Object::has_field(const utility::string_t& key) const
{
return m_object.find(key) != m_object.end();
}
bool web::json::value::has_number_field(const utility::string_t& key) const
{
return has_field(key) && at(key).is_number();
}
bool web::json::value::has_integer_field(const utility::string_t& key) const
{
return has_field(key) && at(key).is_integer();
}
bool web::json::value::has_double_field(const utility::string_t& key) const
{
return has_field(key) && at(key).is_double();
}
bool web::json::value::has_boolean_field(const utility::string_t& key) const
{
return has_field(key) && at(key).is_boolean();
}
bool web::json::value::has_string_field(const utility::string_t& key) const
{
return has_field(key) && at(key).is_string();
}
bool web::json::value::has_array_field(const utility::string_t& key) const
{
return has_field(key) && at(key).is_array();
}
bool web::json::value::has_object_field(const utility::string_t& key) const
{
return has_field(key) && at(key).is_object();
}
utility::string_t json::value::to_string() const
{
#ifndef _WIN32
utility::details::scoped_c_thread_locale locale;
#endif
return m_value->to_string();
}
bool json::value::operator==(const json::value& other) const
{
if (this->m_value.get() == other.m_value.get()) return true;
if (this->type() != other.type()) return false;
switch (this->type())
{
case Null: return true;
case Number: return this->as_number() == other.as_number();
case Boolean: return this->as_bool() == other.as_bool();
case String: return this->as_string() == other.as_string();
case Object:
return static_cast<const json::details::_Object*>(this->m_value.get())
->is_equal(static_cast<const json::details::_Object*>(other.m_value.get()));
case Array:
return static_cast<const json::details::_Array*>(this->m_value.get())
->is_equal(static_cast<const json::details::_Array*>(other.m_value.get()));
}
__assume(0);
}
void web::json::value::erase(size_t index) { return this->as_array().erase(index); }
void web::json::value::erase(const utility::string_t& key) { return this->as_object().erase(key); }
// at() overloads
web::json::value& web::json::value::at(size_t index) { return this->as_array().at(index); }
const web::json::value& web::json::value::at(size_t index) const { return this->as_array().at(index); }
web::json::value& web::json::value::at(const utility::string_t& key) { return this->as_object().at(key); }
const web::json::value& web::json::value::at(const utility::string_t& key) const { return this->as_object().at(key); }
web::json::value& web::json::value::operator[](const utility::string_t& key)
{
if (this->is_null())
{
m_value.reset(new web::json::details::_Object(details::g_keep_json_object_unsorted));
#ifdef ENABLE_JSON_VALUE_VISUALIZER
m_kind = value::Object;
#endif
}
return m_value->index(key);
}
web::json::value& web::json::value::operator[](size_t index)
{
if (this->is_null())
{
m_value.reset(new web::json::details::_Array());
#ifdef ENABLE_JSON_VALUE_VISUALIZER
m_kind = value::Array;
#endif
}
return m_value->index(index);
}
// Remove once VS 2013 is no longer supported.
#if defined(_WIN32) && _MSC_VER < 1900
static web::json::details::json_error_category_impl instance;
#endif
const web::json::details::json_error_category_impl& web::json::details::json_error_category()
{
#if !defined(_WIN32) || _MSC_VER >= 1900
static web::json::details::json_error_category_impl instance;
#endif
return instance;
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,254 +0,0 @@
/***
* Copyright (C) Microsoft. All rights reserved.
* Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
*
* =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
*
* HTTP Library: JSON parser and writer
*
* For the latest on this and related APIs, please see: https://github.com/Microsoft/cpprestsdk
*
* =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
****/
#include "pch.h"
#include <stdio.h>
#ifndef _WIN32
#define __STDC_FORMAT_MACROS
#include <inttypes.h>
#endif
using namespace web;
using namespace web::json;
using namespace utility;
using namespace utility::conversions;
//
// JSON Serialization
//
#ifdef _WIN32
void web::json::value::serialize(std::ostream& stream) const
{
// This has better performance than writing directly to stream.
std::string str;
m_value->serialize_impl(str);
stream << str;
}
void web::json::value::format(std::basic_string<wchar_t>& string) const { m_value->format(string); }
#endif
void web::json::value::serialize(utility::ostream_t& stream) const
{
#ifndef _WIN32
utility::details::scoped_c_thread_locale locale;
#endif
// This has better performance than writing directly to stream.
utility::string_t str;
m_value->serialize_impl(str);
stream << str;
}
void web::json::value::format(std::basic_string<char>& string) const { m_value->format(string); }
template<typename CharType>
void web::json::details::append_escape_string(std::basic_string<CharType>& str,
const std::basic_string<CharType>& escaped)
{
for (const auto& ch : escaped)
{
switch (ch)
{
case '\"':
str += '\\';
str += '\"';
break;
case '\\':
str += '\\';
str += '\\';
break;
case '\b':
str += '\\';
str += 'b';
break;
case '\f':
str += '\\';
str += 'f';
break;
case '\r':
str += '\\';
str += 'r';
break;
case '\n':
str += '\\';
str += 'n';
break;
case '\t':
str += '\\';
str += 't';
break;
default:
// If a control character then must unicode escaped.
if (ch >= 0 && ch <= 0x1F)
{
static const std::array<CharType, 16> intToHex = {
{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'}};
str += '\\';
str += 'u';
str += '0';
str += '0';
str += intToHex[(ch & 0xF0) >> 4];
str += intToHex[ch & 0x0F];
}
else
{
str += ch;
}
}
}
}
void web::json::details::format_string(const utility::string_t& key, utility::string_t& str)
{
str.push_back('"');
append_escape_string(str, key);
str.push_back('"');
}
#ifdef _WIN32
void web::json::details::format_string(const utility::string_t& key, std::string& str)
{
str.push_back('"');
append_escape_string(str, utility::conversions::to_utf8string(key));
str.push_back('"');
}
#endif
void web::json::details::_String::format(std::basic_string<char>& str) const
{
str.push_back('"');
if (m_has_escape_char)
{
append_escape_string(str, utility::conversions::to_utf8string(m_string));
}
else
{
str.append(utility::conversions::to_utf8string(m_string));
}
str.push_back('"');
}
void web::json::details::_Number::format(std::basic_string<char>& stream) const
{
if (m_number.m_type != number::type::double_type)
{
// #digits + 1 to avoid loss + 1 for the sign + 1 for null terminator.
const size_t tempSize = std::numeric_limits<uint64_t>::digits10 + 3;
char tempBuffer[tempSize];
#ifdef _WIN32
// This can be improved performance-wise if we implement our own routine
if (m_number.m_type == number::type::signed_type)
_i64toa_s(m_number.m_intval, tempBuffer, tempSize, 10);
else
_ui64toa_s(m_number.m_uintval, tempBuffer, tempSize, 10);
const auto numChars = strnlen_s(tempBuffer, tempSize);
#else
int numChars;
if (m_number.m_type == number::type::signed_type)
numChars = snprintf(tempBuffer, tempSize, "%" PRId64, m_number.m_intval);
else
numChars = snprintf(tempBuffer, tempSize, "%" PRIu64, m_number.m_uintval);
#endif
stream.append(tempBuffer, numChars);
}
else
{
// #digits + 2 to avoid loss + 1 for the sign + 1 for decimal point + 5 for exponent (e+xxx) + 1 for null
// terminator
const size_t tempSize = std::numeric_limits<double>::digits10 + 10;
char tempBuffer[tempSize];
#ifdef _WIN32
const auto numChars = _sprintf_s_l(tempBuffer,
tempSize,
"%.*g",
utility::details::scoped_c_thread_locale::c_locale(),
std::numeric_limits<double>::digits10 + 2,
m_number.m_value);
#else
const auto numChars =
snprintf(tempBuffer, tempSize, "%.*g", std::numeric_limits<double>::digits10 + 2, m_number.m_value);
#endif
stream.append(tempBuffer, numChars);
}
}
#ifdef _WIN32
void web::json::details::_String::format(std::basic_string<wchar_t>& str) const
{
str.push_back(L'"');
if (m_has_escape_char)
{
append_escape_string(str, m_string);
}
else
{
str.append(m_string);
}
str.push_back(L'"');
}
void web::json::details::_Number::format(std::basic_string<wchar_t>& stream) const
{
if (m_number.m_type != number::type::double_type)
{
// #digits + 1 to avoid loss + 1 for the sign + 1 for null terminator.
const size_t tempSize = std::numeric_limits<uint64_t>::digits10 + 3;
wchar_t tempBuffer[tempSize];
if (m_number.m_type == number::type::signed_type)
_i64tow_s(m_number.m_intval, tempBuffer, tempSize, 10);
else
_ui64tow_s(m_number.m_uintval, tempBuffer, tempSize, 10);
stream.append(tempBuffer, wcsnlen_s(tempBuffer, tempSize));
}
else
{
// #digits + 2 to avoid loss + 1 for the sign + 1 for decimal point + 5 for exponent (e+xxx) + 1 for null
// terminator
const size_t tempSize = std::numeric_limits<double>::digits10 + 10;
wchar_t tempBuffer[tempSize];
const int numChars = _swprintf_s_l(tempBuffer,
tempSize,
L"%.*g",
utility::details::scoped_c_thread_locale::c_locale(),
std::numeric_limits<double>::digits10 + 2,
m_number.m_value);
stream.append(tempBuffer, numChars);
}
}
#endif
const utility::string_t& web::json::details::_String::as_string() const { return m_string; }
const utility::string_t& web::json::value::as_string() const { return m_value->as_string(); }
utility::string_t json::value::serialize() const
{
#ifndef _WIN32
utility::details::scoped_c_thread_locale locale;
#endif
return m_value->to_string();
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,260 +0,0 @@
/***
* Copyright (C) Microsoft. All rights reserved.
* Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
*
* =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
*
* For the latest on this and related APIs, please see: https://github.com/Microsoft/cpprestsdk
*
* =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
****/
#include "pch.h"
using namespace web;
using namespace utility;
std::vector<unsigned char> _from_base64(const utility::string_t& str);
utility::string_t _to_base64(const unsigned char* ptr, size_t size);
std::vector<unsigned char> __cdecl conversions::from_base64(const utility::string_t& str) { return _from_base64(str); }
utility::string_t __cdecl conversions::to_base64(const std::vector<unsigned char>& input)
{
if (input.size() == 0)
{
// return empty string
return utility::string_t();
}
return _to_base64(&input[0], input.size());
}
utility::string_t __cdecl conversions::to_base64(uint64_t input)
{
return _to_base64(reinterpret_cast<const unsigned char*>(&input), sizeof(input));
}
static const char* _base64_enctbl = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
const std::array<unsigned char, 128> _base64_dectbl = {
{255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 62,
255, 255, 255, 63, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 255, 255, 255, 254, 255, 255, 255, 0,
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
23, 24, 25, 255, 255, 255, 255, 255, 255, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 255, 255, 255, 255, 255}};
struct _triple_byte
{
unsigned char _1_1 : 2;
unsigned char _0 : 6;
unsigned char _2_1 : 4;
unsigned char _1_2 : 4;
unsigned char _3 : 6;
unsigned char _2_2 : 2;
};
struct _double_byte
{
unsigned char _1_1 : 2;
unsigned char _0 : 6;
unsigned char _2_1 : 4;
unsigned char _1_2 : 4;
};
struct _single_byte
{
unsigned char _1_1 : 2;
unsigned char _0 : 6;
};
//
// A note on the implementation of BASE64 encoding and decoding:
//
// This is a fairly basic and naive implementation; there is probably a lot of room for
// performance improvement, as well as for adding options such as support for URI-safe base64,
// ignoring CRLF, relaxed validation rules, etc. The decoder is currently pretty strict.
//
#ifdef __GNUC__
// gcc is concerned about the bitfield uses in the code, something we simply need to ignore.
#pragma GCC diagnostic ignored "-Wconversion"
#endif
std::vector<unsigned char> _from_base64(const utility::string_t& input)
{
std::vector<unsigned char> result;
if (input.empty()) return result;
size_t padding = 0;
// Validation
{
auto size = input.size();
if ((size % 4) != 0)
{
throw std::runtime_error("length of base64 string is not an even multiple of 4");
}
for (auto iter = input.begin(); iter != input.end(); ++iter, --size)
{
const size_t ch_sz = static_cast<size_t>(*iter);
if (ch_sz >= _base64_dectbl.size() || _base64_dectbl[ch_sz] == 255)
{
throw std::runtime_error("invalid character found in base64 string");
}
if (_base64_dectbl[ch_sz] == 254)
{
padding++;
// padding only at the end
if (size > 2)
{
throw std::runtime_error("invalid padding character found in base64 string");
}
if (size == 2)
{
const size_t ch2_sz = static_cast<size_t>(*(iter + 1));
if (ch2_sz >= _base64_dectbl.size() || _base64_dectbl[ch2_sz] != 254)
{
throw std::runtime_error("invalid padding character found in base64 string");
}
}
}
}
}
auto size = input.size();
const char_t* ptr = &input[0];
auto outsz = (size / 4) * 3;
outsz -= padding;
result.resize(outsz);
size_t idx = 0;
for (; size > 4; ++idx)
{
unsigned char target[3];
memset(target, 0, sizeof(target));
_triple_byte* record = reinterpret_cast<_triple_byte*>(target);
unsigned char val0 = _base64_dectbl[ptr[0]];
unsigned char val1 = _base64_dectbl[ptr[1]];
unsigned char val2 = _base64_dectbl[ptr[2]];
unsigned char val3 = _base64_dectbl[ptr[3]];
record->_0 = val0;
record->_1_1 = val1 >> 4;
result[idx] = target[0];
record->_1_2 = val1 & 0xF;
record->_2_1 = val2 >> 2;
result[++idx] = target[1];
record->_2_2 = val2 & 0x3;
record->_3 = val3 & 0x3F;
result[++idx] = target[2];
ptr += 4;
size -= 4;
}
// Handle the last four bytes separately, to avoid having the conditional statements
// in all the iterations (a performance issue).
{
unsigned char target[3];
memset(target, 0, sizeof(target));
_triple_byte* record = reinterpret_cast<_triple_byte*>(target);
unsigned char val0 = _base64_dectbl[ptr[0]];
unsigned char val1 = _base64_dectbl[ptr[1]];
unsigned char val2 = _base64_dectbl[ptr[2]];
unsigned char val3 = _base64_dectbl[ptr[3]];
record->_0 = val0;
record->_1_1 = val1 >> 4;
result[idx] = target[0];
record->_1_2 = val1 & 0xF;
if (val2 != 254)
{
record->_2_1 = val2 >> 2;
result[++idx] = target[1];
}
else
{
// There shouldn't be any information (ones) in the unused bits,
if (record->_1_2 != 0)
{
throw std::runtime_error("Invalid end of base64 string");
}
return result;
}
record->_2_2 = val2 & 0x3;
if (val3 != 254)
{
record->_3 = val3 & 0x3F;
result[++idx] = target[2];
}
else
{
// There shouldn't be any information (ones) in the unused bits.
if (record->_2_2 != 0)
{
throw std::runtime_error("Invalid end of base64 string");
}
return result;
}
}
return result;
}
utility::string_t _to_base64(const unsigned char* ptr, size_t size)
{
utility::string_t result;
for (; size >= 3;)
{
const _triple_byte* record = reinterpret_cast<const _triple_byte*>(ptr);
unsigned char idx0 = record->_0;
unsigned char idx1 = (record->_1_1 << 4) | record->_1_2;
unsigned char idx2 = (record->_2_1 << 2) | record->_2_2;
unsigned char idx3 = record->_3;
result.push_back(char_t(_base64_enctbl[idx0]));
result.push_back(char_t(_base64_enctbl[idx1]));
result.push_back(char_t(_base64_enctbl[idx2]));
result.push_back(char_t(_base64_enctbl[idx3]));
size -= 3;
ptr += 3;
}
switch (size)
{
case 1:
{
const _single_byte* record = reinterpret_cast<const _single_byte*>(ptr);
unsigned char idx0 = record->_0;
unsigned char idx1 = (record->_1_1 << 4);
result.push_back(char_t(_base64_enctbl[idx0]));
result.push_back(char_t(_base64_enctbl[idx1]));
result.push_back('=');
result.push_back('=');
break;
}
case 2:
{
const _double_byte* record = reinterpret_cast<const _double_byte*>(ptr);
unsigned char idx0 = record->_0;
unsigned char idx1 = (record->_1_1 << 4) | record->_1_2;
unsigned char idx2 = (record->_2_1 << 2);
result.push_back(char_t(_base64_enctbl[idx0]));
result.push_back(char_t(_base64_enctbl[idx1]));
result.push_back(char_t(_base64_enctbl[idx2]));
result.push_back('=');
break;
}
}
return result;
}

View File

@@ -1,157 +0,0 @@
/***
* Copyright (C) Microsoft. All rights reserved.
* Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
*
* =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
*
* Credential and proxy utilities.
*
* For the latest on this and related APIs, please see: https://github.com/Microsoft/cpprestsdk
*
* =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
****/
#include "pch.h"
#include <assert.h>
#if defined(_WIN32) && !defined(__cplusplus_winrt)
#include <Wincrypt.h>
#endif
#if defined(__cplusplus_winrt)
#include <robuffer.h>
#endif
namespace web
{
namespace details
{
#if defined(_WIN32) && !defined(CPPREST_TARGET_XP)
#if defined(__cplusplus_winrt)
// Helper function to zero out memory of an IBuffer.
void winrt_secure_zero_buffer(Windows::Storage::Streams::IBuffer ^ buffer)
{
Microsoft::WRL::ComPtr<IInspectable> bufferInspectable(reinterpret_cast<IInspectable*>(buffer));
Microsoft::WRL::ComPtr<Windows::Storage::Streams::IBufferByteAccess> bufferByteAccess;
bufferInspectable.As(&bufferByteAccess);
// This shouldn't happen but if can't get access to the raw bytes for some reason
// then we can't zero out.
byte* rawBytes;
if (bufferByteAccess->Buffer(&rawBytes) == S_OK)
{
SecureZeroMemory(rawBytes, buffer->Length);
}
}
winrt_encryption::winrt_encryption(const std::wstring& data)
{
auto provider = ref new Windows::Security::Cryptography::DataProtection::DataProtectionProvider(
ref new Platform::String(L"Local=user"));
// Create buffer containing plain text password.
Platform::ArrayReference<unsigned char> arrayref(
reinterpret_cast<unsigned char*>(const_cast<std::wstring::value_type*>(data.c_str())),
static_cast<unsigned int>(data.size()) * sizeof(std::wstring::value_type));
Windows::Storage::Streams::IBuffer ^ plaintext =
Windows::Security::Cryptography::CryptographicBuffer::CreateFromByteArray(arrayref);
m_buffer = pplx::create_task(provider->ProtectAsync(plaintext));
m_buffer.then(
[plaintext](pplx::task<Windows::Storage::Streams::IBuffer ^>) { winrt_secure_zero_buffer(plaintext); });
}
plaintext_string winrt_encryption::decrypt() const
{
// To fully guarantee asynchrony would require significant impact on existing code. This code path
// is never run on a user's thread and is only done once when setting up a connection.
auto encrypted = m_buffer.get();
auto provider = ref new Windows::Security::Cryptography::DataProtection::DataProtectionProvider();
auto plaintext = pplx::create_task(provider->UnprotectAsync(encrypted)).get();
// Get access to raw bytes in plain text buffer.
Microsoft::WRL::ComPtr<IInspectable> bufferInspectable(reinterpret_cast<IInspectable*>(plaintext));
Microsoft::WRL::ComPtr<Windows::Storage::Streams::IBufferByteAccess> bufferByteAccess;
bufferInspectable.As(&bufferByteAccess);
byte* rawPlaintext;
const auto& result = bufferByteAccess->Buffer(&rawPlaintext);
if (result != S_OK)
{
throw ::utility::details::create_system_error(result);
}
// Construct string and zero out memory from plain text buffer.
auto data = plaintext_string(
new std::wstring(reinterpret_cast<const std::wstring::value_type*>(rawPlaintext), plaintext->Length / 2));
SecureZeroMemory(rawPlaintext, plaintext->Length);
return std::move(data);
}
#else
win32_encryption::win32_encryption(const std::wstring& data) : m_numCharacters(data.size())
{
// Early return because CryptProtectMemory crashes with empty string
if (m_numCharacters == 0)
{
return;
}
if (data.size() > (std::numeric_limits<DWORD>::max)() / sizeof(wchar_t))
{
throw std::length_error("Encryption string too long");
}
const auto dataSizeDword = static_cast<DWORD>(data.size() * sizeof(wchar_t));
// Round up dataSizeDword to be a multiple of CRYPTPROTECTMEMORY_BLOCK_SIZE
static_assert(CRYPTPROTECTMEMORY_BLOCK_SIZE == 16, "Power of 2 assumptions in this bit masking violated");
const auto mask = static_cast<DWORD>(CRYPTPROTECTMEMORY_BLOCK_SIZE - 1u);
const auto dataNumBytes = (dataSizeDword & ~mask) + ((dataSizeDword & mask) != 0) * CRYPTPROTECTMEMORY_BLOCK_SIZE;
assert((dataNumBytes % CRYPTPROTECTMEMORY_BLOCK_SIZE) == 0);
assert(dataNumBytes >= dataSizeDword);
m_buffer.resize(dataNumBytes);
memcpy_s(m_buffer.data(), m_buffer.size(), data.c_str(), dataNumBytes);
if (!CryptProtectMemory(m_buffer.data(), dataNumBytes, CRYPTPROTECTMEMORY_SAME_PROCESS))
{
throw ::utility::details::create_system_error(GetLastError());
}
}
win32_encryption::~win32_encryption() { SecureZeroMemory(m_buffer.data(), m_buffer.size()); }
plaintext_string win32_encryption::decrypt() const
{
// Copy the buffer and decrypt to avoid having to re-encrypt.
auto result = plaintext_string(new std::wstring(reinterpret_cast<const std::wstring::value_type*>(m_buffer.data()),
m_buffer.size() / sizeof(wchar_t)));
auto& data = *result;
if (!m_buffer.empty())
{
if (!CryptUnprotectMemory(&data[0], static_cast<DWORD>(m_buffer.size()), CRYPTPROTECTMEMORY_SAME_PROCESS))
{
throw ::utility::details::create_system_error(GetLastError());
}
assert(m_numCharacters <= m_buffer.size());
SecureZeroMemory(&data[m_numCharacters], data.size() - m_numCharacters);
data.erase(m_numCharacters);
}
return result;
}
#endif
#endif
void zero_memory_deleter::operator()(::utility::string_t* data) const
{
CASABLANCA_UNREFERENCED_PARAMETER(data);
#if defined(_WIN32)
SecureZeroMemory(&(*data)[0], data->size() * sizeof(::utility::string_t::value_type));
delete data;
#endif
}
} // namespace details
} // namespace web

View File

@@ -1,26 +0,0 @@
# Code Organization
## Rules
- **Follow the pattern of what you already see in the code**
- Try to package new ideas/components into libraries that have nicely defined interfaces
- Package new ideas into classes or refactor existing ideas into a class as you extend
## Code Overview
General project organization:
#### The [`deps`](/deps) folder
Contains other projects that PowerToys uses as dependencies.
#### The [`doc`](/doc) folder
Documentation for the project, including a [coding guide](/doc/coding) and [design docs](/doc/specs).
#### The [`installer`](/installer) folder
Contains the source code of the PowerToys installer.
#### The [`src`](/src) folder
Contains the source code of the PowerToys runner and of all of the PowerToys modules. **This is where the most of the magic happens.**
#### The [`tools`](/tools) folder
Various tools used by PowerToys. Includes the Visual Studio 2019 project template for new PowerToys.

View File

@@ -1,5 +0,0 @@
# Coding Style
## Philosophy
1. If it's inserting something into the existing classes/functions, try to follow the existing style as closely as possible.
1. If it's brand new code or refactoring a complete class or area of the code, please follow as Modern C++ of a style as you can and reference the [C++ Core Guidelines](https://github.com/isocpp/CppCoreGuidelines) as much as you possibly can.

109
doc/devdocs/common.md Normal file
View File

@@ -0,0 +1,109 @@
# Classes and structures
#### class Animation: [header](/src/common/animation.h) [source](/src/common/animation.cpp)
Animation helper class with two easing-in animations: linear and exponential.
#### class AsyncMessageQueue: [header](/src/common/async_message_queue.h)
Header-only asynchronous message queue. Used by `TwoWayPipeMessageIPC`.
#### class TwoWayPipeMessageIPC: [header](/src/common/two_way_pipe_message_ipc.h)
Header-only asynchronous IPC messaging class. Used by the runner to communicate with the settings window.
#### class D2DSVG: [header](/src/common/d2d_svg.h) [source](/src/common/d2d_svg.cpp)
Class for loading, rendering and for some basic modifications of SVG graphics.
#### class D2DText: [header](/src/common/d2d_text.h) [source](/src/common/d2d_text.cpp)
Class for rendering text using DirectX.
#### class D2DWindow: [header](/src/common/d2d_window.h) [source](/src/common/d2d_window.cpp)
Base class for creating borderless windows, with DirectX enabled rendering pipeline.
#### class DPIAware: [header](/src/common/dpi_aware.h) [source](/src/common/dpi_aware.cpp)
Helper class for creating DPI-aware applications.
#### struct MonitorInfo: [header](/src/common/monitors.h) [source](/src/common/monitors.cpp)
Class for obtaining information about physical displays connected to the machine.
#### class Settings, class PowerToyValues, class CustomActionObject: [header](/src/common/settings_objects.h) [source](/src/common/settings_objects.cpp)
Classes used to define settings screens for the PowerToys modules.
#### class Tasklist: [header](/src/common/tasklist_positions.h) [source](/src/common/tasklist_positions.cpp)
Class that can detect the position of the windows buttons on the taskbar. It also detects which window will react to pressing `WinKey + number`.
#### struct WindowsColors: [header](/src/common/windows_colors.h) [source](/src/common/windows_colors.cpp)
Class for detecting the current Windows color scheme.
# Helpers
#### Common helpers: [header](/src/common/common.h) [source](/src/common/common.cpp)
Various helper functions.
#### Settings helpers: [header](/src/common/settings_helpers.h)
Helper methods for the settings.
#### Start visible helper: [header](/src/common/start_visible.h) [source](/src/common/start_visible.cpp)
Contains function to test if the Start menu is visible.
# Toast Notifications
#### Notifications API [header](/src/common/notifications.h) [source](/src/common/notifications.cpp)
To use UWP-style toast notifications, simply include the header and call one of these functions:
```cpp
void show_toast(std::wstring_view message); // #1
void show_toast_background_activated( // #2
std::wstring_view message,
std::wstring_view background_handler_id,
std::vector<std::wstring_view> button_labels);
```
We might add more functions in the future if the need arises, e.g. `show_toast_xml` which will accept raw XML for rich customization.
Description:
- `#1` is for sending simple notifications without any callbacks or buttons
- `#2` is capable of showing a toast with multiple buttons and background activation
- `message` is a plain-text argument
Implement a toast activation handler/callback as a function in [handler_functions.cpp](/src/common/notifications_winrt/handler_functions.cpp) and register its `background_handler_id` via `handlers_map`, e.g.:
```cpp
// Your .cpp where you'd like to show a toast
#include <common/notifications.h>
void some_func() {
// ...
notifications::show_toast_background_activated(
L"Toast message!", // text displayed in a toast
L"awesome_toast", // activation handler id
{L"Press me!", L"Also could press me!", L"I'm here to be pressed!"} // buttons in a toast
);
```
```cpp
// handler_functions.cpp
void awesome_toast_handler(IBackgroundTaskInstance, const size_t button_id)
{
switch(button_id)
{
case 0:
// handle "Press me!" button click
case 1:
// handle "Also could press me!" button click
case 2:
// handle "I'm here to be pressed!" button click
}
}
namespace
{
const std::unordered_map<std::wstring_view, handler_function_t> handlers_map = {
// ...other handlers...
{L"awesome_toast", awesome_toast_handler}
};}
```
Note: since _background activation_ implies that your toast handler will be invoked in a separate process, you can't share data directly from within a handler and your PT process. Also, since PT is currently a Desktop Bridge app, _foreground activation_ is [handled the same as background](https://docs.microsoft.com/en-US/windows/uwp/design/shell/tiles-and-notifications/send-local-toast-desktop-cpp-wrl#foreground-vs-background-activation), therefore we don't make a dedicated API for it. You can read more on the rationale of the current design [here](https://github.com/microsoft/PowerToys/pull/1178#issue-368768337).

71
doc/devdocs/guidance.md Normal file
View File

@@ -0,0 +1,71 @@
# Coding Guidance
## Working With Strings
In order to support localization **YOU SHOULD NOT** have hardcoded UI display strings in your code. Instead, use resource files to consume strings.
### For CPP
Use [`StringTable` resource][String Table] to store the strings and resource header file(`resource.h`) to store Id's linked to the UI display string. Add the strings with Id's referenced from the header file to the resource-definition script file. You can use [Visual Studio Resource Editor][VS Resource Editor] to create and manage resource files.
- `resource.h`:
XXX must be a unique int in the list (mostly the int ID of the last string id plus one):
```cpp
#define IDS_MODULE_DISPLAYNAME XXX
```
- `StringTable` in resource-definition script file `validmodulename.rc`:
```
STRINGTABLE
BEGIN
IDS_MODULE_DISPLAYNAME L"Module Name"
END
```
- Use the `GET_RESOURCE_STRING(UINT resource_id)` method to consume strings in your code.
```cpp
#include <common.h>
extern "C" IMAGE_DOS_HEADER __ImageBase;
std::wstring GET_RESOURCE_STRING(IDS_MODULE_DISPLAYNAME)
```
### For C#
Use [XML resource file(.resx)][Resx Files] to store the UI display strings and [`Resource Manager`][Resource Manager] to consume those strings in the code. You can use [Visual Studio][Resx Files VS] to create and manage XML resources files.
- `Resources.resx`
```xml
<data name="ValidUIDisplayString" xml:space="preserve">
<value>Description to be displayed on UI.</value>
<comment>This text is displayed when XYZ button clicked.</comment>
</data>
```
- Use [`Resource Manager`][Resource Manager] to consume strings in code.
```csharp
System.Resources.ResourceManager manager = new System.Resources.ResourceManager(baseName, assembly);
string validUIDisplayString = manager.GetString("ValidUIDisplayString", resourceCulture);
```
In case of Visual Studio is used to create the resource file. Simply use the `Resources` class in auto-generated `Resources.Designer.cs` file to access the strings which encapsulate the [`Resource Manager`][Resource Manager] logic.
```csharp
string validUIDisplayString = Resources.ValidUIDisplayString;
```
## More On Coding Guidance
Please review these brief docs below relating to our coding standards etc.
* [Coding Style](./style.md)
* [Code Organization](./readme.md)
[VS Resource Editor]: https://docs.microsoft.com/en-us/cpp/windows/resource-editors?view=vs-2019
[String Table]: https://docs.microsoft.com/en-us/windows/win32/menurc/stringtable-resource
[Resx Files VS]: https://docs.microsoft.com/en-us/dotnet/framework/resources/creating-resource-files-for-desktop-apps#resource-files-in-visual-studio
[Resx Files]: https://docs.microsoft.com/en-us/dotnet/framework/resources/creating-resource-files-for-desktop-apps#resources-in-resx-files
[Resource Manager]: https://docs.microsoft.com/en-us/dotnet/api/system.resources.resourcemanager?view=netframework-4.8

View File

@@ -0,0 +1,5 @@
#### [`dllmain.cpp`](/src/modules/example_powertoy/dllmain.cpp)
Contains DLL boilerplate code and implementation of the [PowerToys interface](/src/modules/interface/).
#### [`trace.cpp`](/src/modules/example_powertoy/trace.cpp)
Contains code for telemetry.

View File

@@ -0,0 +1,85 @@
## FancyZones Lib
#### [`FancyZones.cpp`](/src/modules/fancyzones/lib/FancyZones.cpp)
TODO
#### [`Settings.cpp`](/src/modules/fancyzones/lib/Settings.cpp)
TODO
#### [`trace.cpp`](/src/modules/fancyzones/lib/trace.cpp)
TODO
#### [`Zone.cpp`](/src/modules/fancyzones/lib/Zone.cpp)
TODO
#### [`ZoneSet.cpp`](/src/modules/fancyzones/lib/ZoneSet.cpp)
TODO
#### [`ZoneWindow.cpp`](/src/modules/fancyzones/lib/ZoneWindow.cpp)
TODO
## FancyZones Editor
#### [`App.xaml.cs`](/src/modules/fancyzones/editor/App.xaml.cs)
TODO
#### [`Properties\AssemblyInfo.cs`](/src/modules/fancyzones/editor/Properties\AssemblyInfo.cs)
TODO
#### [`CanvasEditor.xaml.cs`](/src/modules/fancyzones/editor/CanvasEditor.xaml.cs)
TODO
#### [`CanvasEditorWindow.xaml.cs`](/src/modules/fancyzones/editor/CanvasEditorWindow.xaml.cs)
TODO
#### [`Models\CanvasLayoutModel.cs`](/src/modules/fancyzones/editor/Models\CanvasLayoutModel.cs)
TODO
#### [`CanvasZone.xaml.cs`](/src/modules/fancyzones/editor/CanvasZone.xaml.cs)
TODO
#### [`EditorOverlay.xaml.cs`](/src/modules/fancyzones/editor/EditorOverlay.xaml.cs)
TODO
#### [`EditorWindow.cs`](/src/modules/fancyzones/editor/EditorWindow.cs)
TODO
#### [`GridEditor.xaml.cs`](/src/modules/fancyzones/editor/GridEditor.xaml.cs)
TODO
#### [`GridEditorWindow.xaml.cs`](/src/modules/fancyzones/editor/GridEditorWindow.xaml.cs)
TODO
#### [`Models\GridLayoutModel.cs`](/src/modules/fancyzones/editor/Models\GridLayoutModel.cs)
TODO
#### [`GridResizer.xaml.cs`](/src/modules/fancyzones/editor/GridResizer.xaml.cs)
TODO
#### [`GridZone.xaml.cs`](/src/modules/fancyzones/editor/GridZone.xaml.cs)
TODO
#### [`Models\LayoutModel.cs`](/src/modules/fancyzones/editor/Models/LayoutModel.cs)
TODO
#### [`LayoutPreview.xaml.cs`](/src/modules/fancyzones/editor/LayoutPreview.xaml.cs)
TODO
#### [`MainWindow.xaml.cs`](/src/modules/fancyzones/editor/MainWindow.xaml.cs)
TODO
#### [`Properties\Resources.Designer.cs`](/src/modules/fancyzones/editor/Properties/Resources.Designer.cs)
TODO
#### [`RowColInfo.cs`](/src/modules/fancyzones/editor/RowColInfo.cs)
TODO
#### [`Models\Settings.cs`](/src/modules/fancyzones/editor/Models/Settings.cs)
TODO
#### [`Properties\Settings.Designer.cs`](/src/modules/fancyzones/editor/Properties/Settings.Designer.cs)
TODO
#### [`WindowLayout.xaml.cs`](/src/modules/fancyzones/editor/WindowLayout.xaml.cs)
TODO

View File

@@ -1,11 +1,4 @@
# PowerToys Interface
The PowerToys interface that each PowerToy must implement.
See [`the example PowerToy`](/src/modules/example_powertoy) for a PowerToys module example that uses this interface.
## Interface definition
This is the interface definition:
# Interface definition
```cpp
class PowertoyModuleIface {
@@ -27,7 +20,7 @@ public:
typedef PowertoyModuleIface* (__cdecl *powertoy_create_func)();
```
### Runtime logic
# Runtime logic
The PowerToys runner will, for each PowerToy DLL:
- load the DLL,
@@ -54,11 +47,11 @@ When terminating, the runner will:
- unload the DLL.
### Method definition
# Method definition
This section contains a more detailed description of each of the interface methods.
#### powertoy_create_func
## powertoy_create_func
```cpp
typedef PowertoyModuleIface* (__cdecl *powertoy_create_func)()
@@ -86,7 +79,7 @@ ExamplePowertoy::ExamplePowertoy() {
}
```
#### get_name
## get_name
```cpp
virtual const wchar_t* get_name()
@@ -101,7 +94,7 @@ Sample code from [`the example PowerToy`](/src/modules/example_powertoy/dllmain.
}
```
#### get_events
## get_events
```cpp
virtual const wchar_t** get_events()
@@ -124,7 +117,7 @@ Sample code from [`the example PowerToy`](/src/modules/example_powertoy/dllmain.
}
```
#### get_config
## get_config
```
virtual bool get_config(wchar_t* buffer, int *buffer_size)
@@ -174,7 +167,7 @@ Sample code from [`the example PowerToy`](/src/modules/example_powertoy/dllmain.
}
```
#### set_config
## set_config
```cpp
virtual void set_config(const wchar_t* config)
@@ -207,7 +200,7 @@ Sample code from [`the example PowerToy`](/src/modules/example_powertoy/dllmain.
}
```
#### call_custom_action
## call_custom_action
```cpp
virtual void call_custom_action(const wchar_t* action)
@@ -241,7 +234,7 @@ Sample code from [`the example PowerToy`](/src/modules/example_powertoy/dllmain.
}
```
#### enable
## enable
```cpp
virtual void enable()
@@ -257,7 +250,7 @@ Sample code from [`the example PowerToy`](/src/modules/example_powertoy/dllmain.
}
```
#### disable
## disable
```cpp
virtual void disable()
@@ -273,7 +266,7 @@ Sample code from [`the example PowerToy`](/src/modules/example_powertoy/dllmain.
}
```
#### is_enabled
## is_enabled
```cpp
virtual bool is_enabled() = 0;
@@ -288,7 +281,7 @@ Sample code from [`the example PowerToy`](/src/modules/example_powertoy/dllmain.
return m_enabled;
}
```
#### signal_event
## signal_event
```cpp
virtual intptr_t signal_event(const wchar_t* name, intptr_t data) = 0;
@@ -299,6 +292,8 @@ The data argument and return value meaning are event-specific:
* ll_keyboard: see [`lowlevel_keyboard_event_data.h`](./lowlevel_keyboard_event_data.h).
* win_hook_event: see [`win_hook_event_data.h`](./win_hook_event_data.h)
Please note that some of the events are currently being signalled from a separate thread.
Sample code from [`the example PowerToy`](/src/modules/example_powertoy/dllmain.cpp):
```cpp
@@ -317,7 +312,7 @@ Sample code from [`the example PowerToy`](/src/modules/example_powertoy/dllmain.
}
```
### register_system_menu_helper
## register_system_menu_helper
```cpp
virtual void register_system_menu_helper(PowertoySystemMenuIface* helper) = 0;
@@ -327,7 +322,7 @@ Register helper class to handle all system menu items related actions. Creation,
and all other actions taken on system menu item will be handled by provided class.
Module will be informed when action is taken on any item created on request of the module.
### signal_system_menu_action
## signal_system_menu_action
```cpp
virtual void signal_system_menu_action(const wchar_t* name) = 0;
@@ -336,7 +331,7 @@ Module will be informed when action is taken on any item created on request of t
Runner invokes this API when action is taken on item created on request from the module.
Item name is passed as an argument, so that module can distinguish between different menu items.
#### destroy
## destroy
```cpp
virtual void destroy()
@@ -351,7 +346,7 @@ Sample code from [`the example PowerToy`](/src/modules/example_powertoy/dllmain.
}
```
### Powertoys system menu helper interface
## Powertoys system menu helper interface
Interface for helper class responsible for handling all system menu related actions.
```cpp
@@ -367,7 +362,7 @@ public:
};
```
### ItemInfo
## ItemInfo
```cpp
struct ItemInfo {
@@ -380,7 +375,7 @@ public:
Structure containing all relevant information for system menu item: name (and hotkey if available), item
status at creation (enabled/disabled) and whether check box will appear next to item name when action is taken.
### SetConfiguration
## SetConfiguration
```cpp
virtual void SetConfiguration(PowertoyModuleIface* module, const std::vector<ItemInfo>& config) = 0;
@@ -388,7 +383,7 @@ status at creation (enabled/disabled) and whether check box will appear next to
Module should use this interface to inform system menu helper class which custom system menu items to create.
### ProcessSelectedItem
## ProcessSelectedItem
```cpp
virtual void ProcessSelectedItem(PowertoyModuleIface* module, HWND window, const wchar_t* itemName) = 0;
@@ -396,17 +391,17 @@ Module should use this interface to inform system menu helper class which custom
Process action taken on specific system menu item.
## Code organization
# Code organization
#### [`powertoy_module_interface.h`](./powertoy_module_interface.h)
### [`powertoy_module_interface.h`](/src/modules/example_powertoy/powertoy_module_interface.h)
Contains the PowerToys interface definition.
### [`powertoy_system_menu.h`](./powertoy_system_module.h)
### [`powertoy_system_menu.h`](/src/modules/example_powertoy/powertoy_system_module.h)
Contains the PowerToys system menu helper interface definition.
#### [`lowlevel_keyboard_event_data.h`](./lowlevel_keyboard_event_data.h)
### [`lowlevel_keyboard_event_data.h`](/src/modules/example_powertoy/lowlevel_keyboard_event_data.h)
Contains the `LowlevelKeyboardEvent` structure that's passed to `signal_event` for `ll_keyboard` events.
#### [`win_hook_event_data.h`](./win_hook_event_data.h)
### [`win_hook_event_data.h`](/src/modules/example_powertoy/win_hook_event_data.h)
Contains the `WinHookEvent` structure that's passed to `signal_event` for `win_hook_event` events.

View File

@@ -0,0 +1,26 @@
#### [`dllmain.cpp`](/src/modules/powerrename/dll/dllmain.cpp)
TODO
#### [`PowerRenameExt.cpp`](/src/modules/powerrename/dll/PowerRenameExt.cpp)
TODO
#### [`Helpers.cpp`](/src/modules/powerrename/lib/Helpers.cpp)
TODO
#### [`PowerRenameItem.cpp`](/src/modules/powerrename/lib/PowerRenameItem.cpp)
TODO
#### [`PowerRenameManager.cpp`](/src/modules/powerrename/lib/PowerRenameManager.cpp)
TODO
#### [`PowerRenameRegEx.cpp`](/src/modules/powerrename/lib/PowerRenameRegEx.cpp)
TODO
#### [`Settings.cpp`](/src/modules/powerrename/lib/Settings.cpp)
TODO
#### [`trace.cpp`](/src/modules/powerrename/lib/trace.cpp)
TODO
#### [`PowerRenameUI.cpp`](/src/modules/powerrename/ui/PowerRenameUI.cpp)
TODO

View File

@@ -0,0 +1,17 @@
#### [`dllmain.cpp`](/src/modules/shortcut_guide/dllmain.cpp)
Contains DLL boilerplate code.
#### [`shortcut_guide.cpp`](/src/modules/shortcut_guide/shortcut_guide.cpp)
Contains the module interface code. It initializes the settings values and the keyboard event listener.
#### [`overlay_window.cpp`](/src/modules/shortcut_guide/overlay_window.cpp)
Contains the code for loading the SVGs, creating and rendering of the overlay window.
#### [`keyboard_state.cpp`](/src/modules/shortcut_guide/keyboard_state.cpp)
Contains helper methods for checking the current state of the keyboard.
#### [`target_state.cpp`](/src/modules/shortcut_guide/target_state.cpp)
State machine that handles the keyboard events. Its responsible for deciding when to show the overlay, when to suppress the Start menu (if the overlay is displayed long enough), etc.
#### [`trace.cpp`](/src/modules/shortcut_guide/trace.cpp)
Contains code for telemetry.

152
doc/devdocs/readme.md Normal file
View File

@@ -0,0 +1,152 @@
# Dev Documentation
## Rules
- **Follow the pattern of what you already see in the code.**
- [Coding style](style.md).
- Try to package new ideas/components into libraries that have nicely defined interfaces.
- Package new ideas into classes or refactor existing ideas into a class as you extend.
- When adding new classes/methos/changing existing code: add new unit tests or update the existing tests.
## Github Workflow
- Before starting to work on a fix/feature, make sure there is an open issue to track the work.
- Add the `In progress` label to the issue, if not already present also add a `Cost-Small/Medium/Large` estimate and make sure all appropriate labels are set.
- If you are a community contributor, you will not be able to add labels to the issue, in that case just add a comment saying that you started to work on the issue and try to give an estimate for the delivery date.
- If the work item has a medium/large cost, using the markdown task list, list each sub item and update the list with a check mark after completing each sub item.
- When opening a PR, follow the PR template.
- When 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:
- mark the issue(s), that the PR solved, with the `Resolution-Fix-Committed` label, remove the `In progress` label and if the issue is assigned to a project, move the item to the `Done` status.
- 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:
### The [`doc`](/doc) folder
Documentation for the project.
### The [`Wiki`](/wiki)
The Wiki contains the current specs for the project.
### The [`installer`](/installer) folder
Contains the source code of the PowerToys installer.
### The [`src`](/src) folder
Contains the source code of the PowerToys runner and of all of the PowerToys modules. **This is where the most of the magic happens.**
### The [`tools`](/tools) folder
Various tools used by PowerToys. Includes the Visual Studio 2019 project template for new PowerToys.
## Building code
### Build Prerequisites
- Windows 10 1803 (build 10.0.17134.0) or above to build and run PowerToys.
- Visual Studio 2019 Community edition or higher, with the 'Desktop Development with C++' component and the Windows 10 SDK version 10.0.18362.0 or higher.
### Building the Code
- 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.
### Building the .msi Installer
* From the `installer` folder open `PowerToysSetup.sln` in Visual Studio, in the `Solutions Configuration` drop-down menu select `Release` or `Debug`, from the `Build` menu choose `Build Solution`.
* The resulting `PowerToysSetup.msi` installer will be available in the `installer\PowerToysSetup\x64\Release\` folder.
#### Prerequisites to Build the MSI Installer
* Install the [WiX Toolset Visual Studio 2019 Extension](https://marketplace.visualstudio.com/items?itemName=RobMensching.WiXToolset).
* Install the [WiX Toolset build tools](https://wixtoolset.org/releases/).
### Building the MSIX Installer
Please follow the [installer instructions](./installer/readme.md) which include items such as creating the self-signed cert for testing.
## Debugging
The following configuration issue only applies if the user is a member of the Administrators group.
Some PowerToys modules require being run with the highest permission level if the current user is a member of the Administrators group. The highest permission level is required to be able to perform some actions when an elevated application (e.g. Task Manager) is in the foreground or is the target of an action. Without elevated privileges some PowerToys modules will still work but with some limitations:
- the `FancyZones` module will be not be able to move an elevated window to a zone.
- the `Shortcut Guide` module will not appear if the foreground window belongs to an elevated application.
To run and debug PowerToys from Visual Studio when the user is a member of the Administrators group, Visual Studio has to be started with elevated privileges. If you want to avoid running Visual Studio with elevated privileges and don't mind the limitations described above, you can do the following: open the `runner` project properties and navigate to the `Linker -> Manifest File` settings, edit the `UAC Execution Level` property and change it from `highestAvailable (level='highestAvailable')` to `asInvoker (/level='asInvoker')`, save the changes.
## How to create new PowerToys
See the instructions on [how to install the PowerToys Module project template](tools/project_template). <br />
Specifications for the [PowerToys settings API](doc/specs/PowerToys-settings.md).
## Implementation details
### [`Runner`](runner.md)
The PowerToys Runner contains the project for the PowerToys.exe executable.
It's responsible for:
- Loading the individual PowerToys modules.
- Passing registered events to the PowerToys.
- Showing a system tray icon to manage the PowerToys.
- Bridging between the PowerToys modules and the Settings editor.
![Image of the tray icon](/doc/images/runner/tray.png)
### [`Interface`](modules/interface.md)
Definition of the interface used by the [`runner`](/src/runner) to manage the PowerToys. All PowerToys must implement this interface.
### [`Common`](common.md)
The common lib, as the name suggests, contains code shared by multiple PowerToys components and modules, e.g. [json parsing](/src/common/json.h) and [IPC primitives](/src/common/two_way_pipe_message_ipc.h).
### [`Settings`](settings.md)
WebView project for editing the PowerToys settings.
The html portion of the project that is shown in the WebView is contained in [`settings-html`](/src/settings/settings-heml).
Instructions on how build a new version and update this project are in the [Web project for the Settings UI](./settings-web.md).
While developing, it's possible to connect the WebView to the development server running in localhost by setting the `_DEBUG_WITH_LOCALHOST` flag to `1` and following the instructions near it in `./main.cpp`.
### [`Settings-web`](settings-web.md)
This project generates the web UI shown in the [PowerToys Settings](/src/editor).
It's a `ReactJS` project created using [UI Fabric](https://developer.microsoft.com/en-us/fabric#/).
## Current modules
### [`FancyZones`](modules/fancyzones.md)
The FancyZones PowerToy that allows users to create custom zones on the screen, to which the windows will snap when moved.
### [`PowerRename`](modules/powerrename.md)
PowerRename is a Windows Shell Context Menu Extension for advanced bulk renaming using simple search and replace or more powerful regular expression matching.
### [`Shortcut Guide`](modules/shortcut_guide.md)
The Windows Shortcut Guide, displayed when the WinKey is held for some time.
### _obsolete_ [`example_powertoy`](modules/example_powertoy.md)
An example PowerToy, that demonstrates how to create new ones. Please note, that this is going to become a Visual Studio project template soon.
This PowerToy serves as a sample to show how to implement the [PowerToys interface](/src/modules/interface/) when creating a PowerToy. It also showcases the currently implemented settings.
#### Options
This module has a setting to serve as an example for each of the currently implemented settings property:
- BoolToggle property
- IntSpinner property
- String property
- ColorPicker property
- CustomAction property
![Image of the Options](/doc/images/example_powertoy/settings.png)

View File

@@ -0,0 +1,50 @@
# PowerToys and running as Administrator
## Too long, Didn't Read 😁
If you're running any application as an administrator (aka elevated) and PowerToys is not, a few things may not work correctly when the elevated applications are in focus or trying to interact with a PowerToys feature like FancyZones.
## Having PowerToys keep functioning properly
We understand users will run applications elevated. We do as well. We have two options for you when this scenario happens:
1. **Recommended:** PowerToys will prompt when we detect a process that is elevated. Go to PowerToys settings inside the General Tab and click "Relaunch as adminstrator".
2. Enable "Always run as administrator" in the PowerToys settings.
## What is "Run as Administrator" / Elevated processes
This is when a process runs with "elevated" privileges. Typically this would be associated with the administrator accounts on a system.
Basically it runs with additional access to the operating system. Most things do not need run elevated. A common scenario would be needing to run certain PowerShell commands or edit the registry.
How do i know my application is "elevated"? If you see this prompt (User Access Control prompt), the application is requesting it:
![alt text][uac]
At times also, elevated terminals for instance, they will typically have the phrase "Administrator" appended to the title bar. Be warned, this isn't always the case it will be appended.
![alt text][elevatedWindow]
## When does PowerToys need this
PowerToys in itself does not. It only needs to be elevated when it has to interact with other applications that are running elevated. If those applications are in focus, PowerToys may not function unless it is elevated as well.
These are the two scenarios we will not work in:
1. Intercepting certain types of keyboard strokes
2. Resizing / Moving windows
### PowerToys affected
1. FancyZones
- Snapping a window into a zone
- Moving the window to a different zone
2. Shortcut guide
- Display shortcut
3. Keyboard remapper
- key to key remapping
- Global level shortcuts remapping
- App-targeted shortcuts remapping
[uac]: ../images/runAsAdmin/uac.png "User access control (UAC)"
[elevatedWindow]: ../images/runAsAdmin/elevatedWindows.png "Run as admin"

36
doc/devdocs/runner.md Normal file
View File

@@ -0,0 +1,36 @@
#### [`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 makred 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).
#### [`powertoys_events.cpp`](/src/runner/powertoys_events.cpp)
Contains code that handles the various events listeners, and forwards those events to the PowerToys modules. You can learn more about the current event architecture [here](/doc/devdocs/shared-hooks.md).
#### [`lowlevel_keyboard_event.cpp`](/src/runner/lowlevel_keyboard_event.cpp)
Contains code for registering the low level keyboard event hook that listens for keyboard events. Please note that `signal_event` is called from the main thread for this event.
#### [`win_hook_event.cpp`](/src/runner/win_hook_event.cpp)
Contains code for registering a Windows event hook through `SetWinEventHook`, that listens for various events raised when a window is interacted with. Please note, that `signal_event` is called from a separate `dispatch_thread_proc` worker thread, so you must provide thread-safety for your `signal_event` if you intend to receive it. This is a subject to change.
#### [`tray_icon.cpp`](/src/runner/tray_icon.cpp)
Contains code for managing the PowerToys tray icon and its menu commands. Note that `dispatch_run_on_main_ui_thread` is used to
transfer received json message from the [Settings window](/doc/devdocs/settings.md) to the main thread, since we're communicating with it from [a dedicated thread](https://github.com/microsoft/PowerToys/blob/7357e40d3f54de51176efe54fda6d57028837b8c/src/runner/settings_window.cpp#L267-L271).
#### [`settings_window.cpp`](/src/runner/settings_window.cpp)
Contains code for starting the PowerToys settings window and communicating with it. Settings window is a separate process, so we're using [Windows pipes](https://docs.microsoft.com/en-us/windows/win32/ipc/pipes) as a transport for json messages.
#### [`general_settings.cpp`](/src/runner/general_settings.cpp)
Contains code for loading, saving and applying the general setings.
#### [`auto_start_helper.cpp`](/src/runner/auto_start_helper.cpp)
Contains helper code for registering and unregistering PowerToys to run when the user logs in.
#### [`unhandled_exception_handler.cpp`](/src/runner/unhandled_exception_handler.cpp)
Contains helper code to get stack traces in builds. Can be used by adding a call to `init_global_error_handlers` in [`WinMain`](./main.cpp).
#### [`trace.cpp`](/src/runner/trace.cpp)
Contains code for telemetry.
#### [`svgs`](/src/runner/svgs/)
Contains the SVG assets used by the PowerToys modules.

View File

@@ -0,0 +1,597 @@
# Settings
While the module interface passes the settings and values thorough a JSON string, **use our helper functions**. In future we might move to a different implementation. All current modules use:
* `load_module_settings` to load the settings from the disk.
* `PowerToySettings::Settings` class to define module properties and the settings screen.
* `PowerToySettings::PowerToyValues` class to parse the JSON passed by the runner.
* `save_module_settings` to store the settings on the disk.
Most functions provide two overloads - one that accepts UINT with a resource ID and one that accepts strings. **Put all strings in the resource file and use the resource ID overload.**
The following documents internal workings of the settings system.
## Overview
PowerToys runner provides a generic way for modules to define their settings.
Each module on startup is responsible for loading its own settings and initializing accordingly. When the user wants to edit settings, the runner will call [`get_config()`](modules/interface.md#get_config) module method. The module must provide a JSON which includes the module name, description but also what settings options are provided.
When settings from all modules are collected, a separate [settings editor app](/src/settings) is spawned. The editor wraps [an React app](/src/settings-web) and handles the communication with the runner.
When loaded, the React app receives the JSON passed by the runner. When user saves the settings, the editor passes the new settings values as JSON string to the runner. Runner in turn will call [`set_config()`](modules/interface.md#set_config) for all modules with appropriate JSON. When user initiates a custom action (like the Zone Editor in FancyZones), the runner will call [`call_custom_action()`](modules/interface.md#call_custom_action) providing the action name in a JSON.
There are C++ helper functions in [/src/common/settings_objects.h](/src/common/settings_objects.h) and [/src/common/settings_helpers.h](/src/common/settings_helpers.h). Those include classes for creating the settings options JSON and ones for parsing the incoming settings JSON.
### Module settings
The value returned by the [`get_config()`](modules/interface.md#get_config) call should provide a JSON object with following fields:
* `name` - The name of the PowerToy. Used on the nav panel on the left.
* `version` - The settings version. Needs to be set to `"1.0"`.
* `description` - Description of the PowerToy module.
* `overview_link`, `video_link` - Optional links to the documentation and video preview of the PowerToy module.
* `icon_key` - Name of the icon of the PowerToy. The SVGs for the icons are located in [/src/settings-web/src/svg](/src/settings-web/src/svg). They also need to be added in [/settings-web/src/setup_icons.tsx](/settings-web/src/setup_icons.tsx).
* `properties` - Optional object that contains the definition of the settings screen.
The `properties` JSON object defines what settings controls are available to the user. Each key defines one control. The controls have some common properties:
* The key in the `properties` which identifies the control.
* `editor_type` - Defines the type of the control. Those are listed further.
* `order` - Defines the order of the elements on the settings screen.
Each `editor_type` has its own set of properties.
Example module JSON (taken from Shortcut Guide):
```json
{
"name": "Shortcut Guide",
"version": "1.0",
"description": "Shows a help overlay with Windows shortcuts when the Windows key is pressed.",
"overview_link": "https://github.com/.../README.md",
"icon_key": "pt-shortcut-guide",
"properties": {
"press_time": {
"editor_type": "int_spinner",
"order": 1,
"display_name": "How long to press the Windows key before showing the Shortcut Guide (ms)",
"value": 900,
"min": 100,
"max": 10000,
"step": 100
},
"overlay_opacity": {
"editor_type": "int_spinner",
"order": 2,
"display_name": "Opacity of the Shortcut Guide's overlay background (%)",
"value": 90,
"min": 0,
"max": 100,
"step": 1
},
"theme":{
"editor_type": "choice_group",
"order": 3,
"display_name": "Choose Shortcut Guide overlay color",
"value": "system",
"options": [ {"key": "system", "text": "System default app mode"},
{"key": "light", "text": "Light"},
{"key": "dark", "text": "Dark"} ]
}
}
}
```
produces this settings screen:
![Shortcut Guide settings](../images/settings/shorcut_guide_settings.png)
### Helper methods
PowerToys provides [a helper class](/src/common/json.h) to parse and generate JSON strings.
In [`settings_helpers.h`](/src/common/settings_helpers.h) there are two helper functions: `load_module_settings(powertoy_name)` and `save_general_settings(settings)` for loading and saving the module configuration.
In [`settings_objects.h`](/src/common/settings_objects.h) there are some helper classes:
* `Settings` - for generating JSON with module settings definition.
* `PowerToyValues` - for parsing JSON with settings - either loaded from file or from the settings editor.
* `CustomActionObject` and `HotkeyObject` - for parsing custom actions and hotkey input specific JSON.
### General settings
General settings control the PowerToys runner and decide which modules are enabled and which are not. The general settings screen is special - while modules provide the definition of the settings controls, the available settings on the general screen are hardcoded.
General settings has following properties:
* `enabled` - Enabled/disabled status of each PowerToy.
* `startup` - Should PowerToys start at user logon.
* `theme` - Settings editor theme - `light`, `dark` or `system`.
* `system_theme` - Current Windows theme - `light` or `dark`.
* `powertoys_version` - The version of the PowerToys.
This JSON:
```json
{
"enabled": {
"FancyZones": true,
"PowerRename": true,
"Shortcut Guide": true
},
"startup": true,
"theme": "light",
"system_theme": "dark",
"powertoys_version": "0.14.2.0"
}
```
Produces this general settings screen:
![General settings](../images/settings/general_settings.png)
## Putting it all together
The runner combines general settings and each module settings into a single JSON that is passed to the settings editor. Example combined settings look like this:
```json
{
"general": {
"enabled": {
"FancyZones": true,
"PowerRename": true,
"Shortcut Guide": true
},
"startup": true,
"theme": "light",
"system_theme": "dark",
"powertoys_version": "0.14.2.0"
},
"powertoys": {
"FancyZones": { ... },
"PowerRename": { ... },
"Shortcut Guide":{
"name": "Shortcut Guide",
"version": "1.0",
"description": "Shows a help overlay with Windows shortcuts when the Windows key is pressed.",
"overview_link": "https://github.com/.../README.md",
"icon_key": "pt-shortcut-guide",
"properties": { ... }
}
}
}
```
## C++ helpers
While you can generate and parse JSON yourself there are helper methods provided.
### Loading settings
When a PowerToy module is created, it should load its configuration. This can be done by calling
```c++
json::JsonObject PTSettingsHelper::load_module_settings(std::wstring_view powertoy_name);
```
declared in [`settings_helpers.h`](/src/common/settings_helpers.h). The function will return an `json::JsonObject` object containing the module settings.
Another option is using [`PowerToySettings::PowerToyValues`](/src/common/settings_objects.h#L67) class. A static method
```c++
PowerToyValues PowerToyValues::load_from_settings_file(std::wstring_view powertoy_name);
```
will load and parse the settings. You can also use
```c++
PowerToyValues PowerToyValues::from_json_string(std::wstring_view json);
```
to parse JSON string - for example when implementing [`set_config()`](modules/interface.md#set_config). The returned `PowerToyValues` object has helper methods that return `std::optional` with values, for example:
```c++
auto settings = PowerToyValues::load_from_settings_file(L"some_powertoy");
std::optional<std::wstring> str_prop = settings.get_string_value(L"some_string_property");
auto int_prop = settings.get_int_value(L"some_int_property");
```
### Generating settings screen
The [`PowerToySettings::Settings`](/src/common/settings_objects.h) can be used to generate settings:
```c++
// Need to get strings from the resource file.
extern "C" IMAGE_DOS_HEADER __ImageBase;
auto hinstance = reinterpret_cast<HINSTANCE>(&__ImageBase);
PowerToysSettings::Settings settings(hinstance, L"example_powertoy");
settings.set_description(L"Example powertoy.");
settings.set_overview_link(L"https://example.com");
settings.set_icon_key(L"pt-example");
settings.add_string(L"string_val", L"Example string label", L"example value");
settings.add_int_spinner(L"int_val", L"Example int label", 0, 0, 100, 10);
```
You can then use `std::wstring serialize()` or `bool serialize_to_buffer(wchar_t* buffer, int* uffer_size)` methods to generate output JSON string.
### Saving settings
Use
```c++
void PTSettingsHelper::save_module_settings(std::wstring_view powertoy_name, json::JsonObject& settings);
```
declared in [`settings_helpers.h`](/src/common/settings_helpers.h).
## Module settings elements
### Bool toggle
```c++
add_bool_toogle(name, description, value)
```
A simple on-off toggle. Parameters:
* `name` - Key for the element in the JSON.
* `description` - String or resource ID of the text displayed to the user.
* `value` - Initial state of the toggle (`true` - on, `false` - off).
This C++:
```c++
settings.add_bool_toogle(L"bool_name", L"description", true);
```
produces this settings element:
![Bool Toggle](../images/settings/bool_toggle.png)
and this generated JSON:
```json
{
"properties": {
"bool_name": {
"editor_type": "bool_toggle",
"order": autoincremented_number,
"display_name": "description",
"value": true
}
}
}
```
The toggle value is stored as bool:
```c++
std::optional<bool> bool_value = settings.get_bool_value(L"bool_name");
```
### Int Spinner
```c++
add_int_spinner(name, description, value, min, max, step)
```
Numeric input with dials to increment and decrement the value. Parameters:
* `name` - Key for element in the JSON.
* `description` - String or resource ID of the text displayed to the user.
* `value` - Initial control value.
* `min`, `max` - Minimum and maximum values for the input. User cannot use dials to move beyond those values, if a value out of range is inserted using the keyboard, it will get clamped to the allowed range.
* `step` - How much the dials change the value.
This C++:
```c++
settings.add_int_spinner(L"int_spinner_name", L"description", 50, -100, 100, 10);
```
produces this settings element:
![Int Spinner](../images/settings/int_spinner.png)
and this generated JSON:
```json
{
"properties": {
"int_spinner_name": {
"editor_type": "int_spinner",
"order": autoincremented_number,
"display_name": "description",
"value": 50,
"min": -100,
"max": 100,
"step": 10
}
}
}
```
The spinner value is stored as int:
```c++
std::optional<int> int_value = settings.get_int_value(L"int_spinner_name");
```
### String
```c++
add_string(name, description, value)
```
Single line text input. Parameters:
* `name` - Key for element in the JSON.
* `description` - String or resource ID of the text displayed to the user.
* `value` - Default value for the input.
This C++:
```c++
settings.add_string(L"string_name", L"description", L"value");
```
produces this settings element:
![String](../images/settings/string.png)
and this generated JSON:
```json
{
"properties": {
"string_name": {
"editor_type": "string_text",
"order": autoincremented_number,
"display_name": "description",
"value": "value"
}
}
}
```
The input value is stored as `std::wstring`:
```c++
std::optional<std::wstring> string_value = settings.get_string_value(L"string_name");
```
### Multiline string
```c++
add_multiline_string(name, description, value)
```
Multiline text input. Parameters:
* `name` - Key for element in the JSON.
* `description` - String or resource ID of the text displayed to the user.
* `value` - Default value for the input. Can have multiple lines.
This C++:
```c++
settings.add_multiline_string(L"multiline_name", L"description", L"multiline1\nmultiline2");
```
produces this settings element:
![Multiline](../images/settings/multiline.png)
and this generated JSON:
```json
{
"properties": {
"multiline_name": {
"editor_type": "string_text",
"multiline": true,
"order": autoincremented_number,
"display_name": "description",
"value": "multiline1\nmultiline2"
}
}
}
```
The input value is stored as string:
```c++
std::optional<std::wstring> value = settings.get_string_value(L"multiline_name");
```
### Color picker
```c++
add_color_picker(name, description, value)
```
Allows user to pick a color. Parameters:
* `name` - Key for element in the JSON.
* `description` - String or resource ID of the text displayed to the user.
* `value` - Initial color, as a string in `"#RRGGBB"` format.
This C++:
```c++
settings.add_color_picker(L"colorpicker_name", L"description", L"#102040");
```
produces this settings element:
![Color Picker](../images/settings/color_picker.png)
and this generated JSON:
```json
{
"properties": {
"colorpicker_name": {
"editor_type": "color_picker",
"order": autoincremented_number,
"display_name": "description",
"value": "#102040"
}
}
}
```
The color picker value is stored as `std::wstring`:
```c++
std::optional<std::wstring> value = settings.get_string_value(L"colorpicker_name");
```
### Hotkey
```c++
settings.add_hotkey(name, description, hotkey)
```
Input for capturing hotkeys. Parameters:
* `name` - Key for element in the JSON.
* `description` - String or resource ID of the text displayed to the user.
* `hotkey` - Instance of `PowerToysSettings::HotkeyObject` class.
You can create `PowerToysSettings::HotkeyObject` object either by using helper `from_settings` static method or by providing JSON object to `from_json` static method:
The `PowerToysSettings::HotkeyObject::from_settings` take following parameters:
* `win_pressed` - Is the WinKey pressed.
* `ctrl_pressed` - Is the Ctrl key pressed.
* `alt_pressed` - Is the Alt key pressed.
* `shift_pressed` - Is the Shift key pressed.
* `vk_code` - The [virtual key-code](https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes) of the key.
The displayed key is deduced from the `vk_code` using the users keyboard layout and language settings.
Similar parameters can be passed using the `from_json` static method:
```c++
json::JsonObject json;
json.SetNamedValue(L"win", json::value(win_pressed));
json.SetNamedValue(L"ctrl", json::value(ctrl_pressed));
json.SetNamedValue(L"alt", json::value(alt_pressed));
json.SetNamedValue(L"shift", json::value(shift_pressed));
json.SetNamedValue(L"code", json::value(vk_code));
json.SetNamedValue(L"key", json::value(L"string with key name"));
auto hotkey = PowerToysSettings::HotkeyObject::from_json(json);
```
This C++:
```c++
settings.add_hotkey(L"hotkey_name",
L"description",
PowerToysSettings::HotkeyObject::from_settings(true, true, true, true, VK_F5));
```
produces this settings element:
![Hotkey](../images/settings/hotkey.png)
and this generated JSON (`114` is the value of `VK_F5`):
```json
{
"properties": {
"hotkey_name": {
"editor_type": "hotkey",
"order": autoincremented_number,
"display_name": "description",
"value": {
"win": true,
"ctrl": true,
"alt": true,
"shift": true,
"code": 114,
"key": "F5"
}
}
}
}
```
The hotkey value is returned as JSON, with the same format as `from_json` method uses. You can use `HotkeyObject` class to parse this JSON, since it offers some helper methods. A typical example of registering a hotkey:
```c++
std::optional<json::JsonObject> value = settings.get_json(L"hotkey_name");
if (value) {
auto hotkey = PowerToysSettings::HotkeyObject::from_json(*value);
RegisterHotKey(hwnd, 1, hotkey.get_modifiers(), hotkey.get_code());
}
```
### Choice group
```c++
add_choice_group(name, description, value, vector<pair<wstring, wstring>> keys_and_texts)
add_choice_group(name, description, value, vector<pair<wstring, UINT>> keys_and_texts)
```
A radio buttons group. Parameters:
* `name` - Key for element in the JSON.
* `description` - String or resource ID of the text displayed to the user.
* `value` - Key selected by default.
* `keys_and_text` - Vector of radio buttons definitions: key and the displayed label. The texts can either be strings or resource IDs.
This C++:
```c++
settings.add_choice_group(L"choice_group_name", L"description", L"val1", { { L"val1", L"value-1" },
{ L"val2", L"value-2" },
{ L"val3", L"value-3" } });
```
produces this settings element:
![Choice group](../images/settings/choice_group.png)
and this generated JSON:
```json
{
"properties": {
"choice_group_name": {
"editor_type": "choice_group",
"order": autoincremented_number,
"display_name": "description",
"value": "val1",
"options": [ {"key": "val1", "text": "value-1"},
{"key": "val2", "text": "value-2"},
{"key": "val3", "text": "value-3"} ]
}
}
}
}
```
The chosen button value is stored as a string with the key of the button selected by the user:
```c++
std::optional<std::wstring> value = settings.get_string_value(L"choice_group_name");
```
### Dropdown
```c++
add_dropdown(name, description, value, vector<pair<wstring, wstring>> keys_and_texts)
add_dropdown(name, description, value, vector<pair<wstring, UINT>> keys_and_texts)
```
A dropdown. Parameters:
* `name` - Key for element in the JSON.
* `description` - String or resource ID of the text displayed to the user.
* `value` - Key selected by default.
* `keys_and_text` - Vector of the options definitions: key and the displayed label. The texts can either be strings or resource IDs.
This C++:
```c++
settings.add_dropdown(L"dropdown_name", L"description", L"val2", { { L"val1", L"value-1" },
{ L"val2", L"value-2" },
{ L"val3", L"value-3" } });
```
produces this settings element:
![Dropdown 1](../images/settings/dropdown_1.png)
![Dropdown 2](../images/settings/dropdown_2.png)
and this generated JSON:
```json
{
"properties": {
"dropdown_name": {
"editor_type": "dropdown",
"order": autoincremented_number,
"display_name": "description",
"value": "val1",
"options": [ {"key": "val1", "text": "value-1"},
{"key": "val2", "text": "value-2"},
{"key": "val3", "text": "value-3"} ]
}
}
}
}
```
The chosen value is stored as a string with the key of the option selected by the user:
```c++
std::optional<std::wstring> value = settings.get_string_value(L"dropdown_name");
```
### Custom action
```c++
add_custom_action(name, description, button_text, ext_description)
```
Adds a button with a description. Parameters:
* `name` - Key for element in the JSON.
* `description` - String or resource ID of the text displayed to the user.
* `button_text` - String or resource ID for the button label.
* `ext_description` - String or resource ID for the extended description.
This C++:
```c++
settings.add_custom_action(L"custom_action_name", L"description", L"button_text", L"ext_description");
```
produces this settings element:
![Custom action](../images/settings/custom_action.png)
and this generated JSON:
```json
{
"properties": {
"custom_action_name": {
"editor_type": "custom_action",
"order": autoincremented_number,
"display_name": "description",
"button_text": "button_text",
"value": "ext_description"
}
}
}
```
When the button is pressed, the `call_custom_action` method of the module will be called, with JSON containing the name of the action. In our example:
```json
{
"action_name":"custom_action_name",
"value":"ext_description"
}
```

View File

@@ -1,10 +1,3 @@
# Web project for the Settings UI
## Introduction
This project generates the web UI shown in the [PowerToys Settings](/src/editor).
It's a `ReactJS` project created using [UI Fabric](https://developer.microsoft.com/en-us/fabric#/).
## Build Commands
Here are the commands to build and test this project:
@@ -22,9 +15,11 @@ npm run start
npm run build
```
**Note:** you will need to rebuild the settings project to pick up the changes
## Updating the icons
Icons inside [`src/icons/`](./src/icons/) were generated from the [Office UI Fabric Icons subset generation tool.](https://uifabricicons.azurewebsites.net/)
Icons inside [`src/icons/`](/src/settings-web/src/icons/) were generated from the [Office UI Fabric Icons subset generation tool.](https://uifabricicons.azurewebsites.net/)
In case the subset needs to be changed, additional steps are needed to include the icon font in the built `dist/bundle.js`:
- Copy the inline font data taken from [`src/icons/css/fabric-icons-inline.css`](src/icons/css/fabric-icons-inline.css) and place it in the `fontFace` `src` value in [`src/icons/src/fabric-icons.ts`](src/icons/src/fabric-icons.ts).
@@ -37,44 +32,44 @@ SVG icons, including the icons for each PowerToy listed in the Settings, are con
The project structure is based on the [`UI Fabric` scaffold](https://developer.microsoft.com/en-us/fabric#/get-started/web#option-1-quick-start) obtained by initializing it with `npm init uifabric`.
#### [index.html](./index.html)
#### [index.html](/src/settings-web/index.html)
The HTML entry-point of the project.
Loads the `ReactJS` distribution script.
Defines JavaScript functions to receive and send messages to the [PowerToys Settings](/src/editor) window.
#### [src/index.tsx](./src/index.tsx)
#### [src/index.tsx](/src/settings-web/src/index.tsx)
Main `ReactJS` entrypoint, initializing the `ReactDOM`.
#### [src/setup_icons.tsx](./src/setup_icons.tsx)
#### [src/setup_icons.tsx](/src/settings-web/src/setup_icons.tsx)
Defines the `setup_powertoys_icons` function that registers the icons to be used in the components.
#### [src/components/](./src/components/)
#### [src/components/](/src/settings-web/src/components/)
Contains the `ReactJS` components, including the Settings controls for each type of setting.
#### [src/components/App.tsx](./src/components/App.tsx)
#### [src/components/App.tsx](/src/settings-web/src/components/App.tsx)
Defines the main App component, containing the UI layout, navigation menu, dialogs and main load/save logic.
#### [src/components/GeneralSettings.tsx](./src/components/GeneralSettings.tsx)
#### [src/components/GeneralSettings.tsx](/src/settings-web/src/components/GeneralSettings.tsx)
Defines the PowerToys General Settings component, including logic to construct the object sent to PowerToys to change the General settings.
#### [src/components/ModuleSettings.tsx](./src/components/ModuleSettings.tsx)
#### [src/components/ModuleSettings.tsx](/src/settings-web/src/components/ModuleSettings.tsx)
Defines the component that generates the settings screen for a PowerToy depending on its settings definition.
#### [src/components/BaseSettingsControl.tsx](./src/components/BaseSettingsControl.tsx)
#### [src/components/BaseSettingsControl.tsx](/src/settings-web/src/components/BaseSettingsControl.tsx)
Defines the base class for a Settings control.
#### [src/css/layout.css](./src/css/layout.css)
#### [src/css/layout.css](/src/settings-web/src/css/layout.css)
General layout styles.
#### [src/icons/](./src/icons/)
#### [src/icons/](/src/settings-web/src/icons/)
Icons generated from the [Office UI Fabric Icons subset generation tool.](https://uifabricicons.azurewebsites.net/)
#### [src/svg/](./src/svg/)
#### [src/svg/](/src/settings-web/src/svg/)
SVG icon assets.
## Creating a new settings control
The [`BaseSettingsControl` class](./src/components/BaseSettingsControl.tsx) can be extended to create a new Settings control type.
The [`BaseSettingsControl` class](/src/settings-web/src/components/BaseSettingsControl.tsx) can be extended to create a new Settings control type.
```tsx
export class BaseSettingsControl extends React.Component <any, any> {
@@ -92,7 +87,7 @@ export class BaseSettingsControl extends React.Component <any, any> {
A settings control overrides the `get_value` function to return the value to be used for the Setting the control is representing.
It will use the `parent_on_change` property to signal that the user made some changes to the settings.
Here's the [`StringTextSettingsControl`](./src/components/StringTextSettingsControl.tsx) component to serve as an example:
Here's the [`StringTextSettingsControl`](/src/settings-web/src/components/StringTextSettingsControl.tsx) component to serve as an example:
```tsx
export class StringTextSettingsControl extends BaseSettingsControl {
@@ -153,8 +148,8 @@ Each settings property has a `editor_type` field that's used to differentiate be
}
```
A new Settings control component can be added to [`src/components/`](./src/components/).
To render the new Settings control, its `editor_type` and component instance need to be added to the [`ModuleSettings` component render()](./src/components/ModuleSettings.tsx):
A new Settings control component can be added to [`src/components/`](/src/settings-web/src/components/).
To render the new Settings control, its `editor_type` and component instance need to be added to the [`ModuleSettings` component render()](/src/settings-web/src/components/ModuleSettings.tsx):
```tsx
import React from 'react';
import {StringTextSettingsControl} from './StringTextSettingsControl';

287
doc/devdocs/settings.md Normal file
View File

@@ -0,0 +1,287 @@
# Settings
## Overview
PowerToys provides a common framework for settings. It can be used to save and load settings on disk, and provides a user interface for changing the options.
## Initialization
When a PowerToy module is created, it should load its configuration using [`PowerToyValues`](/src/common/settings_objects.h) class. The class provides static `load_from_settings_file` method which takes one parameter - the PowerToy module name. The `PowerToyValues` class provides methods to extract values. The method return `std::optional` - it is possible, that the method will return `std::nullopt` in which case you must use defaults.
```c++
class ExamplePowertoy : public PowertoyModuleIface
{
public:
ExamplePowertoy()
{
auto settings = PowerToySettings::PowerToyValues::load_from_settings_file(L"Example Powertoy");
// See if value is set, otherwise keep the default value
if (auto int_value = settings.get_int_value(L"int_setting"))
{
m_int_setting = *int_value;
}
if (auto string_value = setting.get_string_value("string_setting"))
{
m_string_setting = *string_value;
}
}
// ...
private:
// Settings and their default values
int m_int_setting = 10;
std::wstring m_string_setting = L"default";
}
```
## Settings screen
When users starts the settings screen, the runner will call the [`get_config()`](modules/interface.md) method. The interface expects the method to fill provided buffer. Use the [`Settings`](/src/common/settings_objects.h) class to construct proper response with proper format. The class has helper method to set description and links fields, it also provides a way to define the content of the settings screen. Keep all the strings in the resource file and provide the resource IDs to the methods.
```c++
extern "C" IMAGE_DOS_HEADER __ImageBase; // Needed to get strings from the resource file
bool ExamplePowertoy::get_config(wchar_t* buffer, int* buffer_size)
{
PowerToySettings::Settings settings(reinterpret_cast<HINSTANCE>(&__ImageBase), L"Example Powertoy");
// Set PowerToy description
settings.set_description(IDS_POWERTOY_DESCRIPTION);
settings.set_icon_key("pt_icon_key");
settings.set_overview_link(IDS_POWERTOY_OVERVIEW_LINK);
settings.set_video_link(IDS_POWERTOY_OVERVIEW_LINK);
// Add int and string settings, provide current values:
settings.add_int_spinner(L"int_setting", IDS_INT_SETTING_DESCRIPTION, m_int_setting, 0, 100, 10);
settings.add_string(L"string_setting", IDS_STRING_SETTING_DESCRIPTION, m_string_setting);
// Use the build-in machinery to return the configuration:
return settings.serialize_to_buffer(buffer, buffer_size);
}
```
The list of all the available settings elements and their description is [further in this doc](#available-settings-elements). New PowerToy icons need to be [added to the `settings-web` project](https://github.com/microsoft/PowerToys/blob/master/doc/devdocs/settings-web.md#updating-the-icons).
## User changes settings
When user closes the settings screen, the runner will call the [`get_config()`](modules/interface.md) method. Use [`PowerToyValues`](/src/common/settings_objects.h) class static `from_json_string` method to parse the settings. After that, the code is similar to loading the settings from disk:
```c++
void ExamplePowertoy::set_config(const wchar_t* config)
{
auto settings = PowerToySettings::PowerToyValues::from_json_string(config);
// See if value is set update the values
if (auto int_value = settings.get_int_value(L"int_setting"))
{
m_int_setting = *int_value;
}
if (auto string_value = setting.get_string_value("string_setting"))
{
m_string_setting = *string_value;
}
// Save the new settings to disk
settings.save_to_settings_file();
}
```
## Detailed reference
For a detailed reference of how the settings are implemented in the runner and in the settings editor, consult [this detailed guide](settings-reference.md).
# Available settings elements
## Bool toggle
<table><tr><td align="center">
<img src="../images/settings/bool_toggle.png" width="80%">
</td></tr></table>
```c++
settings.add_bool_toogle(name, description, value)
```
A simple on-off toggle. Parameters:
* `name` - Key for the element in the JSON.
* `description` - Resource ID of the text displayed to the user.
* `value` - Initial state of the toggle (`true` - on, `false` - off).
The toggle value is stored as bool:
```c++
std::optional<bool> bool_value = settings.get_bool_value(L"bool_name");
```
## Int Spinner
<table><tr><td align="center">
<img src="../images/settings/int_spinner.png" width="80%">
</td></tr></table>
```c++
settings.add_int_spinner(name, description, value, min, max, step)
```
Numeric input with dials to increment and decrement the value. Parameters:
* `name` - Key for element in the JSON.
* `description` - Resource ID of the text displayed to the user.
* `value` - Initial control value.
* `min`, `max` - Minimum and maximum values for the input. User cannot use dials to move beyond those values, if a value out of range is inserted using the keyboard, it will get clamped to the allowed range.
* `step` - How much the dials change the value.
The spinner value is stored as int:
```c++
std::optional<int> int_value = settings.get_int_value(L"int_spinner_name");
```
## String
<table><tr><td align="center">
<img src="../images/settings/string.png" width="80%">
</td></tr></table>
```c++
settings.add_string(name, description, value)
```
Single line text input. Parameters:
* `name` - Key for element in the JSON.
* `description` - Resource ID of the text displayed to the user.
* `value` - Default value for the input.
The input value is stored as `std::wstring`:
```c++
std::optional<std::wstring> string_value = settings.get_string_value(L"string_name");
```
## Multiline string
<table><tr><td align="center">
<img src="../images/settings/multiline.png" width="80%">
</td></tr></table>
```c++
settings.add_multiline_string(name, description, value)
```
Multiline text input. Parameters:
* `name` - Key for element in the JSON.
* `description` - Resource ID of the text displayed to the user.
* `value` - Default value for the input. Can have multiple lines.
The input value is stored as string:
```c++
std::optional<std::wstring> value = settings.get_string_value(L"multiline_name");
```
## Color picker
<table><tr><td align="center">
<img src="../images/settings/color_picker.png" width="80%">
</td></tr></table>
```c++
settings.add_color_picker(name, description, value)
```
Allows user to pick a color. Parameters:
* `name` - Key for element in the JSON.
* `description` - Resource ID of the text displayed to the user.
* `value` - Initial color, as a string in `"#RRGGBB"` format.
The color picker value is stored as `std::wstring` as `#RRGGBB`:
```c++
std::optional<std::wstring> value = settings.get_string_value(L"colorpicker_name");
```
## Hotkey
<table><tr><td align="center">
<img src="../images/settings/hotkey.png" width="80%">
</td></tr></table>
```c++
settings.add_hotkey(name, description, hotkey)
```
Input for capturing hotkeys. Parameters:
* `name` - Key for element in the JSON.
* `description` - Resource ID of the text displayed to the user.
* `hotkey` - Instance of `PowerToysSettings::HotkeyObject` class.
You can create `PowerToysSettings::HotkeyObject` object either by using helper `from_settings` static method or by providing a JSON object to `from_json` static method.
The `PowerToysSettings::HotkeyObject::from_settings` take following parameters:
* `win_pressed` - Is the WinKey pressed.
* `ctrl_pressed` - Is the Ctrl key pressed.
* `alt_pressed` - Is the Alt key pressed.
* `shift_pressed` - Is the Shift key pressed.
* `vk_code` - The [virtual key-code](https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes) of the key.
The displayed key is deduced from the `vk_code` using the users keyboard layout and language settings.
The hotkey value is returned as JSON, which can be used with the `from_json` method to create a `HotkeyObject` object. A typical example of registering a hotkey:
```c++
std::optional<json::JsonObject> value = settings.get_json(L"hotkey_name");
if (value) {
auto hotkey = PowerToysSettings::HotkeyObject::from_json(*value);
RegisterHotKey(hwnd, 1, hotkey.get_modifiers(), hotkey.get_code());
}
```
## Choice group
<table><tr><td align="center">
<img src="../images/settings/choice_group.png" width="80%">
</td></tr></table>
```c++
add_choice_group(name, description, value, vector<pair<wstring, UINT>> keys_and_texts)
```
A radio buttons group. Parameters:
* `name` - Key for element in the JSON.
* `description` - Resource ID of the text displayed to the user.
* `value` - Key selected by default.
* `keys_and_text` - Vector of radio buttons definitions: key and the displayed label.
The chosen button value is stored as a string with the key of the button selected by the user:
```c++
std::optional<std::wstring> value = settings.get_string_value(L"choice_group_name");
```
## Dropdown
<table>
<tr><td align="center">
<img src="../images/settings/dropdown_1.png" width="80%">
</td></tr>
<tr><td align="center">
<img src="../images/settings/dropdown_2.png" width="80%">
</td></tr>
</table>
```c++
add_dropdown(name, description, value, vector<pair<wstring, UINT>> keys_and_texts)
```
A dropdown. Parameters:
* `name` - Key for element in the JSON.
* `description` - Resource ID of the text displayed to the user.
* `value` - Key selected by default.
* `keys_and_text` - Vector of the options definitions: key and the displayed label.
The chosen value is stored as a string with the key of the option selected by the user:
```c++
std::optional<std::wstring> value = settings.get_string_value(L"dropdown_name");
```
## Custom action
<table><tr><td align="center">
<img src="../images/settings/custom_action.png" width="80%">
</td></tr></table>
```c++
add_custom_action(name, description, button_text, ext_description)
```
Adds a button with a description. Parameters:
* `name` - Key for element in the JSON.
* `description` - Resource ID of the text displayed to the user.
* `button_text` - Resource ID for the button label.
* `ext_description` - Resource ID for the extended description.
When the button is pressed, the `call_custom_action` method of the module will be called, with JSON containing the name of the action. Parse it using `PowerToysSettings::CustomActionObject`:
```c++
void ExamplePowertoy::call_custom_action(const wchar_t* action) override
{
auto action_object = PowerToysSettings::CustomActionObject::from_json_string(action);
auto name = action_object.get_name(); // same value as the 'name' parameter
// .. do stuff ..
}
```
# File organization
### [main.cpp](/src/settings/main.cpp)
Contains the main executable code, initializing and managing the Window containing the WebView and communication with the main PowerToys executable.
### [StreamURIResolverFromFile.cpp](/src/settings/StreamURIResolverFromFile.cpp)
Defines a class implementing `IUriToStreamResolver`. Allows the WebView to navigate to filesystem files in this Win32 project.
### [settings-html/](/src/settings/settings-html/)
Contains the assets file from building the [Web project for the Settings UI](/src/settings./settings-web). It will be loaded by the WebView.

View File

@@ -1,85 +1,85 @@
# Shared hooks
To minimize the performance impact on the machine only `runner` installs global hooks, passing the events to registered callbacks in each PowerToy module.
When a PowerToy module is loaded, the `runner` calls the [`get_events()`](/src/modules/interface/powertoy_module_interface.h#L40) method to get a NULL-terminated array of NULL-terminated strings with the names of the events that the PowerToy wants to subscribe to. A `const wchar_t*` string is provided for each of the event names.
Events are signalled by the `runner` calling the [`signal_event(name, data)`](/src/modules/interface/powertoy_module_interface.h#L53) method of the PowerToy module. The `name` parameter contains the NULL-terminated name of the event. The `data` parameter and the method return value are specific for each event.
Currently supported hooks:
* `"ll_keyboard"` - [Low Level Keyboard Hook](#low-level-keyboard-hook)
* `"win_hook_event"` - [Windows Event Hook](#windows-event-hook)
## Low Level Keyboard Hook
This event is signaled whenever the user presses or releases a key on the keyboard. To subscribe to this event, add `"ll_keyboard"` to the table returned by the `get_events()` method.
The PowerToys runner installs low-level keyboard hook using `SetWindowsHookEx(WH_KEYBOARD_LL, ...)`. See [this MSDN page](https://docs.microsoft.com/en-us/previous-versions/windows/desktop/legacy/ms644985(v%3Dvs.85)) for details.
When a keyboard event is signaled and `ncCode` equals `HC_ACTION`, the `wParam` and `lParam` event parameters are passed to all subscribed clients in the [`LowlevelKeyboardEvent`](/src/modules/interface/lowlevel_keyboard_event_data.h#L38-L41) struct.
The `intptr_t data` event argument is a pointer to the `LowlevelKeyboardEvent` struct.
A non-zero return value from any of the subscribed PowerToys will cause the runner hook proc to return 1, thus swallowing the keyboard event.
Example usage, that makes Windows ignore the L key:
```c++
virtual const wchar_t** get_events() override {
static const wchar_t* events[2] = { ll_keyboard,
nullptr };
return events;
}
virtual intptr_t signal_event(const wchar_t* name, intptr_t data) override {
if (wcscmp(name, ll_keyboard) == 0) {
auto& event = *(reinterpret_cast<LowlevelKeyboardEvent*>(data));
// The L key has vkCode of 0x4C, see:
// https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes
if (event.wParam == WM_KEYDOWN && event.lParam->vkCode == 0x4C) {
return 1;
} else {
return 0;
}
} else {
return 0;
}
}
```
## Windows Event Hook
This event is signaled for [a range of events](https://docs.microsoft.com/pl-pl/windows/win32/winauto/event-constants). To subscribe to this event, add `"win_hook_event"` to the table returned by the `get_events()` method. See [this MSDN doc](https://docs.microsoft.com/pl-pl/windows/win32/api/winuser/nf-winuser-setwineventhook) for details.
The `intptr_t data` event argument is a pointer to the [`WinHookEvent`](/src/modules/interface/win_hook_event_data.h#L43-L50) struct.
The return value of the event handler is ignored.
Example usage, that detects a window being resized:
```c++
virtual const wchar_t** get_events() override {
static const wchar_t* events[2] = { win_hook_event,
nullptr };
return events;
}
virtual intptr_t signal_event(const wchar_t* name, intptr_t data) override {
if (wcscmp(name, win_hook_event) == 0) {
auto& event = *(reinterpret_cast<WinHookEvent*>(data));
switch (event.event) {
case EVENT_SYSTEM_MOVESIZESTART:
size_start(event.hwnd);
break;
case EVENT_SYSTEM_MOVESIZEEND:
size_end(event.hwnd);
break;
default:
break;
}
}
return 0;
}
```
Taking too long to process the events has negative impact on the whole system performance. To address this, the events are signaled from a different thread, not from the event hook callback itself.
# Shared hooks
To minimize the performance impact on the machine only `runner` installs global hooks, passing the events to registered callbacks in each PowerToy module.
When a PowerToy module is loaded, the `runner` calls the [`get_events()`](/src/modules/interface/powertoy_module_interface.h#L40) method to get a NULL-terminated array of NULL-terminated strings with the names of the events that the PowerToy wants to subscribe to. A `const wchar_t*` string is provided for each of the event names.
Events are signalled by the `runner` calling the [`signal_event(name, data)`](/src/modules/interface/powertoy_module_interface.h#L53) method of the PowerToy module. The `name` parameter contains the NULL-terminated name of the event. The `data` parameter and the method return value are specific for each event.
Currently supported hooks:
* `"ll_keyboard"` - [Low Level Keyboard Hook](#low-level-keyboard-hook)
* `"win_hook_event"` - [Windows Event Hook](#windows-event-hook)
## Low Level Keyboard Hook
This event is signaled whenever the user presses or releases a key on the keyboard. To subscribe to this event, add `"ll_keyboard"` to the table returned by the `get_events()` method.
The PowerToys runner installs low-level keyboard hook using `SetWindowsHookEx(WH_KEYBOARD_LL, ...)`. See [this MSDN page](https://docs.microsoft.com/en-us/previous-versions/windows/desktop/legacy/ms644985(v%3Dvs.85)) for details.
When a keyboard event is signaled and `ncCode` equals `HC_ACTION`, the `wParam` and `lParam` event parameters are passed to all subscribed clients in the [`LowlevelKeyboardEvent`](/src/modules/interface/lowlevel_keyboard_event_data.h#L38-L41) struct.
The `intptr_t data` event argument is a pointer to the `LowlevelKeyboardEvent` struct.
A non-zero return value from any of the subscribed PowerToys will cause the runner hook proc to return 1, thus swallowing the keyboard event.
Example usage, that makes Windows ignore the L key:
```c++
virtual const wchar_t** get_events() override {
static const wchar_t* events[2] = { ll_keyboard,
nullptr };
return events;
}
virtual intptr_t signal_event(const wchar_t* name, intptr_t data) override {
if (wcscmp(name, ll_keyboard) == 0) {
auto& event = *(reinterpret_cast<LowlevelKeyboardEvent*>(data));
// The L key has vkCode of 0x4C, see:
// https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes
if (event.wParam == WM_KEYDOWN && event.lParam->vkCode == 0x4C) {
return 1;
} else {
return 0;
}
} else {
return 0;
}
}
```
## Windows Event Hook
This event is signaled for [a range of events](https://docs.microsoft.com/pl-pl/windows/win32/winauto/event-constants). To subscribe to this event, add `"win_hook_event"` to the table returned by the `get_events()` method. See [this MSDN doc](https://docs.microsoft.com/pl-pl/windows/win32/api/winuser/nf-winuser-setwineventhook) for details.
The `intptr_t data` event argument is a pointer to the [`WinHookEvent`](/src/modules/interface/win_hook_event_data.h#L43-L50) struct.
The return value of the event handler is ignored.
Example usage, that detects a window being resized:
```c++
virtual const wchar_t** get_events() override {
static const wchar_t* events[2] = { win_hook_event,
nullptr };
return events;
}
virtual intptr_t signal_event(const wchar_t* name, intptr_t data) override {
if (wcscmp(name, win_hook_event) == 0) {
auto& event = *(reinterpret_cast<WinHookEvent*>(data));
switch (event.event) {
case EVENT_SYSTEM_MOVESIZESTART:
size_start(event.hwnd);
break;
case EVENT_SYSTEM_MOVESIZEEND:
size_end(event.hwnd);
break;
default:
break;
}
}
return 0;
}
```
Taking too long to process the events has negative impact on the whole system performance. To address this, the events are signaled from a different thread, not from the event hook callback itself.

12
doc/devdocs/style.md Normal file
View File

@@ -0,0 +1,12 @@
# Coding Style
## Philosophy
1. If it's inserting something into the existing classes/functions, try to follow the existing style as closely as possible.
1. If it's brand new code or refactoring a complete class or area of the code, please follow as Modern C++ of a style as you can and reference the [C++ Core Guidelines](https://github.com/isocpp/CppCoreGuidelines) as much as you possibly can.
## 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.
- 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/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.

After

Width:  |  Height:  |  Size: 2.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 MiB

30
doc/images/Logo.svg Normal file
View File

@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="176px" height="60px" viewBox="0 0 176 60" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 54.1 (76490) - https://sketchapp.com -->
<title>Microsoft PowerToys</title>
<desc>Logo for Microsoft PowerToys</desc>
<g id="Devices" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="Final-Logo" transform="translate(-309.000000, -228.000000)">
<g id="Group" transform="translate(309.000000, 228.000000)">
<g id="Group-2-Copy-7">
<rect id="Rectangle-Copy-40" fill="#E4292E" x="12.3529412" y="8.82352941" width="7" height="21.1764706"></rect>
<rect id="Rectangle-Copy-41" fill="#E76643" x="19" y="8.82352941" width="7" height="21.1764706"></rect>
<rect id="Rectangle-Copy-42" fill="#F4C81D" x="26" y="8.82352941" width="7" height="21.1764706"></rect>
<rect id="Rectangle-Copy-43" fill="#4EB445" x="33" y="8.82352941" width="7" height="21.1764706"></rect>
<rect id="Rectangle-Copy-50" fill="#02A3E8" x="40" y="8.82352941" width="7" height="21.1764706"></rect>
<rect id="Rectangle-Copy-44" fill="#D6CDB2" x="12.3529412" y="33.5294118" width="7.05882353" height="7.05882353"></rect>
<rect id="Rectangle-Copy-45" fill="#D6CDB2" x="26.4705882" y="33.5294118" width="7.05882353" height="7.05882353"></rect>
<rect id="Rectangle-Copy-46" fill="#D6CDB2" x="40.5882353" y="33.5294118" width="7.05882353" height="7.05882353"></rect>
<rect id="Rectangle-Copy-47" fill="#D6CDB2" x="12.3529412" y="44.1176471" width="7.05882353" height="7.05882353"></rect>
<rect id="Rectangle-Copy-48" fill="#D6CDB2" x="26.4705882" y="44.1176471" width="7.05882353" height="7.05882353"></rect>
<rect id="Rectangle-Copy-49" fill="#D6CDB2" x="40.5882353" y="44.1176471" width="7.05882353" height="7.05882353"></rect>
<polygon id="Line-5-Copy-13" fill="#D6CDB2" fill-rule="nonzero" points="3.52941176 3.52941176 3.52941176 0 56.4705882 0 56.4705882 3.52941176"></polygon>
<polygon id="Line-5-Copy-14" fill="#D6CDB2" fill-rule="nonzero" points="3.52941176 60 3.52941176 56.4705882 56.4705882 56.4705882 56.4705882 60"></polygon>
<polygon id="Line-5-Copy-15" fill="#D6CDB2" fill-rule="nonzero" transform="translate(58.235294, 30.000000) rotate(-270.000000) translate(-58.235294, -30.000000) " points="31.7647059 31.7647059 31.7647059 28.2352941 84.7058824 28.2352941 84.7058824 31.7647059"></polygon>
<polygon id="Line-5-Copy-16" fill="#D6CDB2" fill-rule="nonzero" transform="translate(1.764706, 30.000000) rotate(-270.000000) translate(-1.764706, -30.000000) " points="-24.7058824 31.7647059 -24.7058824 28.2352941 28.2352941 28.2352941 28.2352941 31.7647059"></polygon>
</g>
<path d="M87.9970703,10.0039062 L87.9970703,6 L79.9990234,6 L79.9990234,10.0039062 L87.9970703,10.0039062 Z M76,26 L76,2.00097656 L91.9960938,2.00097656 L91.9960938,14.0029297 L79.9990234,14.0029297 L79.9990234,26 L76,26 Z M99.9990234,26 L99.9990234,22.0009766 L107.99707,22.0009766 L107.99707,26 L99.9990234,26 Z M96,22.0009766 L96,10.0039062 L99.9990234,10.0039062 L99.9990234,22.0009766 L96,22.0009766 Z M107.99707,22.0009766 L107.99707,10.0039062 L111.996094,10.0039062 L111.996094,22.0009766 L107.99707,22.0009766 Z M99.9990234,10.0039062 L99.9990234,6 L107.99707,6 L107.99707,10.0039062 L99.9990234,10.0039062 Z M119.999023,26 L119.999023,22.0009766 L123.998047,22.0009766 L123.998047,26 L119.999023,26 Z M127.99707,26 L127.99707,22.0009766 L131.996094,22.0009766 L131.996094,26 L127.99707,26 Z M123.998047,22.0009766 L123.998047,14.0029297 L127.99707,14.0029297 L127.99707,22.0009766 L123.998047,22.0009766 Z M116,22.0009766 L116,6 L119.999023,6 L119.999023,22.0009766 L116,22.0009766 Z M131.996094,22.0009766 L131.996094,6 L136,6 L136,22.0009766 L131.996094,22.0009766 Z M151.996094,14.0029297 L151.996094,10.0039062 L143.998047,10.0039062 L143.998047,14.0029297 L151.996094,14.0029297 Z M143.996094,10.0029297 L143.996094,6.00390625 L139.996094,6.00390625 L139.996094,10.0029297 L143.996094,10.0029297 Z M139.999023,26 L139.999023,6 L155.995117,6 L155.995117,18.0019531 L143.998047,18.0019531 L143.998047,22.0009766 L155.995117,22.0009766 L155.995117,26 L139.999023,26 Z M159.999023,26 L159.999023,6 L175.995117,6 L175.995117,10.0039062 L163.998047,10.0039062 L163.998047,26 L159.999023,26 Z M83.9980469,56 L83.9980469,36 L76,36 L76,32.0009766 L96,32.0009766 L96,36 L87.9970703,36 L87.9970703,56 L83.9980469,56 Z M103.998047,56 L103.998047,52.0009766 L111.996094,52.0009766 L111.996094,56 L103.998047,56 Z M99.9990234,52.0009766 L99.9990234,40.0039062 L103.998047,40.0039062 L103.998047,52.0009766 L99.9990234,52.0009766 Z M111.996094,52.0009766 L111.996094,40.0039062 L115.995117,40.0039062 L115.995117,52.0009766 L111.996094,52.0009766 Z M103.998047,40.0039062 L103.998047,36 L111.996094,36 L111.996094,40.0039062 L103.998047,40.0039062 Z M119.999023,56 L119.999023,52.0009766 L131.996094,52.0009766 L131.996094,48.0019531 L119.999023,48.0019531 L119.999023,36 L123.998047,36 L123.998047,44.0029297 L131.996094,44.0029297 L131.996094,36 L135.995117,36 L135.995117,56 L119.999023,56 Z M139.999023,56 L139.999023,52.0009766 L151.996094,52.0009766 L151.996094,48.0019531 L139.999023,48.0019531 L139.999023,36 L155.995117,36 L155.995117,40.0039062 L143.998047,40.0039062 L143.998047,44.0029297 L155.995117,44.0029297 L155.995117,56 L139.999023,56 Z" id="PowerToys-Copy-2" fill="#D6CDB2" fill-rule="nonzero"></path>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.7 KiB

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 454 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 336 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 514 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 637 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 728 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 724 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 812 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 762 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 405 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 588 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 858 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 447 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 641 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

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