diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/imports/calendar/qquickmonthgrid.cpp | 75 | ||||
-rw-r--r-- | src/imports/calendar/qquickmonthgrid_p.h | 4 | ||||
-rw-r--r-- | src/quicktemplates2/qquickmenu.cpp | 7 | ||||
-rw-r--r-- | src/quicktemplates2/qquickrangeslider.cpp | 4 | ||||
-rw-r--r-- | src/quicktemplates2/qquickshortcutcontext.cpp | 3 |
5 files changed, 47 insertions, 46 deletions
diff --git a/src/imports/calendar/qquickmonthgrid.cpp b/src/imports/calendar/qquickmonthgrid.cpp index 9621f49a..46b18db6 100644 --- a/src/imports/calendar/qquickmonthgrid.cpp +++ b/src/imports/calendar/qquickmonthgrid.cpp @@ -106,12 +106,17 @@ public: void resizeItems(); - QQuickItem *cellAt(const QPoint &pos) const; + QQuickItem *cellAt(const QPointF &pos) const; QDate dateOf(QQuickItem *cell) const; - void updatePress(const QPoint &pos); + void updatePress(const QPointF &pos); void clearPress(bool clicked); + void handlePress(const QPointF &point) override; + void handleMove(const QPointF &point) override; + void handleRelease(const QPointF &point) override; + void handleUngrab() override; + static void setContextProperty(QQuickItem *item, const QString &name, const QVariant &value); QString title; @@ -133,11 +138,13 @@ void QQuickMonthGridPrivate::resizeItems() itemSize.setHeight((contentItem->height() - 5 * spacing) / 6); const auto childItems = contentItem->childItems(); - for (QQuickItem *item : childItems) - item->setSize(itemSize); + for (QQuickItem *item : childItems) { + if (!QQuickItemPrivate::get(item)->isTransparentForPositioner()) + item->setSize(itemSize); + } } -QQuickItem *QQuickMonthGridPrivate::cellAt(const QPoint &pos) const +QQuickItem *QQuickMonthGridPrivate::cellAt(const QPointF &pos) const { Q_Q(const QQuickMonthGrid); if (contentItem) { @@ -154,7 +161,7 @@ QDate QQuickMonthGridPrivate::dateOf(QQuickItem *cell) const return QDate(); } -void QQuickMonthGridPrivate::updatePress(const QPoint &pos) +void QQuickMonthGridPrivate::updatePress(const QPointF &pos) { Q_Q(QQuickMonthGrid); clearPress(false); @@ -178,6 +185,33 @@ void QQuickMonthGridPrivate::clearPress(bool clicked) pressedItem = nullptr; } +void QQuickMonthGridPrivate::handlePress(const QPointF &point) +{ + Q_Q(QQuickMonthGrid); + QQuickControlPrivate::handlePress(point); + updatePress(point); + if (pressedDate.isValid()) + pressTimer = q->startTimer(qGuiApp->styleHints()->mousePressAndHoldInterval()); +} + +void QQuickMonthGridPrivate::handleMove(const QPointF &point) +{ + QQuickControlPrivate::handleMove(point); + updatePress(point); +} + +void QQuickMonthGridPrivate::handleRelease(const QPointF &point) +{ + QQuickControlPrivate::handleRelease(point); + clearPress(true); +} + +void QQuickMonthGridPrivate::handleUngrab() +{ + QQuickControlPrivate::handleUngrab(); + clearPress(false); +} + void QQuickMonthGridPrivate::setContextProperty(QQuickItem *item, const QString &name, const QVariant &value) { QQmlContext *context = qmlContext(item); @@ -402,35 +436,6 @@ void QQuickMonthGrid::updatePolish() d->resizeItems(); } -void QQuickMonthGrid::mousePressEvent(QMouseEvent *event) -{ - Q_D(QQuickMonthGrid); - d->updatePress(event->pos()); - if (d->pressedDate.isValid()) - d->pressTimer = startTimer(qGuiApp->styleHints()->mousePressAndHoldInterval()); - event->accept(); -} - -void QQuickMonthGrid::mouseMoveEvent(QMouseEvent *event) -{ - Q_D(QQuickMonthGrid); - d->updatePress(event->pos()); - event->accept(); -} - -void QQuickMonthGrid::mouseReleaseEvent(QMouseEvent *event) -{ - Q_D(QQuickMonthGrid); - d->clearPress(true); - event->accept(); -} - -void QQuickMonthGrid::mouseUngrabEvent() -{ - Q_D(QQuickMonthGrid); - d->clearPress(false); -} - void QQuickMonthGrid::timerEvent(QTimerEvent *event) { Q_D(QQuickMonthGrid); diff --git a/src/imports/calendar/qquickmonthgrid_p.h b/src/imports/calendar/qquickmonthgrid_p.h index 20c9c0fd..b85e0921 100644 --- a/src/imports/calendar/qquickmonthgrid_p.h +++ b/src/imports/calendar/qquickmonthgrid_p.h @@ -101,10 +101,6 @@ protected: void paddingChange(const QMarginsF &newPadding, const QMarginsF &oldPadding) override; void updatePolish() override; - void mousePressEvent(QMouseEvent *event) override; - void mouseMoveEvent(QMouseEvent *event) override; - void mouseReleaseEvent(QMouseEvent *event) override; - void mouseUngrabEvent() override; void timerEvent(QTimerEvent *event) override; private: diff --git a/src/quicktemplates2/qquickmenu.cpp b/src/quicktemplates2/qquickmenu.cpp index 4afac541..14449ad5 100644 --- a/src/quicktemplates2/qquickmenu.cpp +++ b/src/quicktemplates2/qquickmenu.cpp @@ -170,10 +170,8 @@ static const int SUBMENU_DELAY = 225; \sa {Customizing Menu}, {Menu Controls}, {Popup Controls} */ -static const QQuickPopup::ClosePolicy defaultMenuClosePolicy = - QQuickPopup::CloseOnEscape | QQuickPopup::CloseOnPressOutside | QQuickPopup::CloseOnReleaseOutside; -static const QQuickPopup::ClosePolicy cascadingSubMenuClosePolicy = - QQuickPopup::CloseOnEscape | QQuickPopup::CloseOnPressOutsideParent | QQuickPopup::CloseOnReleaseOutsideParent; +static const QQuickPopup::ClosePolicy defaultMenuClosePolicy = QQuickPopup::CloseOnEscape | QQuickPopup::CloseOnPressOutside; +static const QQuickPopup::ClosePolicy cascadingSubMenuClosePolicy = QQuickPopup::CloseOnEscape | QQuickPopup::CloseOnPressOutsideParent; static bool shouldCascade() { @@ -596,7 +594,6 @@ QQuickMenu::QQuickMenu(QObject *parent) : QQuickPopup(*(new QQuickMenuPrivate), parent) { setFocus(true); - setClosePolicy(defaultMenuClosePolicy); } /*! diff --git a/src/quicktemplates2/qquickrangeslider.cpp b/src/quicktemplates2/qquickrangeslider.cpp index 3c9065db..154688b2 100644 --- a/src/quicktemplates2/qquickrangeslider.cpp +++ b/src/quicktemplates2/qquickrangeslider.cpp @@ -632,7 +632,7 @@ void QQuickRangeSlider::setTo(qreal to) \li This property holds the value of the first handle in the range \c from - \c to. - If \l to is greater than \l from, the value of the first handle + If \l from is greater than \l to, the value of the first handle must be greater than the second, and vice versa. The default value is \c 0.0. @@ -689,7 +689,7 @@ QQuickRangeSliderNode *QQuickRangeSlider::first() const \li This property holds the value of the second handle in the range \c from - \c to. - If \l to is greater than \l from, the value of the first handle + If \l from is greater than \l to, the value of the first handle must be greater than the second, and vice versa. The default value is \c 0.0. diff --git a/src/quicktemplates2/qquickshortcutcontext.cpp b/src/quicktemplates2/qquickshortcutcontext.cpp index 978d1869..6553beb4 100644 --- a/src/quicktemplates2/qquickshortcutcontext.cpp +++ b/src/quicktemplates2/qquickshortcutcontext.cpp @@ -36,6 +36,7 @@ #include "qquickshortcutcontext_p_p.h" #include "qquickoverlay_p_p.h" +#include "qquicktooltip_p.h" #include "qquickpopup_p.h" #include <QtGui/qguiapplication.h> @@ -50,6 +51,8 @@ static bool isBlockedByPopup(QQuickItem *item) QQuickOverlay *overlay = QQuickOverlay::overlay(item->window()); const auto popups = QQuickOverlayPrivate::get(overlay)->stackingOrderPopups(); for (QQuickPopup *popup : popups) { + if (qobject_cast<QQuickToolTip *>(popup)) + continue; // ignore tooltips (QTBUG-60492) if (popup->isModal() || popup->closePolicy() & QQuickPopup::CloseOnEscape) return item != popup->popupItem() && !popup->popupItem()->isAncestorOf(item); } |