Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion Sources/Overload/OvEditor/src/OvEditor/Core/Context.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,6 @@ OvEditor::Core::Context::Context(const std::string& p_projectPath, const std::st
ServiceLocator::Provide<OvAudio::Core::AudioPlayer>(*audioPlayer);
ServiceLocator::Provide<OvCore::Scripting::ScriptEngine>(*scriptEngine);
ServiceLocator::Provide<OvEditor::Utils::TextureRegistry>(*textureRegistry);
ServiceLocator::Provide<OvUI::Core::UIManager>(*uiManager);

ApplyProjectSettings();
}
Expand Down
36 changes: 16 additions & 20 deletions Sources/Overload/OvEditor/src/OvEditor/Panels/MenuBar.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -202,31 +202,30 @@ void OvEditor::Panels::MenuBar::CreateLayoutMenu()
{
auto& layoutMenuList = CreateWidget<MenuList>("Layout");

auto& uiManager = *EDITOR_CONTEXT(uiManager);
std::string layoutsPath = uiManager.GetLayoutsPath();

auto& saveMenuItem = layoutMenuList.CreateWidget<MenuItem>("Save");
saveMenuItem.ClickedEvent += EDITOR_BIND(SaveCurrentLayout);

auto& saveNewMenuList = layoutMenuList.CreateWidget<MenuList>("Save New");
auto& layoutInputText = saveNewMenuList.CreateWidget<InputFields::InputText>("Layout Name");
layoutInputText.selectAllOnClick = true;
layoutInputText.EnterPressedEvent += [this](std::string p_input)
layoutInputText.EnterPressedEvent += [this, layoutsPath](std::string p_input)
{
if (p_input.empty())
return;

auto& UIManager = OvCore::Global::ServiceLocator::Get<OvUI::Core::UIManager>();
std::string layoutsPath = UIManager.GetLayoutsPath();
EDITOR_EXEC(DelayAction(std::bind(&OvUI::Core::UIManager::SaveLayout, &UIManager, layoutsPath + p_input + ".ini"), 1));
auto& uiManager = *EDITOR_CONTEXT(uiManager);
EDITOR_EXEC(DelayAction(std::bind(&OvUI::Core::UIManager::SaveLayout, &uiManager, layoutsPath + p_input + ".ini"), 1));
};

auto& loadMenuList = layoutMenuList.CreateWidget<MenuList>("Load");

loadMenuList.ClickedEvent += [&]
loadMenuList.ClickedEvent += [&, layoutsPath]
{
loadMenuList.RemoveAllWidgets();

auto& UIManager = OvCore::Global::ServiceLocator::Get<OvUI::Core::UIManager>();
std::string layoutsPath = UIManager.GetLayoutsPath();

for (const auto& entry : std::filesystem::directory_iterator(layoutsPath))
{
if (entry.is_regular_file() && entry.path().extension() == ".ini")
Expand All @@ -238,20 +237,19 @@ void OvEditor::Panels::MenuBar::CreateLayoutMenu()

layoutMenuItem.ClickedEvent += [this, layoutsPath, layoutFileName]
{
auto& UIManager = OvCore::Global::ServiceLocator::Get<OvUI::Core::UIManager>();
std::string layoutsPath = UIManager.GetLayoutsPath();
EDITOR_EXEC(DelayAction(std::bind(&OvUI::Core::UIManager::SetLayout, &UIManager, layoutsPath + layoutFileName), 1));
auto& uiManager = *EDITOR_CONTEXT(uiManager);
EDITOR_EXEC(DelayAction(std::bind(&OvUI::Core::UIManager::SetLayout, &uiManager, layoutsPath + layoutFileName), 1));
};

auto& contextualMenu = layoutMenuItem.AddPlugin<OvUI::Plugins::ContextualMenu>();
auto& deleteMenuItem = contextualMenu.CreateWidget<MenuItem>("Delete");

deleteMenuItem.ClickedEvent += [this, layoutFileName, &layoutMenuItem]
deleteMenuItem.ClickedEvent += [this, layoutsPath, layoutFileName, &layoutMenuItem]
{
//EDITOR_EXEC(ResetToDefaultLayout);
auto& UIManager = OvCore::Global::ServiceLocator::Get<OvUI::Core::UIManager>();
std::string layoutsPath = UIManager.GetLayoutsPath();
EDITOR_EXEC(DelayAction(std::bind(&OvUI::Core::UIManager::DeleteLayout, &UIManager, layoutsPath + layoutFileName), 1));

auto& uiManager = *EDITOR_CONTEXT(uiManager);
EDITOR_EXEC(DelayAction(std::bind(&OvUI::Core::UIManager::DeleteLayout, &uiManager, layoutsPath + layoutFileName), 1));
layoutMenuItem.enabled = false;

};
Expand All @@ -261,20 +259,18 @@ void OvEditor::Panels::MenuBar::CreateLayoutMenu()
renameInputText.content = OvTools::Utils::PathParser::GetFileWithoutExtension(layoutFileName);
renameInputText.selectAllOnClick = true;

renameInputText.EnterPressedEvent += [this, layoutFileName, &contextualMenu, &layoutMenuItem](std::string p_newName)
renameInputText.EnterPressedEvent += [this, layoutsPath, layoutFileName, &contextualMenu, &layoutMenuItem](std::string p_newName)
{
if (p_newName.empty())
return;

layoutMenuItem.name = p_newName;
//EDITOR_EXEC(ResetToDefaultLayout);

auto& UIManager = OvCore::Global::ServiceLocator::Get<OvUI::Core::UIManager>();
std::string layoutsPath = UIManager.GetLayoutsPath();
auto& uiManager = *EDITOR_CONTEXT(uiManager);

std::string oldFileName = layoutsPath + layoutFileName;
std::string newFileName = layoutsPath + p_newName + ".ini";
EDITOR_EXEC(DelayAction(std::bind(&OvUI::Core::UIManager::RenameLayout, &UIManager, oldFileName, newFileName), 1));
EDITOR_EXEC(DelayAction(std::bind(&OvUI::Core::UIManager::RenameLayout, &uiManager, oldFileName, newFileName), 1));

contextualMenu.Close();
};
Expand Down
2 changes: 1 addition & 1 deletion Sources/Overload/OvUI/src/OvUI/Core/UIManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

#include <filesystem>

#include "OvTools/Utils/SystemCalls.h"
#include <OvTools/Utils/SystemCalls.h>

OvUI::Core::UIManager::UIManager(GLFWwindow* p_glfwWindow, Styling::EStyle p_style, std::string_view p_glslVersion) :
m_defaultLayout("Config\\layout.ini"),
Expand Down