summaryrefslogtreecommitdiffstats
path: root/src/dialogs/qquickabstractdialog.cpp
diff options
context:
space:
mode:
authorShawn Rutledge <shawn.rutledge@digia.com>2014-02-07 16:29:31 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-02-15 21:52:47 +0100
commitccb088a6beaff01419ec9325dbd19040f279b6ea (patch)
treeae1753ab02284a1fd69b30d6086a40b9faf6fc91 /src/dialogs/qquickabstractdialog.cpp
parentf212322a6ecb237d5fb53e56c6dafffb87e45f09 (diff)
QtQuick.Dialogs: added Dialog: wrapper for arbitrary content
It provides only a button box, so the application developer can supply the rest of the dialog contents. This is useful for various kinds of dialogs that prompt the user for input. [ChangeLog][QtQuickDialogs][Dialog] Dialog is a new wrapper component for dialogs with standard buttons and custom content items. Change-Id: I0434bed5f504820dc0a668cb993a94980f99852a Reviewed-by: Liang Qi <liang.qi@digia.com>
Diffstat (limited to 'src/dialogs/qquickabstractdialog.cpp')
-rw-r--r--src/dialogs/qquickabstractdialog.cpp27
1 files changed, 26 insertions, 1 deletions
diff --git a/src/dialogs/qquickabstractdialog.cpp b/src/dialogs/qquickabstractdialog.cpp
index 9bb238874..92bad9bf9 100644
--- a/src/dialogs/qquickabstractdialog.cpp
+++ b/src/dialogs/qquickabstractdialog.cpp
@@ -103,7 +103,20 @@ void QQuickAbstractDialog::setVisible(bool v)
((QObject *)win)->setParent(this); // memory management only
m_dialogWindow = win;
m_contentItem->setParentItem(win->contentItem());
- m_dialogWindow->setMinimumSize(QSize(m_contentItem->implicitWidth(), m_contentItem->implicitHeight()));
+ QSize minSize = QSize(m_contentItem->implicitWidth(), m_contentItem->implicitHeight());
+ QVariant minHeight = m_contentItem->property("minimumHeight");
+ if (minHeight.isValid()) {
+ if (minHeight.toInt() > minSize.height())
+ minSize.setHeight(minHeight.toDouble());
+ connect(m_contentItem, SIGNAL(minimumHeightChanged()), this, SLOT(minimumHeightChanged()));
+ }
+ QVariant minWidth = m_contentItem->property("minimumWidth");
+ if (minWidth.isValid()) {
+ if (minWidth.toInt() > minSize.width())
+ minSize.setWidth(minWidth.toInt());
+ connect(m_contentItem, SIGNAL(minimumWidthChanged()), this, SLOT(minimumWidthChanged()));
+ }
+ m_dialogWindow->setMinimumSize(minSize);
connect(win, SIGNAL(widthChanged(int)), this, SLOT(windowGeometryChanged()));
connect(win, SIGNAL(heightChanged(int)), this, SLOT(windowGeometryChanged()));
}
@@ -230,6 +243,18 @@ void QQuickAbstractDialog::windowGeometryChanged()
}
}
+void QQuickAbstractDialog::minimumWidthChanged()
+{
+ m_dialogWindow->setMinimumWidth(qMax(m_contentItem->implicitWidth(),
+ m_contentItem->property("minimumWidth").toReal()));
+}
+
+void QQuickAbstractDialog::minimumHeightChanged()
+{
+ m_dialogWindow->setMinimumHeight(qMax(m_contentItem->implicitHeight(),
+ m_contentItem->property("minimumHeight").toReal()));
+}
+
QQuickWindow *QQuickAbstractDialog::parentWindow()
{
QQuickItem *parentItem = qobject_cast<QQuickItem *>(parent());