add new file menu stub

This commit is contained in:
Matt Parker
2025-10-19 23:09:30 +10:00
parent 8a02d6a519
commit f2b248ea6b
3 changed files with 30 additions and 2 deletions

View File

@@ -0,0 +1 @@
uid://c3k4fos7lp7oa

View File

@@ -30,7 +30,7 @@ public partial class SolutionExplorerPanel
}
else if (actionId is FileContextMenuOptions.RevealInFileExplorer)
{
OS.ShellOpen(Path.GetDirectoryName(file.Path)!);
OS.ShellShowInFileManager(file.Path);
}
else if (actionId is FileContextMenuOptions.CopyFullPath)
{

View File

@@ -5,7 +5,14 @@ namespace SharpIDE.Godot.Features.SolutionExplorer;
file enum FolderContextMenuOptions
{
RevealInFileExplorer = 1
CreateNew = 1,
RevealInFileExplorer = 2
}
file enum CreateNewSubmenuOptions
{
Directory = 1,
CSharpFile = 2
}
public partial class SolutionExplorerPanel
@@ -14,6 +21,13 @@ public partial class SolutionExplorerPanel
{
var menu = new PopupMenu();
AddChild(menu);
var createNewSubmenu = new PopupMenu();
menu.AddSubmenuNodeItem("Add", createNewSubmenu, (int)FolderContextMenuOptions.CreateNew);
createNewSubmenu.AddItem("Directory", (int)CreateNewSubmenuOptions.Directory);
createNewSubmenu.AddItem("C# File", (int)CreateNewSubmenuOptions.CSharpFile);
createNewSubmenu.IdPressed += OnCreateNewSubmenuPressed;
menu.AddItem("Reveal in File Explorer", (int)FolderContextMenuOptions.RevealInFileExplorer);
menu.PopupHide += () => menu.QueueFree();
menu.IdPressed += id =>
@@ -29,4 +43,17 @@ public partial class SolutionExplorerPanel
menu.Position = new Vector2I((int)globalMousePosition.X, (int)globalMousePosition.Y);
menu.Popup();
}
private void OnCreateNewSubmenuPressed(long id)
{
var actionId = (CreateNewSubmenuOptions)id;
if (actionId is CreateNewSubmenuOptions.Directory)
{
//OpenCreateNewFolderDialog(folder);
}
else if (actionId is CreateNewSubmenuOptions.CSharpFile)
{
//OpenCreateNewCSharpFileDialog(folder);
}
}
}