refactor: rewrite submodule to support IsDirty state (#339)

This commit is contained in:
leo 2024-08-08 21:11:10 +08:00
parent eb441852b0
commit 1fe2be11a7
No known key found for this signature in database
10 changed files with 110 additions and 19 deletions

View file

@ -136,7 +136,7 @@ namespace SourceGit.ViewModels
private set => SetProperty(ref _visibleTags, value);
}
public List<string> Submodules
public List<Models.Submodule> Submodules
{
get => _submodules;
private set => SetProperty(ref _submodules, value);
@ -778,6 +778,9 @@ namespace SourceGit.ViewModels
public void RefreshSubmodules()
{
var submodules = new Commands.QuerySubmodules(_fullpath).Result();
if (_watcher != null)
_watcher.UpdateSubmodules(submodules);
Dispatcher.UIThread.Invoke(() => Submodules = submodules);
}
@ -1992,7 +1995,7 @@ namespace SourceGit.ViewModels
private List<Models.Worktree> _worktrees = new List<Models.Worktree>();
private List<Models.Tag> _tags = new List<Models.Tag>();
private List<Models.Tag> _visibleTags = new List<Models.Tag>();
private List<string> _submodules = new List<string>();
private List<Models.Submodule> _submodules = new List<Models.Submodule>();
private bool _includeUntracked = true;
private InProgressContext _inProgressContext = null;

View file

@ -7,8 +7,9 @@ namespace SourceGit.ViewModels
{
public List<string> Submodules
{
get => _repo.Submodules;
}
get;
private set;
} = new List<string>();
public string SelectedSubmodule
{
@ -43,7 +44,11 @@ namespace SourceGit.ViewModels
public UpdateSubmodules(Repository repo)
{
_repo = repo;
SelectedSubmodule = repo.Submodules.Count > 0 ? repo.Submodules[0] : string.Empty;
foreach (var submodule in _repo.Submodules)
Submodules.Add(submodule.Path);
SelectedSubmodule = Submodules.Count > 0 ? Submodules[0] : string.Empty;
View = new Views.UpdateSubmodules() { DataContext = this };
}