From 272197788b694890a37a88290e21b4a6d1f5b2ef Mon Sep 17 00:00:00 2001 From: Oren Nachman Date: Tue, 19 Jul 2022 10:48:13 -0700 Subject: [PATCH 01/10] Force reload theme resources when changing fonts etc in settings (#625, #637) This will mean that changing some settings will be a bit slower than before, especially when enabling blur which will reload resources twice but this is negligible and only hits in settings. --- Flow.Launcher.Core/Resource/Theme.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Flow.Launcher.Core/Resource/Theme.cs b/Flow.Launcher.Core/Resource/Theme.cs index 6561419a1..4c1a88e23 100644 --- a/Flow.Launcher.Core/Resource/Theme.cs +++ b/Flow.Launcher.Core/Resource/Theme.cs @@ -85,10 +85,13 @@ namespace Flow.Launcher.Core.Resource Settings.Theme = theme; + // #625, #637 - reload all resources even if the theme itself hasn't changed in order to pickup changes + // to things like fonts + UpdateResourceDictionary(GetResourceDictionary()); + //always allow re-loading default theme, in case of failure of switching to a new theme from default theme if (_oldTheme != theme || theme == defaultTheme) { - UpdateResourceDictionary(GetResourceDictionary()); _oldTheme = Path.GetFileNameWithoutExtension(_oldResource.Source.AbsolutePath); } From 2077c0b48cedb0769a4b031b9eed5a6388e484e8 Mon Sep 17 00:00:00 2001 From: Hongtao Zhang Date: Sun, 24 Jul 2022 16:23:33 -0500 Subject: [PATCH 02/10] Fix plugin info not displayed when it has multiple actionkeywords --- Flow.Launcher/SettingWindow.xaml | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/Flow.Launcher/SettingWindow.xaml b/Flow.Launcher/SettingWindow.xaml index 1eb162a92..0436d1248 100644 --- a/Flow.Launcher/SettingWindow.xaml +++ b/Flow.Launcher/SettingWindow.xaml @@ -917,6 +917,7 @@ Padding="0,0,0,0" Background="{DynamicResource Color01B}"> + SnapsToDevicePixels="True"> @@ -1118,8 +1118,8 @@ Margin="0" Padding="1" VerticalAlignment="Stretch" - Content="{Binding SettingControl}" - SizeChanged="ItemSizeChanged"/> + Content="{Binding SettingControl}" + SizeChanged="ItemSizeChanged" /> @@ -1129,8 +1129,7 @@ VerticalAlignment="Center" BorderThickness="0,1,0,0" CornerRadius="0" - Style="{DynamicResource SettingGroupBox}" - Visibility="{Binding ActionKeywordsVisibility}"> + Style="{DynamicResource SettingGroupBox}"> Date: Wed, 27 Jul 2022 16:34:30 -0700 Subject: [PATCH 03/10] Fix crash when user does not have access to registry startup keys Instead log an error about non-critical functionality and continue on. --- Flow.Launcher/SettingWindow.xaml.cs | 34 +++++++++++++++++++++++------ 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/Flow.Launcher/SettingWindow.xaml.cs b/Flow.Launcher/SettingWindow.xaml.cs index 120131830..0dcbc6b1b 100644 --- a/Flow.Launcher/SettingWindow.xaml.cs +++ b/Flow.Launcher/SettingWindow.xaml.cs @@ -4,6 +4,7 @@ using Flow.Launcher.Core.Resource; using Flow.Launcher.Helper; using Flow.Launcher.Infrastructure; using Flow.Launcher.Infrastructure.Hotkey; +using Flow.Launcher.Infrastructure.Logger; using Flow.Launcher.Infrastructure.UserSettings; using Flow.Launcher.Plugin; using Flow.Launcher.Plugin.SharedCommands; @@ -70,24 +71,43 @@ namespace Flow.Launcher public static void SetStartup() { - using var key = Registry.CurrentUser.OpenSubKey(StartupPath, true); - key?.SetValue(Constant.FlowLauncher, Constant.ExecutablePath); + try + { + using var key = Registry.CurrentUser.OpenSubKey(StartupPath, true); + key?.SetValue(Constant.FlowLauncher, Constant.ExecutablePath); + } + catch (Exception e) + { + Log.Error("SettingsWindow", $"Ignoring non-critical registry error (user permissions?): {e}"); + } } private void RemoveStartup() { - using var key = Registry.CurrentUser.OpenSubKey(StartupPath, true); - key?.DeleteValue(Constant.FlowLauncher, false); + try + { + using var key = Registry.CurrentUser.OpenSubKey(StartupPath, true); + key?.DeleteValue(Constant.FlowLauncher, false); + } + catch (Exception e) + { + Log.Error("SettingsWindow", $"Ignoring non-critical registry error (user permissions?): {e}"); + } } public static bool StartupSet() { - using var key = Registry.CurrentUser.OpenSubKey(StartupPath, true); - var path = key?.GetValue(Constant.FlowLauncher) as string; - if (path != null) + try { + using var key = Registry.CurrentUser.OpenSubKey(StartupPath, true); + var path = key?.GetValue(Constant.FlowLauncher) as string; return path == Constant.ExecutablePath; } + catch (Exception e) + { + Log.Error("SettingsWindow", $"Ignoring non-critical registry error (user permissions?): {e}"); + } + return false; } From 8498a15ff0b1989f977d0d442158a784c75fa037 Mon Sep 17 00:00:00 2001 From: Jeremy Wu Date: Thu, 28 Jul 2022 20:23:39 +1000 Subject: [PATCH 04/10] update comment --- Flow.Launcher.Core/Resource/Theme.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Flow.Launcher.Core/Resource/Theme.cs b/Flow.Launcher.Core/Resource/Theme.cs index 4c1a88e23..21892303a 100644 --- a/Flow.Launcher.Core/Resource/Theme.cs +++ b/Flow.Launcher.Core/Resource/Theme.cs @@ -85,7 +85,7 @@ namespace Flow.Launcher.Core.Resource Settings.Theme = theme; - // #625, #637 - reload all resources even if the theme itself hasn't changed in order to pickup changes + // reload all resources even if the theme itself hasn't changed in order to pickup changes // to things like fonts UpdateResourceDictionary(GetResourceDictionary()); From bde85c87a7b6f55271ad421e80330f09c2f98d81 Mon Sep 17 00:00:00 2001 From: Oren Nachman Date: Fri, 29 Jul 2022 00:09:33 -0700 Subject: [PATCH 05/10] Refactor auto-startup registry code into its own helper --- Flow.Launcher/App.xaml.cs | 10 +-- Flow.Launcher/Helper/AutoStartup.cs | 62 +++++++++++++++++++ Flow.Launcher/SettingWindow.xaml.cs | 52 ++-------------- .../ViewModel/SettingWindowViewModel.cs | 15 ++++- 4 files changed, 83 insertions(+), 56 deletions(-) create mode 100644 Flow.Launcher/Helper/AutoStartup.cs diff --git a/Flow.Launcher/App.xaml.cs b/Flow.Launcher/App.xaml.cs index 4ebff16a9..755d206d5 100644 --- a/Flow.Launcher/App.xaml.cs +++ b/Flow.Launcher/App.xaml.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Diagnostics; using System.Text; using System.Threading.Tasks; @@ -104,15 +104,11 @@ namespace Flow.Launcher }); } - private void AutoStartup() { - if (_settings.StartFlowLauncherOnSystemStartup) + if (_settings.StartFlowLauncherOnSystemStartup && !Helper.AutoStartup.IsEnabled) { - if (!SettingWindow.StartupSet()) - { - SettingWindow.SetStartup(); - } + Helper.AutoStartup.Enable(); } } diff --git a/Flow.Launcher/Helper/AutoStartup.cs b/Flow.Launcher/Helper/AutoStartup.cs new file mode 100644 index 000000000..816adfaac --- /dev/null +++ b/Flow.Launcher/Helper/AutoStartup.cs @@ -0,0 +1,62 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Flow.Launcher.Infrastructure; +using Flow.Launcher.Infrastructure.Logger; +using Microsoft.Win32; + +namespace Flow.Launcher.Helper +{ + public class AutoStartup + { + private const string StartupPath = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run"; + + public static bool IsEnabled + { + get + { + try + { + using var key = Registry.CurrentUser.OpenSubKey(StartupPath, true); + var path = key?.GetValue(Constant.FlowLauncher) as string; + return path == Constant.ExecutablePath; + } + catch (Exception e) + { + Log.Error("AutoStartup", $"Ignoring non-critical registry error (user permissions?): {e}"); + } + + return false; + } + } + + public static void Disable() + { + try + { + using var key = Registry.CurrentUser.OpenSubKey(StartupPath, true); + key?.DeleteValue(Constant.FlowLauncher, false); + } + catch (Exception e) + { + Log.Error("AutoStartup", $"Ignoring non-critical registry error (user permissions?): {e}"); + } + } + + internal static void Enable() + { + try + { + using var key = Registry.CurrentUser.OpenSubKey(StartupPath, true); + key?.SetValue(Constant.FlowLauncher, Constant.ExecutablePath); + } + catch (Exception e) + { + Log.Error("AutoStartup", $"Ignoring non-critical registry error (user permissions?): {e}"); + } + + } + } +} diff --git a/Flow.Launcher/SettingWindow.xaml.cs b/Flow.Launcher/SettingWindow.xaml.cs index 0dcbc6b1b..d5259d497 100644 --- a/Flow.Launcher/SettingWindow.xaml.cs +++ b/Flow.Launcher/SettingWindow.xaml.cs @@ -1,4 +1,4 @@ -using Flow.Launcher.Core.ExternalPlugins; +using Flow.Launcher.Core.ExternalPlugins; using Flow.Launcher.Core.Plugin; using Flow.Launcher.Core.Resource; using Flow.Launcher.Helper; @@ -31,8 +31,6 @@ namespace Flow.Launcher { public partial class SettingWindow { - private const string StartupPath = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run"; - public readonly IPublicAPI API; private Settings settings; private SettingWindowViewModel viewModel; @@ -61,54 +59,12 @@ namespace Flow.Launcher private void OnAutoStartupChecked(object sender, RoutedEventArgs e) { - SetStartup(); + viewModel.SetStartup(); } private void OnAutoStartupUncheck(object sender, RoutedEventArgs e) { - RemoveStartup(); - } - - public static void SetStartup() - { - try - { - using var key = Registry.CurrentUser.OpenSubKey(StartupPath, true); - key?.SetValue(Constant.FlowLauncher, Constant.ExecutablePath); - } - catch (Exception e) - { - Log.Error("SettingsWindow", $"Ignoring non-critical registry error (user permissions?): {e}"); - } - } - - private void RemoveStartup() - { - try - { - using var key = Registry.CurrentUser.OpenSubKey(StartupPath, true); - key?.DeleteValue(Constant.FlowLauncher, false); - } - catch (Exception e) - { - Log.Error("SettingsWindow", $"Ignoring non-critical registry error (user permissions?): {e}"); - } - } - - public static bool StartupSet() - { - try - { - using var key = Registry.CurrentUser.OpenSubKey(StartupPath, true); - var path = key?.GetValue(Constant.FlowLauncher) as string; - return path == Constant.ExecutablePath; - } - catch (Exception e) - { - Log.Error("SettingsWindow", $"Ignoring non-critical registry error (user permissions?): {e}"); - } - - return false; + viewModel.RemoveStartup(); } private void OnSelectPythonDirectoryClick(object sender, RoutedEventArgs e) @@ -404,4 +360,4 @@ namespace Flow.Launcher Plugins.ScrollIntoView(Plugins.SelectedItem); } } -} \ No newline at end of file +} diff --git a/Flow.Launcher/ViewModel/SettingWindowViewModel.cs b/Flow.Launcher/ViewModel/SettingWindowViewModel.cs index 2fc6934d5..faa41c0f6 100644 --- a/Flow.Launcher/ViewModel/SettingWindowViewModel.cs +++ b/Flow.Launcher/ViewModel/SettingWindowViewModel.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.IO; using System.Linq; @@ -216,6 +216,19 @@ namespace Flow.Launcher.ViewModel #endregion + #region startup + + public void SetStartup() + { + AutoStartup.Enable(); + } + + public void RemoveStartup() + { + AutoStartup.Disable(); + } + #endregion + #region plugin public static string Plugin => @"https://github.com/Flow-Launcher/Flow.Launcher.PluginsManifest"; From c557031ef169b2edea219deeca4d8cefaccc13e6 Mon Sep 17 00:00:00 2001 From: Oren Nachman Date: Sun, 31 Jul 2022 16:28:03 -0700 Subject: [PATCH 06/10] Show notification when failing to enable/disable autostartup --- Flow.Launcher/App.xaml.cs | 14 ++++++++++++- Flow.Launcher/Helper/AutoStartup.cs | 9 ++++---- Flow.Launcher/Languages/da.xaml | 2 ++ Flow.Launcher/Languages/de.xaml | 2 ++ Flow.Launcher/Languages/en.xaml | 2 ++ Flow.Launcher/Languages/es-419.xaml | 2 ++ Flow.Launcher/Languages/es.xaml | 2 ++ Flow.Launcher/Languages/fr.xaml | 2 ++ Flow.Launcher/Languages/it.xaml | 2 ++ Flow.Launcher/Languages/ja.xaml | 2 ++ Flow.Launcher/Languages/ko.xaml | 2 ++ Flow.Launcher/Languages/nb-NO.xaml | 2 ++ Flow.Launcher/Languages/nb.xaml | 2 ++ Flow.Launcher/Languages/nl.xaml | 2 ++ Flow.Launcher/Languages/pl.xaml | 2 ++ Flow.Launcher/Languages/pt-br.xaml | 2 ++ Flow.Launcher/Languages/pt-pt.xaml | 2 ++ Flow.Launcher/Languages/ru.xaml | 2 ++ Flow.Launcher/Languages/sk.xaml | 2 ++ Flow.Launcher/Languages/sr.xaml | 2 ++ Flow.Launcher/Languages/tr.xaml | 2 ++ Flow.Launcher/Languages/uk-UA.xaml | 2 ++ Flow.Launcher/Languages/zh-cn.xaml | 2 ++ Flow.Launcher/Languages/zh-tw.xaml | 2 ++ Flow.Launcher/Notification.cs | 4 ++-- Flow.Launcher/PublicAPIInstance.cs | 4 ++-- Flow.Launcher/ViewModel/MainViewModel.cs | 8 +++---- .../ViewModel/SettingWindowViewModel.cs | 21 +++++++++++++++++-- 28 files changed, 89 insertions(+), 15 deletions(-) diff --git a/Flow.Launcher/App.xaml.cs b/Flow.Launcher/App.xaml.cs index 755d206d5..228ec7ba2 100644 --- a/Flow.Launcher/App.xaml.cs +++ b/Flow.Launcher/App.xaml.cs @@ -106,9 +106,21 @@ namespace Flow.Launcher private void AutoStartup() { + // we try to enable auto-startup on first launch, or reenable if it was removed + // but the user still has the setting set if (_settings.StartFlowLauncherOnSystemStartup && !Helper.AutoStartup.IsEnabled) { - Helper.AutoStartup.Enable(); + try + { + Helper.AutoStartup.Enable(); + } + catch (Exception e) + { + // but if it fails (permissions, etc) then don't keep retrying + // this also gives the user a visual indication in the Settings widget + _settings.StartFlowLauncherOnSystemStartup = false; + Notification.Show(InternationalizationManager.Instance.GetTranslation("registerAutoStartFailed"), e.Message); + } } } diff --git a/Flow.Launcher/Helper/AutoStartup.cs b/Flow.Launcher/Helper/AutoStartup.cs index 816adfaac..956324020 100644 --- a/Flow.Launcher/Helper/AutoStartup.cs +++ b/Flow.Launcher/Helper/AutoStartup.cs @@ -25,7 +25,7 @@ namespace Flow.Launcher.Helper } catch (Exception e) { - Log.Error("AutoStartup", $"Ignoring non-critical registry error (user permissions?): {e}"); + Log.Error("AutoStartup", $"Ignoring non-critical registry error (querying if enabled): {e}"); } return false; @@ -41,7 +41,8 @@ namespace Flow.Launcher.Helper } catch (Exception e) { - Log.Error("AutoStartup", $"Ignoring non-critical registry error (user permissions?): {e}"); + Log.Error("AutoStartup", $"Failed to disable auto-startup: {e}"); + throw; } } @@ -54,9 +55,9 @@ namespace Flow.Launcher.Helper } catch (Exception e) { - Log.Error("AutoStartup", $"Ignoring non-critical registry error (user permissions?): {e}"); + Log.Error("AutoStartup", $"Failed to enable auto-startup: {e}"); + throw; } - } } } diff --git a/Flow.Launcher/Languages/da.xaml b/Flow.Launcher/Languages/da.xaml index a67894e97..988e63bea 100644 --- a/Flow.Launcher/Languages/da.xaml +++ b/Flow.Launcher/Languages/da.xaml @@ -28,6 +28,8 @@ Portable Mode Store all settings and user data in one folder (Useful when used with removable drives or cloud services). Start Flow Launcher ved system start + Error enabling launch on startup + Error disabling launch on startup Skjul Flow Launcher ved mistet fokus Vis ikke notifikationer om nye versioner Husk seneste position diff --git a/Flow.Launcher/Languages/de.xaml b/Flow.Launcher/Languages/de.xaml index e83c5bf6c..5b78f3a85 100644 --- a/Flow.Launcher/Languages/de.xaml +++ b/Flow.Launcher/Languages/de.xaml @@ -28,6 +28,8 @@ Portabler Modus Speichern Sie alle Einstellungen und Benutzerdaten in einem Ordner (nützlich bei Verwendung mit Wechseldatenträgern oder Clouddiensten). Starte Flow Launcher bei Systemstart + Error enabling launch on startup + Error disabling launch on startup Verstecke Flow Launcher wenn der Fokus verloren geht Zeige keine Nachricht wenn eine neue Version vorhanden ist Merke letzte Ausführungsposition diff --git a/Flow.Launcher/Languages/en.xaml b/Flow.Launcher/Languages/en.xaml index 6ec3bb4ef..544f9e41c 100644 --- a/Flow.Launcher/Languages/en.xaml +++ b/Flow.Launcher/Languages/en.xaml @@ -30,6 +30,8 @@ Portable Mode Store all settings and user data in one folder (Useful when used with removable drives or cloud services). Start Flow Launcher on system startup + Error enabling launch on startup + Error disabling launch on startup Hide Flow Launcher when focus is lost Do not show new version notifications Remember last launch location diff --git a/Flow.Launcher/Languages/es-419.xaml b/Flow.Launcher/Languages/es-419.xaml index 302b932a0..b76650027 100644 --- a/Flow.Launcher/Languages/es-419.xaml +++ b/Flow.Launcher/Languages/es-419.xaml @@ -28,6 +28,8 @@ Modo portable Almacena todos los ajustes y datos de usuario en una sola carpeta (útil cuando se utiliza con unidades extraíbles o servicios en la nube). Iniciar Flow Launcher al arrancar el sistema + Error enabling launch on startup + Error disabling launch on startup Ocultar Flow Launcher cuando se pierde el enfoque No mostrar notificaciones de nuevas versiones Recordar última ubicación de inicio diff --git a/Flow.Launcher/Languages/es.xaml b/Flow.Launcher/Languages/es.xaml index a2ff40eee..4a8767a01 100644 --- a/Flow.Launcher/Languages/es.xaml +++ b/Flow.Launcher/Languages/es.xaml @@ -28,6 +28,8 @@ Modo Portable Guarda toda la configuración y datos de usuario en una carpeta (Útil cuando se utiliza con unidades extraíbles o servicios en la nube). Cargar Flow Launcher al iniciar el sistema + Error enabling launch on startup + Error disabling launch on startup Ocultar Flow Launcher cuando se pierda el foco No mostrar notificaciones de nuevas versiones Recordar última posición de Flow Launcher diff --git a/Flow.Launcher/Languages/fr.xaml b/Flow.Launcher/Languages/fr.xaml index 1fc24ee11..a5708522f 100644 --- a/Flow.Launcher/Languages/fr.xaml +++ b/Flow.Launcher/Languages/fr.xaml @@ -28,6 +28,8 @@ Mode Portable Stocker tous les paramètres et données utilisateur dans un seul dossier (Pratique en cas d'utilisation de disques amovibles ou de services cloud). Lancer Flow Launcher au démarrage du système + Error enabling launch on startup + Error disabling launch on startup Cacher Flow Launcher lors de la perte de focus Ne pas afficher les notifications lors d'une nouvelle version Se souvenir du dernier emplacement de la fenêtre diff --git a/Flow.Launcher/Languages/it.xaml b/Flow.Launcher/Languages/it.xaml index 42ad82b7d..11f0c7f5c 100644 --- a/Flow.Launcher/Languages/it.xaml +++ b/Flow.Launcher/Languages/it.xaml @@ -28,6 +28,8 @@ Portable Mode Store all settings and user data in one folder (Useful when used with removable drives or cloud services). Avvia Wow all'avvio di Windows + Error enabling launch on startup + Error disabling launch on startup Nascondi Flow Launcher quando perde il focus Non mostrare le notifiche per una nuova versione Ricorda l'ultima posizione di avvio del launcher diff --git a/Flow.Launcher/Languages/ja.xaml b/Flow.Launcher/Languages/ja.xaml index b4e687035..5b542a0a3 100644 --- a/Flow.Launcher/Languages/ja.xaml +++ b/Flow.Launcher/Languages/ja.xaml @@ -28,6 +28,8 @@ Portable Mode Store all settings and user data in one folder (Useful when used with removable drives or cloud services). スタートアップ時にFlow Launcherを起動する + Error enabling launch on startup + Error disabling launch on startup フォーカスを失った時にFlow Launcherを隠す 最新版が入手可能であっても、アップグレードメッセージを表示しない 前回のランチャーの位置を記憶 diff --git a/Flow.Launcher/Languages/ko.xaml b/Flow.Launcher/Languages/ko.xaml index 094985b3a..aae4322a3 100644 --- a/Flow.Launcher/Languages/ko.xaml +++ b/Flow.Launcher/Languages/ko.xaml @@ -28,6 +28,8 @@ 포터블 모드 모든 설정이 폴더안에 들어갑니다. USB 드라이브나 클라우드로 사용 가능합니다. 시스템 시작 시 Flow Launcher 실행 + Error enabling launch on startup + Error disabling launch on startup 포커스 잃으면 Flow Launcher 숨김 새 버전 알림 끄기 마지막 실행 위치 기억 diff --git a/Flow.Launcher/Languages/nb-NO.xaml b/Flow.Launcher/Languages/nb-NO.xaml index 859ec20a0..525591998 100644 --- a/Flow.Launcher/Languages/nb-NO.xaml +++ b/Flow.Launcher/Languages/nb-NO.xaml @@ -18,6 +18,8 @@ Flow Launcher-innstillinger Generelt Start Flow Launcher ved systemstart + Error enabling launch on startup + Error disabling launch on startup Skjul Flow Launcher ved mistet fokus Ikke vis varsel om ny versjon Husk siste plassering diff --git a/Flow.Launcher/Languages/nb.xaml b/Flow.Launcher/Languages/nb.xaml index d85ab98da..48180910f 100644 --- a/Flow.Launcher/Languages/nb.xaml +++ b/Flow.Launcher/Languages/nb.xaml @@ -28,6 +28,8 @@ Portable Mode Store all settings and user data in one folder (Useful when used with removable drives or cloud services). Start Flow Launcher on system startup + Error enabling launch on startup + Error disabling launch on startup Hide Flow Launcher when focus is lost Do not show new version notifications Remember last launch location diff --git a/Flow.Launcher/Languages/nl.xaml b/Flow.Launcher/Languages/nl.xaml index 715e934d5..d56e26149 100644 --- a/Flow.Launcher/Languages/nl.xaml +++ b/Flow.Launcher/Languages/nl.xaml @@ -28,6 +28,8 @@ Draagbare Modus Alle instellingen en gebruikersgegevens opslaan in één map (Nuttig bij het gebruik van verwijderbare schijven of cloud services). Start Flow Launcher als systeem opstart + Error enabling launch on startup + Error disabling launch on startup Verberg Flow Launcher als focus verloren is Laat geen nieuwe versie notificaties zien Herinner laatste opstart locatie diff --git a/Flow.Launcher/Languages/pl.xaml b/Flow.Launcher/Languages/pl.xaml index 8868af59d..1993e101b 100644 --- a/Flow.Launcher/Languages/pl.xaml +++ b/Flow.Launcher/Languages/pl.xaml @@ -28,6 +28,8 @@ Portable Mode Store all settings and user data in one folder (Useful when used with removable drives or cloud services). Uruchamiaj Flow Launcher przy starcie systemu + Error enabling launch on startup + Error disabling launch on startup Ukryj okno Flow Launcher kiedy przestanie ono być aktywne Nie pokazuj powiadomienia o nowej wersji Zapamiętaj ostatnią pozycję okna diff --git a/Flow.Launcher/Languages/pt-br.xaml b/Flow.Launcher/Languages/pt-br.xaml index ff69d2965..34759ddb4 100644 --- a/Flow.Launcher/Languages/pt-br.xaml +++ b/Flow.Launcher/Languages/pt-br.xaml @@ -28,6 +28,8 @@ Portable Mode Store all settings and user data in one folder (Useful when used with removable drives or cloud services). Iniciar Flow Launcher com inicialização do sistema + Error enabling launch on startup + Error disabling launch on startup Esconder Flow Launcher quando foco for perdido Não mostrar notificações de novas versões Lembrar última localização de lançamento diff --git a/Flow.Launcher/Languages/pt-pt.xaml b/Flow.Launcher/Languages/pt-pt.xaml index 1e2847a55..8542b4050 100644 --- a/Flow.Launcher/Languages/pt-pt.xaml +++ b/Flow.Launcher/Languages/pt-pt.xaml @@ -28,6 +28,8 @@ Modo portátil Guardar todas as definições e dados do utilizador numa pasta (indicado se utilizar discos amovíveis ou serviços cloud) Iniciar Flow Launcher ao arrancar o sistema + Error enabling launch on startup + Error disabling launch on startup Ocultar Flow Launcher ao perder o foco Não notificar acerca de novas versões Memorizar localização anterior diff --git a/Flow.Launcher/Languages/ru.xaml b/Flow.Launcher/Languages/ru.xaml index 55fa3b02d..4adc04edb 100644 --- a/Flow.Launcher/Languages/ru.xaml +++ b/Flow.Launcher/Languages/ru.xaml @@ -28,6 +28,8 @@ Portable Mode Store all settings and user data in one folder (Useful when used with removable drives or cloud services). Запускать Flow Launcher при запуске системы + Error enabling launch on startup + Error disabling launch on startup Скрывать Flow Launcher, если потерян фокуc Не отображать сообщение об обновлении, когда доступна новая версия Запомнить последнее место запуска diff --git a/Flow.Launcher/Languages/sk.xaml b/Flow.Launcher/Languages/sk.xaml index 1ce0f3f45..aadd51bd9 100644 --- a/Flow.Launcher/Languages/sk.xaml +++ b/Flow.Launcher/Languages/sk.xaml @@ -28,6 +28,8 @@ Prenosný režim Uloží všetky nastavenia a používateľské údaje do jedného priečinka (Užitočné pri vymeniteľných diskoch a cloudových službách). Spustiť Flow Launcher pri spustení systému + Error enabling launch on startup + Error disabling launch on startup Schovať Flow Launcher po strate fokusu Nezobrazovať upozornenia na novú verziu Zapamätať si posledné umiestnenie diff --git a/Flow.Launcher/Languages/sr.xaml b/Flow.Launcher/Languages/sr.xaml index 0515e3e67..73234d825 100644 --- a/Flow.Launcher/Languages/sr.xaml +++ b/Flow.Launcher/Languages/sr.xaml @@ -28,6 +28,8 @@ Portable Mode Store all settings and user data in one folder (Useful when used with removable drives or cloud services). Pokreni Flow Launcher pri podizanju sistema + Error enabling launch on startup + Error disabling launch on startup Sakri Flow Launcher kada se izgubi fokus Ne prikazuj obaveštenje o novoj verziji Zapamti lokaciju poslednjeg pokretanja diff --git a/Flow.Launcher/Languages/tr.xaml b/Flow.Launcher/Languages/tr.xaml index 3318cdc14..613d1ccf8 100644 --- a/Flow.Launcher/Languages/tr.xaml +++ b/Flow.Launcher/Languages/tr.xaml @@ -28,6 +28,8 @@ Taşınabilir Mod Tüm ayarları ve kullanıcı verilerini tek bir klasörde saklayın (Çıkarılabilir sürücüler veya bulut hizmetleri ile kullanıldığında kullanışlıdır). Flow Launcher'u başlangıçta başlat + Error enabling launch on startup + Error disabling launch on startup Odak pencereden ayrıldığında Flow Launcher'u gizle Güncelleme bildirimlerini gösterme Pencere konumunu hatırla diff --git a/Flow.Launcher/Languages/uk-UA.xaml b/Flow.Launcher/Languages/uk-UA.xaml index b7e9525ab..6fd01d2ba 100644 --- a/Flow.Launcher/Languages/uk-UA.xaml +++ b/Flow.Launcher/Languages/uk-UA.xaml @@ -28,6 +28,8 @@ Портативний режим Зберігати всі налаштування і дані користувача в одній теці (буде корисно при видаленні дисків або хмарних сервісах). Запускати Flow Launcher при запуску системи + Error enabling launch on startup + Error disabling launch on startup Сховати Flow Launcher, якщо втрачено фокус Не повідомляти про доступні нові версії Запам'ятати останнє місце запуску diff --git a/Flow.Launcher/Languages/zh-cn.xaml b/Flow.Launcher/Languages/zh-cn.xaml index 5dee1cc75..61adffdf8 100644 --- a/Flow.Launcher/Languages/zh-cn.xaml +++ b/Flow.Launcher/Languages/zh-cn.xaml @@ -28,6 +28,8 @@ 便携模式 将所有设置和用户数据存储在一个文件夹中 (可用于可移除驱动器或云服务)。 开机自启 + Error enabling launch on startup + Error disabling launch on startup 失去焦点时自动隐藏 Flow Launcher 不显示新版本提示 记住上次启动位置 diff --git a/Flow.Launcher/Languages/zh-tw.xaml b/Flow.Launcher/Languages/zh-tw.xaml index 27a51e23e..e7d65fa52 100644 --- a/Flow.Launcher/Languages/zh-tw.xaml +++ b/Flow.Launcher/Languages/zh-tw.xaml @@ -28,6 +28,8 @@ Portable Mode Store all settings and user data in one folder (Useful when used with removable drives or cloud services). 開機時啟動 + Error enabling launch on startup + Error disabling launch on startup 失去焦點時自動隱藏 Flow Launcher 不顯示新版本提示 記住上次啟動位置 diff --git a/Flow.Launcher/Notification.cs b/Flow.Launcher/Notification.cs index 3f5565eeb..57c1e88f2 100644 --- a/Flow.Launcher/Notification.cs +++ b/Flow.Launcher/Notification.cs @@ -18,7 +18,7 @@ namespace Flow.Launcher } [System.Diagnostics.CodeAnalysis.SuppressMessage("Interoperability", "CA1416:Validate platform compatibility", Justification = "")] - public static void Show(string title, string subTitle, string iconPath) + public static void Show(string title, string subTitle, string iconPath = null) { // Handle notification for win7/8/early win10 if (legacy) @@ -45,4 +45,4 @@ namespace Flow.Launcher msg.Show(title, subTitle, iconPath); } } -} \ No newline at end of file +} diff --git a/Flow.Launcher/PublicAPIInstance.cs b/Flow.Launcher/PublicAPIInstance.cs index 81f7a2389..e698ae597 100644 --- a/Flow.Launcher/PublicAPIInstance.cs +++ b/Flow.Launcher/PublicAPIInstance.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Net; @@ -286,4 +286,4 @@ namespace Flow.Launcher #endregion } -} \ No newline at end of file +} diff --git a/Flow.Launcher/ViewModel/MainViewModel.cs b/Flow.Launcher/ViewModel/MainViewModel.cs index fbcea504e..ab0e67519 100644 --- a/Flow.Launcher/ViewModel/MainViewModel.cs +++ b/Flow.Launcher/ViewModel/MainViewModel.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Threading; @@ -306,8 +306,8 @@ namespace Flow.Launcher.ViewModel { Notification.Show( InternationalizationManager.Instance.GetTranslation("success"), - InternationalizationManager.Instance.GetTranslation("completedSuccessfully"), - ""); + InternationalizationManager.Instance.GetTranslation("completedSuccessfully") + ); })) .ConfigureAwait(false); }); @@ -927,4 +927,4 @@ namespace Flow.Launcher.ViewModel #endregion } -} \ No newline at end of file +} diff --git a/Flow.Launcher/ViewModel/SettingWindowViewModel.cs b/Flow.Launcher/ViewModel/SettingWindowViewModel.cs index faa41c0f6..587349045 100644 --- a/Flow.Launcher/ViewModel/SettingWindowViewModel.cs +++ b/Flow.Launcher/ViewModel/SettingWindowViewModel.cs @@ -220,12 +220,29 @@ namespace Flow.Launcher.ViewModel public void SetStartup() { - AutoStartup.Enable(); + try + { + AutoStartup.Enable(); + } + catch (Exception e) + { + Notification.Show(InternationalizationManager.Instance.GetTranslation("registerAutoStartFailed"), e.Message); + } } public void RemoveStartup() { - AutoStartup.Disable(); + if (AutoStartup.IsEnabled) + { + try + { + AutoStartup.Disable(); + } + catch (Exception e) + { + Notification.Show(InternationalizationManager.Instance.GetTranslation("deregisterAutoStartFailed"), e.Message); + } + } } #endregion From ec4f3a781a7568eebeea30839bb9d0e4a9e4306e Mon Sep 17 00:00:00 2001 From: Kevin Zhang <45326534+taooceros@users.noreply.github.com> Date: Mon, 1 Aug 2022 11:36:35 -0500 Subject: [PATCH 07/10] Apply Logic in the viewmodel --- Flow.Launcher/SettingWindow.xaml | 4 +--- Flow.Launcher/SettingWindow.xaml.cs | 10 ---------- Flow.Launcher/ViewModel/SettingWindowViewModel.cs | 6 ++++++ 3 files changed, 7 insertions(+), 13 deletions(-) diff --git a/Flow.Launcher/SettingWindow.xaml b/Flow.Launcher/SettingWindow.xaml index 652977686..abc8d7205 100644 --- a/Flow.Launcher/SettingWindow.xaml +++ b/Flow.Launcher/SettingWindow.xaml @@ -598,10 +598,8 @@ + Style="{DynamicResource SideControlCheckBox}"/> diff --git a/Flow.Launcher/SettingWindow.xaml.cs b/Flow.Launcher/SettingWindow.xaml.cs index d5259d497..c7b4baf2e 100644 --- a/Flow.Launcher/SettingWindow.xaml.cs +++ b/Flow.Launcher/SettingWindow.xaml.cs @@ -57,16 +57,6 @@ namespace Flow.Launcher hwndTarget.RenderMode = RenderMode.SoftwareOnly; } - private void OnAutoStartupChecked(object sender, RoutedEventArgs e) - { - viewModel.SetStartup(); - } - - private void OnAutoStartupUncheck(object sender, RoutedEventArgs e) - { - viewModel.RemoveStartup(); - } - private void OnSelectPythonDirectoryClick(object sender, RoutedEventArgs e) { var dlg = new FolderBrowserDialog diff --git a/Flow.Launcher/ViewModel/SettingWindowViewModel.cs b/Flow.Launcher/ViewModel/SettingWindowViewModel.cs index 587349045..189a7bdc8 100644 --- a/Flow.Launcher/ViewModel/SettingWindowViewModel.cs +++ b/Flow.Launcher/ViewModel/SettingWindowViewModel.cs @@ -60,7 +60,13 @@ namespace Flow.Launcher.ViewModel Settings.AutoUpdates = value; if (value) + { UpdateApp(); + SetStartup(); + } else + { + RemoveStartup(); + } } } From 96d9309f4e5e525f6eb1989fe4beb1ce31991b69 Mon Sep 17 00:00:00 2001 From: Jeremy Wu Date: Mon, 8 Aug 2022 10:50:52 +1000 Subject: [PATCH 08/10] add sponsor (#1306) --- Flow.Launcher.Core/Plugin/JsonPRCModel.cs | 2 +- README.md | 29 +++++++++++++++++++---- 2 files changed, 26 insertions(+), 5 deletions(-) diff --git a/Flow.Launcher.Core/Plugin/JsonPRCModel.cs b/Flow.Launcher.Core/Plugin/JsonPRCModel.cs index cf75e4aa3..e937779a1 100644 --- a/Flow.Launcher.Core/Plugin/JsonPRCModel.cs +++ b/Flow.Launcher.Core/Plugin/JsonPRCModel.cs @@ -93,4 +93,4 @@ namespace Flow.Launcher.Core.Plugin public Dictionary SettingsChange { get; set; } } -} \ No newline at end of file +} diff --git a/README.md b/README.md index 35e438864..7b8d15830 100644 --- a/README.md +++ b/README.md @@ -38,10 +38,13 @@ Dedicated to making your workflow flow more seamless. Search everything from app

- Getting StartedFeaturesPlugins • - Hotkeys • - Questions/Suggestions • - Development • + Getting Started • + Features • + Plugins • + Hotkeys • + Sponsors • + Questions/Suggestions • + DevelopmentDocs

@@ -262,10 +265,28 @@ And you can download +## Sponsors + +

+ + + +

+ +

+ + :sparkles:Why I Chose to Support Flow-Launcher:sparkles: + +

+ + + ## ❔ Questions/Suggestions Yes please, let us know in the [Q&A](https://github.com/Flow-Launcher/Flow.Launcher/discussions/categories/q-a) section. **Join our community on [Discord](https://discord.gg/AvgAQgh)!** + + ## Development ### Contributing From ebbd1daa39a439abe0d529d1f612946cac9870ac Mon Sep 17 00:00:00 2001 From: Oren Nachman Date: Sun, 7 Aug 2022 18:23:35 -0700 Subject: [PATCH 09/10] Use direct binding to set auto-startup Also includes better messaging (single message for registry failure) --- Flow.Launcher/App.xaml.cs | 2 +- Flow.Launcher/Languages/da.xaml | 2 - Flow.Launcher/Languages/de.xaml | 2 - Flow.Launcher/Languages/en.xaml | 3 +- Flow.Launcher/Languages/es-419.xaml | 2 - Flow.Launcher/Languages/es.xaml | 2 - Flow.Launcher/Languages/fr.xaml | 2 - Flow.Launcher/Languages/it.xaml | 2 - Flow.Launcher/Languages/ja.xaml | 2 - Flow.Launcher/Languages/ko.xaml | 2 - Flow.Launcher/Languages/nb-NO.xaml | 2 - Flow.Launcher/Languages/nb.xaml | 2 - Flow.Launcher/Languages/nl.xaml | 2 - Flow.Launcher/Languages/pl.xaml | 2 - Flow.Launcher/Languages/pt-br.xaml | 2 - Flow.Launcher/Languages/pt-pt.xaml | 2 - Flow.Launcher/Languages/ru.xaml | 2 - Flow.Launcher/Languages/sk.xaml | 2 - Flow.Launcher/Languages/sr.xaml | 2 - Flow.Launcher/Languages/tr.xaml | 2 - Flow.Launcher/Languages/uk-UA.xaml | 2 - Flow.Launcher/Languages/zh-cn.xaml | 2 - Flow.Launcher/Languages/zh-tw.xaml | 2 - Flow.Launcher/SettingWindow.xaml | 6 +-- Flow.Launcher/SettingWindow.xaml.cs | 10 ---- .../ViewModel/SettingWindowViewModel.cs | 51 ++++++++----------- 26 files changed, 25 insertions(+), 89 deletions(-) diff --git a/Flow.Launcher/App.xaml.cs b/Flow.Launcher/App.xaml.cs index 228ec7ba2..8c970eddd 100644 --- a/Flow.Launcher/App.xaml.cs +++ b/Flow.Launcher/App.xaml.cs @@ -119,7 +119,7 @@ namespace Flow.Launcher // but if it fails (permissions, etc) then don't keep retrying // this also gives the user a visual indication in the Settings widget _settings.StartFlowLauncherOnSystemStartup = false; - Notification.Show(InternationalizationManager.Instance.GetTranslation("registerAutoStartFailed"), e.Message); + Notification.Show(InternationalizationManager.Instance.GetTranslation("setAutoStartFailed"), e.Message); } } } diff --git a/Flow.Launcher/Languages/da.xaml b/Flow.Launcher/Languages/da.xaml index 988e63bea..a67894e97 100644 --- a/Flow.Launcher/Languages/da.xaml +++ b/Flow.Launcher/Languages/da.xaml @@ -28,8 +28,6 @@ Portable Mode Store all settings and user data in one folder (Useful when used with removable drives or cloud services). Start Flow Launcher ved system start - Error enabling launch on startup - Error disabling launch on startup Skjul Flow Launcher ved mistet fokus Vis ikke notifikationer om nye versioner Husk seneste position diff --git a/Flow.Launcher/Languages/de.xaml b/Flow.Launcher/Languages/de.xaml index 5b78f3a85..e83c5bf6c 100644 --- a/Flow.Launcher/Languages/de.xaml +++ b/Flow.Launcher/Languages/de.xaml @@ -28,8 +28,6 @@ Portabler Modus Speichern Sie alle Einstellungen und Benutzerdaten in einem Ordner (nützlich bei Verwendung mit Wechseldatenträgern oder Clouddiensten). Starte Flow Launcher bei Systemstart - Error enabling launch on startup - Error disabling launch on startup Verstecke Flow Launcher wenn der Fokus verloren geht Zeige keine Nachricht wenn eine neue Version vorhanden ist Merke letzte Ausführungsposition diff --git a/Flow.Launcher/Languages/en.xaml b/Flow.Launcher/Languages/en.xaml index 544f9e41c..bdf745052 100644 --- a/Flow.Launcher/Languages/en.xaml +++ b/Flow.Launcher/Languages/en.xaml @@ -30,8 +30,7 @@ Portable Mode Store all settings and user data in one folder (Useful when used with removable drives or cloud services). Start Flow Launcher on system startup - Error enabling launch on startup - Error disabling launch on startup + Error setting launch on startup Hide Flow Launcher when focus is lost Do not show new version notifications Remember last launch location diff --git a/Flow.Launcher/Languages/es-419.xaml b/Flow.Launcher/Languages/es-419.xaml index b76650027..302b932a0 100644 --- a/Flow.Launcher/Languages/es-419.xaml +++ b/Flow.Launcher/Languages/es-419.xaml @@ -28,8 +28,6 @@ Modo portable Almacena todos los ajustes y datos de usuario en una sola carpeta (útil cuando se utiliza con unidades extraíbles o servicios en la nube). Iniciar Flow Launcher al arrancar el sistema - Error enabling launch on startup - Error disabling launch on startup Ocultar Flow Launcher cuando se pierde el enfoque No mostrar notificaciones de nuevas versiones Recordar última ubicación de inicio diff --git a/Flow.Launcher/Languages/es.xaml b/Flow.Launcher/Languages/es.xaml index 4a8767a01..a2ff40eee 100644 --- a/Flow.Launcher/Languages/es.xaml +++ b/Flow.Launcher/Languages/es.xaml @@ -28,8 +28,6 @@ Modo Portable Guarda toda la configuración y datos de usuario en una carpeta (Útil cuando se utiliza con unidades extraíbles o servicios en la nube). Cargar Flow Launcher al iniciar el sistema - Error enabling launch on startup - Error disabling launch on startup Ocultar Flow Launcher cuando se pierda el foco No mostrar notificaciones de nuevas versiones Recordar última posición de Flow Launcher diff --git a/Flow.Launcher/Languages/fr.xaml b/Flow.Launcher/Languages/fr.xaml index a5708522f..1fc24ee11 100644 --- a/Flow.Launcher/Languages/fr.xaml +++ b/Flow.Launcher/Languages/fr.xaml @@ -28,8 +28,6 @@ Mode Portable Stocker tous les paramètres et données utilisateur dans un seul dossier (Pratique en cas d'utilisation de disques amovibles ou de services cloud). Lancer Flow Launcher au démarrage du système - Error enabling launch on startup - Error disabling launch on startup Cacher Flow Launcher lors de la perte de focus Ne pas afficher les notifications lors d'une nouvelle version Se souvenir du dernier emplacement de la fenêtre diff --git a/Flow.Launcher/Languages/it.xaml b/Flow.Launcher/Languages/it.xaml index 11f0c7f5c..42ad82b7d 100644 --- a/Flow.Launcher/Languages/it.xaml +++ b/Flow.Launcher/Languages/it.xaml @@ -28,8 +28,6 @@ Portable Mode Store all settings and user data in one folder (Useful when used with removable drives or cloud services). Avvia Wow all'avvio di Windows - Error enabling launch on startup - Error disabling launch on startup Nascondi Flow Launcher quando perde il focus Non mostrare le notifiche per una nuova versione Ricorda l'ultima posizione di avvio del launcher diff --git a/Flow.Launcher/Languages/ja.xaml b/Flow.Launcher/Languages/ja.xaml index 5b542a0a3..b4e687035 100644 --- a/Flow.Launcher/Languages/ja.xaml +++ b/Flow.Launcher/Languages/ja.xaml @@ -28,8 +28,6 @@ Portable Mode Store all settings and user data in one folder (Useful when used with removable drives or cloud services). スタートアップ時にFlow Launcherを起動する - Error enabling launch on startup - Error disabling launch on startup フォーカスを失った時にFlow Launcherを隠す 最新版が入手可能であっても、アップグレードメッセージを表示しない 前回のランチャーの位置を記憶 diff --git a/Flow.Launcher/Languages/ko.xaml b/Flow.Launcher/Languages/ko.xaml index aae4322a3..094985b3a 100644 --- a/Flow.Launcher/Languages/ko.xaml +++ b/Flow.Launcher/Languages/ko.xaml @@ -28,8 +28,6 @@ 포터블 모드 모든 설정이 폴더안에 들어갑니다. USB 드라이브나 클라우드로 사용 가능합니다. 시스템 시작 시 Flow Launcher 실행 - Error enabling launch on startup - Error disabling launch on startup 포커스 잃으면 Flow Launcher 숨김 새 버전 알림 끄기 마지막 실행 위치 기억 diff --git a/Flow.Launcher/Languages/nb-NO.xaml b/Flow.Launcher/Languages/nb-NO.xaml index 525591998..859ec20a0 100644 --- a/Flow.Launcher/Languages/nb-NO.xaml +++ b/Flow.Launcher/Languages/nb-NO.xaml @@ -18,8 +18,6 @@ Flow Launcher-innstillinger Generelt Start Flow Launcher ved systemstart - Error enabling launch on startup - Error disabling launch on startup Skjul Flow Launcher ved mistet fokus Ikke vis varsel om ny versjon Husk siste plassering diff --git a/Flow.Launcher/Languages/nb.xaml b/Flow.Launcher/Languages/nb.xaml index 48180910f..d85ab98da 100644 --- a/Flow.Launcher/Languages/nb.xaml +++ b/Flow.Launcher/Languages/nb.xaml @@ -28,8 +28,6 @@ Portable Mode Store all settings and user data in one folder (Useful when used with removable drives or cloud services). Start Flow Launcher on system startup - Error enabling launch on startup - Error disabling launch on startup Hide Flow Launcher when focus is lost Do not show new version notifications Remember last launch location diff --git a/Flow.Launcher/Languages/nl.xaml b/Flow.Launcher/Languages/nl.xaml index d56e26149..715e934d5 100644 --- a/Flow.Launcher/Languages/nl.xaml +++ b/Flow.Launcher/Languages/nl.xaml @@ -28,8 +28,6 @@ Draagbare Modus Alle instellingen en gebruikersgegevens opslaan in één map (Nuttig bij het gebruik van verwijderbare schijven of cloud services). Start Flow Launcher als systeem opstart - Error enabling launch on startup - Error disabling launch on startup Verberg Flow Launcher als focus verloren is Laat geen nieuwe versie notificaties zien Herinner laatste opstart locatie diff --git a/Flow.Launcher/Languages/pl.xaml b/Flow.Launcher/Languages/pl.xaml index 1993e101b..8868af59d 100644 --- a/Flow.Launcher/Languages/pl.xaml +++ b/Flow.Launcher/Languages/pl.xaml @@ -28,8 +28,6 @@ Portable Mode Store all settings and user data in one folder (Useful when used with removable drives or cloud services). Uruchamiaj Flow Launcher przy starcie systemu - Error enabling launch on startup - Error disabling launch on startup Ukryj okno Flow Launcher kiedy przestanie ono być aktywne Nie pokazuj powiadomienia o nowej wersji Zapamiętaj ostatnią pozycję okna diff --git a/Flow.Launcher/Languages/pt-br.xaml b/Flow.Launcher/Languages/pt-br.xaml index 34759ddb4..ff69d2965 100644 --- a/Flow.Launcher/Languages/pt-br.xaml +++ b/Flow.Launcher/Languages/pt-br.xaml @@ -28,8 +28,6 @@ Portable Mode Store all settings and user data in one folder (Useful when used with removable drives or cloud services). Iniciar Flow Launcher com inicialização do sistema - Error enabling launch on startup - Error disabling launch on startup Esconder Flow Launcher quando foco for perdido Não mostrar notificações de novas versões Lembrar última localização de lançamento diff --git a/Flow.Launcher/Languages/pt-pt.xaml b/Flow.Launcher/Languages/pt-pt.xaml index 8542b4050..1e2847a55 100644 --- a/Flow.Launcher/Languages/pt-pt.xaml +++ b/Flow.Launcher/Languages/pt-pt.xaml @@ -28,8 +28,6 @@ Modo portátil Guardar todas as definições e dados do utilizador numa pasta (indicado se utilizar discos amovíveis ou serviços cloud) Iniciar Flow Launcher ao arrancar o sistema - Error enabling launch on startup - Error disabling launch on startup Ocultar Flow Launcher ao perder o foco Não notificar acerca de novas versões Memorizar localização anterior diff --git a/Flow.Launcher/Languages/ru.xaml b/Flow.Launcher/Languages/ru.xaml index 4adc04edb..55fa3b02d 100644 --- a/Flow.Launcher/Languages/ru.xaml +++ b/Flow.Launcher/Languages/ru.xaml @@ -28,8 +28,6 @@ Portable Mode Store all settings and user data in one folder (Useful when used with removable drives or cloud services). Запускать Flow Launcher при запуске системы - Error enabling launch on startup - Error disabling launch on startup Скрывать Flow Launcher, если потерян фокуc Не отображать сообщение об обновлении, когда доступна новая версия Запомнить последнее место запуска diff --git a/Flow.Launcher/Languages/sk.xaml b/Flow.Launcher/Languages/sk.xaml index aadd51bd9..1ce0f3f45 100644 --- a/Flow.Launcher/Languages/sk.xaml +++ b/Flow.Launcher/Languages/sk.xaml @@ -28,8 +28,6 @@ Prenosný režim Uloží všetky nastavenia a používateľské údaje do jedného priečinka (Užitočné pri vymeniteľných diskoch a cloudových službách). Spustiť Flow Launcher pri spustení systému - Error enabling launch on startup - Error disabling launch on startup Schovať Flow Launcher po strate fokusu Nezobrazovať upozornenia na novú verziu Zapamätať si posledné umiestnenie diff --git a/Flow.Launcher/Languages/sr.xaml b/Flow.Launcher/Languages/sr.xaml index 73234d825..0515e3e67 100644 --- a/Flow.Launcher/Languages/sr.xaml +++ b/Flow.Launcher/Languages/sr.xaml @@ -28,8 +28,6 @@ Portable Mode Store all settings and user data in one folder (Useful when used with removable drives or cloud services). Pokreni Flow Launcher pri podizanju sistema - Error enabling launch on startup - Error disabling launch on startup Sakri Flow Launcher kada se izgubi fokus Ne prikazuj obaveštenje o novoj verziji Zapamti lokaciju poslednjeg pokretanja diff --git a/Flow.Launcher/Languages/tr.xaml b/Flow.Launcher/Languages/tr.xaml index 613d1ccf8..3318cdc14 100644 --- a/Flow.Launcher/Languages/tr.xaml +++ b/Flow.Launcher/Languages/tr.xaml @@ -28,8 +28,6 @@ Taşınabilir Mod Tüm ayarları ve kullanıcı verilerini tek bir klasörde saklayın (Çıkarılabilir sürücüler veya bulut hizmetleri ile kullanıldığında kullanışlıdır). Flow Launcher'u başlangıçta başlat - Error enabling launch on startup - Error disabling launch on startup Odak pencereden ayrıldığında Flow Launcher'u gizle Güncelleme bildirimlerini gösterme Pencere konumunu hatırla diff --git a/Flow.Launcher/Languages/uk-UA.xaml b/Flow.Launcher/Languages/uk-UA.xaml index 6fd01d2ba..b7e9525ab 100644 --- a/Flow.Launcher/Languages/uk-UA.xaml +++ b/Flow.Launcher/Languages/uk-UA.xaml @@ -28,8 +28,6 @@ Портативний режим Зберігати всі налаштування і дані користувача в одній теці (буде корисно при видаленні дисків або хмарних сервісах). Запускати Flow Launcher при запуску системи - Error enabling launch on startup - Error disabling launch on startup Сховати Flow Launcher, якщо втрачено фокус Не повідомляти про доступні нові версії Запам'ятати останнє місце запуску diff --git a/Flow.Launcher/Languages/zh-cn.xaml b/Flow.Launcher/Languages/zh-cn.xaml index 61adffdf8..5dee1cc75 100644 --- a/Flow.Launcher/Languages/zh-cn.xaml +++ b/Flow.Launcher/Languages/zh-cn.xaml @@ -28,8 +28,6 @@ 便携模式 将所有设置和用户数据存储在一个文件夹中 (可用于可移除驱动器或云服务)。 开机自启 - Error enabling launch on startup - Error disabling launch on startup 失去焦点时自动隐藏 Flow Launcher 不显示新版本提示 记住上次启动位置 diff --git a/Flow.Launcher/Languages/zh-tw.xaml b/Flow.Launcher/Languages/zh-tw.xaml index e7d65fa52..27a51e23e 100644 --- a/Flow.Launcher/Languages/zh-tw.xaml +++ b/Flow.Launcher/Languages/zh-tw.xaml @@ -28,8 +28,6 @@ Portable Mode Store all settings and user data in one folder (Useful when used with removable drives or cloud services). 開機時啟動 - Error enabling launch on startup - Error disabling launch on startup 失去焦點時自動隱藏 Flow Launcher 不顯示新版本提示 記住上次啟動位置 diff --git a/Flow.Launcher/SettingWindow.xaml b/Flow.Launcher/SettingWindow.xaml index 652977686..4eb283177 100644 --- a/Flow.Launcher/SettingWindow.xaml +++ b/Flow.Launcher/SettingWindow.xaml @@ -598,10 +598,8 @@
+ IsChecked="{Binding StartFlowLauncherOnSystemStartup}" + Style="{DynamicResource SideControlCheckBox}" /> diff --git a/Flow.Launcher/SettingWindow.xaml.cs b/Flow.Launcher/SettingWindow.xaml.cs index d5259d497..c7b4baf2e 100644 --- a/Flow.Launcher/SettingWindow.xaml.cs +++ b/Flow.Launcher/SettingWindow.xaml.cs @@ -57,16 +57,6 @@ namespace Flow.Launcher hwndTarget.RenderMode = RenderMode.SoftwareOnly; } - private void OnAutoStartupChecked(object sender, RoutedEventArgs e) - { - viewModel.SetStartup(); - } - - private void OnAutoStartupUncheck(object sender, RoutedEventArgs e) - { - viewModel.RemoveStartup(); - } - private void OnSelectPythonDirectoryClick(object sender, RoutedEventArgs e) { var dlg = new FolderBrowserDialog diff --git a/Flow.Launcher/ViewModel/SettingWindowViewModel.cs b/Flow.Launcher/ViewModel/SettingWindowViewModel.cs index 587349045..892bc6ee2 100644 --- a/Flow.Launcher/ViewModel/SettingWindowViewModel.cs +++ b/Flow.Launcher/ViewModel/SettingWindowViewModel.cs @@ -64,6 +64,27 @@ namespace Flow.Launcher.ViewModel } } + public bool StartFlowLauncherOnSystemStartup + { + get => Settings.StartFlowLauncherOnSystemStartup; + set + { + Settings.StartFlowLauncherOnSystemStartup = value; + + try + { + if (value) + AutoStartup.Enable(); + else + AutoStartup.Disable(); + } + catch (Exception e) + { + Notification.Show(InternationalizationManager.Instance.GetTranslation("setAutoStartFailed"), e.Message); + } + } + } + // This is only required to set at startup. When portable mode enabled/disabled a restart is always required private bool _portableMode = DataLocation.PortableDataLocationInUse(); public bool PortableMode @@ -216,36 +237,6 @@ namespace Flow.Launcher.ViewModel #endregion - #region startup - - public void SetStartup() - { - try - { - AutoStartup.Enable(); - } - catch (Exception e) - { - Notification.Show(InternationalizationManager.Instance.GetTranslation("registerAutoStartFailed"), e.Message); - } - } - - public void RemoveStartup() - { - if (AutoStartup.IsEnabled) - { - try - { - AutoStartup.Disable(); - } - catch (Exception e) - { - Notification.Show(InternationalizationManager.Instance.GetTranslation("deregisterAutoStartFailed"), e.Message); - } - } - } - #endregion - #region plugin public static string Plugin => @"https://github.com/Flow-Launcher/Flow.Launcher.PluginsManifest"; From ae177a365f3018907d155316d3df29f945059d68 Mon Sep 17 00:00:00 2001 From: Oren Nachman Date: Sun, 7 Aug 2022 20:00:54 -0700 Subject: [PATCH 10/10] Remove unneeded changes from merge --- Flow.Launcher/ViewModel/SettingWindowViewModel.cs | 4 ---- 1 file changed, 4 deletions(-) diff --git a/Flow.Launcher/ViewModel/SettingWindowViewModel.cs b/Flow.Launcher/ViewModel/SettingWindowViewModel.cs index 719d298f8..a63e54f3b 100644 --- a/Flow.Launcher/ViewModel/SettingWindowViewModel.cs +++ b/Flow.Launcher/ViewModel/SettingWindowViewModel.cs @@ -62,10 +62,6 @@ namespace Flow.Launcher.ViewModel if (value) { UpdateApp(); - SetStartup(); - } else - { - RemoveStartup(); } } }