feature: enhance the behaviour of closing the last tab

* If the last tab is an opened repository, go back to the welcome page
* If the last tab is welcome page, quit this app
This commit is contained in:
leo 2024-05-07 10:34:04 +08:00
parent 6cd550af4d
commit 37b5f5c083
2 changed files with 17 additions and 8 deletions

View file

@ -106,8 +106,23 @@ namespace SourceGit.ViewModels
public void CloseTab(object param) public void CloseTab(object param)
{ {
if (Pages.Count == 1) if (Pages.Count == 1)
{
var last = Pages[0];
if (last.Data is Repository repo)
{
Commands.AutoFetch.RemoveRepository(repo.FullPath);
repo.Close();
last.Node = new RepositoryNode() { Id = Guid.NewGuid().ToString() };
last.Data = new Welcome();
GC.Collect();
}
else
{ {
App.Quit(); App.Quit();
}
return; return;
} }

View file

@ -26,13 +26,7 @@ namespace SourceGit.ViewModels
public LauncherPage() public LauncherPage()
{ {
_node = new RepositoryNode() _node = new RepositoryNode() { Id = Guid.NewGuid().ToString() };
{
Id = Guid.NewGuid().ToString(),
Name = "WelcomePage",
Bookmark = 0,
IsRepository = false,
};
_data = new Welcome(); _data = new Welcome();
} }