mirror of
https://github.com/sourcegit-scm/sourcegit
synced 2025-05-22 04:34:59 +00:00
feature: add a context menu item to open all repositories in a group (#179)
This commit is contained in:
parent
4217d62f47
commit
06245320a9
4 changed files with 34 additions and 0 deletions
|
@ -92,6 +92,26 @@ namespace SourceGit.ViewModels
|
|||
var menu = new ContextMenu();
|
||||
var hasRepo = Preference.FindRepository(node.Id) != null;
|
||||
|
||||
if (!node.IsRepository && node.SubNodes.Count > 0)
|
||||
{
|
||||
var openAll = new MenuItem();
|
||||
openAll.Header = App.Text("Welcome.OpenAllInNode");
|
||||
openAll.Icon = App.CreateMenuIcon("Icons.Folder.Open");
|
||||
openAll.Click += (_, e) =>
|
||||
{
|
||||
if (App.Current.ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
|
||||
{
|
||||
var launcher = desktop.MainWindow.DataContext as Launcher;
|
||||
OpenAllInNode(launcher, node);
|
||||
}
|
||||
|
||||
e.Handled = true;
|
||||
};
|
||||
|
||||
menu.Items.Add(openAll);
|
||||
menu.Items.Add(new MenuItem() { Header = "-" });
|
||||
}
|
||||
|
||||
var edit = new MenuItem();
|
||||
edit.Header = App.Text("Welcome.Edit");
|
||||
edit.Icon = App.CreateMenuIcon("Icons.Edit");
|
||||
|
@ -201,6 +221,17 @@ namespace SourceGit.ViewModels
|
|||
}
|
||||
}
|
||||
|
||||
private void OpenAllInNode(Launcher launcher, RepositoryNode node)
|
||||
{
|
||||
foreach (var subNode in node.SubNodes)
|
||||
{
|
||||
if (subNode.IsRepository)
|
||||
launcher.OpenRepositoryInTab(subNode, null);
|
||||
else if (subNode.SubNodes.Count > 0)
|
||||
OpenAllInNode(launcher, subNode);
|
||||
}
|
||||
}
|
||||
|
||||
private static Welcome _instance = new Welcome();
|
||||
private string _searchFilter = string.Empty;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue