From ebbd1daa39a439abe0d529d1f612946cac9870ac Mon Sep 17 00:00:00 2001 From: Oren Nachman Date: Sun, 7 Aug 2022 18:23:35 -0700 Subject: [PATCH] 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";