ux: re-design submodule preview in revision files

This commit is contained in:
leo 2024-06-19 14:24:49 +08:00
parent e17e4b9a53
commit a168b05ac6
No known key found for this signature in database
6 changed files with 38 additions and 17 deletions

View file

@ -201,7 +201,34 @@ namespace SourceGit.ViewModels
});
break;
case Models.ObjectType.Commit:
ViewRevisionFileContent = new Models.RevisionSubmodule() { SHA = file.SHA };
Task.Run(() =>
{
var submoduleRoot = Path.Combine(_repo, file.Path);
var commit = new Commands.QuerySingleCommit(submoduleRoot, file.SHA).Result();
if (commit != null)
{
var body = new Commands.QueryCommitFullMessage(submoduleRoot, file.SHA).Result();
Dispatcher.UIThread.Invoke(() =>
{
ViewRevisionFileContent = new Models.RevisionSubmodule()
{
Commit = commit,
FullMessage = body,
};
});
}
else
{
Dispatcher.UIThread.Invoke(() =>
{
ViewRevisionFileContent = new Models.RevisionSubmodule()
{
Commit = new Models.Commit() { SHA = file.SHA },
FullMessage = string.Empty,
};
});
}
});
break;
default:
ViewRevisionFileContent = null;

View file

@ -210,16 +210,16 @@ namespace SourceGit.ViewModels
return size > 0 ? (new Bitmap(stream), size) : (null, size);
}
private Models.SubmoduleRevision QuerySubmoduleRevision(string repo, string sha)
private Models.RevisionSubmodule QuerySubmoduleRevision(string repo, string sha)
{
var commit = new Commands.QuerySingleCommit(repo, sha).Result();
if (commit != null)
{
var body = new Commands.QueryCommitFullMessage(repo, sha).Result();
return new Models.SubmoduleRevision() { Commit = commit, FullMessage = body };
return new Models.RevisionSubmodule() { Commit = commit, FullMessage = body };
}
return new Models.SubmoduleRevision()
return new Models.RevisionSubmodule()
{
Commit = new Models.Commit() { SHA = sha },
FullMessage = string.Empty,