diff options
Diffstat (limited to 'src/widgets/graphicsview/qgraphicssceneevent.cpp')
-rw-r--r-- | src/widgets/graphicsview/qgraphicssceneevent.cpp | 158 |
1 files changed, 104 insertions, 54 deletions
diff --git a/src/widgets/graphicsview/qgraphicssceneevent.cpp b/src/widgets/graphicsview/qgraphicssceneevent.cpp index 398ef1aaf5..0ace03b553 100644 --- a/src/widgets/graphicsview/qgraphicssceneevent.cpp +++ b/src/widgets/graphicsview/qgraphicssceneevent.cpp @@ -1,41 +1,5 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtWidgets module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only /*! \class QGraphicsSceneEvent @@ -278,8 +242,8 @@ class QGraphicsSceneEventPrivate { public: inline QGraphicsSceneEventPrivate() - : widget(0), - q_ptr(0) + : widget(nullptr), + q_ptr(nullptr) { } inline virtual ~QGraphicsSceneEventPrivate() @@ -287,6 +251,7 @@ public: QWidget *widget; QGraphicsSceneEvent *q_ptr; + quint64 timestamp = 0; }; /*! @@ -319,8 +284,8 @@ QGraphicsSceneEvent::~QGraphicsSceneEvent() } /*! - Returns the widget where the event originated, or 0 if the event - originates from another application. + Returns the widget where the event originated, or \nullptr if the + event originates from another application. */ QWidget *QGraphicsSceneEvent::widget() const { @@ -339,13 +304,32 @@ void QGraphicsSceneEvent::setWidget(QWidget *widget) d_ptr->widget = widget; } +/*! + \since 6.2 + + Returns the timestamp of the original event, or 0 if the + original event does not report a time stamp. +*/ +quint64 QGraphicsSceneEvent::timestamp() const +{ + return d_ptr->timestamp; +} +/*! + \internal + + Sets the timestamp for the event to \a ts. +*/ +void QGraphicsSceneEvent::setTimestamp(quint64 ts) +{ + d_ptr->timestamp = ts; +} + class QGraphicsSceneMouseEventPrivate : public QGraphicsSceneEventPrivate { Q_DECLARE_PUBLIC(QGraphicsSceneMouseEvent) public: inline QGraphicsSceneMouseEventPrivate() - : button(Qt::NoButton), - buttons(0), modifiers(0), source(Qt::MouseEventNotSynthesized), flags(0) + : button(Qt::NoButton), source(Qt::MouseEventNotSynthesized) { } QPointF pos; @@ -691,17 +675,18 @@ class QGraphicsSceneWheelEventPrivate : public QGraphicsSceneEventPrivate { Q_DECLARE_PUBLIC(QGraphicsSceneWheelEvent) public: - inline QGraphicsSceneWheelEventPrivate() - : buttons(0), modifiers(0), delta(0), orientation(Qt::Horizontal) - { } + inline QGraphicsSceneWheelEventPrivate() = default; QPointF pos; QPointF scenePos; QPoint screenPos; + QPoint pixelDelta; Qt::MouseButtons buttons; Qt::KeyboardModifiers modifiers; - int delta; - Qt::Orientation orientation; + int delta = 0; + Qt::Orientation orientation = Qt::Horizontal; + Qt::ScrollPhase scrollPhase = Qt::NoScrollPhase; + bool inverted = false; }; /*! @@ -868,19 +853,84 @@ void QGraphicsSceneWheelEvent::setOrientation(Qt::Orientation orientation) d->orientation = orientation; } +/*! + \since 6.2 + + Returns the scrolling phase of this wheel event. + + \sa QWheelEvent::phase +*/ +Qt::ScrollPhase QGraphicsSceneWheelEvent::phase() const +{ + Q_D(const QGraphicsSceneWheelEvent); + return d->scrollPhase; +} + +/*! + \internal +*/ +void QGraphicsSceneWheelEvent::setPhase(Qt::ScrollPhase scrollPhase) +{ + Q_D(QGraphicsSceneWheelEvent); + d->scrollPhase = scrollPhase; +} + +/*! + \since 6.2 + + Returns the scrolling distance in pixels on screen. This value is + provided on platforms that support high-resolution pixel-based + delta values, such as \macos. The value should be used directly + to scroll content on screen. + + \sa QWheelEvent::pixelDelta +*/ +QPoint QGraphicsSceneWheelEvent::pixelDelta() const +{ + Q_D(const QGraphicsSceneWheelEvent); + return d->pixelDelta; +} + +/*! + \internal +*/ +void QGraphicsSceneWheelEvent::setPixelDelta(QPoint pixelDelta) +{ + Q_D(QGraphicsSceneWheelEvent); + d->pixelDelta = pixelDelta; +} + +/*! + Returns whether the delta values delivered with the event are inverted. + + \since 6.2 +*/ +bool QGraphicsSceneWheelEvent::isInverted() const +{ + Q_D(const QGraphicsSceneWheelEvent); + return d->inverted; +} + +/*! + \internal +*/ +void QGraphicsSceneWheelEvent::setInverted(bool inverted) +{ + Q_D(QGraphicsSceneWheelEvent); + d->inverted = inverted; +} + class QGraphicsSceneContextMenuEventPrivate : public QGraphicsSceneEventPrivate { Q_DECLARE_PUBLIC(QGraphicsSceneContextMenuEvent) public: - inline QGraphicsSceneContextMenuEventPrivate() - : modifiers(0), reason(QGraphicsSceneContextMenuEvent::Other) - { } + inline QGraphicsSceneContextMenuEventPrivate() = default; QPointF pos; QPointF scenePos; QPoint screenPos; Qt::KeyboardModifiers modifiers; - QGraphicsSceneContextMenuEvent::Reason reason; + QGraphicsSceneContextMenuEvent::Reason reason = QGraphicsSceneContextMenuEvent::Other; }; /*! @@ -1295,7 +1345,7 @@ class QGraphicsSceneDragDropEventPrivate : public QGraphicsSceneEventPrivate Q_DECLARE_PUBLIC(QGraphicsSceneDragDropEvent) public: inline QGraphicsSceneDragDropEventPrivate() - : source(0), mimeData(0) + : source(nullptr), mimeData(nullptr) { } QPointF pos; |