Skip to content

Commit 57dccce

Browse files
committed
Fix setting window navigation update issue & Check view model null instead of IsInitialized flag
1 parent c591011 commit 57dccce

14 files changed

+100
-15
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ public partial class WelcomePage1
1414

1515
protected override void OnNavigatedTo(NavigationEventArgs e)
1616
{
17-
if (!IsInitialized)
17+
if (_viewModel == null)
1818
{
1919
Settings = Ioc.Default.GetRequiredService<Settings>();
2020
_viewModel = Ioc.Default.GetRequiredService<WelcomeViewModel>();

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ public partial class WelcomePage2
1616

1717
protected override void OnNavigatedTo(NavigationEventArgs e)
1818
{
19-
if (!IsInitialized)
19+
if (_viewModel == null)
2020
{
2121
Settings = Ioc.Default.GetRequiredService<Settings>();
2222
_viewModel = Ioc.Default.GetRequiredService<WelcomeViewModel>();

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ public partial class WelcomePage3
1212

1313
protected override void OnNavigatedTo(NavigationEventArgs e)
1414
{
15-
if (!IsInitialized)
15+
if (_viewModel == null)
1616
{
1717
Settings = Ioc.Default.GetRequiredService<Settings>();
1818
_viewModel = Ioc.Default.GetRequiredService<WelcomeViewModel>();

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ public partial class WelcomePage4
1212

1313
protected override void OnNavigatedTo(NavigationEventArgs e)
1414
{
15-
if (!IsInitialized)
15+
if (_viewModel == null)
1616
{
1717
Settings = Ioc.Default.GetRequiredService<Settings>();
1818
_viewModel = Ioc.Default.GetRequiredService<WelcomeViewModel>();

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ public partial class WelcomePage5
1515

1616
protected override void OnNavigatedTo(NavigationEventArgs e)
1717
{
18-
if (!IsInitialized)
18+
if (_viewModel == null)
1919
{
2020
Settings = Ioc.Default.GetRequiredService<Settings>();
2121
_viewModel = Ioc.Default.GetRequiredService<WelcomeViewModel>();

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

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,27 @@
11
using System.Windows.Navigation;
22
using CommunityToolkit.Mvvm.DependencyInjection;
33
using Flow.Launcher.SettingPages.ViewModels;
4+
using Flow.Launcher.ViewModel;
45

56
namespace Flow.Launcher.SettingPages.Views;
67

78
public partial class SettingsPaneAbout
89
{
910
private SettingsPaneAboutViewModel _viewModel = null!;
11+
private SettingWindowViewModel _settingViewModel = null;
1012

1113
protected override void OnNavigatedTo(NavigationEventArgs e)
1214
{
13-
if (!IsInitialized)
15+
if (_viewModel == null)
1416
{
1517
_viewModel = Ioc.Default.GetRequiredService<SettingsPaneAboutViewModel>();
18+
_settingViewModel = Ioc.Default.GetRequiredService<SettingWindowViewModel>();
1619
DataContext = _viewModel;
1720
InitializeComponent();
1821
}
22+
// Sometimes the navigation is not triggered by button click,
23+
// so we need to reset the page type
24+
_settingViewModel.PageType = typeof(SettingsPaneAbout);
1925
base.OnNavigatedTo(e);
2026
}
2127

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,27 @@
11
using System.Windows.Navigation;
22
using CommunityToolkit.Mvvm.DependencyInjection;
33
using Flow.Launcher.SettingPages.ViewModels;
4+
using Flow.Launcher.ViewModel;
45

56
namespace Flow.Launcher.SettingPages.Views;
67

78
public partial class SettingsPaneGeneral
89
{
910
private SettingsPaneGeneralViewModel _viewModel = null!;
11+
private SettingWindowViewModel _settingViewModel = null;
1012

1113
protected override void OnNavigatedTo(NavigationEventArgs e)
1214
{
13-
if (!IsInitialized)
15+
if (_viewModel == null)
1416
{
1517
_viewModel = Ioc.Default.GetRequiredService<SettingsPaneGeneralViewModel>();
18+
_settingViewModel = Ioc.Default.GetRequiredService<SettingWindowViewModel>();
1619
DataContext = _viewModel;
1720
InitializeComponent();
1821
}
22+
// Sometimes the navigation is not triggered by button click,
23+
// so we need to reset the page type
24+
_settingViewModel.PageType = typeof(SettingsPaneGeneral);
1925
base.OnNavigatedTo(e);
2026
}
2127
}
Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,27 @@
11
using System.Windows.Navigation;
22
using CommunityToolkit.Mvvm.DependencyInjection;
33
using Flow.Launcher.SettingPages.ViewModels;
4+
using Flow.Launcher.ViewModel;
45

56
namespace Flow.Launcher.SettingPages.Views;
67

78
public partial class SettingsPaneHotkey
89
{
910
private SettingsPaneHotkeyViewModel _viewModel = null!;
11+
private SettingWindowViewModel _settingViewModel = null;
1012

1113
protected override void OnNavigatedTo(NavigationEventArgs e)
1214
{
13-
if (!IsInitialized)
15+
if (_viewModel == null)
1416
{
1517
_viewModel = Ioc.Default.GetRequiredService<SettingsPaneHotkeyViewModel>();
18+
_settingViewModel = Ioc.Default.GetRequiredService<SettingWindowViewModel>();
1619
DataContext = _viewModel;
1720
InitializeComponent();
1821
}
22+
// Sometimes the navigation is not triggered by button click,
23+
// so we need to reset the page type
24+
_settingViewModel.PageType = typeof(SettingsPaneHotkey);
1925
base.OnNavigatedTo(e);
2026
}
2127
}

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

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,16 +11,21 @@ namespace Flow.Launcher.SettingPages.Views;
1111
public partial class SettingsPanePluginStore
1212
{
1313
private SettingsPanePluginStoreViewModel _viewModel = null!;
14+
private SettingWindowViewModel _settingViewModel = null;
1415

1516
protected override void OnNavigatedTo(NavigationEventArgs e)
1617
{
17-
if (!IsInitialized)
18+
if (_viewModel == null)
1819
{
1920
_viewModel = Ioc.Default.GetRequiredService<SettingsPanePluginStoreViewModel>();
21+
_settingViewModel = Ioc.Default.GetRequiredService<SettingWindowViewModel>();
2022
DataContext = _viewModel;
2123
InitializeComponent();
2224
}
2325
_viewModel.PropertyChanged += ViewModel_PropertyChanged;
26+
// Sometimes the navigation is not triggered by button click,
27+
// so we need to reset the page type
28+
_settingViewModel.PageType = typeof(SettingsPanePluginStore);
2429
base.OnNavigatedTo(e);
2530
}
2631

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

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,16 +11,21 @@ namespace Flow.Launcher.SettingPages.Views;
1111
public partial class SettingsPanePlugins
1212
{
1313
private SettingsPanePluginsViewModel _viewModel = null!;
14+
private SettingWindowViewModel _settingViewModel = null;
1415

1516
protected override void OnNavigatedTo(NavigationEventArgs e)
1617
{
17-
if (!IsInitialized)
18+
if (_viewModel == null)
1819
{
1920
_viewModel = Ioc.Default.GetRequiredService<SettingsPanePluginsViewModel>();
21+
_settingViewModel = Ioc.Default.GetRequiredService<SettingWindowViewModel>();
2022
DataContext = _viewModel;
2123
InitializeComponent();
2224
}
2325
_viewModel.PropertyChanged += ViewModel_PropertyChanged;
26+
// Sometimes the navigation is not triggered by button click,
27+
// so we need to reset the page type
28+
_settingViewModel.PageType = typeof(SettingsPanePlugins);
2429
base.OnNavigatedTo(e);
2530
}
2631

0 commit comments

Comments
 (0)