mirror of
https://github.com/sourcegit-scm/sourcegit
synced 2025-06-07 20:04:59 +00:00
feature: supports to de-initialize a submodule (#1272)
Signed-off-by: leo <longshuang@msn.cn>
This commit is contained in:
parent
1fef7a7baa
commit
b0c0c46441
9 changed files with 139 additions and 13 deletions
45
src/ViewModels/DeinitSubmodule.cs
Normal file
45
src/ViewModels/DeinitSubmodule.cs
Normal file
|
@ -0,0 +1,45 @@
|
|||
using System.Threading.Tasks;
|
||||
|
||||
namespace SourceGit.ViewModels
|
||||
{
|
||||
public class DeinitSubmodule : Popup
|
||||
{
|
||||
public string Submodule
|
||||
{
|
||||
get;
|
||||
private set;
|
||||
}
|
||||
|
||||
public bool Force
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
public DeinitSubmodule(Repository repo, string submodule)
|
||||
{
|
||||
_repo = repo;
|
||||
Submodule = submodule;
|
||||
Force = false;
|
||||
}
|
||||
|
||||
public override Task<bool> Sure()
|
||||
{
|
||||
_repo.SetWatcherEnabled(false);
|
||||
ProgressDescription = "De-initialize Submodule";
|
||||
|
||||
var log = _repo.CreateLog("De-initialize Submodule");
|
||||
Use(log);
|
||||
|
||||
return Task.Run(() =>
|
||||
{
|
||||
var succ = new Commands.Submodule(_repo.FullPath).Use(log).Deinit(Submodule, false);
|
||||
log.Complete();
|
||||
CallUIThread(() => _repo.SetWatcherEnabled(true));
|
||||
return succ;
|
||||
});
|
||||
}
|
||||
|
||||
private Repository _repo;
|
||||
}
|
||||
}
|
|
@ -2432,12 +2432,14 @@ namespace SourceGit.ViewModels
|
|||
ev.Handled = true;
|
||||
};
|
||||
|
||||
var copy = new MenuItem();
|
||||
copy.Header = App.Text("Submodule.CopyPath");
|
||||
copy.Icon = App.CreateMenuIcon("Icons.Copy");
|
||||
copy.Click += (_, ev) =>
|
||||
var deinit = new MenuItem();
|
||||
deinit.Header = App.Text("Submodule.Deinit");
|
||||
deinit.Icon = App.CreateMenuIcon("Icons.Undo");
|
||||
deinit.IsEnabled = submodule.Status != Models.SubmoduleStatus.NotInited;
|
||||
deinit.Click += (_, ev) =>
|
||||
{
|
||||
App.CopyText(submodule.Path);
|
||||
if (CanCreatePopup())
|
||||
ShowPopup(new DeinitSubmodule(this, submodule.Path));
|
||||
ev.Handled = true;
|
||||
};
|
||||
|
||||
|
@ -2451,10 +2453,22 @@ namespace SourceGit.ViewModels
|
|||
ev.Handled = true;
|
||||
};
|
||||
|
||||
var copy = new MenuItem();
|
||||
copy.Header = App.Text("Submodule.CopyPath");
|
||||
copy.Icon = App.CreateMenuIcon("Icons.Copy");
|
||||
copy.Click += (_, ev) =>
|
||||
{
|
||||
App.CopyText(submodule.Path);
|
||||
ev.Handled = true;
|
||||
};
|
||||
|
||||
var menu = new ContextMenu();
|
||||
menu.Items.Add(open);
|
||||
menu.Items.Add(copy);
|
||||
menu.Items.Add(new MenuItem() { Header = "-" });
|
||||
menu.Items.Add(deinit);
|
||||
menu.Items.Add(rm);
|
||||
menu.Items.Add(new MenuItem() { Header = "-" });
|
||||
menu.Items.Add(copy);
|
||||
return menu;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue