forked from Misaki/GhostEngine
53 lines
1.4 KiB
C#
53 lines
1.4 KiB
C#
using Ghost.Editor.Core;
|
|
|
|
namespace Ghost.Editor.View.Controls;
|
|
|
|
internal partial class ProjectBrowser
|
|
{
|
|
[ContextMenuItem("project-browser", "Show in Explorer")]
|
|
private static void ShowInExplorer()
|
|
{
|
|
var path = LastFocused?.ViewModel.CurrentDirectoryPath;
|
|
if (!Directory.Exists(path))
|
|
{
|
|
return;
|
|
}
|
|
|
|
System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo()
|
|
{
|
|
FileName = path,
|
|
UseShellExecute = true,
|
|
Verb = "open"
|
|
});
|
|
}
|
|
|
|
[ContextMenuItem("project-browser", "Create/Folder")]
|
|
private static void CreateFolder()
|
|
{
|
|
// TODO: Use AssetService
|
|
|
|
var viewModel = LastFocused?.ViewModel;
|
|
if (viewModel is null)
|
|
{
|
|
return;
|
|
}
|
|
|
|
var currentDir = viewModel.CurrentDirectoryPath;
|
|
if (!Directory.Exists(currentDir))
|
|
{
|
|
return;
|
|
}
|
|
|
|
var newFolderPath = Path.Combine(currentDir, "New Folder");
|
|
var folderIndex = 1;
|
|
while (Directory.Exists(newFolderPath))
|
|
{
|
|
newFolderPath = Path.Combine(currentDir, $"New Folder ({folderIndex})");
|
|
folderIndex++;
|
|
}
|
|
|
|
Directory.CreateDirectory(newFolderPath);
|
|
// Refresh the view model to show the new folder
|
|
viewModel.NavigateToDirectory(currentDir);
|
|
}
|
|
} |