1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-10 12:32:20 +02:00

Made Open Containing Folder available for projects and workspace

This commit is contained in:
Brian Fiete 2020-04-26 05:54:19 -07:00
parent 2de866ae55
commit 9c59fd0dbf

View file

@ -1923,12 +1923,51 @@ namespace IDE.ui
Menu menu = new Menu();
bool handled = false;
void AddOpenContainingFolder()
{
var item = menu.AddItem("Open Containing Folder");
item.mOnMenuItemSelected.Add(new (item) =>
{
let projectItem = GetSelectedProjectItem();
String path = scope String();
if (projectItem == null)
{
path.Set(gApp.mWorkspace.mDir);
}
else if (let projectFolder = projectItem as ProjectFolder)
{
if (projectFolder.mParentFolder == null)
{
path.Set(projectFolder.mProject.mProjectDir);
}
else
projectFolder.GetFullImportPath(path);
}
else
projectItem.mParentFolder.GetFullImportPath(path);
if (!path.IsWhiteSpace)
{
ProcessStartInfo psi = scope ProcessStartInfo();
psi.SetFileName(path);
psi.UseShellExecute = true;
psi.SetVerb("Open");
var process = scope SpawnedProcess();
process.Start(psi).IgnoreError();
}
});
}
if (projectItem == null)
{
Menu anItem;
if (gApp.mWorkspace.IsInitialized)
{
AddOpenContainingFolder();
menu.AddItem();
anItem = menu.AddItem("Add New Project...");
anItem.mOnMenuItemSelected.Add(new (item) => { AddNewProject(); });
@ -1938,6 +1977,7 @@ namespace IDE.ui
anItem = menu.AddItem("Add From Installed...");
anItem.mOnMenuItemSelected.Add(new (item) => { mImportInstalledDeferred = true; });
menu.AddItem();
anItem = menu.AddItem("Properties...");
anItem.mOnMenuItemSelected.Add(new (item) => { ShowWorkspaceProperties(); });
@ -2027,6 +2067,8 @@ namespace IDE.ui
}
});
AddOpenContainingFolder();
menu.AddItem();
}
@ -2168,24 +2210,7 @@ namespace IDE.ui
});
item = menu.AddItem("Open Containing Folder");
item.mOnMenuItemSelected.Add(new (item) =>
{
let projectItem = GetSelectedProjectItem();
String path = scope String();
if (let projectFolder = projectItem as ProjectFolder)
projectFolder.GetFullImportPath(path);
else
projectItem.mParentFolder.GetFullImportPath(path);
ProcessStartInfo psi = scope ProcessStartInfo();
psi.SetFileName(path);
psi.UseShellExecute = true;
psi.SetVerb("Open");
var process = scope SpawnedProcess();
process.Start(psi).IgnoreError();
});
AddOpenContainingFolder();
menu.AddItem();
}