From db2b00a49e52f9825dfd4bfd03c833d6568b495b Mon Sep 17 00:00:00 2001 From: Leon Styhre Date: Wed, 5 Feb 2025 21:05:54 +0100 Subject: [PATCH] Rewrote the logic for the 'none' value for the helpsystem element scope property --- es-app/src/views/GamelistView.cpp | 2 -- es-app/src/views/SystemView.cpp | 4 ---- es-core/src/Window.cpp | 10 ++++++++-- es-core/src/components/HelpComponent.cpp | 8 +++----- 4 files changed, 11 insertions(+), 13 deletions(-) diff --git a/es-app/src/views/GamelistView.cpp b/es-app/src/views/GamelistView.cpp index 1fd3da2cd..2e86443a0 100644 --- a/es-app/src/views/GamelistView.cpp +++ b/es-app/src/views/GamelistView.cpp @@ -352,8 +352,6 @@ void GamelistView::onThemeChanged(const std::shared_ptr& theme) else if (element.second.type == "helpsystem") { mHelpComponents.emplace_back(std::make_unique()); mHelpComponents.back()->applyTheme(theme, "gamelist", element.first, ALL); - if (mHelpComponents.back()->getHelpComponentScope() == HelpComponentScope::NONE) - mHelpComponents.pop_back(); } } } diff --git a/es-app/src/views/SystemView.cpp b/es-app/src/views/SystemView.cpp index 629b1f5df..0cafbb11c 100644 --- a/es-app/src/views/SystemView.cpp +++ b/es-app/src/views/SystemView.cpp @@ -726,10 +726,6 @@ void SystemView::populate() elements.helpComponents.emplace_back(std::make_unique()); elements.helpComponents.back()->applyTheme(theme, "system", element.first, ThemeFlags::ALL); - if (elements.helpComponents.back()->getHelpComponentScope() == - HelpComponentScope::NONE) { - elements.helpComponents.pop_back(); - } } } } diff --git a/es-core/src/Window.cpp b/es-core/src/Window.cpp index 65a5ee3f5..54a9eca62 100644 --- a/es-core/src/Window.cpp +++ b/es-core/src/Window.cpp @@ -608,6 +608,8 @@ void Window::render() if (!mRenderedHelpPrompts) { if (mHelpComponents != nullptr) { for (auto& helpComponent : *mHelpComponents) { + if (helpComponent->getHelpComponentScope() == HelpComponentScope::NONE) + continue; if (helpComponent->getHelpComponentScope() != HelpComponentScope::VIEW) { helpComponent->setVisible(true); helpComponent->render(trans); @@ -773,6 +775,8 @@ void Window::renderHelpPromptsEarly() { if (mHelpComponents != nullptr) { for (auto& helpComponent : *mHelpComponents) { + if (helpComponent->getHelpComponentScope() == HelpComponentScope::NONE) + continue; if (helpComponent->getHelpComponentScope() != HelpComponentScope::MENU) { helpComponent->setVisible(true); helpComponent->render(mRenderer->getIdentity()); @@ -855,11 +859,13 @@ void Window::setHelpPrompts(const std::vector& prompts) if (mHelpComponents != nullptr) { for (auto& helpComponent : *mHelpComponents) { + if (helpComponent->getHelpComponentScope() == HelpComponentScope::NONE) + continue; if (mGuiStack.size() == 1 && helpComponent->getHelpComponentScope() == HelpComponentScope::MENU) continue; - else if (mGuiStack.size() > 1 && - helpComponent->getHelpComponentScope() == HelpComponentScope::VIEW) + if (mGuiStack.size() > 1 && + helpComponent->getHelpComponentScope() == HelpComponentScope::VIEW) continue; helpComponent->clearPrompts(); helpComponent->setPrompts(addPrompts); diff --git a/es-core/src/components/HelpComponent.cpp b/es-core/src/components/HelpComponent.cpp index c5617c5a1..059fa9a3f 100644 --- a/es-core/src/components/HelpComponent.cpp +++ b/es-core/src/components/HelpComponent.cpp @@ -270,11 +270,6 @@ void HelpComponent::applyTheme(const std::shared_ptr& theme, if (!elem) return; - if (elem->has("scope") && elem->get("scope") == "none") { - mHelpComponentScope = HelpComponentScope::NONE; - return; - } - if (elem->has("pos")) mStylePosition = elem->get("pos") * glm::vec2 {Renderer::getScreenWidth(), Renderer::getScreenHeight()}; @@ -329,6 +324,9 @@ void HelpComponent::applyTheme(const std::shared_ptr& theme, else if (scope == "menu") { mHelpComponentScope = HelpComponentScope::MENU; } + else if (scope == "none") { + mHelpComponentScope = HelpComponentScope::NONE; + } else { LOG(LogWarning) << "HelpComponent: Invalid theme configuration, property " "\"scope\" for element \""