diff --git a/src/ViewModels/Repository.cs b/src/ViewModels/Repository.cs index ae377e81..b8ffc029 100644 --- a/src/ViewModels/Repository.cs +++ b/src/ViewModels/Repository.cs @@ -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; }; diff --git a/src/Views/Repository.axaml.cs b/src/Views/Repository.axaml.cs index 3e30d161..4a0936b2 100644 --- a/src/Views/Repository.axaml.cs +++ b/src/Views/Repository.axaml.cs @@ -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); }