From 71f0b644f234f0678c01c1473616dd11ca0eb645 Mon Sep 17 00:00:00 2001 From: Sergio Martins Date: Thu, 7 Apr 2022 22:43:56 +0100 Subject: [PATCH] Port away from including TitleBar_qtwidgets in tests --- src/controllers/TitleBar.cpp | 15 ++++++++++ src/controllers/TitleBar.h | 5 ++++ src/qtwidgets/views/TitleBar_qtwidgets.h | 6 ++-- src/views/TitleBar.h | 3 ++ tests/tst_docks.cpp | 36 +++++++++++------------- 5 files changed, 43 insertions(+), 22 deletions(-) diff --git a/src/controllers/TitleBar.cpp b/src/controllers/TitleBar.cpp index ada22583..22339dd4 100644 --- a/src/controllers/TitleBar.cpp +++ b/src/controllers/TitleBar.cpp @@ -196,6 +196,21 @@ bool TitleBar::supportsAutoHideButton() const return m_supportsAutoHide && m_frame && (m_frame->isInMainWindow() || m_frame->isOverlayed()); } +bool TitleBar::isFloatButtonVisible() const +{ + return dynamic_cast(view())->isFloatButtonVisible(); +} + +bool TitleBar::isCloseButtonVisible() const +{ + return dynamic_cast(view())->isCloseButtonVisible(); +} + +bool TitleBar::isCloseButtonEnabled() const +{ + return dynamic_cast(view())->isCloseButtonEnabled(); +} + bool TitleBar::hasIcon() const { return !m_icon.isNull(); diff --git a/src/controllers/TitleBar.h b/src/controllers/TitleBar.h index 5c9fcf48..277a6d04 100644 --- a/src/controllers/TitleBar.h +++ b/src/controllers/TitleBar.h @@ -64,6 +64,11 @@ public: ///@brief returns whether this title bar supports the auto-hide button bool supportsAutoHideButton() const; + /// @brief returns whether the float button is visible + bool isFloatButtonVisible() const; + bool isCloseButtonVisible() const; + bool isCloseButtonEnabled() const; + ///@brief returns whether this title bar has an icon bool hasIcon() const; diff --git a/src/qtwidgets/views/TitleBar_qtwidgets.h b/src/qtwidgets/views/TitleBar_qtwidgets.h index 9615b726..4bc40190 100644 --- a/src/qtwidgets/views/TitleBar_qtwidgets.h +++ b/src/qtwidgets/views/TitleBar_qtwidgets.h @@ -39,9 +39,9 @@ public: #ifdef DOCKS_DEVELOPER_MODE // The following are needed for the unit-tests - bool isCloseButtonVisible() const; - bool isCloseButtonEnabled() const; - bool isFloatButtonVisible() const; + bool isCloseButtonVisible() const override; + bool isCloseButtonEnabled() const override; + bool isFloatButtonVisible() const override; bool isFloatButtonEnabled() const; #endif diff --git a/src/views/TitleBar.h b/src/views/TitleBar.h index debb8288..184c798d 100644 --- a/src/views/TitleBar.h +++ b/src/views/TitleBar.h @@ -22,6 +22,9 @@ class TitleBar { public: virtual void updateMaximizeButton() = 0; + virtual bool isFloatButtonVisible() const = 0; + virtual bool isCloseButtonVisible() const = 0; + virtual bool isCloseButtonEnabled() const = 0; }; } diff --git a/tests/tst_docks.cpp b/tests/tst_docks.cpp index 2d6839d1..f1787791 100644 --- a/tests/tst_docks.cpp +++ b/tests/tst_docks.cpp @@ -22,8 +22,6 @@ #include "WindowBeingDragged_p.h" #include "MDIArea.h" #include "multisplitter/Item_p.h" -#include "qtwidgets/views/Frame_qtwidgets.h" -#include "qtwidgets/views/TitleBar_qtwidgets.h" #include "private/MultiSplitter_p.h" #include "controllers/DockWidget.h" @@ -692,7 +690,7 @@ void TestDocks::tst_nonDockable() Controllers::TitleBar *tb = dock->titleBar(); QVERIFY(tb->isVisible()); - QVERIFY(static_cast(tb->view())->isFloatButtonVisible()); + QVERIFY(tb->isFloatButtonVisible()); } { @@ -703,7 +701,7 @@ void TestDocks::tst_nonDockable() Controllers::TitleBar *tb = dock->titleBar(); QVERIFY(tb->isVisible()); - QVERIFY(!static_cast(tb->view())->isFloatButtonVisible()); + QVERIFY(tb->isFloatButtonVisible()); } } @@ -4045,22 +4043,22 @@ void TestDocks::tst_notClosable() QVERIFY(fw); Controllers::TitleBar *titlebarFW = fw->titleBar(); Controllers::TitleBar *titleBarFrame = fw->frames().at(0)->titleBar(); - QVERIFY(static_cast(titlebarFW->view())->isCloseButtonVisible()); - QVERIFY(!static_cast(titlebarFW->view())->isCloseButtonEnabled()); - QVERIFY(!static_cast(titleBarFrame->view())->isCloseButtonVisible()); - QVERIFY(!static_cast(titleBarFrame->view())->isCloseButtonEnabled()); + QVERIFY(titlebarFW->isCloseButtonVisible()); + QVERIFY(!titlebarFW->isCloseButtonEnabled()); + QVERIFY(!titleBarFrame->isCloseButtonVisible()); + QVERIFY(!titleBarFrame->isCloseButtonEnabled()); dock1->setOptions(DockWidgetBase::Option_None); - QVERIFY(static_cast(titlebarFW->view())->isCloseButtonVisible()); - QVERIFY(static_cast(titlebarFW->view())->isCloseButtonEnabled()); - QVERIFY(!static_cast(titleBarFrame->view())->isCloseButtonVisible()); - QVERIFY(!static_cast(titleBarFrame->view())->isCloseButtonEnabled()); + QVERIFY(titlebarFW->isCloseButtonVisible()); + QVERIFY(titlebarFW->isCloseButtonEnabled()); + QVERIFY(!titleBarFrame->isCloseButtonVisible()); + QVERIFY(!titleBarFrame->isCloseButtonEnabled()); dock1->setOptions(DockWidgetBase::Option_NotClosable); - QVERIFY(static_cast(titlebarFW->view())->isCloseButtonVisible()); - QVERIFY(!static_cast(titlebarFW->view())->isCloseButtonEnabled()); - QVERIFY(!static_cast(titleBarFrame->view())->isCloseButtonVisible()); - QVERIFY(!static_cast(titleBarFrame->view())->isCloseButtonEnabled()); + QVERIFY(titlebarFW->isCloseButtonVisible()); + QVERIFY(!titlebarFW->isCloseButtonEnabled()); + QVERIFY(!titleBarFrame->isCloseButtonVisible()); + QVERIFY(!titleBarFrame->isCloseButtonEnabled()); } { @@ -4077,9 +4075,9 @@ void TestDocks::tst_notClosable() Controllers::TitleBar *titlebarFW = fw->titleBar(); Controllers::TitleBar *titleBarFrame = fw->frames().at(0)->titleBar(); - QVERIFY(static_cast(titlebarFW->view())->isCloseButtonVisible()); - QVERIFY(!static_cast(titleBarFrame->view())->isCloseButtonVisible()); - QVERIFY(!static_cast(titleBarFrame->view())->isCloseButtonEnabled()); + QVERIFY(titlebarFW->isCloseButtonVisible()); + QVERIFY(!titleBarFrame->isCloseButtonVisible()); + QVERIFY(!titleBarFrame->isCloseButtonEnabled()); } }