diff --git a/src/View.h b/src/View.h index c3e572ee..8c236011 100644 --- a/src/View.h +++ b/src/View.h @@ -94,7 +94,6 @@ public: virtual Qt::FocusPolicy focusPolicy() const = 0; virtual bool hasFocus() const = 0; virtual QSize maxSizeHint() const = 0; - virtual QSize maximumSize() const = 0; virtual QRect geometry() const = 0; virtual QRect normalGeometry() const = 0; virtual void setGeometry(QRect) = 0; diff --git a/src/controllers/Group.cpp b/src/controllers/Group.cpp index 9733f84d..c29b6196 100644 --- a/src/controllers/Group.cpp +++ b/src/controllers/Group.cpp @@ -817,7 +817,7 @@ QSize Group::biggestDockWidgetMaxSize() const const bool hasMaxSize = dwMax != Layouting::Item::hardcodedMaximumSize; if (hasMaxSize) - size = dw->view()->maximumSize().expandedTo(size); + size = dwMax.expandedTo(size); } // Interpret 0 max-size as not having one too. diff --git a/src/dummy/views/DockWidget_dummy.cpp b/src/dummy/views/DockWidget_dummy.cpp index f265eb31..ab744cad 100644 --- a/src/dummy/views/DockWidget_dummy.cpp +++ b/src/dummy/views/DockWidget_dummy.cpp @@ -65,12 +65,12 @@ QSize DockWidget_dummy::minSize() const return View_dummy::minSize(); } -QSize DockWidget_dummy::maximumSize() const +QSize DockWidget_dummy::maxSizeHint() const { if (auto guestWidget = dockWidget()->guestView()) { // The guests max-size is the same as the widget's, there's no spacing or margins. - return guestWidget->maximumSize(); + return guestWidget->maxSizeHint(); } - return View_dummy::maximumSize(); + return View_dummy::maxSizeHint(); } diff --git a/src/dummy/views/DockWidget_dummy.h b/src/dummy/views/DockWidget_dummy.h index cb71ad30..21e09312 100644 --- a/src/dummy/views/DockWidget_dummy.h +++ b/src/dummy/views/DockWidget_dummy.h @@ -61,7 +61,7 @@ public: QSize minSize() const override; /// @reimp - QSize maximumSize() const override; + QSize maxSizeHint() const override; protected: void init() override; diff --git a/src/dummy/views/Group_dummy.cpp b/src/dummy/views/Group_dummy.cpp index 698ad777..8c45fda8 100644 --- a/src/dummy/views/Group_dummy.cpp +++ b/src/dummy/views/Group_dummy.cpp @@ -108,9 +108,9 @@ QSize Group_dummy::minSize() const return contentsSize + QSize(0, nonContentsHeight()); } -QSize Group_dummy::maximumSize() const +QSize Group_dummy::maxSizeHint() const { - return View_dummy::maximumSize(); + return View_dummy::maxSizeHint(); } int Group_dummy::nonContentsHeight() const diff --git a/src/dummy/views/Group_dummy.h b/src/dummy/views/Group_dummy.h index ae825b72..5879ff81 100644 --- a/src/dummy/views/Group_dummy.h +++ b/src/dummy/views/Group_dummy.h @@ -36,7 +36,7 @@ public: QSize minSize() const override; /// @reimp - QSize maximumSize() const override; + QSize maxSizeHint() const override; QRect dragRect() const override; int currentIndex() const; diff --git a/src/dummy/views/View_dummy.cpp b/src/dummy/views/View_dummy.cpp index cb75f1c5..29b17a3e 100644 --- a/src/dummy/views/View_dummy.cpp +++ b/src/dummy/views/View_dummy.cpp @@ -95,11 +95,6 @@ QSize View_dummy::maxSizeHint() const return {}; } -QSize View_dummy::maximumSize() const -{ - return {}; -} - QRect View_dummy::geometry() const { return {}; diff --git a/src/dummy/views/View_dummy.h b/src/dummy/views/View_dummy.h index 7d4b4fc6..7f346c0d 100644 --- a/src/dummy/views/View_dummy.h +++ b/src/dummy/views/View_dummy.h @@ -44,7 +44,6 @@ public: QSize sizeHint() const override; QSize minSize() const override; QSize maxSizeHint() const override; - QSize maximumSize() const override; QRect geometry() const override; QRect normalGeometry() const override; void setNormalGeometry(QRect geo); diff --git a/src/private/WidgetResizeHandler.cpp b/src/private/WidgetResizeHandler.cpp index fecedde2..41be4896 100644 --- a/src/private/WidgetResizeHandler.cpp +++ b/src/private/WidgetResizeHandler.cpp @@ -256,7 +256,7 @@ bool WidgetResizeHandler::mouseMoveEvent(QMouseEvent *e) { int deltaWidth = 0; int newWidth = 0; - const int maxWidth = mTarget->maximumSize().width(); + const int maxWidth = mTarget->maxSizeHint().width(); const int minWidth = mTarget->minSize().width(); switch (mCursorPos) { @@ -292,7 +292,7 @@ bool WidgetResizeHandler::mouseMoveEvent(QMouseEvent *e) } { - const int maxHeight = mTarget->maximumSize().height(); + const int maxHeight = mTarget->maxSizeHint().height(); const int minHeight = mTarget->minSize().height(); int deltaHeight = 0; int newHeight = 0; diff --git a/src/private/WindowBeingDragged.cpp b/src/private/WindowBeingDragged.cpp index 68322b8a..ffefa972 100644 --- a/src/private/WindowBeingDragged.cpp +++ b/src/private/WindowBeingDragged.cpp @@ -312,7 +312,7 @@ QSize WindowBeingDraggedWayland::maxSize() const } else if (m_group) { return m_group->view()->maxSizeHint(); } else if (m_dockWidget) { - return m_dockWidget->view()->maximumSize(); + return m_dockWidget->view()->maxSizeHint(); } qWarning() << Q_FUNC_INFO << "Unknown maxSize, shouldn't happen"; diff --git a/src/qtquick/views/DockWidget_qtquick.cpp b/src/qtquick/views/DockWidget_qtquick.cpp index e001a30b..660c6533 100644 --- a/src/qtquick/views/DockWidget_qtquick.cpp +++ b/src/qtquick/views/DockWidget_qtquick.cpp @@ -146,14 +146,14 @@ QSize DockWidget_qtquick::minSize() const return View_qtquick::minSize(); } -QSize DockWidget_qtquick::maximumSize() const +QSize DockWidget_qtquick::maxSizeHint() const { if (auto guestWidget = dockWidget()->guestView()) { // The guests max-size is the same as the widget's, there's no spacing or margins. - return guestWidget->maximumSize(); + return guestWidget->maxSizeHint(); } - return View_qtquick::maximumSize(); + return View_qtquick::maxSizeHint(); } QObject *DockWidget_qtquick::actualTitleBarView() const diff --git a/src/qtquick/views/DockWidget_qtquick.h b/src/qtquick/views/DockWidget_qtquick.h index 254fdc0d..8094805f 100644 --- a/src/qtquick/views/DockWidget_qtquick.h +++ b/src/qtquick/views/DockWidget_qtquick.h @@ -87,7 +87,7 @@ public: QSize minSize() const override; /// @reimp - QSize maximumSize() const override; + QSize maxSizeHint() const override; /// @brief Returns the title bar view /// Qt6 requires us to include TitleBar_p.h, so instead the Q_PROPERTY uses diff --git a/src/qtquick/views/Group_qtquick.cpp b/src/qtquick/views/Group_qtquick.cpp index 92b33fb9..7b380c36 100644 --- a/src/qtquick/views/Group_qtquick.cpp +++ b/src/qtquick/views/Group_qtquick.cpp @@ -101,7 +101,7 @@ void Group_qtquick::updateConstriants() // QtQuick doesn't have layouts, so we need to do constraint propagation manually setProperty("kddockwidgets_min_size", minSize()); - setProperty("kddockwidgets_max_size", maximumSize()); + setProperty("kddockwidgets_max_size", maxSizeHint()); View::d->layoutInvalidated.emit(); } @@ -202,11 +202,6 @@ QSize Group_qtquick::minSize() const return contentsSize + QSize(0, nonContentsHeight()); } -QSize Group_qtquick::maximumSize() const -{ - return View_qtquick::maximumSize(); -} - QObject *Group_qtquick::tabWidgetObj() const { return stackView(); diff --git a/src/qtquick/views/Group_qtquick.h b/src/qtquick/views/Group_qtquick.h index 19484e47..29df4692 100644 --- a/src/qtquick/views/Group_qtquick.h +++ b/src/qtquick/views/Group_qtquick.h @@ -51,9 +51,6 @@ public: /// @reimp QSize minSize() const override; - /// @reimp - QSize maximumSize() const override; - /// @brief Returns the QQuickItem which represents this group on the screen QQuickItem *visualItem() const override; diff --git a/src/qtquick/views/MainWindow_qtquick.cpp b/src/qtquick/views/MainWindow_qtquick.cpp index ca11f35c..f707ad8b 100644 --- a/src/qtquick/views/MainWindow_qtquick.cpp +++ b/src/qtquick/views/MainWindow_qtquick.cpp @@ -100,7 +100,7 @@ QSize MainWindow_qtquick::minSize() const return m_mainWindow->layout()->layoutMinimumSize(); } -QSize MainWindow_qtquick::maximumSize() const +QSize MainWindow_qtquick::maxSizeHint() const { return m_mainWindow->layout()->layoutMaximumSizeHint(); } diff --git a/src/qtquick/views/MainWindow_qtquick.h b/src/qtquick/views/MainWindow_qtquick.h index 380b115c..299c68b2 100644 --- a/src/qtquick/views/MainWindow_qtquick.h +++ b/src/qtquick/views/MainWindow_qtquick.h @@ -56,7 +56,7 @@ public: QSize minSize() const override; /// @reimp - QSize maximumSize() const override; + QSize maxSizeHint() const override; #ifdef Q_MOC_RUN Q_INVOKABLE bool closeDockWidgets(bool force = false); diff --git a/src/qtquick/views/ViewWrapper_qtquick.cpp b/src/qtquick/views/ViewWrapper_qtquick.cpp index ba0472b4..7c79e64c 100644 --- a/src/qtquick/views/ViewWrapper_qtquick.cpp +++ b/src/qtquick/views/ViewWrapper_qtquick.cpp @@ -228,10 +228,10 @@ bool ViewWrapper_qtquick::isMinimized() const return false; } -QSize ViewWrapper_qtquick::maximumSize() const +QSize ViewWrapper_qtquick::maxSizeHint() const { if (auto view = unwrap()) { - return view->maximumSize(); + return view->maxSizeHint(); } else { const QSize max = m_item->property("kddockwidgets_max_size").toSize(); return max.isEmpty() ? Layouting::Item::hardcodedMaximumSize diff --git a/src/qtquick/views/ViewWrapper_qtquick.h b/src/qtquick/views/ViewWrapper_qtquick.h index 801a9fdd..e045f425 100644 --- a/src/qtquick/views/ViewWrapper_qtquick.h +++ b/src/qtquick/views/ViewWrapper_qtquick.h @@ -35,7 +35,7 @@ public: void activateWindow() override; bool isMaximized() const override; bool isMinimized() const override; - QSize maximumSize() const override; + QSize maxSizeHint() const override; void setSize(int width, int height) override; bool is(Type) const override; std::shared_ptr childViewAt(QPoint) const override; diff --git a/src/qtquick/views/View_qtquick.cpp b/src/qtquick/views/View_qtquick.cpp index 3943b7f6..4afbe07d 100644 --- a/src/qtquick/views/View_qtquick.cpp +++ b/src/qtquick/views/View_qtquick.cpp @@ -428,11 +428,6 @@ QSize View_qtquick::maxSizeHint() const : max.boundedTo(Layouting::Item::hardcodedMaximumSize); } -QSize View_qtquick::maximumSize() const -{ - return maxSizeHint(); -} - QRect View_qtquick::geometry() const { if (isRootView()) { @@ -456,7 +451,7 @@ void View_qtquick::setNormalGeometry(QRect geo) void View_qtquick::setMaximumSize(QSize sz) { - if (maximumSize() != sz) { + if (maxSizeHint() != sz) { setProperty("kddockwidgets_max_size", sz); updateGeometry(); View::d->layoutInvalidated.emit(); diff --git a/src/qtquick/views/View_qtquick.h b/src/qtquick/views/View_qtquick.h index aed16810..76c157db 100644 --- a/src/qtquick/views/View_qtquick.h +++ b/src/qtquick/views/View_qtquick.h @@ -67,7 +67,6 @@ public: QSize sizeHint() const override; QSize minSize() const override; QSize maxSizeHint() const override; - QSize maximumSize() const override; QRect geometry() const override; QRect normalGeometry() const override; void setNormalGeometry(QRect geo); diff --git a/src/qtwidgets/views/ViewWrapper_qtwidgets.cpp b/src/qtwidgets/views/ViewWrapper_qtwidgets.cpp index b05b2fdb..7d3de9f4 100644 --- a/src/qtwidgets/views/ViewWrapper_qtwidgets.cpp +++ b/src/qtwidgets/views/ViewWrapper_qtwidgets.cpp @@ -202,11 +202,6 @@ bool ViewWrapper_qtwidgets::isMinimized() const return m_widget->isMinimized(); } -QSize ViewWrapper_qtwidgets::maximumSize() const -{ - return m_widget->maximumSize(); -} - void ViewWrapper_qtwidgets::setSize(int x, int y) { m_widget->resize(x, y); @@ -387,3 +382,8 @@ SizePolicy ViewWrapper_qtwidgets::verticalSizePolicy() const { return SizePolicy(m_widget->sizePolicy().verticalPolicy()); } + +QSize ViewWrapper_qtwidgets::maxSizeHint() const +{ + return m_widget->maximumSize(); +} diff --git a/src/qtwidgets/views/ViewWrapper_qtwidgets.h b/src/qtwidgets/views/ViewWrapper_qtwidgets.h index b0b3d50c..3b27379a 100644 --- a/src/qtwidgets/views/ViewWrapper_qtwidgets.h +++ b/src/qtwidgets/views/ViewWrapper_qtwidgets.h @@ -35,7 +35,6 @@ public: void activateWindow() override; bool isMaximized() const override; bool isMinimized() const override; - QSize maximumSize() const override; void setSize(int width, int height) override; bool is(Type) const override; std::shared_ptr window() const override; @@ -59,6 +58,7 @@ public: Qt::FocusPolicy focusPolicy() const override; void setFocusPolicy(Qt::FocusPolicy) override; bool hasFocus() const override; + QSize maxSizeHint() const override; SizePolicy horizontalSizePolicy() const override; SizePolicy verticalSizePolicy() const override; QWidget *widget() const; diff --git a/src/qtwidgets/views/View_qtwidgets.h b/src/qtwidgets/views/View_qtwidgets.h index e09af1f4..d6eb1e2c 100644 --- a/src/qtwidgets/views/View_qtwidgets.h +++ b/src/qtwidgets/views/View_qtwidgets.h @@ -78,7 +78,7 @@ public: // to have a max size honoured const QSize min = minSize(); - QSize max = maximumSize(); + QSize max = Base::maximumSize(); max = boundedMaxSize(min, max); // for safety against weird values const SizePolicy vPolicy = verticalSizePolicy(); @@ -93,11 +93,6 @@ public: return max; } - QSize maximumSize() const override - { - return Base::maximumSize(); - } - QRect geometry() const override { return Base::geometry(); diff --git a/tests/qtwidgets/tst_qtwidgets.cpp b/tests/qtwidgets/tst_qtwidgets.cpp index 0db41ecc..f3c9e482 100644 --- a/tests/qtwidgets/tst_qtwidgets.cpp +++ b/tests/qtwidgets/tst_qtwidgets.cpp @@ -1179,7 +1179,7 @@ void TestQtWidgets::tst_maxSizePropagates() QCOMPARE(dock1->view()->minSize(), w->minSize()); - QCOMPARE(dock1->view()->maximumSize(), w->maximumSize()); + QCOMPARE(dock1->view()->maxSizeHint(), w->maxSizeHint()); w->setMinimumSize(QSize(121, 121)); w->setMaximumSize(QSize(501, 501)); @@ -1187,11 +1187,11 @@ void TestQtWidgets::tst_maxSizePropagates() Platform::instance()->tests_waitForEvent(w, QEvent::LayoutRequest); QCOMPARE(dock1->view()->minSize(), w->minSize()); - QCOMPARE(dock1->view()->maximumSize(), w->maximumSize()); + QCOMPARE(dock1->view()->maxSizeHint(), w->maxSizeHint()); // Now let's see if our Frame also has proper size-constraints Controllers::Group *group = dock1->dptr()->group(); - QCOMPARE(group->view()->maxSizeHint().expandedTo(w->maximumSize()), + QCOMPARE(group->view()->maxSizeHint().expandedTo(w->maxSizeHint()), group->view()->maxSizeHint()); } @@ -1213,21 +1213,21 @@ void TestQtWidgets::tst_maxSizedFloatingWindow() auto window2 = dock2->window(); Platform::instance()->tests_waitForEvent(window1.get(), QEvent::LayoutRequest); - QVERIFY(window1->maximumSize().width() < 500); - QVERIFY(window1->maximumSize().height() < 500); - QVERIFY(window2->maximumSize().width() > 500); - QVERIFY(window2->maximumSize().height() > 500); + QVERIFY(window1->maxSizeHint().width() < 500); + QVERIFY(window1->maxSizeHint().height() < 500); + QVERIFY(window2->maxSizeHint().width() > 500); + QVERIFY(window2->maxSizeHint().height() > 500); auto hasMax = [&window1] { - const QSize max = window1->maximumSize(); + const QSize max = window1->maxSizeHint(); return max.width() < 500 && max.height() < 500; }; // Adding side-by-side, we don't honour max size (yet) dock1->addDockWidgetToContainingWindow(dock2, Location_OnBottom); Platform::instance()->tests_waitForEvent(window1.get(), QEvent::LayoutRequest); - QVERIFY(window1->maximumSize().width() > 500); - QVERIFY(window1->maximumSize().height() > 500); + QVERIFY(window1->maxSizeHint().width() > 500); + QVERIFY(window1->maxSizeHint().height() > 500); // Close dw2, we have a single dock widget again, we honour max-size dock2->close();