aboutsummaryrefslogtreecommitdiffstats
path: root/src/imports/calendar/qquickmonthgrid.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/imports/calendar/qquickmonthgrid.cpp')
-rw-r--r--src/imports/calendar/qquickmonthgrid.cpp75
1 files changed, 40 insertions, 35 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);