diff options
| author | Shawn Rutledge <shawn.rutledge@digia.com> | 2014-02-07 16:29:31 +0100 |
|---|---|---|
| committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-02-15 21:52:47 +0100 |
| commit | ccb088a6beaff01419ec9325dbd19040f279b6ea (patch) | |
| tree | ae1753ab02284a1fd69b30d6086a40b9faf6fc91 /src/dialogs/qquickabstractdialog.cpp | |
| parent | f212322a6ecb237d5fb53e56c6dafffb87e45f09 (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.cpp | 27 |
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()); |
