Commit Graph

39 Commits

Author SHA1 Message Date
Clint Rutkas
e02977edc0
Whitespace and type fixes (#5917) 2020-08-13 15:31:14 -07:00
Clint Rutkas
95e82ca359
[stylecop] program plugin/unit test first pass (#5908)
* initial pass

* multiple whitespace fixes
2020-08-12 11:46:11 -07:00
ryanbodrug-microsoft
ac10c988b9
Enable Static Analysis on programs plugin (#5847)
* Removing unused ProgramSettings constructor paramaters.

* Fix for:

Severity Code Description Project File Line Suppression State
Error CA1829 Use the "Count" property instead of Enumerable.Count(). Microsoft.Plugin.Program C:\Repos\PowerToys\src\modules\launcher\Plugins\Microsoft.Plugin.Program\Views\ProgramSetting.xaml.cs 182 Active

Severity Code Description Project File Line Suppression State
Error CA1827 Count() is used where Any() could be used instead to improve performance. Microsoft.Plugin.Program C:\Repos\PowerToys\src\modules\launcher\Plugins\Microsoft.Plugin.Program\Views\ProgramSetting.xaml.cs 287 Active

* Fixes for CA1031:
https://docs.microsoft.com/en-us/visualstudio/code-quality/ca1031?view=vs-2019

* More fixes(Suppression) for CA1031 (Catching base exception)
https://docs.microsoft.com/en-us/visualstudio/code-quality/ca1031?view=vs-2019

* Fix for nested types being externally visible.  CA1034
https://docs.microsoft.com/en-us/visualstudio/code-quality/ca1034?view=vs-2019

* Fix for  CA1028 If possible, make the underlying type of Hresult System.Int32 instead of uint. Microsoft.Plugin.Program C:\Repos\PowerToys\src\modules\launcher\Plugins\Microsoft.Plugin.Program\Programs\UWP.cs 236 Active

* Fix for CA2227 Collection properties should be readonly.
https://docs.microsoft.com/en-us/visualstudio/code-quality/ca2227?view=vs-2019

Fix rror CA2211 Non-constant fields should not be visible
https://docs.microsoft.com/en-us/visualstudio/code-quality/ca2211?view=vs-2019

* CA2208: Instantiate argument exceptions correctly
https://docs.microsoft.com/en-us/visualstudio/code-quality/ca2208?view=vs-2019

* Win32.cs Static analysis fixes:

CA2200: Rethrow to preserve stack details
https://docs.microsoft.com/en-us/visualstudio/code-quality/ca2200?view=vs-2019

CA1825: Avoid zero-length array allocations
https://docs.microsoft.com/en-us/visualstudio/code-quality/ca1825?view=vs-2019

CA2211: Non-constant fields should not be visible
https://docs.microsoft.com/en-us/visualstudio/code-quality/ca2211?view=vs-2019

* More Win32.cs static analysis fixes:

CA1307: Specify StringComparison
https://docs.microsoft.com/en-us/visualstudio/code-quality/ca1307?view=vs-2019

Verifying query is not null before using it.
CA1062: Validate arguments of public methods
https://docs.microsoft.com/en-us/visualstudio/code-quality/ca1062?view=vs-2019

CA1305: Specify IFormatProvider
https://docs.microsoft.com/en-us/visualstudio/code-quality/ca1305?view=vs-2019

* UWPApplication.

CA2007: Do not directly await a Task
https://docs.microsoft.com/en-us/visualstudio/code-quality/ca2007?view=vs-2019

* Error CA2010 Consume the hresult returned by method 'Microsoft.Plugin.Program.Programs.AppxPackageHelper.IAppxManifestApplication.GetStringValue(string, out string)' and call Marshal.ThrowExceptionForHR.

Note:  CA2010 has been removed from future FXCop versions as it can provide incorrect advice for methods that don't return hresult (possibly when [PreserveSig] has been incorrectly labeled.)  I've verified the methods in question do still return hresults.

* More fixes for
Error CA2010 Consume the hresult returned by method and call Marshal.ThrowExceptionForHR.

* Fixes for:
Error CA2000 Call System.IDisposable.Dispose on object created before all references to it are out of scope.

* Suppress CA1031:Do not catch general exception types

* Fixes for
Error CA1034 Do not nest type ...

* Fixing Unit tests that were broken as per a previous fix.

* Fix for: CA1034: Nested types should not be visible:
https://docs.microsoft.com/en-us/visualstudio/code-quality/ca1034?view=vs-2019

* Suppressing CA1707 for native/com types.
CA1707:Identifiers should not contain underscores

* Fix for Error CA1307 The behavior of 'string.Replace(string, string?)' could vary based on the current user's locale settings.

* Fixes for Error CA1825 Avoid unnecessary zero-length array allocations.  Use Array.Empty<string>() instead.

* Fix for: Error CA1823 Unused field 'IndexLock'.

* Fixes for CA1822: Mark members as static:
https://docs.microsoft.com/en-us/visualstudio/code-quality/ca1822?view=vs-2019

* Fix for Error CA1819 Properties should not return arrays

* Fix for Error CA1806 ContextMenus calls Trim but does not use the new string instance that the method returns. Pass the instance as an argument to another method, assign the instance to a variable, or remove the call if it is unnecessary.

* Fix for Error CA1801 Parameter settings of method UpdateSettings is never used. Remove the parameter or use it in the method body.

* Fix for Error CA1724 The type name Settings conflicts in whole or in part with the namespace name 'Microsoft.PowerToys.Settings'.

* Includes FxCop for static analysis

* Fix for Error CA1717 Only FlagsAttribute enums should have plural names

* Suppress Stgm flags: Error CA1714 Flags enums should have plural names Microsoft.Plugin.Program

* Rename Win32 to Win32Program

Fix for: Error CA1724 The type name Win32 conflicts in whole or in part with the namespace name 'Microsoft.Win32' defined in the .NET Framework. Rename the type to eliminate the conflict.

* Fixes for Error CA1507 Use nameof in place of string literal

* Using ordinal instead of invariant culture when not symbolic comparison

* CA1308: Normalize strings to uppercase
https://docs.microsoft.com/en-us/visualstudio/code-quality/ca1308?view=vs-2019

* CA1304: Specify CultureInfo
CA1305: Specify IFormatProvider

https://docs.microsoft.com/en-us/visualstudio/code-quality/ca1305?view=vs-2019
https://docs.microsoft.com/en-us/visualstudio/code-quality/ca1304?view=vs-2019

* CA1062: Validate arguments of public methods
https://docs.microsoft.com/en-us/visualstudio/code-quality/ca1062?view=vs-2019

* CA1056: URI properties should not be strings
https://docs.microsoft.com/en-us/visualstudio/code-quality/ca1056?view=vs-2019

Fix:   Making LogoURi private, as it is only used internally and operated on as a string

* Warning CA1052 Type 'AppxPackageHelper' is a static holder type but is neither static nor NotInheritable

* CA1060: Move P/Invokes to NativeMethods class
https://docs.microsoft.com/en-us/visualstudio/code-quality/ca1060?view=vs-2019

* Programs Plugin - Treat warnings as errors true

* CA1031:Do not catch general exception types
Missed release only compile issue.  Making debug and release behave the same.

* Renaming 'Create' to 'CreateWin32Program' based on PR feedback.
2020-08-11 09:08:44 -07:00
ryanbodrug-microsoft
4da8aab44f
Including valid package information when path is invalid. This is needed because the path will be invalid when uninstalling an application, but we still need the other information to remove it from the currently indexed list of uwp/packaged applications. (#5373) 2020-07-31 12:33:05 -07:00
Clint Rutkas
14247fa75a
Dev/crutkas/fixing warnings (#5161)
* new lines & braces

* Tabs /space auto fix

Co-authored-by: Clint Rutkas <crutkas@microsoft.com>
2020-07-22 13:27:17 -07:00
Alekhya
b31d9761fa
Fix for the issue where PT Run was preventing UWP apps from building in VS (#5109)
* We should not deny other processes access to this item

* added a catch block for argument exception

* using memory stream instead of URI

* removed denyNone as it is the default config
2020-07-21 10:26:37 -07:00
Alekhya
d09253e532
Functionality to detect Win32 apps which are installed, deleted or renamed while PowerToys is running (#4960)
* Added file system wrapper and interface

* added win32program repository which would load store app and also handle new apps being added/deleted

* Added event handlers to win32 program repo

* added paths to monitor and setting FSWs for each location

* Events firing as expected

* filter extensions added, events fire as expected

* override gethashcode so that duplicates don't show up. OnCreated and OnDeleted events trigger as expected

* implemented setter for filters in FileSystemWatcher

* Rename adds item but does not seem to delete the previous app

* catching an exception when a duplicate item is inserted

* Removed notify filter for directory because we only need to monitor files

* Added exe programs to be indexed in the desktop and startmenu

* created a new class to init FileSystemHelpers instead of main

* Added fix for shortcut applications to work as expected while renaming and deleting them

* Added wrappers for file system operations

* Added some tests

* Added all tests for appref-ms and added a condition to search in sub directories

* Added tests for Exe applications

* Added lnk app tests

* Added tests for shortcut applications

* removed unnecessary wrappers

* override Equals for win32

* removed debug statements

* Fixed exe issue

* Fixed internet shortcut exception

* fixed renaming shortcut apps

* Added a retry block for ReadAllLines

* capitalized method name - RetrieveTargetPath

* made naming consistent, helper variables start with underscore

* Added the exception condition back

* renamed Win32ProgramRepositoryHelper to Win32ProgramFileSystemWatchers

* made win32Program repository variable static

* changed list to ilist

* disposed file system watchers

* make retrieveTargetPath upper case in tests
2020-07-17 22:32:21 -07:00
Alekhya
f59abe23c3
Fix for File Not Found exception while indexing invalid Package App (#4971)
* Catching file not found exception

* removed unnecessary header files

* Added a string.empty check for installed location

* reusing package wrapper instead of package installing event args
2020-07-14 11:44:50 -07:00
Divyansh Srivastava
653ae777d5
Packaged apps test (#4921)
* Added wrapper for PackageManager and Package class

* Added tests for package in development and framework mode

* Renamed UWP test file

* Improved readability of UWP tests
2020-07-10 13:43:02 -07:00
Niels Laute
ec803d63c8
[Run] Updated tooltip styling and fixed casing (#4877)
* Added custom tooltip style (with theming support) that represents the UWP tooltip style.

* Removed unnecessary space in text

* Fixed run as admin casing

* Fixed casing for Indexer plugin
2020-07-10 12:06:57 -07:00
ryanbodrug-microsoft
b1d662a5b1
Improving performance of Adding and Removing Packaged Apps (#4521) (#4900)
* Merging in Theme changes and moving win32Tests to Microsoft.Plugin.Program.UnitTests

* Fixing message format for exception

* Changing test structure.  Need to add unit tests.

* Updating packagerepository comment based on pr feedback

* Fixing potential race condition in ListRepository.  Now internally implemented as a concurrent dictionary.

* Removing unecessary implementation of IRepository interface as this is implemented by the base class.

* Restoring checks for invalid uwp apps based on PR feedback. This was accidentally removed when moving the initialize outside the constructor.

* Fixing comments

* Adding newline to end of file for IProgramRepository
2020-07-09 13:14:53 -07:00
ryanbodrug-microsoft
12d9d59d85
Revert "Improving performance of Adding and Removing Packaged Apps" (#4898)
* Revert "Adding newline to end of file for IProgramRepository"

This reverts commit d55cac80bf.

* Revert "Fixing comments"

This reverts commit a1ecdc9bfa.

* Revert "Restoring checks for invalid uwp apps based on PR feedback. This was accidentally removed when moving the initialize outside the constructor."

This reverts commit 0e8c1cb0fd.

* Revert "Removing unecessary implementation of IRepository interface as this is implemented by the base class."

This reverts commit 1c724280f5.

* Revert "Fixing potential race condition in ListRepository.  Now internally implemented as a concurrent dictionary."

This reverts commit 9ff8246a9d.

* Revert "Updating packagerepository comment based on pr feedback"

This reverts commit 2c45956030.

* Revert "Changing test structure.  Need to add unit tests."

This reverts commit 1c267a55d5.

* Revert "Fixing message format for exception"

This reverts commit f60bdc3dd4.

* Revert "Merging in Theme changes and moving win32Tests to Microsoft.Plugin.Program.UnitTests"

This reverts commit 030dfc2370.
2020-07-09 12:10:48 -07:00
ryanbodrug-microsoft
a1ecdc9bfa Fixing comments 2020-07-09 07:02:19 -07:00
ryanbodrug-microsoft
0e8c1cb0fd Restoring checks for invalid uwp apps based on PR feedback. This was accidentally removed when moving the initialize outside the constructor. 2020-07-09 07:02:19 -07:00
ryanbodrug-microsoft
030dfc2370 Merging in Theme changes and moving win32Tests to Microsoft.Plugin.Program.UnitTests 2020-07-09 07:02:19 -07:00
Divyansh Srivastava
638cd1dd48
[Run] Open in console functionality (#4739)
* Added open in console for indexer

* Added open in console fpr indexer and folder plugin

* Added open in console to program plugin

* Added string localization for program plugin

* Added test for win32 program

* Added test for win32 programs

* Added test for indexer plugin

* Localization for context menu title

* Added tests for folder plugin

* Added tests for indexer plugin

* Code cleanup

* Improved logging and nit fixes

* Updated tooltip for open in console

* Updates tests

* Removed subtitle property from contextmenuresult class

* Improved logging for context menu loaders
2020-07-08 09:56:26 -07:00
Alekhya
a314106b7e
Set the name(not the description) as the Title of the Result (#4745)
* Added tests to verify that the name is always set as the title and never the description

* removed AppType as an argument

* refactored code

* added comments

* localized strings

* removed empty constructor

* made setsubtitle private

* removed the mock Win32 class used for unit testing

* removed the UWP tests
2020-07-07 15:00:17 -07:00
Divyansh Srivastava
8d72bc0ea4
Tooltip for indexer and program plugin (#4589)
* Fix multiline title issue

* Added code to display tooltip for program and indexer plugin

* Added tests for Result class

* Theme based color for tooltip

* Added colors for tooltip

* Added string tags to tooltip

* Add initial show delay

* Seperated textbox for title and path
2020-07-07 13:02:39 -07:00
Divyansh Srivastava
d3b10d0d4d
Theme aware plugin (#4499)
* Migrate theme manager to infrastructure and added it as input to public API instance

* Working event-delegate for PublicAPIInstance

* Theme aware UWP applications

* Theme aware program plugin

* Update query icon on theme change

* Theme aware calculator plugin

* Fix issue with query running before theme change

* Theme based changes in ImageLoader

* Removed ErrorIcon direct references and added references from ImageLoader

* Nit fixes

* Removed unnecessary TODO in UWP.cs

* Added preference to theme based icons

* Added IDisposable interfaces to unsubscribe events
2020-06-26 17:42:06 -07:00
Alekhya
bfd79e1af2
reduced the description weight by half (#4519) 2020-06-26 10:20:54 -07:00
Alekhya
ca99f60964
[PT Run] Find applications using the PATH env variable (#4418)
* Search for programs in the path env variable

* removing list of disabled programs

* Added env variable string to classify apps

* reverted the fullpath change

* removing full paths while calculating dups

* removed dups

* removed debugging code

* Renamed to run command

* Added condition to filter run commands unless there is an exact match

* renamed occurances to RUN COMMAND

* localized the subtitle - Run command

* Added tests

* add fullpath back to hash calculation

* renamed the function
2020-06-23 11:40:11 -07:00
Divyansh Srivastava
196055e50e
Index Desktop Applications (#4422)
* Added support to index desktop app

* Fixed dedup for url files

* Added internet shortcut scheme for epic games

* Added test for internet shortcut dedup

* Updated hostname for steam game
2020-06-22 12:34:57 -07:00
Alekhya
c78e6588ad
init description (#4391) 2020-06-18 17:15:21 -07:00
Alekhya
236c1208e6
PWAs should not show up when searching for the main app (#4221)
* Search shows up steam games

* Formatting

* Filtering only those steam shortcuts which run an application

* Using equals instead of ==

* PWAs should not show up when searching for the main app

* Modified the subtitle to say progressive web application

* renamed to web application

* To search for web applications for all chromium based browsers

* Renamed it to WebApplication

* Added unit tests and refactored code

* made string global const

* Added localization tags

* Added a separate function for localization as the IPublic API was not available to all

* Removed unnecessary references and variables

* Update src/modules/launcher/Plugins/Microsoft.Plugin.Program/Languages/de.xaml

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

* Apply suggestions from code review

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

* Added enum for application types

Co-authored-by: htcfreek <61519853+htcfreek@users.noreply.github.com>
2020-06-12 13:11:24 -07:00
Divyansh Srivastava
302df56ee1
Added support to run apps in development mode (#4217) 2020-06-11 18:24:45 -07:00
Alekhya
ce2bba751c
Fix for Steam games not showing up (#4124)
* Search shows up steam games

* Formatting

* Filtering only those steam shortcuts which run an application

* Using equals instead of ==

* Case change in Internet shortcut
2020-06-10 10:34:48 -07:00
Alekhya
40330be123
Added case insensitive hash code calculation (#4206) 2020-06-09 14:12:53 -07:00
Josh Soref
b574d4e388
Spelling - remaining code changes (#3963)
* spelling: commit

* spelling: exclusion

* spelling: initial

* spelling: occurred

* spelling: programmatically

* spelling: should

* spelling: successfully

* spelling: committed

* spelling: directly
2020-06-09 10:11:02 +02:00
Alekhya
d0e4dabe90
Fix for UWP icons not showing up (#4008)
* Added fix for UWP icons not showing up

* updated comment and reversed the list of target sizes

* find the icon closest in size to the appIcon size

* Remove nlog reference that was added by mistake
2020-06-05 15:05:00 -07:00
Alekhya
c01b76e098
Fix for PWAs and command prompt not showing up as the first result (#4020)
* Added code which increments the score for the app without any arguments

* Removed magic number and added var
2020-06-05 11:34:16 -07:00
Alekhya
8cddd595d4
Fix for File explorer not showing up and multiple notepads (#3969)
* reverted the dedup code, file explorer shows up but so do duplicates

* Fixed file explorer and dedup

* Formatting

* Added tests for all the cases

* Formatting

* Tests

* take name and exe into consideration while calculating hash

* unique primes while calculating hash code
2020-06-02 14:36:32 -07:00
Divyansh Srivastava
397b1533f0
Somil55/merge wpf to master (#3840)
* Basic WPF searchbox working

* Updated key navigation and removed coldstart for searhbox

* refactored and added code back in commented

* Removed XAML Island references

* Basic searchbox+listview working

* Getting a bit more back

* got color there

* Result list bit better now

* Added image loader for WPF Image

* Partially got the context menus rendering again

* adjusting coldstart to load, control will load with main form

* getting context menus back

* mouse over works now

* Click now works, started to remove Win.XAML references

* being a bit more forcusful on focus

* Shadow text is not aligned

* fixing focus if listbox was used

* small tweak to fix shadow text

* inputs don't work but gotta figure out why.  commenting out

* preview text

* adding back in delay

* fixed height issue

* Applied the correct context button styles

* Created custom ItemContainerStyle to fix the blue highlights behind the command buttons

* Applied the correct highlight / mouseover styling

* Removed vertical scrollbar in listview

* fixed for alt-space prompt

* Fixed right click focus issue

* Somil55/wpf modifier keys (#3378)

* Removed DPI change as it was not required

* Global key hooks for context menu items

* Updated Key for shell, folder and indexer plugin

* Updated key mapping for indexer plugin

* Somil55/wpf context menu selection (#3389)

* Removed DPI change as it was not required

* Global key hooks for context menu items

* Updated Key for shell, folder and indexer plugin

* Updated key mapping for indexer plugin

* Add trigger to selection on tabbing

* Minor shadow adjustments so its more similiar to default shell shadow. Added intro/outro animations

* Added UWP-like scrollbar style for the results list

* Fixed formating and naming

* Removed Powerlauncher UI project

* Update PowerToys.sln

* Commented out scrollbar and fade in/out animations

* Added missing features from UWP branch

* Fixed formatting for Product.wxs

* Add dragging to WPF window

Co-authored-by: Clint Rutkas <clint@rutkas.com>
Co-authored-by: Niels Laute <niels.laute@live.nl>
2020-06-01 12:35:37 -07:00
Alekhya
d2dfbff832
Add resource only when it is not already present (#3842) 2020-06-01 08:17:28 -07:00
Clint Rutkas
61c0c35e92
Fix for 3116, changing uwp to packaged (#3123) 2020-05-20 09:17:46 -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
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
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
ryanbodrug-microsoft
a9cc4dabb7 Adding launcher telemetry for context buttons clicked. 2020-05-06 15:10:22 -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