PowerToys/src/settings-ui/Settings.UI.Library/ViewModels/PowerPreviewViewModel.cs

319 lines
9.4 KiB
C#
Raw Normal View History

// Copyright (c) Microsoft Corporation
// The Microsoft Corporation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
using System;
using System.Runtime.CompilerServices;
using Microsoft.PowerToys.Settings.UI.Library.Helpers;
using Microsoft.PowerToys.Settings.UI.Library.Interfaces;
namespace Microsoft.PowerToys.Settings.UI.Library.ViewModels
{
public class PowerPreviewViewModel : Observable
{
Fix for settings crash on toggling enable button for any PowerToy (#6620) * Removed getSettings from moduleEnabled so that it doesn't have to reopen the file everytime * To Lower to while checking the theme * color picker doesn't reopen the file * use the generalView model config directly for FZ * Made the same change for all the viewmodels so that they access the general view model value directly instead of opening and reading the value from a file each time * removed unused variable * Fix initialization in tests * should read the file only if general settings does not exist * Added interfaces for all the powertoys to use the generalSettings singleton class * Runner is responding to changes in settings, only issue is that every time the general settings page is loaded the information is being read because isInitialized property could not be ignored during serialization * All tests pass * Settings and runner are working as expected with the settings cache * added a null check to read from the file only when the settings process is started * use converter to deserialize an interface * Renamed generalSettings within the cache to be called CommonSettingsConfig * All tests pass, had to initialize the common settings config instance * Added few comments to newly created classes * encapsulating load and store of general view model * reading from file is encapsulated * settings and runner wotk with generic singleton * Shortcut guide works as expected * Fancyzones, shortcutguide and power preview use the settings repository and work as expected * referencing GeneralSettings instead of the settingsRepository<GeneralSettings> within viewmodels * unified access to General settings and removed the IGeneralSettingsData interface * Passing settings to viewmodel as a parameter * removed ISettingsConfig interface from the viewmodels which are not using the singleton to access settings * have to use ISettingsConfig to use GetSettings * refactored tests, all tests pass * Added test for settingsRepository that a single instance is created * Added comments and removed unnecessary headers/code * added settings repository tests * moq for each settings file * Img resizer tests pass * General tests pass * FancyZones tests pass * PowerPreview tests pass * PowerRename tests pass * shortcut guide tests pass * Added GetModuleName to ISettingsConfig * unify the way the Modulename is accessed. It was redeclared in multiple places and this would cause an issue if the name is changed only in one place. All the module names are accessed using the <T>Settings.ModuleName, eg: ShortcutGuideSettings.ModuleName. * create PTRun settings file if it does not exist * GetFile is now a private function. Modified the logic of KBM default.json access and PT Run so that we can re-use GetSettings instead of GetFile. * Added UpgradeSettingsConfiguration to the ISettingsConfig interface so that the settings file can be upgraded based on some condition. Presently, only the GeneralSettings file is utilizing this to change the PT Version number based on the old PT version and the current PT version that it receives from the helper function. Verified that if the PT version is lower in the general settings.json file, settings saves the file with the new version info. * The naming for the PowerToys was inconsistent and the variables were redeclared in multiple places. To have the settings.ModuleName as the main name, all other places should refer to that name. In the tests file the module name for ImgResizer was 'ImageResizer' and not 'Image Resizer'. * renamed lock * Remove unnecessary GetSettingsFileNAme function. It is no longer in use because the code does not use types to create a new BasePTModule object
2020-09-24 04:20:32 +08:00
private const string ModuleName = PowerPreviewSettings.ModuleName;
private PowerPreviewSettings Settings { get; set; }
private Func<string, int> SendConfigMSG { get; }
private string _settingsConfigFileFolder = string.Empty;
[File Explorer] Fix enable/disable for File Explorer PowerToy (#6883) * Commented out enable/disable for File Explorer * Revert UI changes * Disable the toggles if PT is not running elevated * Fixed compilation errors in tests * Cleaned up preview pane code to separate thumbnail and preview panes as separate classes * Fixed broken settings format and added elevation check and registry updated required logic. Preview Handler tested manually working, Thumbnail Enable/Disable needs to be fixed * Updated Thumbnail enable/disable logic and added warning messages * Update tests for File Explorer * Fixed RegGetValue failing in Release config * Renamed new classes * Split wrappers for disable to work * Modified enabled flag check to also check if user is on new settings. Fixed casing issue in powerpreview.h that caused a dialog prompt on first launch after install * Update fontweight and margin * Fixed release build not working * Move UseNewSettings usage to powerpreview.cpp to avoid tests breaking. For new settings the enable check is done in constructor and for old settings it is done in enable * Update src/core/Microsoft.PowerToys.Settings.UI/Strings/en-us/Resources.resw Co-authored-by: htcfreek <61519853+htcfreek@users.noreply.github.com> * Update src/core/Microsoft.PowerToys.Settings.UI/Strings/en-us/Resources.resw Co-authored-by: htcfreek <61519853+htcfreek@users.noreply.github.com> * Update src/core/Microsoft.PowerToys.Settings.UI/Strings/en-us/Resources.resw Co-authored-by: htcfreek <61519853+htcfreek@users.noreply.github.com> * Moved dup code to method * Use correct versions of general settings for backwards compat test Co-authored-by: htcfreek <61519853+htcfreek@users.noreply.github.com>
2020-10-10 05:45:30 +08:00
private GeneralSettings GeneralSettingsConfig { get; set; }
public PowerPreviewViewModel(ISettingsRepository<PowerPreviewSettings> moduleSettingsRepository, ISettingsRepository<GeneralSettings> generalSettingsRepository, Func<string, int> ipcMSGCallBackFunc, string configFileSubfolder = "")
{
// Update Settings file folder:
_settingsConfigFileFolder = configFileSubfolder;
Fix for settings crash on toggling enable button for any PowerToy (#6620) * Removed getSettings from moduleEnabled so that it doesn't have to reopen the file everytime * To Lower to while checking the theme * color picker doesn't reopen the file * use the generalView model config directly for FZ * Made the same change for all the viewmodels so that they access the general view model value directly instead of opening and reading the value from a file each time * removed unused variable * Fix initialization in tests * should read the file only if general settings does not exist * Added interfaces for all the powertoys to use the generalSettings singleton class * Runner is responding to changes in settings, only issue is that every time the general settings page is loaded the information is being read because isInitialized property could not be ignored during serialization * All tests pass * Settings and runner are working as expected with the settings cache * added a null check to read from the file only when the settings process is started * use converter to deserialize an interface * Renamed generalSettings within the cache to be called CommonSettingsConfig * All tests pass, had to initialize the common settings config instance * Added few comments to newly created classes * encapsulating load and store of general view model * reading from file is encapsulated * settings and runner wotk with generic singleton * Shortcut guide works as expected * Fancyzones, shortcutguide and power preview use the settings repository and work as expected * referencing GeneralSettings instead of the settingsRepository<GeneralSettings> within viewmodels * unified access to General settings and removed the IGeneralSettingsData interface * Passing settings to viewmodel as a parameter * removed ISettingsConfig interface from the viewmodels which are not using the singleton to access settings * have to use ISettingsConfig to use GetSettings * refactored tests, all tests pass * Added test for settingsRepository that a single instance is created * Added comments and removed unnecessary headers/code * added settings repository tests * moq for each settings file * Img resizer tests pass * General tests pass * FancyZones tests pass * PowerPreview tests pass * PowerRename tests pass * shortcut guide tests pass * Added GetModuleName to ISettingsConfig * unify the way the Modulename is accessed. It was redeclared in multiple places and this would cause an issue if the name is changed only in one place. All the module names are accessed using the <T>Settings.ModuleName, eg: ShortcutGuideSettings.ModuleName. * create PTRun settings file if it does not exist * GetFile is now a private function. Modified the logic of KBM default.json access and PT Run so that we can re-use GetSettings instead of GetFile. * Added UpgradeSettingsConfiguration to the ISettingsConfig interface so that the settings file can be upgraded based on some condition. Presently, only the GeneralSettings file is utilizing this to change the PT Version number based on the old PT version and the current PT version that it receives from the helper function. Verified that if the PT version is lower in the general settings.json file, settings saves the file with the new version info. * The naming for the PowerToys was inconsistent and the variables were redeclared in multiple places. To have the settings.ModuleName as the main name, all other places should refer to that name. In the tests file the module name for ImgResizer was 'ImageResizer' and not 'Image Resizer'. * renamed lock * Remove unnecessary GetSettingsFileNAme function. It is no longer in use because the code does not use types to create a new BasePTModule object
2020-09-24 04:20:32 +08:00
[File Explorer] Fix enable/disable for File Explorer PowerToy (#6883) * Commented out enable/disable for File Explorer * Revert UI changes * Disable the toggles if PT is not running elevated * Fixed compilation errors in tests * Cleaned up preview pane code to separate thumbnail and preview panes as separate classes * Fixed broken settings format and added elevation check and registry updated required logic. Preview Handler tested manually working, Thumbnail Enable/Disable needs to be fixed * Updated Thumbnail enable/disable logic and added warning messages * Update tests for File Explorer * Fixed RegGetValue failing in Release config * Renamed new classes * Split wrappers for disable to work * Modified enabled flag check to also check if user is on new settings. Fixed casing issue in powerpreview.h that caused a dialog prompt on first launch after install * Update fontweight and margin * Fixed release build not working * Move UseNewSettings usage to powerpreview.cpp to avoid tests breaking. For new settings the enable check is done in constructor and for old settings it is done in enable * Update src/core/Microsoft.PowerToys.Settings.UI/Strings/en-us/Resources.resw Co-authored-by: htcfreek <61519853+htcfreek@users.noreply.github.com> * Update src/core/Microsoft.PowerToys.Settings.UI/Strings/en-us/Resources.resw Co-authored-by: htcfreek <61519853+htcfreek@users.noreply.github.com> * Update src/core/Microsoft.PowerToys.Settings.UI/Strings/en-us/Resources.resw Co-authored-by: htcfreek <61519853+htcfreek@users.noreply.github.com> * Moved dup code to method * Use correct versions of general settings for backwards compat test Co-authored-by: htcfreek <61519853+htcfreek@users.noreply.github.com>
2020-10-10 05:45:30 +08:00
// To obtain the general Settings configurations of PowerToys
if (generalSettingsRepository == null)
{
throw new ArgumentNullException(nameof(generalSettingsRepository));
}
[File Explorer] Fix enable/disable for File Explorer PowerToy (#6883) * Commented out enable/disable for File Explorer * Revert UI changes * Disable the toggles if PT is not running elevated * Fixed compilation errors in tests * Cleaned up preview pane code to separate thumbnail and preview panes as separate classes * Fixed broken settings format and added elevation check and registry updated required logic. Preview Handler tested manually working, Thumbnail Enable/Disable needs to be fixed * Updated Thumbnail enable/disable logic and added warning messages * Update tests for File Explorer * Fixed RegGetValue failing in Release config * Renamed new classes * Split wrappers for disable to work * Modified enabled flag check to also check if user is on new settings. Fixed casing issue in powerpreview.h that caused a dialog prompt on first launch after install * Update fontweight and margin * Fixed release build not working * Move UseNewSettings usage to powerpreview.cpp to avoid tests breaking. For new settings the enable check is done in constructor and for old settings it is done in enable * Update src/core/Microsoft.PowerToys.Settings.UI/Strings/en-us/Resources.resw Co-authored-by: htcfreek <61519853+htcfreek@users.noreply.github.com> * Update src/core/Microsoft.PowerToys.Settings.UI/Strings/en-us/Resources.resw Co-authored-by: htcfreek <61519853+htcfreek@users.noreply.github.com> * Update src/core/Microsoft.PowerToys.Settings.UI/Strings/en-us/Resources.resw Co-authored-by: htcfreek <61519853+htcfreek@users.noreply.github.com> * Moved dup code to method * Use correct versions of general settings for backwards compat test Co-authored-by: htcfreek <61519853+htcfreek@users.noreply.github.com>
2020-10-10 05:45:30 +08:00
GeneralSettingsConfig = generalSettingsRepository.SettingsConfig;
Fix for settings crash on toggling enable button for any PowerToy (#6620) * Removed getSettings from moduleEnabled so that it doesn't have to reopen the file everytime * To Lower to while checking the theme * color picker doesn't reopen the file * use the generalView model config directly for FZ * Made the same change for all the viewmodels so that they access the general view model value directly instead of opening and reading the value from a file each time * removed unused variable * Fix initialization in tests * should read the file only if general settings does not exist * Added interfaces for all the powertoys to use the generalSettings singleton class * Runner is responding to changes in settings, only issue is that every time the general settings page is loaded the information is being read because isInitialized property could not be ignored during serialization * All tests pass * Settings and runner are working as expected with the settings cache * added a null check to read from the file only when the settings process is started * use converter to deserialize an interface * Renamed generalSettings within the cache to be called CommonSettingsConfig * All tests pass, had to initialize the common settings config instance * Added few comments to newly created classes * encapsulating load and store of general view model * reading from file is encapsulated * settings and runner wotk with generic singleton * Shortcut guide works as expected * Fancyzones, shortcutguide and power preview use the settings repository and work as expected * referencing GeneralSettings instead of the settingsRepository<GeneralSettings> within viewmodels * unified access to General settings and removed the IGeneralSettingsData interface * Passing settings to viewmodel as a parameter * removed ISettingsConfig interface from the viewmodels which are not using the singleton to access settings * have to use ISettingsConfig to use GetSettings * refactored tests, all tests pass * Added test for settingsRepository that a single instance is created * Added comments and removed unnecessary headers/code * added settings repository tests * moq for each settings file * Img resizer tests pass * General tests pass * FancyZones tests pass * PowerPreview tests pass * PowerRename tests pass * shortcut guide tests pass * Added GetModuleName to ISettingsConfig * unify the way the Modulename is accessed. It was redeclared in multiple places and this would cause an issue if the name is changed only in one place. All the module names are accessed using the <T>Settings.ModuleName, eg: ShortcutGuideSettings.ModuleName. * create PTRun settings file if it does not exist * GetFile is now a private function. Modified the logic of KBM default.json access and PT Run so that we can re-use GetSettings instead of GetFile. * Added UpgradeSettingsConfiguration to the ISettingsConfig interface so that the settings file can be upgraded based on some condition. Presently, only the GeneralSettings file is utilizing this to change the PT Version number based on the old PT version and the current PT version that it receives from the helper function. Verified that if the PT version is lower in the general settings.json file, settings saves the file with the new version info. * The naming for the PowerToys was inconsistent and the variables were redeclared in multiple places. To have the settings.ModuleName as the main name, all other places should refer to that name. In the tests file the module name for ImgResizer was 'ImageResizer' and not 'Image Resizer'. * renamed lock * Remove unnecessary GetSettingsFileNAme function. It is no longer in use because the code does not use types to create a new BasePTModule object
2020-09-24 04:20:32 +08:00
// To obtain the PowerPreview settings if it exists.
// If the file does not exist, to create a new one and return the default settings configurations.
if (moduleSettingsRepository == null)
{
throw new ArgumentNullException(nameof(moduleSettingsRepository));
}
Fix for settings crash on toggling enable button for any PowerToy (#6620) * Removed getSettings from moduleEnabled so that it doesn't have to reopen the file everytime * To Lower to while checking the theme * color picker doesn't reopen the file * use the generalView model config directly for FZ * Made the same change for all the viewmodels so that they access the general view model value directly instead of opening and reading the value from a file each time * removed unused variable * Fix initialization in tests * should read the file only if general settings does not exist * Added interfaces for all the powertoys to use the generalSettings singleton class * Runner is responding to changes in settings, only issue is that every time the general settings page is loaded the information is being read because isInitialized property could not be ignored during serialization * All tests pass * Settings and runner are working as expected with the settings cache * added a null check to read from the file only when the settings process is started * use converter to deserialize an interface * Renamed generalSettings within the cache to be called CommonSettingsConfig * All tests pass, had to initialize the common settings config instance * Added few comments to newly created classes * encapsulating load and store of general view model * reading from file is encapsulated * settings and runner wotk with generic singleton * Shortcut guide works as expected * Fancyzones, shortcutguide and power preview use the settings repository and work as expected * referencing GeneralSettings instead of the settingsRepository<GeneralSettings> within viewmodels * unified access to General settings and removed the IGeneralSettingsData interface * Passing settings to viewmodel as a parameter * removed ISettingsConfig interface from the viewmodels which are not using the singleton to access settings * have to use ISettingsConfig to use GetSettings * refactored tests, all tests pass * Added test for settingsRepository that a single instance is created * Added comments and removed unnecessary headers/code * added settings repository tests * moq for each settings file * Img resizer tests pass * General tests pass * FancyZones tests pass * PowerPreview tests pass * PowerRename tests pass * shortcut guide tests pass * Added GetModuleName to ISettingsConfig * unify the way the Modulename is accessed. It was redeclared in multiple places and this would cause an issue if the name is changed only in one place. All the module names are accessed using the <T>Settings.ModuleName, eg: ShortcutGuideSettings.ModuleName. * create PTRun settings file if it does not exist * GetFile is now a private function. Modified the logic of KBM default.json access and PT Run so that we can re-use GetSettings instead of GetFile. * Added UpgradeSettingsConfiguration to the ISettingsConfig interface so that the settings file can be upgraded based on some condition. Presently, only the GeneralSettings file is utilizing this to change the PT Version number based on the old PT version and the current PT version that it receives from the helper function. Verified that if the PT version is lower in the general settings.json file, settings saves the file with the new version info. * The naming for the PowerToys was inconsistent and the variables were redeclared in multiple places. To have the settings.ModuleName as the main name, all other places should refer to that name. In the tests file the module name for ImgResizer was 'ImageResizer' and not 'Image Resizer'. * renamed lock * Remove unnecessary GetSettingsFileNAme function. It is no longer in use because the code does not use types to create a new BasePTModule object
2020-09-24 04:20:32 +08:00
Settings = moduleSettingsRepository.SettingsConfig;
// set the callback functions value to hangle outgoing IPC message.
SendConfigMSG = ipcMSGCallBackFunc;
_svgRenderIsEnabled = Settings.Properties.EnableSvgPreview;
_svgThumbnailIsEnabled = Settings.Properties.EnableSvgThumbnail;
_mdRenderIsEnabled = Settings.Properties.EnableMdPreview;
Preview Handler for developer files (#15138) * Create Readme.md * Update Readme.md * Rebased to master * started integrating * Resolve merge conflict * Fixed merge conflict * Edited expect.txt * Tried implementig interfaces * Push * Push * push * push * Deleted no longer used files * push * push * Thanks @jaimecbernando for helping * can load via url * getting stuff semi stubbed out * full render without passing vars * making sure we clearly label the file was us * push * push * push (does not work) * Push * push * Added file size limit of 3 Kilobyte in standalone App (MoncaoPreview) * Added monacosrc to excludes.txt (spell checker) * Fixed XAMLHost loading issue and changed namespace of Settings.cs * push * Restructred some code in MonacoPreviewHandler (not functional) * MonacoPreview changes: Added maximal file size and error message as values in Settings.cs Increased maxFileSize to 10 KB Renamed variables and formed code according to style guidelines Added many comments Deleted usused code Added unimplemented(?) NavigationStarted method to prevent navigation in WebView Fixed scrollbar issues (Not beautiful, but still better) Removed never seen laoding window Added some debug information as well as some Exceptions. MonacoPreviewHandler Changes: Changed order of code executions (still not usable) * Push * Push * Push * push * Oh my god, it works * Added loading screen and resize * Added some comments, changed variable names and integrated some stuff from MonacoPreview to MonacoPreviewHandler; * Monaco Preview Handler: * Removed accessibilityhelpurl * Made background of loading screen like theme selected * dev tools open now in Debug mode automatically * Fixed error message for too big file size * push * Fixed a tiny bug * Updated a NuGet Pasckage * Removed some to-do points in FileHandler.cs and added them to #14957 * Removed some to-do points in FileHandler.cs and added them to #14957. Supressed a warning and styled a function better in PrebiewHandlerCommon * Fixed 2 comment typos and a font that didn't load. (Sadly his required enable CORS again :( ) * Removed old standalone project * Removed old unused files & rebase to master #1 * Deleted everything from the monaco source code expect the minified version * Push * Added summary of all functions. Restructred/simplified/clarified some code. * Added resources * Update bug_report.yml * Update translation_issue.yml * Update expect.txt * Update ProofOfConcept/MonacoPreview/monacoPreviewHandler/index.html Co-authored-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * Update ProofOfConcept/MonacoPreview/monacoPreviewHandler/MonacoPreviewHandlerControl.cs Co-authored-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * Update ProofOfConcept/MonacoPreview/monacoPreviewHandler/Resources.resx Co-authored-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * Added some additional file types * Added additional file types * Moved to a json file for the available languages and some other changes * Added error message when WebView2 is not installed * Remoing throw error * Update expect.txt * Update excludes.txt * Update excludes.txt * Integrate Monaco preview handler into PowerToys * Update excludes.txt * Ignore .svg extension * Update signing list * Update signing list #2 * Changed monaco string * fix * Fixed wrong JSON field and changed date of Copyright * Added check if WebView is installed * Added error when webview2 is not installed * Increased file size limit to 50kb * Added new file generator for languages.json * Remove unvisible symbol at the beggining of the file * Regenerate resx file * Update MonacoPreviewHandler.csproj * tweaking script to ignore 1.0 check on theme dll * Update src/modules/previewpane/MonacoPreviewHandler/Properties/Resources.resx Co-authored-by: Franky Chen <franky920920+gpg@gmail.com> * Update src/modules/previewpane/MonacoPreviewHandler/MonacoPreviewHandlerControl.cs Co-authored-by: Franky Chen <franky920920+gpg@gmail.com> * Update src/modules/previewpane/MonacoPreviewHandler/MonacoPreviewHandlerControl.cs Co-authored-by: Franky Chen <franky920920+gpg@gmail.com> * Update src/settings-ui/Settings.UI/Strings/en-us/Resources.resw Co-authored-by: Franky Chen <franky920920+gpg@gmail.com> * Update excludes.txt * Update src/modules/previewpane/powerpreview/Resources.resx Co-authored-by: Franky Chen <franky920920+gpg@gmail.com> * Check and install WebView2 if needed * Run spellcheck script * Update ESRPSigning_core.json adding font * Update versionAndSignCheck.ps1 adding fonts to verify * Adding in Monaco usage * Update NOTICE.md * Update ESRPSigning_core.json * expect.txt update * Use Common.UI/ThemeManager.cs * No user facing strings should reference Monaco * Fix build error * monaco devdocs (#15691) * Create update-monaco-editor.md * Update and rename update-monaco-editor.md to readme.md * Update doc/devdocs/modules/powerpreview/monaco/readme.md Co-authored-by: Heiko <61519853+htcfreek@users.noreply.github.com> * Update doc/devdocs/modules/powerpreview/monaco/readme.md Co-authored-by: Heiko <61519853+htcfreek@users.noreply.github.com> * Update doc/devdocs/modules/powerpreview/monaco/readme.md Co-authored-by: Heiko <61519853+htcfreek@users.noreply.github.com> * Update readme.md * Update readme.md Co-authored-by: Heiko <61519853+htcfreek@users.noreply.github.com> * Fix WebView installer condition * Using system.text.json * Update ESRPSigning_core.json * Remove Newtonsoft.Json.dll from installer * Revert "WinUI bump (#15707)" This reverts commit b6a207c4b69b797dc5589aebbe162ef1f95fe83f. * Revert "Update Settings.UI.csproj (#15704)" This reverts commit 1a25dacc735621dc62a060fd8e6f52c86a1013cc. Co-authored-by: Clint Rutkas <clint@rutkas.com> Co-authored-by: Aaron Junker <aaron.junker@sus.schulen-stadtsh.ch> Co-authored-by: Clint Rutkas <crutkas@microsoft.com> Co-authored-by: Josh Soref <2119212+jsoref@users.noreply.github.com> Co-authored-by: Stefan Markovic <stefan@janeasystems.com> Co-authored-by: Franky Chen <franky920920+gpg@gmail.com> Co-authored-by: Heiko <61519853+htcfreek@users.noreply.github.com>
2022-01-26 04:02:10 +08:00
_monacoRenderIsEnabled = Settings.Properties.EnableMonacoPreview;
_monacoWrapText = Settings.Properties.EnableMonacoPreviewWordWrap;
_monacoPreviewTryFormat = Settings.Properties.MonacoPreviewTryFormat;
_pdfRenderIsEnabled = Settings.Properties.EnablePdfPreview;
_gcodeRenderIsEnabled = Settings.Properties.EnableGcodePreview;
_pdfThumbnailIsEnabled = Settings.Properties.EnablePdfThumbnail;
_gcodeThumbnailIsEnabled = Settings.Properties.EnableGcodeThumbnail;
_stlThumbnailIsEnabled = Settings.Properties.EnableStlThumbnail;
_stlThumbnailColor = Settings.Properties.StlThumbnailColor.Value;
}
private bool _svgRenderIsEnabled;
private bool _mdRenderIsEnabled;
Preview Handler for developer files (#15138) * Create Readme.md * Update Readme.md * Rebased to master * started integrating * Resolve merge conflict * Fixed merge conflict * Edited expect.txt * Tried implementig interfaces * Push * Push * push * push * Deleted no longer used files * push * push * Thanks @jaimecbernando for helping * can load via url * getting stuff semi stubbed out * full render without passing vars * making sure we clearly label the file was us * push * push * push (does not work) * Push * push * Added file size limit of 3 Kilobyte in standalone App (MoncaoPreview) * Added monacosrc to excludes.txt (spell checker) * Fixed XAMLHost loading issue and changed namespace of Settings.cs * push * Restructred some code in MonacoPreviewHandler (not functional) * MonacoPreview changes: Added maximal file size and error message as values in Settings.cs Increased maxFileSize to 10 KB Renamed variables and formed code according to style guidelines Added many comments Deleted usused code Added unimplemented(?) NavigationStarted method to prevent navigation in WebView Fixed scrollbar issues (Not beautiful, but still better) Removed never seen laoding window Added some debug information as well as some Exceptions. MonacoPreviewHandler Changes: Changed order of code executions (still not usable) * Push * Push * Push * push * Oh my god, it works * Added loading screen and resize * Added some comments, changed variable names and integrated some stuff from MonacoPreview to MonacoPreviewHandler; * Monaco Preview Handler: * Removed accessibilityhelpurl * Made background of loading screen like theme selected * dev tools open now in Debug mode automatically * Fixed error message for too big file size * push * Fixed a tiny bug * Updated a NuGet Pasckage * Removed some to-do points in FileHandler.cs and added them to #14957 * Removed some to-do points in FileHandler.cs and added them to #14957. Supressed a warning and styled a function better in PrebiewHandlerCommon * Fixed 2 comment typos and a font that didn't load. (Sadly his required enable CORS again :( ) * Removed old standalone project * Removed old unused files & rebase to master #1 * Deleted everything from the monaco source code expect the minified version * Push * Added summary of all functions. Restructred/simplified/clarified some code. * Added resources * Update bug_report.yml * Update translation_issue.yml * Update expect.txt * Update ProofOfConcept/MonacoPreview/monacoPreviewHandler/index.html Co-authored-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * Update ProofOfConcept/MonacoPreview/monacoPreviewHandler/MonacoPreviewHandlerControl.cs Co-authored-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * Update ProofOfConcept/MonacoPreview/monacoPreviewHandler/Resources.resx Co-authored-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * Added some additional file types * Added additional file types * Moved to a json file for the available languages and some other changes * Added error message when WebView2 is not installed * Remoing throw error * Update expect.txt * Update excludes.txt * Update excludes.txt * Integrate Monaco preview handler into PowerToys * Update excludes.txt * Ignore .svg extension * Update signing list * Update signing list #2 * Changed monaco string * fix * Fixed wrong JSON field and changed date of Copyright * Added check if WebView is installed * Added error when webview2 is not installed * Increased file size limit to 50kb * Added new file generator for languages.json * Remove unvisible symbol at the beggining of the file * Regenerate resx file * Update MonacoPreviewHandler.csproj * tweaking script to ignore 1.0 check on theme dll * Update src/modules/previewpane/MonacoPreviewHandler/Properties/Resources.resx Co-authored-by: Franky Chen <franky920920+gpg@gmail.com> * Update src/modules/previewpane/MonacoPreviewHandler/MonacoPreviewHandlerControl.cs Co-authored-by: Franky Chen <franky920920+gpg@gmail.com> * Update src/modules/previewpane/MonacoPreviewHandler/MonacoPreviewHandlerControl.cs Co-authored-by: Franky Chen <franky920920+gpg@gmail.com> * Update src/settings-ui/Settings.UI/Strings/en-us/Resources.resw Co-authored-by: Franky Chen <franky920920+gpg@gmail.com> * Update excludes.txt * Update src/modules/previewpane/powerpreview/Resources.resx Co-authored-by: Franky Chen <franky920920+gpg@gmail.com> * Check and install WebView2 if needed * Run spellcheck script * Update ESRPSigning_core.json adding font * Update versionAndSignCheck.ps1 adding fonts to verify * Adding in Monaco usage * Update NOTICE.md * Update ESRPSigning_core.json * expect.txt update * Use Common.UI/ThemeManager.cs * No user facing strings should reference Monaco * Fix build error * monaco devdocs (#15691) * Create update-monaco-editor.md * Update and rename update-monaco-editor.md to readme.md * Update doc/devdocs/modules/powerpreview/monaco/readme.md Co-authored-by: Heiko <61519853+htcfreek@users.noreply.github.com> * Update doc/devdocs/modules/powerpreview/monaco/readme.md Co-authored-by: Heiko <61519853+htcfreek@users.noreply.github.com> * Update doc/devdocs/modules/powerpreview/monaco/readme.md Co-authored-by: Heiko <61519853+htcfreek@users.noreply.github.com> * Update readme.md * Update readme.md Co-authored-by: Heiko <61519853+htcfreek@users.noreply.github.com> * Fix WebView installer condition * Using system.text.json * Update ESRPSigning_core.json * Remove Newtonsoft.Json.dll from installer * Revert "WinUI bump (#15707)" This reverts commit b6a207c4b69b797dc5589aebbe162ef1f95fe83f. * Revert "Update Settings.UI.csproj (#15704)" This reverts commit 1a25dacc735621dc62a060fd8e6f52c86a1013cc. Co-authored-by: Clint Rutkas <clint@rutkas.com> Co-authored-by: Aaron Junker <aaron.junker@sus.schulen-stadtsh.ch> Co-authored-by: Clint Rutkas <crutkas@microsoft.com> Co-authored-by: Josh Soref <2119212+jsoref@users.noreply.github.com> Co-authored-by: Stefan Markovic <stefan@janeasystems.com> Co-authored-by: Franky Chen <franky920920+gpg@gmail.com> Co-authored-by: Heiko <61519853+htcfreek@users.noreply.github.com>
2022-01-26 04:02:10 +08:00
private bool _monacoRenderIsEnabled;
private bool _monacoWrapText;
private bool _monacoPreviewTryFormat;
private bool _pdfRenderIsEnabled;
private bool _gcodeRenderIsEnabled;
private bool _svgThumbnailIsEnabled;
private bool _pdfThumbnailIsEnabled;
private bool _gcodeThumbnailIsEnabled;
private bool _stlThumbnailIsEnabled;
private string _stlThumbnailColor;
public bool SVGRenderIsEnabled
{
get
{
return _svgRenderIsEnabled;
}
set
{
if (value != _svgRenderIsEnabled)
{
_svgRenderIsEnabled = value;
Settings.Properties.EnableSvgPreview = value;
RaisePropertyChanged();
}
}
}
public bool SVGThumbnailIsEnabled
{
get
{
return _svgThumbnailIsEnabled;
}
set
{
if (value != _svgThumbnailIsEnabled)
{
_svgThumbnailIsEnabled = value;
Settings.Properties.EnableSvgThumbnail = value;
RaisePropertyChanged();
}
}
}
public bool MDRenderIsEnabled
{
get
{
return _mdRenderIsEnabled;
}
set
{
if (value != _mdRenderIsEnabled)
{
_mdRenderIsEnabled = value;
Settings.Properties.EnableMdPreview = value;
RaisePropertyChanged();
}
}
}
Preview Handler for developer files (#15138) * Create Readme.md * Update Readme.md * Rebased to master * started integrating * Resolve merge conflict * Fixed merge conflict * Edited expect.txt * Tried implementig interfaces * Push * Push * push * push * Deleted no longer used files * push * push * Thanks @jaimecbernando for helping * can load via url * getting stuff semi stubbed out * full render without passing vars * making sure we clearly label the file was us * push * push * push (does not work) * Push * push * Added file size limit of 3 Kilobyte in standalone App (MoncaoPreview) * Added monacosrc to excludes.txt (spell checker) * Fixed XAMLHost loading issue and changed namespace of Settings.cs * push * Restructred some code in MonacoPreviewHandler (not functional) * MonacoPreview changes: Added maximal file size and error message as values in Settings.cs Increased maxFileSize to 10 KB Renamed variables and formed code according to style guidelines Added many comments Deleted usused code Added unimplemented(?) NavigationStarted method to prevent navigation in WebView Fixed scrollbar issues (Not beautiful, but still better) Removed never seen laoding window Added some debug information as well as some Exceptions. MonacoPreviewHandler Changes: Changed order of code executions (still not usable) * Push * Push * Push * push * Oh my god, it works * Added loading screen and resize * Added some comments, changed variable names and integrated some stuff from MonacoPreview to MonacoPreviewHandler; * Monaco Preview Handler: * Removed accessibilityhelpurl * Made background of loading screen like theme selected * dev tools open now in Debug mode automatically * Fixed error message for too big file size * push * Fixed a tiny bug * Updated a NuGet Pasckage * Removed some to-do points in FileHandler.cs and added them to #14957 * Removed some to-do points in FileHandler.cs and added them to #14957. Supressed a warning and styled a function better in PrebiewHandlerCommon * Fixed 2 comment typos and a font that didn't load. (Sadly his required enable CORS again :( ) * Removed old standalone project * Removed old unused files & rebase to master #1 * Deleted everything from the monaco source code expect the minified version * Push * Added summary of all functions. Restructred/simplified/clarified some code. * Added resources * Update bug_report.yml * Update translation_issue.yml * Update expect.txt * Update ProofOfConcept/MonacoPreview/monacoPreviewHandler/index.html Co-authored-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * Update ProofOfConcept/MonacoPreview/monacoPreviewHandler/MonacoPreviewHandlerControl.cs Co-authored-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * Update ProofOfConcept/MonacoPreview/monacoPreviewHandler/Resources.resx Co-authored-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * Added some additional file types * Added additional file types * Moved to a json file for the available languages and some other changes * Added error message when WebView2 is not installed * Remoing throw error * Update expect.txt * Update excludes.txt * Update excludes.txt * Integrate Monaco preview handler into PowerToys * Update excludes.txt * Ignore .svg extension * Update signing list * Update signing list #2 * Changed monaco string * fix * Fixed wrong JSON field and changed date of Copyright * Added check if WebView is installed * Added error when webview2 is not installed * Increased file size limit to 50kb * Added new file generator for languages.json * Remove unvisible symbol at the beggining of the file * Regenerate resx file * Update MonacoPreviewHandler.csproj * tweaking script to ignore 1.0 check on theme dll * Update src/modules/previewpane/MonacoPreviewHandler/Properties/Resources.resx Co-authored-by: Franky Chen <franky920920+gpg@gmail.com> * Update src/modules/previewpane/MonacoPreviewHandler/MonacoPreviewHandlerControl.cs Co-authored-by: Franky Chen <franky920920+gpg@gmail.com> * Update src/modules/previewpane/MonacoPreviewHandler/MonacoPreviewHandlerControl.cs Co-authored-by: Franky Chen <franky920920+gpg@gmail.com> * Update src/settings-ui/Settings.UI/Strings/en-us/Resources.resw Co-authored-by: Franky Chen <franky920920+gpg@gmail.com> * Update excludes.txt * Update src/modules/previewpane/powerpreview/Resources.resx Co-authored-by: Franky Chen <franky920920+gpg@gmail.com> * Check and install WebView2 if needed * Run spellcheck script * Update ESRPSigning_core.json adding font * Update versionAndSignCheck.ps1 adding fonts to verify * Adding in Monaco usage * Update NOTICE.md * Update ESRPSigning_core.json * expect.txt update * Use Common.UI/ThemeManager.cs * No user facing strings should reference Monaco * Fix build error * monaco devdocs (#15691) * Create update-monaco-editor.md * Update and rename update-monaco-editor.md to readme.md * Update doc/devdocs/modules/powerpreview/monaco/readme.md Co-authored-by: Heiko <61519853+htcfreek@users.noreply.github.com> * Update doc/devdocs/modules/powerpreview/monaco/readme.md Co-authored-by: Heiko <61519853+htcfreek@users.noreply.github.com> * Update doc/devdocs/modules/powerpreview/monaco/readme.md Co-authored-by: Heiko <61519853+htcfreek@users.noreply.github.com> * Update readme.md * Update readme.md Co-authored-by: Heiko <61519853+htcfreek@users.noreply.github.com> * Fix WebView installer condition * Using system.text.json * Update ESRPSigning_core.json * Remove Newtonsoft.Json.dll from installer * Revert "WinUI bump (#15707)" This reverts commit b6a207c4b69b797dc5589aebbe162ef1f95fe83f. * Revert "Update Settings.UI.csproj (#15704)" This reverts commit 1a25dacc735621dc62a060fd8e6f52c86a1013cc. Co-authored-by: Clint Rutkas <clint@rutkas.com> Co-authored-by: Aaron Junker <aaron.junker@sus.schulen-stadtsh.ch> Co-authored-by: Clint Rutkas <crutkas@microsoft.com> Co-authored-by: Josh Soref <2119212+jsoref@users.noreply.github.com> Co-authored-by: Stefan Markovic <stefan@janeasystems.com> Co-authored-by: Franky Chen <franky920920+gpg@gmail.com> Co-authored-by: Heiko <61519853+htcfreek@users.noreply.github.com>
2022-01-26 04:02:10 +08:00
public bool MonacoRenderIsEnabled
{
get
{
return _monacoRenderIsEnabled;
}
set
{
if (value != _monacoRenderIsEnabled)
{
_monacoRenderIsEnabled = value;
Settings.Properties.EnableMonacoPreview = value;
RaisePropertyChanged();
}
}
}
public bool MonacoWrapText
{
get
{
return _monacoWrapText;
}
set
{
if (_monacoWrapText != value)
{
_monacoWrapText = value;
Settings.Properties.EnableMonacoPreviewWordWrap = value;
RaisePropertyChanged();
}
}
}
public bool MonacoPreviewTryFormat
{
get
{
return _monacoPreviewTryFormat;
}
set
{
if (_monacoPreviewTryFormat != value)
{
_monacoPreviewTryFormat = value;
Settings.Properties.MonacoPreviewTryFormat = value;
RaisePropertyChanged();
}
}
}
public bool PDFRenderIsEnabled
{
get
{
return _pdfRenderIsEnabled;
}
set
{
if (value != _pdfRenderIsEnabled)
{
_pdfRenderIsEnabled = value;
Settings.Properties.EnablePdfPreview = value;
RaisePropertyChanged();
}
}
}
public bool PDFThumbnailIsEnabled
{
get
{
return _pdfThumbnailIsEnabled;
}
set
{
if (value != _pdfThumbnailIsEnabled)
{
_pdfThumbnailIsEnabled = value;
Settings.Properties.EnablePdfThumbnail = value;
RaisePropertyChanged();
}
}
}
public bool GCODERenderIsEnabled
{
get
{
return _gcodeRenderIsEnabled;
}
set
{
if (value != _gcodeRenderIsEnabled)
{
_gcodeRenderIsEnabled = value;
Settings.Properties.EnableGcodePreview = value;
RaisePropertyChanged();
}
}
}
public bool GCODEThumbnailIsEnabled
{
get
{
return _gcodeThumbnailIsEnabled;
}
set
{
if (value != _gcodeThumbnailIsEnabled)
{
_gcodeThumbnailIsEnabled = value;
Settings.Properties.EnableGcodeThumbnail = value;
RaisePropertyChanged();
}
}
}
public bool STLThumbnailIsEnabled
{
get
{
return _stlThumbnailIsEnabled;
}
set
{
if (value != _stlThumbnailIsEnabled)
{
_stlThumbnailIsEnabled = value;
Settings.Properties.EnableStlThumbnail = value;
RaisePropertyChanged();
}
}
}
public string STLThumbnailColor
{
get
{
return _stlThumbnailColor;
}
set
{
if (value != _stlThumbnailColor)
{
_stlThumbnailColor = value;
Settings.Properties.StlThumbnailColor.Value = value;
RaisePropertyChanged();
}
}
}
public string GetSettingsSubPath()
{
return _settingsConfigFileFolder + "\\" + ModuleName;
}
[File Explorer] Fix enable/disable for File Explorer PowerToy (#6883) * Commented out enable/disable for File Explorer * Revert UI changes * Disable the toggles if PT is not running elevated * Fixed compilation errors in tests * Cleaned up preview pane code to separate thumbnail and preview panes as separate classes * Fixed broken settings format and added elevation check and registry updated required logic. Preview Handler tested manually working, Thumbnail Enable/Disable needs to be fixed * Updated Thumbnail enable/disable logic and added warning messages * Update tests for File Explorer * Fixed RegGetValue failing in Release config * Renamed new classes * Split wrappers for disable to work * Modified enabled flag check to also check if user is on new settings. Fixed casing issue in powerpreview.h that caused a dialog prompt on first launch after install * Update fontweight and margin * Fixed release build not working * Move UseNewSettings usage to powerpreview.cpp to avoid tests breaking. For new settings the enable check is done in constructor and for old settings it is done in enable * Update src/core/Microsoft.PowerToys.Settings.UI/Strings/en-us/Resources.resw Co-authored-by: htcfreek <61519853+htcfreek@users.noreply.github.com> * Update src/core/Microsoft.PowerToys.Settings.UI/Strings/en-us/Resources.resw Co-authored-by: htcfreek <61519853+htcfreek@users.noreply.github.com> * Update src/core/Microsoft.PowerToys.Settings.UI/Strings/en-us/Resources.resw Co-authored-by: htcfreek <61519853+htcfreek@users.noreply.github.com> * Moved dup code to method * Use correct versions of general settings for backwards compat test Co-authored-by: htcfreek <61519853+htcfreek@users.noreply.github.com>
2020-10-10 05:45:30 +08:00
public bool IsElevated
{
get
{
return GeneralSettingsConfig.IsElevated;
}
}
private void RaisePropertyChanged([CallerMemberName] string propertyName = null)
{
// Notify UI of property change
OnPropertyChanged(propertyName);
if (SendConfigMSG != null)
{
SndPowerPreviewSettings snd = new SndPowerPreviewSettings(Settings);
SndModuleSettings<SndPowerPreviewSettings> ipcMessage = new SndModuleSettings<SndPowerPreviewSettings>(snd);
SendConfigMSG(ipcMessage.ToJsonString());
}
}
}
}