summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShawn Rutledge <shawn.rutledge@digia.com>2016-05-10 08:36:58 +0200
committerLiang Qi <liang.qi@qt.io>2016-05-10 17:16:22 +0000
commit0e00f9fa1cbdbdd2128f2ca31172d88f701ecb59 (patch)
treeb123d2f46fc7894da5b632178a67dc8efd683254
parent57a7bc73545b137dccc098bc07aeaf9dd9bf8207 (diff)
downloadqtquickcontrols-0e00f9fa1cbdbdd2128f2ca31172d88f701ecb59.tar.gz
Dialogs: enforce changes in minimum size
On OS X, if visible: true is declared, the dialog can be shown before the changes in 10f0ae7c571b7e0de41d5fdc5627db6a1ddeb926 are able to set the minimumWidth/Height properties. QWindow::setMinimumWidth() also does not force the window to be wider if it is already shown. Task-number: QTBUG-49058 Change-Id: Id87d92072904555639e1695851d908550d22fe86 Reviewed-by: Alberto Mardegan <mardy@users.sourceforge.net> Reviewed-by: Nikita Krupenko <krnekit@gmail.com> Reviewed-by: Liang Qi <liang.qi@qt.io>
-rw-r--r--src/dialogs/qquickabstractdialog.cpp13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/dialogs/qquickabstractdialog.cpp b/src/dialogs/qquickabstractdialog.cpp
index 874b9be0..6326300e 100644
--- a/src/dialogs/qquickabstractdialog.cpp
+++ b/src/dialogs/qquickabstractdialog.cpp
@@ -135,7 +135,7 @@ void QQuickAbstractDialog::setVisible(bool v)
m_dialogWindow->setMinimumSize(minSize);
connect(win, SIGNAL(widthChanged(int)), this, SLOT(windowGeometryChanged()));
connect(win, SIGNAL(heightChanged(int)), this, SLOT(windowGeometryChanged()));
- qCDebug(lcWindow) << "created window" << win;
+ qCDebug(lcWindow) << "created window" << win << "with min size" << win->minimumSize() << "geometry" << win->geometry();
}
if (!m_dialogWindow) {
@@ -279,16 +279,21 @@ void QQuickAbstractDialog::windowGeometryChanged()
void QQuickAbstractDialog::minimumWidthChanged()
{
qreal min = m_contentItem->property("minimumWidth").toReal();
+ qreal implicitOrMin = qMax(m_contentItem->implicitWidth(), min);
qCDebug(lcWindow) << "content implicitWidth" << m_contentItem->implicitWidth() << "minimumWidth" << min;
- m_dialogWindow->setMinimumWidth(qMax(m_contentItem->implicitWidth(), min));
+ if (m_dialogWindow->width() < implicitOrMin)
+ m_dialogWindow->setWidth(implicitOrMin);
+ m_dialogWindow->setMinimumWidth(implicitOrMin);
}
void QQuickAbstractDialog::minimumHeightChanged()
{
qreal min = m_contentItem->property("minimumHeight").toReal();
+ qreal implicitOrMin = qMax(m_contentItem->implicitHeight(), min);
qCDebug(lcWindow) << "content implicitHeight" << m_contentItem->implicitHeight() << "minimumHeight" << min;
- m_dialogWindow->setMinimumHeight(qMax(m_contentItem->implicitHeight(),
- m_contentItem->property("minimumHeight").toReal()));
+ if (m_dialogWindow->height() < implicitOrMin)
+ m_dialogWindow->setHeight(implicitOrMin);
+ m_dialogWindow->setMinimumHeight(implicitOrMin);
}
void QQuickAbstractDialog::implicitHeightChanged()