Skip to content

Commit d01c67f

Browse files
committed
Improve code quality
1 parent d867875 commit d01c67f

12 files changed

+120
-82
lines changed

Flow.Launcher/CustomQueryHotkeySetting.xaml.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,14 @@ namespace Flow.Launcher
1010
{
1111
public partial class CustomQueryHotkeySetting : Window
1212
{
13-
public Settings Settings { get; }
13+
private readonly Settings _settings;
1414

1515
private bool update;
1616
private CustomPluginHotkey updateCustomHotkey;
1717

1818
public CustomQueryHotkeySetting(Settings settings)
1919
{
20-
Settings = settings;
20+
_settings = settings;
2121
InitializeComponent();
2222
}
2323

@@ -30,13 +30,13 @@ private void btnAdd_OnClick(object sender, RoutedEventArgs e)
3030
{
3131
if (!update)
3232
{
33-
Settings.CustomPluginHotkeys ??= new ObservableCollection<CustomPluginHotkey>();
33+
_settings.CustomPluginHotkeys ??= new ObservableCollection<CustomPluginHotkey>();
3434

3535
var pluginHotkey = new CustomPluginHotkey
3636
{
3737
Hotkey = HotkeyControl.CurrentHotkey.ToString(), ActionKeyword = tbAction.Text
3838
};
39-
Settings.CustomPluginHotkeys.Add(pluginHotkey);
39+
_settings.CustomPluginHotkeys.Add(pluginHotkey);
4040

4141
HotKeyMapper.SetCustomQueryHotkey(pluginHotkey);
4242
}
@@ -55,7 +55,7 @@ private void btnAdd_OnClick(object sender, RoutedEventArgs e)
5555

5656
public void UpdateItem(CustomPluginHotkey item)
5757
{
58-
updateCustomHotkey = Settings.CustomPluginHotkeys.FirstOrDefault(o =>
58+
updateCustomHotkey = _settings.CustomPluginHotkeys.FirstOrDefault(o =>
5959
o.ActionKeyword == item.ActionKeyword && o.Hotkey == item.Hotkey);
6060
if (updateCustomHotkey == null)
6161
{

Flow.Launcher/CustomShortcutSetting.xaml.cs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,11 @@
11
using System.Windows;
22
using System.Windows.Input;
3-
using CommunityToolkit.Mvvm.DependencyInjection;
4-
using Flow.Launcher.Infrastructure.UserSettings;
53
using Flow.Launcher.SettingPages.ViewModels;
64

75
namespace Flow.Launcher
86
{
97
public partial class CustomShortcutSetting : Window
108
{
11-
public Settings Settings { get; } = Ioc.Default.GetRequiredService<Settings>();
12-
139
private readonly SettingsPaneHotkeyViewModel _hotkeyVm;
1410
public string Key { get; set; } = string.Empty;
1511
public string Value { get; set; } = string.Empty;

Flow.Launcher/Resources/Controls/HotkeyDisplay.xaml.cs

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -42,14 +42,11 @@ public DisplayType Type
4242

4343
private static void keyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
4444
{
45-
var control = d as UserControl;
46-
if (null == control) return; // This should not be possible
45+
if (d is not UserControl) return; // This should not be possible
4746

48-
var newValue = e.NewValue as string;
49-
if (null == newValue) return;
47+
if (e.NewValue is not string newValue) return;
5048

51-
if (d is not HotkeyDisplay hotkeyDisplay)
52-
return;
49+
if (d is not HotkeyDisplay hotkeyDisplay) return;
5350

5451
hotkeyDisplay.Values.Clear();
5552
foreach (var key in newValue.Split('+'))

Flow.Launcher/Resources/Pages/WelcomePage1.xaml.cs

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,35 @@
11
using System.Collections.Generic;
22
using System.Windows.Navigation;
3-
using Flow.Launcher.Infrastructure.UserSettings;
4-
using Flow.Launcher.Core.Resource;
53
using CommunityToolkit.Mvvm.DependencyInjection;
4+
using Flow.Launcher.Core.Resource;
5+
using Flow.Launcher.Infrastructure.UserSettings;
66
using Flow.Launcher.ViewModel;
77

88
namespace Flow.Launcher.Resources.Pages
99
{
1010
public partial class WelcomePage1
1111
{
12+
public Settings Settings { get; private set; }
13+
private WelcomeViewModel _viewModel;
14+
1215
protected override void OnNavigatedTo(NavigationEventArgs e)
1316
{
14-
Settings = Ioc.Default.GetRequiredService<Settings>();
17+
if (!IsInitialized)
18+
{
19+
Settings = Ioc.Default.GetRequiredService<Settings>();
20+
_viewModel = Ioc.Default.GetRequiredService<WelcomeViewModel>();
21+
InitializeComponent();
22+
}
1523
// Sometimes the navigation is not triggered by button click,
1624
// so we need to reset the page number
17-
Ioc.Default.GetRequiredService<WelcomeViewModel>().PageNum = 1;
18-
InitializeComponent();
25+
_viewModel.PageNum = 1;
26+
base.OnNavigatedTo(e);
1927
}
2028

2129
private readonly Internationalization _translater = Ioc.Default.GetRequiredService<Internationalization>();
2230

2331
public List<Language> Languages => _translater.LoadAvailableLanguages();
2432

25-
public Settings Settings { get; set; }
26-
2733
public string CustomLanguage
2834
{
2935
get

Flow.Launcher/Resources/Pages/WelcomePage2.xaml.cs

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,31 @@
1-
using Flow.Launcher.Helper;
2-
using Flow.Launcher.Infrastructure.Hotkey;
3-
using Flow.Launcher.Infrastructure.UserSettings;
1+
using System.Windows.Media;
42
using System.Windows.Navigation;
53
using CommunityToolkit.Mvvm.Input;
6-
using Flow.Launcher.ViewModel;
7-
using System.Windows.Media;
84
using CommunityToolkit.Mvvm.DependencyInjection;
5+
using Flow.Launcher.Helper;
6+
using Flow.Launcher.Infrastructure.Hotkey;
7+
using Flow.Launcher.Infrastructure.UserSettings;
8+
using Flow.Launcher.ViewModel;
99

1010
namespace Flow.Launcher.Resources.Pages
1111
{
1212
public partial class WelcomePage2
1313
{
14-
public Settings Settings { get; set; }
14+
public Settings Settings { get; private set; }
15+
private WelcomeViewModel _viewModel;
1516

1617
protected override void OnNavigatedTo(NavigationEventArgs e)
1718
{
18-
Settings = Ioc.Default.GetRequiredService<Settings>();
19+
if (!IsInitialized)
20+
{
21+
Settings = Ioc.Default.GetRequiredService<Settings>();
22+
_viewModel = Ioc.Default.GetRequiredService<WelcomeViewModel>();
23+
InitializeComponent();
24+
}
1925
// Sometimes the navigation is not triggered by button click,
2026
// so we need to reset the page number
21-
Ioc.Default.GetRequiredService<WelcomeViewModel>().PageNum = 2;
22-
InitializeComponent();
27+
_viewModel.PageNum = 2;
28+
base.OnNavigatedTo(e);
2329
}
2430

2531
[RelayCommand]

Flow.Launcher/Resources/Pages/WelcomePage3.xaml.cs

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,21 @@ namespace Flow.Launcher.Resources.Pages
77
{
88
public partial class WelcomePage3
99
{
10+
public Settings Settings { get; private set; }
11+
private WelcomeViewModel _viewModel;
12+
1013
protected override void OnNavigatedTo(NavigationEventArgs e)
1114
{
12-
Settings = Ioc.Default.GetRequiredService<Settings>();
15+
if (!IsInitialized)
16+
{
17+
Settings = Ioc.Default.GetRequiredService<Settings>();
18+
_viewModel = Ioc.Default.GetRequiredService<WelcomeViewModel>();
19+
InitializeComponent();
20+
}
1321
// Sometimes the navigation is not triggered by button click,
1422
// so we need to reset the page number
15-
Ioc.Default.GetRequiredService<WelcomeViewModel>().PageNum = 3;
16-
InitializeComponent();
23+
_viewModel.PageNum = 3;
24+
base.OnNavigatedTo(e);
1725
}
18-
19-
public Settings Settings { get; set; }
2026
}
2127
}
Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,27 @@
1-
using CommunityToolkit.Mvvm.DependencyInjection;
1+
using System.Windows.Navigation;
2+
using CommunityToolkit.Mvvm.DependencyInjection;
23
using Flow.Launcher.Infrastructure.UserSettings;
34
using Flow.Launcher.ViewModel;
4-
using System.Windows.Navigation;
55

66
namespace Flow.Launcher.Resources.Pages
77
{
88
public partial class WelcomePage4
99
{
10+
public Settings Settings { get; private set; }
11+
private WelcomeViewModel _viewModel;
12+
1013
protected override void OnNavigatedTo(NavigationEventArgs e)
1114
{
12-
Settings = Ioc.Default.GetRequiredService<Settings>();
15+
if (!IsInitialized)
16+
{
17+
Settings = Ioc.Default.GetRequiredService<Settings>();
18+
_viewModel = Ioc.Default.GetRequiredService<WelcomeViewModel>();
19+
InitializeComponent();
20+
}
1321
// Sometimes the navigation is not triggered by button click,
1422
// so we need to reset the page number
15-
Ioc.Default.GetRequiredService<WelcomeViewModel>().PageNum = 4;
16-
InitializeComponent();
23+
_viewModel.PageNum = 4;
24+
base.OnNavigatedTo(e);
1725
}
18-
19-
public Settings Settings { get; set; }
2026
}
2127
}
Lines changed: 42 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,54 +1,74 @@
1-
using System.Windows;
1+
using System;
2+
using System.Windows;
23
using System.Windows.Navigation;
3-
using Flow.Launcher.Infrastructure.UserSettings;
4-
using Microsoft.Win32;
5-
using Flow.Launcher.Infrastructure;
64
using CommunityToolkit.Mvvm.DependencyInjection;
5+
using Flow.Launcher.Helper;
6+
using Flow.Launcher.Infrastructure.UserSettings;
77
using Flow.Launcher.ViewModel;
88

99
namespace Flow.Launcher.Resources.Pages
1010
{
1111
public partial class WelcomePage5
1212
{
13-
private const string StartupPath = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run";
14-
public Settings Settings { get; set; }
15-
public bool HideOnStartup { get; set; }
13+
public Settings Settings { get; private set; }
14+
private WelcomeViewModel _viewModel;
1615

1716
protected override void OnNavigatedTo(NavigationEventArgs e)
1817
{
19-
Settings = Ioc.Default.GetRequiredService<Settings>();
18+
if (!IsInitialized)
19+
{
20+
Settings = Ioc.Default.GetRequiredService<Settings>();
21+
_viewModel = Ioc.Default.GetRequiredService<WelcomeViewModel>();
22+
InitializeComponent();
23+
}
2024
// Sometimes the navigation is not triggered by button click,
2125
// so we need to reset the page number
22-
Ioc.Default.GetRequiredService<WelcomeViewModel>().PageNum = 5;
23-
InitializeComponent();
26+
_viewModel.PageNum = 5;
27+
base.OnNavigatedTo(e);
2428
}
2529

2630
private void OnAutoStartupChecked(object sender, RoutedEventArgs e)
2731
{
28-
SetStartup();
32+
ChangeAutoStartup(true);
2933
}
34+
3035
private void OnAutoStartupUncheck(object sender, RoutedEventArgs e)
3136
{
32-
RemoveStartup();
37+
ChangeAutoStartup(false);
3338
}
3439

35-
private void RemoveStartup()
40+
private void ChangeAutoStartup(bool value)
3641
{
37-
using var key = Registry.CurrentUser.OpenSubKey(StartupPath, true);
38-
key?.DeleteValue(Constant.FlowLauncher, false);
39-
Settings.StartFlowLauncherOnSystemStartup = false;
40-
}
41-
private void SetStartup()
42-
{
43-
using var key = Registry.CurrentUser.OpenSubKey(StartupPath, true);
44-
key?.SetValue(Constant.FlowLauncher, Constant.ExecutablePath);
45-
Settings.StartFlowLauncherOnSystemStartup = true;
42+
Settings.StartFlowLauncherOnSystemStartup = value;
43+
try
44+
{
45+
if (value)
46+
{
47+
if (Settings.UseLogonTaskForStartup)
48+
{
49+
AutoStartup.ChangeToViaLogonTask();
50+
}
51+
else
52+
{
53+
AutoStartup.ChangeToViaRegistry();
54+
}
55+
}
56+
else
57+
{
58+
AutoStartup.DisableViaLogonTaskAndRegistry();
59+
}
60+
}
61+
catch (Exception e)
62+
{
63+
App.API.ShowMsg(App.API.GetTranslation("setAutoStartFailed"), e.Message);
64+
}
4665
}
4766

4867
private void OnHideOnStartupChecked(object sender, RoutedEventArgs e)
4968
{
5069
Settings.HideOnStartup = true;
5170
}
71+
5272
private void OnHideOnStartupUnchecked(object sender, RoutedEventArgs e)
5373
{
5474
Settings.HideOnStartup = false;
@@ -59,6 +79,5 @@ private void BtnCancel_OnClick(object sender, RoutedEventArgs e)
5979
var window = Window.GetWindow(this);
6080
window.Close();
6181
}
62-
6382
}
6483
}

Flow.Launcher/SelectBrowserWindow.xaml.cs

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,14 @@ namespace Flow.Launcher
1010
[INotifyPropertyChanged]
1111
public partial class SelectBrowserWindow : Window
1212
{
13-
public Settings Settings { get; }
13+
private readonly Settings _settings;
1414

1515
private int selectedCustomBrowserIndex;
1616

1717
public int SelectedCustomBrowserIndex
1818
{
19-
get => selectedCustomBrowserIndex; set
19+
get => selectedCustomBrowserIndex;
20+
set
2021
{
2122
selectedCustomBrowserIndex = value;
2223
OnPropertyChanged(nameof(CustomBrowser));
@@ -27,9 +28,9 @@ public int SelectedCustomBrowserIndex
2728
public CustomBrowserViewModel CustomBrowser => CustomBrowsers[SelectedCustomBrowserIndex];
2829
public SelectBrowserWindow(Settings settings)
2930
{
30-
Settings = settings;
31-
CustomBrowsers = new ObservableCollection<CustomBrowserViewModel>(Settings.CustomBrowserList.Select(x => x.Copy()));
32-
SelectedCustomBrowserIndex = Settings.CustomBrowserIndex;
31+
_settings = settings;
32+
CustomBrowsers = new ObservableCollection<CustomBrowserViewModel>(_settings.CustomBrowserList.Select(x => x.Copy()));
33+
SelectedCustomBrowserIndex = _settings.CustomBrowserIndex;
3334
InitializeComponent();
3435
}
3536

@@ -40,8 +41,8 @@ private void btnCancel_Click(object sender, RoutedEventArgs e)
4041

4142
private void btnDone_Click(object sender, RoutedEventArgs e)
4243
{
43-
Settings.CustomBrowserList = CustomBrowsers.ToList();
44-
Settings.CustomBrowserIndex = SelectedCustomBrowserIndex;
44+
_settings.CustomBrowserList = CustomBrowsers.ToList();
45+
_settings.CustomBrowserIndex = SelectedCustomBrowserIndex;
4546
Close();
4647
}
4748

0 commit comments

Comments
 (0)