NK-136 - Reordered Context Menu, Renamed Items, Load Scene

This commit is contained in:
emerycp
2023-07-22 02:45:29 -04:00
parent 7977734f9b
commit dcedc4b8ea
2 changed files with 39 additions and 27 deletions

View File

@@ -144,28 +144,32 @@ namespace Nuake
ImGui::OpenPopup(hoverMenuId.c_str());
m_hasClickedOnFile = true;
}
const std::string openScene = "Open Scene" + std::string("##") + hoverMenuId;
bool shouldOpenScene = false;
if (ImGui::BeginPopup(hoverMenuId.c_str()))
{
if (ImGui::MenuItem("Show in File Explorer"))
if (file->GetExtension() != ".scene")
{
OS::ShowInFileExplorer(file->GetAbsolutePath());
}
if(file->GetExtension() == ".wren")
{
ImGui::Separator();
if(ImGui::MenuItem("Open..."))
if (ImGui::MenuItem("Open in Editor"))
{
OS::OpenIn(file->GetAbsolutePath());
}
}
else
{
if (ImGui::MenuItem("Load Scene"))
{
shouldOpenScene = true;
}
}
ImGui::Separator();
if (ImGui::BeginMenu("Copy"))
{
ImGui::Separator();
if (ImGui::MenuItem("Full Path"))
{
OS::CopyToClipboard(file->GetAbsolutePath());
@@ -179,27 +183,30 @@ namespace Nuake
ImGui::EndPopup();
}
if(file->GetExtension() != ".project")
if (ImGui::MenuItem("Delete"))
{
ImGui::Separator();
// TODO: Add to a 'Edit' menu with File Rename, etc.
if (ImGui::MenuItem("Delete"))
if(FileSystem::RemoveFile(file->GetAbsolutePath()) != 0)
{
if(FileSystem::RemoveFile(file->GetAbsolutePath()) != 0)
{
Logger::Log("Failed to remove file: " + file->GetRelativePath(), "editor", CRITICAL);
}
RefreshFileBrowser();
Logger::Log("Failed to remove file: " + file->GetRelativePath(), "editor", CRITICAL);
}
RefreshFileBrowser();
}
if (ImGui::MenuItem("Rename"))
{
}
ImGui::Separator();
if (ImGui::MenuItem("Show in File Explorer"))
{
OS::ShowInFileExplorer(file->GetAbsolutePath());
}
ImGui::EndPopup();
}
const std::string openScene = "Open Scene" + std::string("##") + hoverMenuId;
if (ImGui::IsItemHovered() && ImGui::IsMouseDoubleClicked(0))
{
if (file->GetExtension() == ".scene")
@@ -208,7 +215,12 @@ namespace Nuake
}
}
if (PopupHelper::DefineDialog(openScene, "Open the scene? \n Changes will not be saved."))
if (shouldOpenScene)
{
PopupHelper::Confirmation(openScene);
}
if (PopupHelper::DefineDialog(openScene, " Open the scene? \n Changes will not be saved."))
{
Ref<Scene> scene = Scene::New();
const std::string projectPath = file->GetAbsolutePath();

View File

@@ -43,7 +43,7 @@ namespace Nuake
void Project::SaveAs(const std::string& FullPath)
{
json j = Serialize();
std::string serialized_string = j.dump();
std::string serialized_string = j.dump(4);
// TODO: Use file interface here...
// Write to file.