refactor: custom renderer for launcher tab bar

This commit is contained in:
leo 2024-06-29 17:04:39 +08:00
parent bfea573d4b
commit 1241539260
No known key found for this signature in database
6 changed files with 112 additions and 47 deletions

View file

@ -24,10 +24,7 @@ namespace SourceGit.ViewModels
set
{
if (SetProperty(ref _activePage, value))
{
PopupHost.Active = value;
UpdateTabSplitterVisible();
}
}
}
@ -69,9 +66,7 @@ namespace SourceGit.ViewModels
var lastActiveIdx = Preference.Instance.LastActiveTabIdx;
if (lastActiveIdx >= 0 && lastActiveIdx < Pages.Count)
{
ActivePage = Pages[lastActiveIdx];
}
}
}
@ -161,13 +156,11 @@ namespace SourceGit.ViewModels
ActivePage = Pages[removeIdx == Pages.Count - 1 ? removeIdx - 1 : removeIdx + 1];
CloseRepositoryInTab(page);
Pages.RemoveAt(removeIdx);
UpdateTabSplitterVisible();
}
else if (removeIdx + 1 == activeIdx)
{
CloseRepositoryInTab(page);
Pages.RemoveAt(removeIdx);
UpdateTabSplitterVisible();
}
else
{
@ -365,13 +358,6 @@ namespace SourceGit.ViewModels
page.Data = null;
}
private void UpdateTabSplitterVisible()
{
var activePageIdx = ActivePage == null ? -1 : Pages.IndexOf(ActivePage);
for (int i = 0; i < Pages.Count; i++)
Pages[i].IsTabSplitterVisible = (activePageIdx != i && activePageIdx != i + 1);
}
private LauncherPage _activePage = null;
}
}