fix: can not open submodule that has not been initialized

This commit is contained in:
leo 2025-05-14 11:48:44 +08:00
parent 9e91494a20
commit 20a239621b
No known key found for this signature in database
2 changed files with 9 additions and 6 deletions

View file

@ -2330,14 +2330,15 @@ namespace SourceGit.ViewModels
return menu;
}
public ContextMenu CreateContextMenuForSubmodule(string submodule)
public ContextMenu CreateContextMenuForSubmodule(Models.Submodule submodule)
{
var open = new MenuItem();
open.Header = App.Text("Submodule.Open");
open.Icon = App.CreateMenuIcon("Icons.Folder.Open");
open.IsEnabled = submodule.Status != Models.SubmoduleStatus.NotInited;
open.Click += (_, ev) =>
{
OpenSubmodule(submodule);
OpenSubmodule(submodule.Path);
ev.Handled = true;
};
@ -2346,7 +2347,7 @@ namespace SourceGit.ViewModels
copy.Icon = App.CreateMenuIcon("Icons.Copy");
copy.Click += (_, ev) =>
{
App.CopyText(submodule);
App.CopyText(submodule.Path);
ev.Handled = true;
};
@ -2356,7 +2357,7 @@ namespace SourceGit.ViewModels
rm.Click += (_, ev) =>
{
if (CanCreatePopup())
ShowPopup(new DeleteSubmodule(this, submodule));
ShowPopup(new DeleteSubmodule(this, submodule.Path));
ev.Handled = true;
};

View file

@ -183,7 +183,7 @@ namespace SourceGit.Views
{
if (sender is ListBox { SelectedItem: Models.Submodule submodule } grid && DataContext is ViewModels.Repository repo)
{
var menu = repo.CreateContextMenuForSubmodule(submodule.Path);
var menu = repo.CreateContextMenuForSubmodule(submodule);
menu?.Open(grid);
}
@ -192,7 +192,9 @@ namespace SourceGit.Views
private void OnDoubleTappedSubmodule(object sender, TappedEventArgs e)
{
if (sender is ListBox { SelectedItem: Models.Submodule submodule } && DataContext is ViewModels.Repository repo)
if (sender is ListBox { SelectedItem: Models.Submodule submodule } &&
submodule.Status != Models.SubmoduleStatus.NotInited &&
DataContext is ViewModels.Repository repo)
{
repo.OpenSubmodule(submodule.Path);
}