No other usage of GetLastError has the result assigned to a variable first in this code, so it is better if we make check_user_is_admin the same in that regard.
* added some test config files
* Added tests for each powertoy to ensure that they don't crash even when there is a corrupt json
* Revert "Added tests for each powertoy to ensure that they don't crash even when there is a corrupt json"
This reverts commit fe3ed40902.
* Revert "added some test config files"
This reverts commit d08928423a.
* add a settings utils to test that a default item is returned when the json file is corrupt
* Started work
* Good progress on D2D
* Visuals are good, functionality - almost there
* Opacity fix
* Animation works, WM_PAINT still doesn't
* Simplify code, remove flashZones, remove unused code
* Kinda works, but it's a bit laggy
* Works great, but needs refactoring/performance improvements
* Move code from .h to .cpp
* Polished the functionality
* Fix issue with changing monitors
* Rebase fix
* Finalize PR before review
* Couple two members of ZoneWindowDrawing
* Also request a low latency lock when hiding the zone window
* Move textFormat and textBrush out of the loop
* Thread-safe initialization
* Rebase fix: zone numbers
* Make zone borders crispy
* Fix offsets
* Another rebase fix
* Fix DPI bug
* CA1052: Static holder types should be Static or NotInheritable
* CA1041: Provide ObsoleteAttribute message
* CA1062: Validate arguments of public methods
* CA1304: Specify CultureInfo / CA1305: Specify IFormatProvider / CA1307: Specify StringComparison for clarity
* CA1802: Use Literals Where Appropriate
* CA1820: Test for empty strings using string length
* CA1707: Identifiers should not contain underscores
* CA1805: Do not initialize unnecessarily.
* CA1822: Mark members as static
* CA2227: Collection properties should be read only
* CA1054: URI parameters should not be strings
* CA1031: Do not catch general exception types
* CA1060: Move P/Invokes to NativeMethods class
* CA1308: Normalize strings to uppercase
* CA2000: Dispose objects before losing scope / CA2234: Pass System.Uri objects instead of strings
* CA2234: Pass System.Uri objects instead of strings
* CA1044: Properties should not be write only
* CA1716: Identifiers should not match keywords
* CA2007: Do not directly await a Task
* CA2007: Do not directly await a Task (Suppressed)
* CA5350: Do Not Use Weak Cryptographic Algorithms (Suppressed)
* CA1724: Type names should not match namespaces (renamed Settings.cs to PowerToysRunSettings.cs)
* CA1033: Interface methods should be callable by child types (Added sealed modifier to class)
* CA1724: Type names should not match namespaces (Renamed Plugin.cs to RunPlugin.cs)
* CA1724: Type names should not match namespaces (Renamed Http.cs to HttpClient.cs)
* CA5364: Do not use deprecated security protocols (Remove unused code)
* Enabled FxCopAnalyzer for Wox.Infrastructure
* fixed comment
* Addressed comments
- Changed Ordinal to InvariantCulture
- Added comments
- Removed unused obsolete code
- Removed unused method (CA2007: Do not directly await a Task)
* Addressed comments - fixed justification for CA1031 suppression
* Addressed comments - Fixed justification for CA1031 suppression in Wox.Core/Wox.Plugin
* Remove redundant default initializations
* Implement IDisposable in HotkeySettingsControl
* Mark classes and methods as static
* Move Interop.ShowWindow to NativeMethods class
* Fix string-related warnings
* Remove unused argument for KeyEventHandler
* Log caught general exceptions
* Use safe navigation operator for null argument checks
* Suppress CA2007 warnings and enable FxCop
* Suppress warning for unused event handler params
* Use TryParse in ImageResizerPage
* Use ConfigureAwait(false) for CA2007
* indexer drive detection helper code to not show the warning for a single drive
* removed interface from the namespace due to stylecop
* removed interfac which no longer exists
* filter out only fixed drives in the system and ignore the removable drives
* changed text to not all files are indexed, from not all drives are idnexed
* add additional info in the comment
* Added CultureInfo (CA1307: Specify StringComparison for clarity / CA1304: Specify CultureInfo)
* Check arguments and throw ArgumentNullException (CA1062: Validate arguments of public methods)
* Changed url parameter from string to System.Uri and added null checks (CA1054: URI parameters should not be strings)
* Rethrow exception without specifying the exception explicitly (CA2200: Rethrow to preserve stack details)
* Changed from Collection property to methods for PluginMetadata::ActionKeywords (CA2227: Collection properties should be read only)
* Changed from Collection property to methods for Result::GetTitleHighlightData (CA2227: Collection properties should be read only)
* Made Collection property read-only and added parameter in constructor for Result::SubTitleHighlightData (CA2227: Collection properties should be read only)
* Made Collection property read only and added parameter in constructor for ResultUpdatedEventArgs::Results (CA2227: Collection properties should be read only)
* CA1507: Use nameof in place of string
* Removed initialization for ThemeManager::_disposed (CA1805: Do not initialize unnecessarily)
* Changed Query::Terms array property to ReadOnlyCollection and added private set (CA1819: Properties should not return arrays)
* CA1060: Move P/Invokes to NativeMethods class
* CA1806: Do not ignore method results
* CA2101: Specify marshaling for P/Invoke string arguments
* Removed unnecessary empty interface IFeatures (CA1040: Avoid empty interfaces)
- Removed IFeatures interface and references
- Renamed IFeatures.cs to IContextMenu.cs according to guidelines
* Added comments for CultureInfo (CA1307: Specify StringComparison for clarity / CA1304: Specify CultureInfo)
* Added localization for Wox.Plugin and localized strings in FilesFolders.cs
* added a json exception catch statement as a fail safe to create a fresh configuration file when settings is corrupted
* change formatting
* add issue link
* add extra info in the comment
* Enable FxCop for Microsoft.PowerToys.Settings.UI.Runner
* Log exceptions in WindowsXamlHost_ChildChanged
* Add Debugger.Break in debug mode
* Move Debugger.Break into Logger class
* Align zone numbers between Editor and FancyZonesLib
Use zoneId on win+arrow
* Update tests
* Fix crash
* ZoneId starts from 0
* Define ZonesMap type
IFACEMETHOD_ macro is having trouble processing
std::map template when expanding, so return type needs
to be predefined
* Address PR comment
* Address more PR comments
* Handle .at
* Add shell page headings
* add headings for all the PTsettings
* add heading level 1 for the heading of each page
* Add heading level to the style instead of redifining it multiple times
* revert adding level2 for each control
* add heading level for run as admin because it does not follow the group style and rather the default style
* Moved Logger/Log.cs from Wox.Infrastructure to Wox.Plugin
- Installed Logger dependency in Wox.Plugin: NLog.Extensions.Logging
- Moved file Log.cs from Wox.Infrastructure/Logger/ to Wox.Plugin/Logger
- Moved file Constant.cs from Wox.Infrastructure to Wox.Plugin: This file was moved since Log.cs depends on this class
- Copied Wox.Infrastructure.Helper.NonNull to Wox.Plugin.Constant since Constant.cs depends on this method
- Replaced all "using Wox.Infrastructure.Logger" to "using Wox.Plugin.Logger" in all files as needed
- Replaced Wox.Infrastructure.Constant to Wox.Plugin.Constant in all files as needed
* Removed Nlog.Extensions.Logging from Wox.Infrastructure
* Added logging and suppressed general exceptions (CA1031: Do not catch general exception types)
* Resolved fxcop errors introduced by newly added Log.cs
- CA1307: Specify StringComparison for clarity
- CA2000: Dispose objects before losing scope
- CA1062: Validate arguments of public methods
* Replaced Wox.Infrastructure.Logger with Wox.Plugin.Logger
* Rename Interface to Interfaces in namespaces
* Rename Lib to Library in namespaces
* Rename project and directory and enable fxcop
* Add CA2213 suppression
* Minor fixes
* Added InvarientCulture info (CA1305: Specify IFormatProvider)
* Removed underscore from method names (CA1707: Identifiers should not contain underscores)
* Marked members as static (CA1822: Mark members as static)
* Removed initialization for DummyTestClass::IsFunctionCalled (CA1805: Do not initialize unnecessarily)
* Replaced Count with Any (CA1827: Do not use Count/LongCount when Any can be used)
* Changed WoxTest::DummyTestClass to private (CA1034: Nested types should not be visible)
* Suppressed warnings for uninstantiated internal classes used as TestFixtures (CA1812: Avoid uninstantiated internal classes)
* Enabled FxCopAnalyzer for Wox.Test
* Added suppression message for CA1812 in GlobalSuppressions.cs and removed inline supression messages (CA1812: Avoid uninstantiated internal classes)
* Changed InvariantCulture to Ordinal where appropriate
* Addressing comments: Updated justification for CA1812 in GlobalSuppressions.cs (Avoid uninstantiated internal classes)
* remove functions which mages cannot interpret and add in functions which mages can
* set validResult when the result is explicitly created to differentiate it form an empty CalculateResult
* Add condition to check that the input is not ending with a binary operation
* add tests for all the cases
* use valid result while calculating hash as well
* add test for e is valid within regex
* removed i from regex
* remove valid result to use decimal? instead
* remove duplicate rand and exp
* Enable Run as Admin Arguments
* Use a seperate function for both methods which were generating ProcessStartInfo fixes missing LnkResolvedPath missing in contextmenu (E.g. Shortcuts / PWA's).
* Update tests
* Move ProgramArguments to Result class
Co-authored-by: Roy <royvou@hotmailcom>
* Add AutomationProperties.Name to focusable elements
* Add AutomationProperties.Name to focusable elements
* Use AutomationProperties.LabeledBy with buttons / text boxes
* Address PR comments
* Add HSL and HSV color formats + cleanup + docu
* Fix build problem (lang version)
* Add CYMK color + replace float with double values
* ups - fix cmyk text format
* fix wrong settings text + doc typo fix
* Address feedback
* Address feedback + fix to small window size
* adress feedback + more cleanup
* typo fix
* Avoid possible division by zero + unit test
* Address feedback - move all represenation to own helper class + UnitTest
* Address feedback -> switch to mstest framework
* Fix autocomplete text issue on query change
* Update from invariant to ordinal case for exact byte to byte matching
* Add tests for checking when autocomplete should be empty
* Added get_key to powertoysmodule interface
* Replace get_name with get_key
* Implement get_key function in modules
* Make key global constant in each module
* Update settings v1 to use key to load and save files
* Fixed fancyzones and preview pane unit tests
* Removed setings unit test as the case is not covered anymore
* Add constant files for modules and use it to reference module key
* Add constant string files to colorpicker, launcher and shortcut guide
* correct sunction signature in settings helper
* Fix powerpreview merge conflicts
* nit fix with include statement location
* add check for fields in from_json_string
* Updated preview pane tests with correct from_json_string signature
* Correct Image resizer naming
* Roll back changes for adding check for property and version
* Fix image resizer not working
* FxCop Fixes- added InvarientCulture info, suppressed warnings for general exception types
* Used IsNullOrEmpty to test for empty strings (CA1820: Test for empty strings using string length)
* Check if arguments are null and throw ArgumentNullException
* Removed unused function argument from PluginsLoader.cs
* Addressing comments- Using attributes to suppress errors for general exception types
* Addressing comments- Using attributes to suppress errors
* Addressed comments and changed InvariantCulture to CurrentCulture/Ordinal where appropriate
* Addressing comments - catching and logging specific exception in FontHelper.cs
* Suppress warnings for read-only collection properties (see code comments)
* Call ConfigureAwait on tasks
* Add CultureInfo and StringComparison policy for certain string operations
* Add checks and exceptions for null arguments to public methods
* Rename RaisePropertyChanged to NotifyPropertyChanged
* Suppress CA1000 warning on SettingsRepository class
* Implement Disposable pattern in HotkeySettingsControlHook
* Modify null argument handling in KeyboardManagerViewModel::CombineShortcutLists
* Add action keywords for each plugin
- Added keywords for each plug-in
- Change window walker search to use Query, not RawQuery (to get rid of action keyword)
- Make sure plug-ins that have action keywords as well as are in global list don't get added twice
All tests passed that passed before I started
Addressing issue #5823
* Fix bad formatting from the merge
* Do not add global plug-ins if we have an action keyword
Note side effect: you will not not be able to search for things that start with one of the plug-in keywords.
* Missed merge conflict repair!
* Revert "Do not add global plug-ins if we have an action keyword"
This reverts commit e3b0ecd708.
* Adjust keywords to suggested ones
* No need to ubild a query if we aren't going to use it
Didn't quite get the if statement right the first time I put it in.
* Do not add global plugins if we have an action keyword
This means, especially without a space, that global plugins do not become part of the search. Which really narrows down the search results, nicely.
* Update keywords as requested in the PR
* Modify shortcut to key code more similar to shortcut to shortcuts code. Manually tested cases
* Fixed existing tests and fixed scenario with other keys pressed and action key released
* Fixed dummy key usage
* Updated comments and removed dummy key usage in key to shortcut remaps
* Added tests for disable and shortcut to key. Pending tests for dummy key
* Added test cases for each usage of dummy key event
* Remove redundant check
* Pass zoneId on zone creaton and make it const
Refactor IZone and Zone - make methods const
and remove SetId
* Update tests
* Fix Grid layout zone order
* Improvements in enumeration of available screens (work areas)
* Minor code style improvement
* Address PR comments
* Store map of display device name to device index
* Address PR comments
* Update comment
* Break when suitable device is found
* Added PowerLauncher resource files
* Fixed typo in language
* Updated localized .NET framework projects to include all resx files
* Fixed typo in FZEditor.csproj
* Added FZ Editor (.NET framework) resource dlls
* Updated pipeline
* Tweaked artifact statement to get all resource dlls in pipeline
* Fix SvgPreviewHandler resx inclusion in csproj
* Added condition to allow local MSI builds to run without resources
* Generalized directory code
* Added all resources that are to be added from C# projects, Settings UWP pending
* Added markdown prev handler as keypath
* Added loc script for Settings to move resw files to UWP file format
* Separate markdown and svg resource components to allow guid auto-generation
* Removed old image resizer resources
* Fixed formatting
* Changed tabs to space
* Made drawing zones not clog message processing
* Fixed synchronization bugs
* call BufferedPaintInit
* Some refactoring, the animation is back
* Rename a function
* Align parameters
* Mark methods static and replace Count() with Length
* Use IsNullOrEmpty for null string checks
* Remove redundant initializations to default values
* Use nameof(property name) in place of string literals
* Add NativeMethods class
* Rename property getters in KeysDataModel & AppSpecificKeysDataModel
* Remove underscores from method names
* Mark Helper class static
* Address comments & typo fixes
* Add EncoderGuid property and fix failing build
* Update binding in GeneralPages.xaml
* Commented out enable/disable for File Explorer
* Revert UI changes
* Disable the toggles if PT is not running elevated
* Fixed compilation errors in tests
* Cleaned up preview pane code to separate thumbnail and preview panes as separate classes
* Fixed broken settings format and added elevation check and registry updated required logic. Preview Handler tested manually working, Thumbnail Enable/Disable needs to be fixed
* Updated Thumbnail enable/disable logic and added warning messages
* Update tests for File Explorer
* Fixed RegGetValue failing in Release config
* Renamed new classes
* Split wrappers for disable to work
* Modified enabled flag check to also check if user is on new settings. Fixed casing issue in powerpreview.h that caused a dialog prompt on first launch after install
* Update fontweight and margin
* Fixed release build not working
* Move UseNewSettings usage to powerpreview.cpp to avoid tests breaking. For new settings the enable check is done in constructor and for old settings it is done in enable
* Update src/core/Microsoft.PowerToys.Settings.UI/Strings/en-us/Resources.resw
Co-authored-by: htcfreek <61519853+htcfreek@users.noreply.github.com>
* Update src/core/Microsoft.PowerToys.Settings.UI/Strings/en-us/Resources.resw
Co-authored-by: htcfreek <61519853+htcfreek@users.noreply.github.com>
* Update src/core/Microsoft.PowerToys.Settings.UI/Strings/en-us/Resources.resw
Co-authored-by: htcfreek <61519853+htcfreek@users.noreply.github.com>
* Moved dup code to method
* Use correct versions of general settings for backwards compat test
Co-authored-by: htcfreek <61519853+htcfreek@users.noreply.github.com>
* compare config files
* create settings files
* updated path check
* reverted color picker changes
* added test files
* removed settings uralted files
* Modifying directory structure and adding properties for backcompat test.
* Updating Unit test to use mock repositories.
1) BackCompatTestProperties exposes mock repository implementation because SettingsRepository is a singleton, and settings utils isn't typed.
2) BackCompatTestProperties, encapsulates logic to verify that the correct file was read from.
3) Validating each file is read twice. Once by the original file, and once via the view model.
* Adding 18.2 settings files.
* Fix compiler errors from latest merge
* Adding v0.19.2 test files.
* Adding in 0.20.1 settings. Removing 0.20.2 (as this was a dev build number)
* Adding settings tests for 22.1
* General Settings should update version when they don't match
* Adding v0.22.0 files
* Removing not settings related files from TestData for PT Run 21.1
* Referencing module name as *Settings.ModuleName in tests. Except for ImageResizer
* Using ImageResizerSettings to use Settings for the module name.
* Setting AllPlugins to empty list in case PluginManager.Save/Load/ReloadData is called before plugins are loaded
* Fixing fxcop errors
* using named parameters as per review feedback
Co-authored-by: ryanbodrug-microsoft <56318517+ryanbodrug-microsoft@users.noreply.github.com>
* Unlock mutex before ResetModifierForLowerLevelKeyHandlers method to avoid crash if two instances of KBM are running
* Added alias for Shortcut DWORD variant to clean up code
* Removed mutex usage in single key remap method and added GetSingleKeyRemap
* Added more alias
* Moved to boolean disable remapping
* Added missing ! in condition
* Remove lock statement from bad auto-merge
* basic logic working
* Added a literal for ignore flag which cna be shared by all the files
* Added a condition that the other modifier keys should not be pressed
* Added comments to describe each scenario
* sometimes when multiple modified keys were involved the shift+tab key press was also being invoked, so added an additional check in the IsValid function
* use variable for vk_tab
* remove new line before initializing dwextraInfo
* move flag check if the filterKeyboardevent function
* use windows.system.virtualkey.shift instead of defining a constant for the shift key code
* removed latest settings to use internal settings instead. Removed the validity check while still within the hotkey other than if it's tab or shift+tab
* add a function to send input to the system instead of duplicating the send input code
* remove VKSHIFT declaration
* display all shortcuts/keys except tab and shift+tab
* remove header that is no longer needed
* Changed EnumerateFileSystemInfos to EnumerationOptions we don't have to catch the exceptions ourself.
* Change Matchtype to mimic old search method.
Co-authored-by: p-storm <paul.de.man@gmail.com>
* Matching explorer.exe also for explorer
Added unit test
Optimized multiple iterations for IProgram
* Fixed linter
Co-authored-by: p-storm <paul.de.man@gmail.com>
* Fixed the error that Files were named Folder
* Add and use resources in Results.
* Last item without resources in Plugin.Folder
* Changed to CurrentCulture, added N0 to Folder truncate warning.
Co-authored-by: p-storm <paul.de.man@gmail.com>
* Add exception handling to prevent program from failing due to error in one program
* Error handling for program path function
* Fix incorrect log value in ProgramLogger
* Made Plugin Folder Unit tests. Fixes '>' not recursive searching (with max). Added that paths with an UnauthorizedAccessException are ignored. Added expanding enviroment search.
* Fixed some merging errors
* Added feedback from review
* Made the change that ryanbodrug-microsoft suggested
* Stupid merge request... fixed
Co-authored-by: p-storm <paul.de.man@gmail.com>
* Added info on directly registering dll
* Update README.md
* Update README.md
* Update to regasm x64
* Add information related to assembly signing in readme preview pane handler
* Bold warning for taking registry route for installation
* changed default theme to be consistent with that of shortcut guide
* change the test to reflect that the initial settings theme or shortcut guide is 'system' and not 'light'.
* add a separate task to dequeue and create an app on installation
* Added tests to validate the behavior of the event handler
* release unmanaged memory
* validated that restart elevated and check for updates work.Removed isettingsUtils and reused settings repository
* reverted the name to ImageResizer instead of using ImageResizerSettings.Modulename to make it backward compatible
* Removed getSettings from moduleEnabled so that it doesn't have to reopen the file everytime
* To Lower to while checking the theme
* color picker doesn't reopen the file
* use the generalView model config directly for FZ
* Made the same change for all the viewmodels so that they access the general view model value directly instead of opening and reading the value from a file each time
* removed unused variable
* Fix initialization in tests
* should read the file only if general settings does not exist
* Added interfaces for all the powertoys to use the generalSettings singleton class
* Runner is responding to changes in settings, only issue is that every time the general settings page is loaded the information is being read because isInitialized property could not be ignored during serialization
* All tests pass
* Settings and runner are working as expected with the settings cache
* added a null check to read from the file only when the settings process is started
* use converter to deserialize an interface
* Renamed generalSettings within the cache to be called CommonSettingsConfig
* All tests pass, had to initialize the common settings config instance
* Added few comments to newly created classes
* encapsulating load and store of general view model
* reading from file is encapsulated
* settings and runner wotk with generic singleton
* Shortcut guide works as expected
* Fancyzones, shortcutguide and power preview use the settings repository and work as expected
* referencing GeneralSettings instead of the settingsRepository<GeneralSettings> within viewmodels
* unified access to General settings and removed the IGeneralSettingsData interface
* Passing settings to viewmodel as a parameter
* removed ISettingsConfig interface from the viewmodels which are not using the singleton to access settings
* have to use ISettingsConfig to use GetSettings
* refactored tests, all tests pass
* Added test for settingsRepository that a single instance is created
* Added comments and removed unnecessary headers/code
* added settings repository tests
* moq for each settings file
* Img resizer tests pass
* General tests pass
* FancyZones tests pass
* PowerPreview tests pass
* PowerRename tests pass
* shortcut guide tests pass
* Added GetModuleName to ISettingsConfig
* unify the way the Modulename is accessed. It was redeclared in multiple places and this would cause an issue if the name is changed only in one place. All the module names are accessed using the <T>Settings.ModuleName, eg: ShortcutGuideSettings.ModuleName.
* create PTRun settings file if it does not exist
* GetFile is now a private function. Modified the logic of KBM default.json access and PT Run so that we can re-use GetSettings instead of GetFile.
* Added UpgradeSettingsConfiguration to the ISettingsConfig interface so that the settings file can be upgraded based on some condition. Presently, only the GeneralSettings file is utilizing this to change the PT Version number based on the old PT version and the current PT version that it receives from the helper function. Verified that if the PT version is lower in the general settings.json file, settings saves the file with the new version info.
* The naming for the PowerToys was inconsistent and the variables were redeclared in multiple places. To have the settings.ModuleName as the main name, all other places should refer to that name. In the tests file the module name for ImgResizer was 'ImageResizer' and not 'Image Resizer'.
* renamed lock
* Remove unnecessary GetSettingsFileNAme function. It is no longer in use because the code does not use types to create a new BasePTModule object
* 1) Making Directory Methods private.
2) Removing the CreateDirectory / DeleteDirectory functionality from all Settings Unit Tests.
* Abstracting disk access via IIOProvider to be able to provide mocks for unit tests instead of writing to disk. This also prevents developers who are running unit tests from interfering with the PowerToys settings on their local dev box.
* Dependency Injecting stub SettingsUtils for all tests
* Removing ISettingsUtils from constructors of objects that need to be deserialized (ColorPickerSettings/PowerLauncherSettings) as this breaks System.Text.Json
* Removing unused namespace reference
* Removing redifined mock
* As per PR feedback. Stub Settings utils should work with any settings type if the intent is to compile / avoid null ref exceptions.
Strangely when implementing this fix it became apparent that a stub settings isn't enough, and disk access needed to be mocked. I can't explain why the tests were passing previously.
* Leveraging GetMockIOProviderForSaveLoadExists
* Added a keyboard hook to the runner
* Update RootKeyboardHook
* Enable reading the whole JsonObject property
* Renamed RootKeyboardHook to CentralizedKeyboardHook
* Fixed build break, changed callback return type to bool
* Added Hotkey struct which somehow went missing
+ Cherry-pick fixes
* Reorganized the kb hook
* Basic version works
* Various fixes
* Finishing touches
* Fix potential threading issue
* int -> size_t
* Add default initializers to the Hotkey struct
* Added a suggested comment
* Unified a constant
* Use C# classes instead of native calls for sync
* Added a claryfing comment
* Use std::move
* Renamed a method
* Possible fix for compilation errors
* Fix a regression
* Show a message on failure
* Added DISABLE_LOWLEVEL_HOOK support
* Allow running Launcher as standalone
* Rename string constants