aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/imports/calendar/qquickmonthgrid.cpp75
-rw-r--r--src/imports/calendar/qquickmonthgrid_p.h4
-rw-r--r--src/quicktemplates2/qquickmenu.cpp7
-rw-r--r--src/quicktemplates2/qquickrangeslider.cpp4
-rw-r--r--src/quicktemplates2/qquickshortcutcontext.cpp3
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);
}