diff options
Diffstat (limited to 'src/quicktemplates2/qquickpopup.cpp')
-rw-r--r-- | src/quicktemplates2/qquickpopup.cpp | 59 |
1 files changed, 56 insertions, 3 deletions
diff --git a/src/quicktemplates2/qquickpopup.cpp b/src/quicktemplates2/qquickpopup.cpp index 21303ffe..fd8d9b51 100644 --- a/src/quicktemplates2/qquickpopup.cpp +++ b/src/quicktemplates2/qquickpopup.cpp @@ -64,7 +64,7 @@ QT_BEGIN_NAMESPACE \qml import QtQuick.Window 2.2 - import QtQuick.Controls 2.0 + import QtQuick.Controls 2.1 ApplicationWindow { id: window @@ -436,6 +436,8 @@ public: void resolveFont() override; + QQuickItem *getContentItem() override; + int backId; int escapeId; QQuickPopup *popup; @@ -467,6 +469,14 @@ void QQuickPopupItemPrivate::resolveFont() inheritFont(window->font()); } +QQuickItem *QQuickPopupItemPrivate::getContentItem() +{ + Q_Q(QQuickPopupItem); + if (!contentItem) + contentItem = new QQuickItem(q); + return contentItem; +} + QQuickPopupItem::QQuickPopupItem(QQuickPopup *popup) : QQuickControl(*(new QQuickPopupItemPrivate(popup)), nullptr) { @@ -476,7 +486,7 @@ QQuickPopupItem::QQuickPopupItem(QQuickPopup *popup) : setAcceptedMouseButtons(Qt::AllButtons); // TODO: switch to QStyleHints::useHoverEffects in Qt 5.8 - setAcceptHoverEvents(true); + setHoverEnabled(true); // setAcceptHoverEvents(QGuiApplication::styleHints()->useHoverEffects()); // connect(QGuiApplication::styleHints(), &QStyleHints::useHoverEffectsChanged, this, &QQuickItem::setAcceptHoverEvents); } @@ -636,6 +646,13 @@ void QQuickPopupItem::paddingChange(const QMarginsF &newPadding, const QMarginsF d->popup->paddingChange(newPadding, oldPadding); } +void QQuickPopupItem::spacingChange(qreal newSpacing, qreal oldSpacing) +{ + Q_D(QQuickPopupItem); + QQuickControl::spacingChange(newSpacing, oldSpacing); + d->popup->spacingChange(newSpacing, oldSpacing); +} + QFont QQuickPopupItem::defaultFont() const { Q_D(const QQuickPopupItem); @@ -698,7 +715,7 @@ void QQuickPopupPositioner::setParentItem(QQuickItem *parent) m_popup->reposition(); } -void QQuickPopupPositioner::itemGeometryChanged(QQuickItem *, const QRectF &, const QRectF &) +void QQuickPopupPositioner::itemGeometryChanged(QQuickItem *, QQuickGeometryChange, const QRectF &) { if (m_parentItem && m_popup->popupItem->isVisible()) m_popup->reposition(); @@ -1265,6 +1282,35 @@ qreal QQuickPopup::availableHeight() const } /*! + \since QtQuick.Controls 2.1 + \qmlproperty real QtQuick.Controls::Popup::spacing + + This property holds the spacing. + + Spacing is useful for popups that have multiple or repetitive building + blocks. For example, some styles use spacing to determine the distance + between the header, content, and footer of \l Dialog. Spacing is not + enforced by Popup, so each style may interpret it differently, and some + may ignore it altogether. +*/ +qreal QQuickPopup::spacing() const +{ + Q_D(const QQuickPopup); + return d->popupItem->spacing(); +} + +void QQuickPopup::setSpacing(qreal spacing) +{ + Q_D(QQuickPopup); + d->popupItem->setSpacing(spacing); +} + +void QQuickPopup::resetSpacing() +{ + setSpacing(0); +} + +/*! \qmlproperty real QtQuick.Controls::Popup::margins This property holds the default margins around the popup. @@ -2348,6 +2394,13 @@ void QQuickPopup::paddingChange(const QMarginsF &newPadding, const QMarginsF &ol emit availableHeightChanged(); } +void QQuickPopup::spacingChange(qreal newSpacing, qreal oldSpacing) +{ + Q_UNUSED(newSpacing); + Q_UNUSED(oldSpacing); + emit spacingChanged(); +} + QFont QQuickPopup::defaultFont() const { return QQuickControlPrivate::themeFont(QPlatformTheme::SystemFont); |