Skip to content

Commit c34fd63

Browse files
authored
Merge pull request #3311 from Jack251970/remove_panel_data
Use dependency injection instead of navigation parameter
2 parents 4bb8bff + 31d47a2 commit c34fd63

8 files changed

+37
-41
lines changed

Flow.Launcher/SettingPages/Views/SettingsPaneAbout.xaml.cs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1-
using System;
2-
using System.Windows.Navigation;
1+
using System.Windows.Navigation;
2+
using Flow.Launcher.Core;
33
using Flow.Launcher.SettingPages.ViewModels;
4+
using Flow.Launcher.Infrastructure.UserSettings;
5+
using CommunityToolkit.Mvvm.DependencyInjection;
46

57
namespace Flow.Launcher.SettingPages.Views;
68

@@ -12,8 +14,8 @@ protected override void OnNavigatedTo(NavigationEventArgs e)
1214
{
1315
if (!IsInitialized)
1416
{
15-
if (e.ExtraData is not SettingWindow.PaneData { Settings: { } settings, Updater: { } updater })
16-
throw new ArgumentException("Settings are required for SettingsPaneAbout.");
17+
var settings = Ioc.Default.GetRequiredService<Settings>();
18+
var updater = Ioc.Default.GetRequiredService<Updater>();
1719
_viewModel = new SettingsPaneAboutViewModel(settings, updater);
1820
DataContext = _viewModel;
1921
InitializeComponent();

Flow.Launcher/SettingPages/Views/SettingsPaneGeneral.xaml.cs

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1-
using System;
2-
using System.Windows.Navigation;
1+
using System.Windows.Navigation;
2+
using CommunityToolkit.Mvvm.DependencyInjection;
3+
using Flow.Launcher.Core;
4+
using Flow.Launcher.Core.Configuration;
35
using Flow.Launcher.Infrastructure.UserSettings;
46
using Flow.Launcher.SettingPages.ViewModels;
57

@@ -13,8 +15,9 @@ protected override void OnNavigatedTo(NavigationEventArgs e)
1315
{
1416
if (!IsInitialized)
1517
{
16-
if (e.ExtraData is not SettingWindow.PaneData { Settings: { } settings, Updater: {} updater, Portable: {} portable })
17-
throw new ArgumentException("Settings, Updater and Portable are required for SettingsPaneGeneral.");
18+
var settings = Ioc.Default.GetRequiredService<Settings>();
19+
var updater = Ioc.Default.GetRequiredService<Updater>();
20+
var portable = Ioc.Default.GetRequiredService<Portable>();
1821
_viewModel = new SettingsPaneGeneralViewModel(settings, updater, portable);
1922
DataContext = _viewModel;
2023
InitializeComponent();

Flow.Launcher/SettingPages/Views/SettingsPaneHotkey.xaml.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
using System;
2-
using System.Windows.Navigation;
1+
using System.Windows.Navigation;
2+
using CommunityToolkit.Mvvm.DependencyInjection;
33
using Flow.Launcher.SettingPages.ViewModels;
4+
using Flow.Launcher.Infrastructure.UserSettings;
45

56
namespace Flow.Launcher.SettingPages.Views;
67

@@ -12,8 +13,7 @@ protected override void OnNavigatedTo(NavigationEventArgs e)
1213
{
1314
if (!IsInitialized)
1415
{
15-
if (e.ExtraData is not SettingWindow.PaneData { Settings: { } settings })
16-
throw new ArgumentException("Settings are required for SettingsPaneHotkey.");
16+
var settings = Ioc.Default.GetRequiredService<Settings>();
1717
_viewModel = new SettingsPaneHotkeyViewModel(settings);
1818
DataContext = _viewModel;
1919
InitializeComponent();

Flow.Launcher/SettingPages/Views/SettingsPanePluginStore.xaml.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
1-
using System;
2-
using System.ComponentModel;
1+
using System.ComponentModel;
32
using System.Windows.Data;
43
using System.Windows.Input;
54
using System.Windows.Navigation;
5+
using CommunityToolkit.Mvvm.DependencyInjection;
66
using Flow.Launcher.SettingPages.ViewModels;
77
using Flow.Launcher.ViewModel;
8+
using Flow.Launcher.Infrastructure.UserSettings;
89

910
namespace Flow.Launcher.SettingPages.Views;
1011

@@ -16,8 +17,7 @@ protected override void OnNavigatedTo(NavigationEventArgs e)
1617
{
1718
if (!IsInitialized)
1819
{
19-
if (e.ExtraData is not SettingWindow.PaneData { Settings: { } settings })
20-
throw new ArgumentException($"Settings are required for {nameof(SettingsPanePluginStore)}.");
20+
var settings = Ioc.Default.GetRequiredService<Settings>();
2121
_viewModel = new SettingsPanePluginStoreViewModel();
2222
DataContext = _viewModel;
2323
InitializeComponent();

Flow.Launcher/SettingPages/Views/SettingsPanePlugins.xaml.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
using System;
2-
using System.Windows.Input;
1+
using System.Windows.Input;
32
using System.Windows.Navigation;
3+
using CommunityToolkit.Mvvm.DependencyInjection;
44
using Flow.Launcher.SettingPages.ViewModels;
5+
using Flow.Launcher.Infrastructure.UserSettings;
56

67
namespace Flow.Launcher.SettingPages.Views;
78

@@ -13,8 +14,7 @@ protected override void OnNavigatedTo(NavigationEventArgs e)
1314
{
1415
if (!IsInitialized)
1516
{
16-
if (e.ExtraData is not SettingWindow.PaneData { Settings: { } settings })
17-
throw new ArgumentException("Settings are required for SettingsPaneHotkey.");
17+
var settings = Ioc.Default.GetRequiredService<Settings>();
1818
_viewModel = new SettingsPanePluginsViewModel(settings);
1919
DataContext = _viewModel;
2020
InitializeComponent();

Flow.Launcher/SettingPages/Views/SettingsPaneProxy.xaml.cs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1-
using System;
2-
using System.Windows.Navigation;
1+
using System.Windows.Navigation;
2+
using CommunityToolkit.Mvvm.DependencyInjection;
3+
using Flow.Launcher.Core;
34
using Flow.Launcher.SettingPages.ViewModels;
5+
using Flow.Launcher.Infrastructure.UserSettings;
46

57
namespace Flow.Launcher.SettingPages.Views;
68

@@ -12,8 +14,8 @@ protected override void OnNavigatedTo(NavigationEventArgs e)
1214
{
1315
if (!IsInitialized)
1416
{
15-
if (e.ExtraData is not SettingWindow.PaneData { Settings: { } settings, Updater: { } updater })
16-
throw new ArgumentException($"Settings are required for {nameof(SettingsPaneProxy)}.");
17+
var settings = Ioc.Default.GetRequiredService<Settings>();
18+
var updater = Ioc.Default.GetRequiredService<Updater>();
1719
_viewModel = new SettingsPaneProxyViewModel(settings, updater);
1820
DataContext = _viewModel;
1921
InitializeComponent();

Flow.Launcher/SettingPages/Views/SettingsPaneTheme.xaml.cs

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
1-
using System;
2-
using System.Windows;
3-
using System.Windows.Controls;
4-
using System.Windows.Media;
1+
using System.Windows.Controls;
52
using System.Windows.Navigation;
3+
using CommunityToolkit.Mvvm.DependencyInjection;
64
using Flow.Launcher.SettingPages.ViewModels;
75
using Page = ModernWpf.Controls.Page;
6+
using Flow.Launcher.Infrastructure.UserSettings;
87

98
namespace Flow.Launcher.SettingPages.Views;
109

@@ -16,8 +15,7 @@ protected override void OnNavigatedTo(NavigationEventArgs e)
1615
{
1716
if (!IsInitialized)
1817
{
19-
if (e.ExtraData is not SettingWindow.PaneData { Settings: { } settings })
20-
throw new ArgumentException($"Settings are required for {nameof(SettingsPaneTheme)}.");
18+
var settings = Ioc.Default.GetRequiredService<Settings>();
2119
_viewModel = new SettingsPaneThemeViewModel(settings);
2220
DataContext = _viewModel;
2321
InitializeComponent();

Flow.Launcher/SettingWindow.xaml.cs

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@
44
using System.Windows.Input;
55
using System.Windows.Interop;
66
using CommunityToolkit.Mvvm.DependencyInjection;
7-
using Flow.Launcher.Core;
8-
using Flow.Launcher.Core.Configuration;
97
using Flow.Launcher.Helper;
108
using Flow.Launcher.Infrastructure.UserSettings;
119
using Flow.Launcher.Plugin;
@@ -18,8 +16,6 @@ namespace Flow.Launcher;
1816

1917
public partial class SettingWindow
2018
{
21-
private readonly Updater _updater;
22-
private readonly IPortable _portable;
2319
private readonly IPublicAPI _api;
2420
private readonly Settings _settings;
2521
private readonly SettingWindowViewModel _viewModel;
@@ -30,8 +26,6 @@ public SettingWindow()
3026
_settings = Ioc.Default.GetRequiredService<Settings>();
3127
DataContext = viewModel;
3228
_viewModel = viewModel;
33-
_updater = Ioc.Default.GetRequiredService<Updater>();
34-
_portable = Ioc.Default.GetRequiredService<Portable>();
3529
_api = Ioc.Default.GetRequiredService<IPublicAPI>();
3630
InitializePosition();
3731
InitializeComponent();
@@ -166,10 +160,9 @@ private double WindowTop()
166160

167161
private void NavigationView_SelectionChanged(NavigationView sender, NavigationViewSelectionChangedEventArgs args)
168162
{
169-
var paneData = new PaneData(_settings, _updater, _portable);
170163
if (args.IsSettingsSelected)
171164
{
172-
ContentFrame.Navigate(typeof(SettingsPaneGeneral), paneData);
165+
ContentFrame.Navigate(typeof(SettingsPaneGeneral));
173166
}
174167
else
175168
{
@@ -191,7 +184,7 @@ private void NavigationView_SelectionChanged(NavigationView sender, NavigationVi
191184
nameof(About) => typeof(SettingsPaneAbout),
192185
_ => typeof(SettingsPaneGeneral)
193186
};
194-
ContentFrame.Navigate(pageType, paneData);
187+
ContentFrame.Navigate(pageType);
195188
}
196189
}
197190

@@ -211,6 +204,4 @@ private void ContentFrame_Loaded(object sender, RoutedEventArgs e)
211204
{
212205
NavView.SelectedItem ??= NavView.MenuItems[0]; /* Set First Page */
213206
}
214-
215-
public record PaneData(Settings Settings, Updater Updater, IPortable Portable);
216207
}

0 commit comments

Comments
 (0)