From 71a39680fa945e78292a1b28c2ca8738c4d187df Mon Sep 17 00:00:00 2001 From: apistol78 Date: Thu, 23 May 2024 15:28:47 +0200 Subject: [PATCH] Traktor: Restored "always visible" flag in DockPane. --- code/Editor/App/EditorForm.cpp | 1 + code/Ui/DockPane.cpp | 17 ++++++++++++++--- code/Ui/DockPane.h | 7 +++++-- 3 files changed, 20 insertions(+), 5 deletions(-) diff --git a/code/Editor/App/EditorForm.cpp b/code/Editor/App/EditorForm.cpp index 4afe99acc4..62f05d931f 100644 --- a/code/Editor/App/EditorForm.cpp +++ b/code/Editor/App/EditorForm.cpp @@ -581,6 +581,7 @@ bool EditorForm::create(const CommandLine& cmdLine) paneCenter->setDetachable(false); // Set pane styles. + m_paneEast->setAlwaysVisible(true); m_paneSouth->setStackable(true); // Create panes. diff --git a/code/Ui/DockPane.cpp b/code/Ui/DockPane.cpp index b855a927e7..f22ef26dac 100644 --- a/code/Ui/DockPane.cpp +++ b/code/Ui/DockPane.cpp @@ -365,7 +365,6 @@ DockPane* DockPane::getPaneFromPosition(const Point& position) } } - //if (m_widget && m_widget->isVisible(false)) if (!m_widgets.empty()) return this; else @@ -387,7 +386,6 @@ DockPane* DockPane::getSplitterFromPosition(const Point& position) } } - //if (m_widget && m_widget->isVisible(false)) if (!m_widgets.empty()) return nullptr; else @@ -398,7 +396,7 @@ bool DockPane::hitGripper(const Point& position) const { T_ASSERT(m_rect.inside(position)); - if (isSplitter()) // || (m_widget && !m_widget->isVisible(false))) + if (isSplitter()) return false; return position.y >= m_rect.top && position.y <= m_rect.top + m_owner->pixel(m_gripperDim); @@ -491,8 +489,21 @@ bool DockPane::isStackable() const return m_stackable; } +void DockPane::setAlwaysVisible(bool alwaysVisible) +{ + m_alwaysVisible = alwaysVisible; +} + +bool DockPane::isAlwaysVisible() const +{ + return m_alwaysVisible; +} + bool DockPane::isVisible() const { + if (m_alwaysVisible) + return true; + if (isSplitter()) return m_child[0]->isVisible() || m_child[1]->isVisible(); diff --git a/code/Ui/DockPane.h b/code/Ui/DockPane.h index 571c1c9cde..75e3173868 100644 --- a/code/Ui/DockPane.h +++ b/code/Ui/DockPane.h @@ -67,14 +67,12 @@ class T_DLLCLASS DockPane : public Object void showTab(int32_t tab); - void showWidget(Widget* widget); void hideWidget(Widget* widget); bool isWidgetVisible(const Widget* widget) const; - DockPane* findWidgetPane(const Widget* widget); DockPane* getPaneFromPosition(const Point& position); @@ -103,6 +101,10 @@ class T_DLLCLASS DockPane : public Object bool isStackable() const; + void setAlwaysVisible(bool alwaysVisible); + + bool isAlwaysVisible() const; + bool isVisible() const; private: @@ -129,6 +131,7 @@ class T_DLLCLASS DockPane : public Object bool m_detachable = true; bool m_stackable = false; bool m_vertical = false; + bool m_alwaysVisible = false; void synchronizeVisibility();