From 5a2385c66b2bd8fe033f7866a07fbdd8a33c7318 Mon Sep 17 00:00:00 2001 From: martinchrzan Date: Sat, 25 Jul 2020 08:50:29 +0200 Subject: [PATCH] =?UTF-8?q?Set=20default=20shortcut=20for=20activating=20l?= =?UTF-8?q?auncher,=20creating=20settings.json=20=E2=80=A6=20(#5206)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Set default shortcut for activating launcher, creating settings.json on a start if it does not exists * After review fixes --- .../PowerLauncherProperties.cs | 3 ++- .../launcher/PowerLauncher/SettingsWatcher.cs | 20 ++++++++++++++++--- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/core/Microsoft.PowerToys.Settings.UI.Lib/PowerLauncherProperties.cs b/src/core/Microsoft.PowerToys.Settings.UI.Lib/PowerLauncherProperties.cs index 188d790cfe..e590f5da3f 100644 --- a/src/core/Microsoft.PowerToys.Settings.UI.Lib/PowerLauncherProperties.cs +++ b/src/core/Microsoft.PowerToys.Settings.UI.Lib/PowerLauncherProperties.cs @@ -46,7 +46,7 @@ namespace Microsoft.PowerToys.Settings.UI.Lib public PowerLauncherProperties() { - OpenPowerLauncher = new HotkeySettings(); + OpenPowerLauncher = new HotkeySettings(false, false, true, false, 32); OpenFileLocation = new HotkeySettings(); CopyPathLocation = new HotkeySettings(); OpenConsole = new HotkeySettings(); @@ -55,6 +55,7 @@ namespace Microsoft.PowerToys.Settings.UI.Lib IgnoreHotkeysInFullscreen = false; DisableDriveDetectionWarning = false; ClearInputOnLaunch = false; + MaximumNumberOfResults = 4; } } } diff --git a/src/modules/launcher/PowerLauncher/SettingsWatcher.cs b/src/modules/launcher/PowerLauncher/SettingsWatcher.cs index 466e14fca2..bcbc6c280f 100644 --- a/src/modules/launcher/PowerLauncher/SettingsWatcher.cs +++ b/src/modules/launcher/PowerLauncher/SettingsWatcher.cs @@ -36,11 +36,20 @@ namespace PowerLauncher { Monitor.Enter(_watcherSyncObject); var retry = true; - for (int i = 0; retry && i < MAX_RETRIES; i++) + var retryCount = 0; + while(retry) { - retry = false; try { + retryCount++; + if (!SettingsUtils.SettingsExists(PowerLauncherSettings.ModuleName)) + { + Debug.WriteLine("PT Run settings.json was missing, creating a new one"); + + var defaultSettings = new PowerLauncherSettings(); + defaultSettings.Save(); + } + var overloadSettings = SettingsUtils.GetSettings(PowerLauncherSettings.ModuleName); var openPowerlauncher = ConvertHotkey(overloadSettings.Properties.OpenPowerLauncher); @@ -77,12 +86,17 @@ namespace PowerLauncher { _settings.ClearInputOnLaunch = overloadSettings.Properties.ClearInputOnLaunch; } + + retry = false; } // the settings application can hold a lock on the settings.json file which will result in a IOException. // This should be changed to properly synch with the settings app instead of retrying. catch (IOException e) { - retry = true; + if (retryCount > MAX_RETRIES) + { + retry = false; + } Thread.Sleep(1000); Debug.WriteLine(e.Message); }