diff --git a/src/ViewModels/Launcher.cs b/src/ViewModels/Launcher.cs index bd59f8a2..733331a1 100644 --- a/src/ViewModels/Launcher.cs +++ b/src/ViewModels/Launcher.cs @@ -22,8 +22,11 @@ namespace SourceGit.ViewModels get => _activePage; set { - if (SetProperty(ref _activePage, value)) + var old = _activePage; + if (SetProperty(ref _activePage, value)) { PopupHost.Active = value; + UpdateSearchFilter(old, value); + } } } @@ -379,6 +382,14 @@ namespace SourceGit.ViewModels page.Data = null; } + private static void UpdateSearchFilter(LauncherPage oldPage, LauncherPage newPage) { + if (oldPage != null) { + oldPage.SearchFilter = Welcome.Instance.SearchFilter; + } + + Welcome.Instance.SearchFilter = newPage.SearchFilter; + } + private LauncherPage _activePage = null; } } diff --git a/src/ViewModels/LauncherPage.cs b/src/ViewModels/LauncherPage.cs index 65d5f7a5..7fc61a90 100644 --- a/src/ViewModels/LauncherPage.cs +++ b/src/ViewModels/LauncherPage.cs @@ -24,6 +24,12 @@ namespace SourceGit.ViewModels set; } = new AvaloniaList(); + public string SearchFilter + { + get => _searchFilter; + set => SetProperty(ref _searchFilter, value); + } + public LauncherPage() { _node = new RepositoryNode() { Id = Guid.NewGuid().ToString() }; @@ -49,5 +55,6 @@ namespace SourceGit.ViewModels private RepositoryNode _node = null; private object _data = null; + private string _searchFilter = string.Empty; } }