From 222cfec6ad882196d8927f73e30d905daae89556 Mon Sep 17 00:00:00 2001 From: rtk0c Date: Thu, 10 Jun 2021 18:07:30 -0700 Subject: Polish UI and add translations --- core/src/UI/UI_Workflows.cpp | 50 +++++++++++++++++++------------------------- 1 file changed, 21 insertions(+), 29 deletions(-) (limited to 'core/src/UI/UI_Workflows.cpp') diff --git a/core/src/UI/UI_Workflows.cpp b/core/src/UI/UI_Workflows.cpp index 3c23c30..3230cf9 100644 --- a/core/src/UI/UI_Workflows.cpp +++ b/core/src/UI/UI_Workflows.cpp @@ -365,16 +365,9 @@ void UI::WorkflowsTab() auto ls = LocaleStrings::Instance.get(); auto& project = *GlobalStates::GetInstance().GetCurrentProject(); - enum class PopupType - { - None, - WorkflowSelect, - Management, - }; - static std::unique_ptr openWorkflow; - static AssetList::PopupState popup; - static PopupType popupType = PopupType::None; + static AssetList::ListState state; + bool openedDummy = true; // Toolbar item: close if (ImGui::Button(ls->Close.Get(), openWorkflow == nullptr)) { @@ -383,31 +376,30 @@ void UI::WorkflowsTab() // Toolbar item: open... ImGui::SameLine(); - if (ImGui::Button(ls->OpenWorkflow.Get())) { - project.Workflows.OpenDetailsPopup(); - popupType = PopupType::WorkflowSelect; + if (ImGui::Button(ls->OpenAsset.Get())) { + ImGui::OpenPopup(ls->OpenAssetDialogTitle.Get()); + } + if (ImGui::BeginPopupModal(ls->OpenAssetDialogTitle.Get(), &openedDummy, ImGuiWindowFlags_AlwaysAutoResize)) { + if (ImGui::Button(ls->Open.Get(), state.SelectedAsset == nullptr)) { + auto workflow = project.Workflows.Load(*state.SelectedAsset); + openWorkflow = std::make_unique(std::move(workflow)); + } + ImGui::SameLine(); + project.Workflows.DisplayControls(state); + project.Workflows.DisplayDetailsList(state); + + ImGui::EndPopup(); } // Toolbar item: manage... ImGui::SameLine(); - if (ImGui::Button(ls->ManageWorkflows.Get())) { - project.Workflows.OpenDetailsPopup(); - popupType = PopupType::Management; + if (ImGui::Button(ls->ManageAssets.Get())) { + ImGui::OpenPopup(ls->ManageAssetsDialogTitle.Get()); } - - project.Workflows.DisplayDetailsPopup(popup); - switch (popupType) { - case PopupType::WorkflowSelect: - if (ImGui::Button("Open", popup.SelectedAsset == nullptr)) { - auto workflow = project.Workflows.Load(*popup.SelectedAsset); - openWorkflow = std::make_unique(std::move(workflow)); - } - project.Workflows.DisplayDetailsPopup(popup); - break; - - default: - project.Workflows.DisplayDetailsPopup(popup); - break; + if (ImGui::BeginPopupModal(ls->ManageAssetsDialogTitle.Get(), &openedDummy, ImGuiWindowFlags_AlwaysAutoResize)) { + project.Workflows.DisplayControls(state); + project.Workflows.DisplayDetailsList(state); + ImGui::EndPopup(); } if (openWorkflow) { -- cgit v1.2.3-70-g09d2