diff options
Diffstat (limited to 'src/gui/kernel')
-rw-r--r-- | src/gui/kernel/qevent.cpp | 218 | ||||
-rw-r--r-- | src/gui/kernel/qevent.h | 30 | ||||
-rw-r--r-- | src/gui/kernel/qguiapplication.cpp | 5 | ||||
-rw-r--r-- | src/gui/kernel/qopenglcontext.cpp | 2 | ||||
-rw-r--r-- | src/gui/kernel/qstylehints.cpp | 44 | ||||
-rw-r--r-- | src/gui/kernel/qstylehints.h | 4 |
6 files changed, 120 insertions, 183 deletions
diff --git a/src/gui/kernel/qevent.cpp b/src/gui/kernel/qevent.cpp index e1d685b1b0..ec52791010 100644 --- a/src/gui/kernel/qevent.cpp +++ b/src/gui/kernel/qevent.cpp @@ -754,31 +754,15 @@ QHoverEvent::~QHoverEvent() \fn Qt::Orientation QWheelEvent::orientation() const \obsolete - Returns the wheel's orientation. - Use angleDelta() instead. */ +#if QT_CONFIG(wheelevent) +#if QT_DEPRECATED_SINCE(5, 15) /*! \obsolete - Constructs a wheel event object. - - Use the constructor taking \e angleDelta and \e pixelDelta QPoints instead. - - The position, \a pos, is the location of the mouse cursor within - the widget. The globalPos() is initialized to QCursor::pos() - which is usually, but not always, correct. - Use the other constructor if you need to specify the global - position explicitly. - - The \a buttons describe the state of the mouse buttons at the time - of the event, \a delta contains the rotation distance, - \a modifiers holds the keyboard modifier flags at the time of the - event, and \a orient holds the wheel's orientation. - - \sa pos(), pixelDelta(), angleDelta() + This constructor has been deprecated. */ -#if QT_CONFIG(wheelevent) QWheelEvent::QWheelEvent(const QPointF &pos, int delta, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, Qt::Orientation orient) @@ -793,26 +777,8 @@ QWheelEvent::QWheelEvent(const QPointF &pos, int delta, } /*! - \internal -*/ -QWheelEvent::~QWheelEvent() -{ -} - -/*! \obsolete - Constructs a wheel event object. - - Use the constructor taking \e angleDelta and \e pixelDelta QPoints instead. - - The \a pos provides the location of the mouse cursor - within the widget. The position in global coordinates is specified - by \a globalPos. \a delta contains the rotation distance, \a modifiers - holds the keyboard modifier flags at the time of the event, and - \a orient holds the wheel's orientation. - - - \sa pos(), pixelDelta(), angleDelta() + This constructor has been deprecated. */ QWheelEvent::QWheelEvent(const QPointF &pos, const QPointF& globalPos, int delta, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, @@ -827,27 +793,8 @@ QWheelEvent::QWheelEvent(const QPointF &pos, const QPointF& globalPos, int delta } /*! - Constructs a wheel event object. - - The \a pos provides the location of the mouse cursor - within the window. The position in global coordinates is specified - by \a globalPos. - - \a pixelDelta contains the scrolling distance in pixels on screen, while - \a angleDelta contains the wheel rotation distance. \a pixelDelta is - optional and can be null. - - The mouse and keyboard states at the time of the event are specified by - \a buttons and \a modifiers. - - For backwards compatibility, the event can also hold monodirectional wheel - event data: \a qt4Delta specifies the rotation, and \a qt4Orientation the - direction. - - The phase() is initialized to Qt::ScrollUpdate. Use the other constructor - to specify the phase explicitly. - - \sa posF(), globalPosF(), angleDelta(), pixelDelta() + \obsolete + This constructor has been deprecated. */ QWheelEvent::QWheelEvent(const QPointF &pos, const QPointF& globalPos, @@ -858,26 +805,8 @@ QWheelEvent::QWheelEvent(const QPointF &pos, const QPointF& globalPos, {} /*! - Constructs a wheel event object. - - The \a pos provides the location of the mouse cursor - within the window. The position in global coordinates is specified - by \a globalPos. - - \a pixelDelta contains the scrolling distance in pixels on screen, while - \a angleDelta contains the wheel rotation distance. \a pixelDelta is - optional and can be null. - - The mouse and keyboard states at the time of the event are specified by - \a buttons and \a modifiers. - - For backwards compatibility, the event can also hold monodirectional wheel - event data: \a qt4Delta specifies the rotation, and \a qt4Orientation the - direction. - - The scrolling phase of the event is specified by \a phase. - - \sa posF(), globalPosF(), angleDelta(), pixelDelta(), phase() + \obsolete + This constructor has been deprecated. */ QWheelEvent::QWheelEvent(const QPointF &pos, const QPointF& globalPos, @@ -888,31 +817,8 @@ QWheelEvent::QWheelEvent(const QPointF &pos, const QPointF& globalPos, {} /*! - Constructs a wheel event object. - - The \a pos provides the location of the mouse cursor within the window. The - position in global coordinates is specified by \a globalPos. - - \a pixelDelta contains the scrolling distance in pixels on screen, while - \a angleDelta contains the wheel rotation distance. \a pixelDelta is - optional and can be null. - - The mouse and keyboard states at the time of the event are specified by - \a buttons and \a modifiers. - - For backwards compatibility, the event can also hold monodirectional wheel - event data: \a qt4Delta specifies the rotation, and \a qt4Orientation the - direction. - - The scrolling phase of the event is specified by \a phase. - - If the wheel event comes from a physical mouse wheel, \a source is set to - Qt::MouseEventNotSynthesized. If it comes from a gesture detected by the - operating system, or from a non-mouse hardware device, such that \a pixelDelta is - directly related to finger movement, \a source is set to Qt::MouseEventSynthesizedBySystem. - If it comes from Qt, source would be set to Qt::MouseEventSynthesizedByQt. - - \sa posF(), globalPosF(), angleDelta(), pixelDelta(), phase() + \obsolete + This constructor has been deprecated. */ QWheelEvent::QWheelEvent(const QPointF &pos, const QPointF& globalPos, @@ -923,37 +829,8 @@ QWheelEvent::QWheelEvent(const QPointF &pos, const QPointF& globalPos, {} /*! - Constructs a wheel event object. - - The \a pos provides the location of the mouse cursor - within the window. The position in global coordinates is specified - by \a globalPos. - - \a pixelDelta contains the scrolling distance in pixels on screen, while - \a angleDelta contains the wheel rotation distance. \a pixelDelta is - optional and can be null. - - The mouse and keyboard states at the time of the event are specified by - \a buttons and \a modifiers. - - For backwards compatibility, the event can also hold monodirectional wheel - event data: \a qt4Delta specifies the rotation, and \a qt4Orientation the - direction. - - The scrolling phase of the event is specified by \a phase. - - If the wheel event comes from a physical mouse wheel, \a source is set to - Qt::MouseEventNotSynthesized. If it comes from a gesture detected by the - operating system, or from a non-mouse hardware device, such that \a - pixelDelta is directly related to finger movement, \a source is set to - Qt::MouseEventSynthesizedBySystem. If it comes from Qt, source would be set - to Qt::MouseEventSynthesizedByQt. - - If the system is configured to invert the delta values delivered with the - event (such as natural scrolling of the touchpad on OS X), \a inverted - should be \c true. Otherwise, \a inverted is \c false - - \sa posF(), globalPosF(), angleDelta(), pixelDelta(), phase() + \obsolete + This constructor has been deprecated. */ QWheelEvent::QWheelEvent(const QPointF &pos, const QPointF& globalPos, QPoint pixelDelta, QPoint angleDelta, int qt4Delta, Qt::Orientation qt4Orientation, @@ -962,6 +839,7 @@ QWheelEvent::QWheelEvent(const QPointF &pos, const QPointF& globalPos, angleD(angleDelta), qt4D(qt4Delta), qt4O(qt4Orientation), mouseState(buttons), src(source), invertedScrolling(inverted), ph(phase) {} +#endif // QT_DEPRECATED_SINCE(5, 15) /*! Constructs a wheel event object. @@ -990,7 +868,7 @@ QWheelEvent::QWheelEvent(const QPointF &pos, const QPointF& globalPos, event (such as natural scrolling of the touchpad on macOS), \a inverted should be \c true. Otherwise, \a inverted is \c false - \sa posF(), globalPosF(), angleDelta(), pixelDelta(), phase() + \sa position(), globalPosition(), angleDelta(), pixelDelta(), phase(), inverted(), source() */ QWheelEvent::QWheelEvent(QPointF pos, QPointF globalPos, QPoint pixelDelta, QPoint angleDelta, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, Qt::ScrollPhase phase, @@ -1002,6 +880,12 @@ QWheelEvent::QWheelEvent(QPointF pos, QPointF globalPos, QPoint pixelDelta, QPoi qt4D = (qt4O == Qt::Horizontal ? angleDelta.x() : angleDelta.y()); } +/*! + \internal +*/ +QWheelEvent::~QWheelEvent() +{ +} #endif // QT_CONFIG(wheelevent) /*! @@ -1061,87 +945,59 @@ QWheelEvent::QWheelEvent(QPointF pos, QPointF globalPos, QPoint pixelDelta, QPoi /*! \fn QPoint QWheelEvent::pos() const + \obsolete - Returns the position of the mouse cursor relative to the widget - that received the event. - - If you move your widgets around in response to mouse events, - use globalPos() instead of this function. - - \sa x(), y(), globalPos() + This function has been deprecated, use position() instead. */ /*! \fn int QWheelEvent::x() const + \obsolete - Returns the x position of the mouse cursor, relative to the - widget that received the event. - - \sa y(), pos() + This function has been deprecated, use position() instead. */ /*! \fn int QWheelEvent::y() const + \obsolete - Returns the y position of the mouse cursor, relative to the - widget that received the event. - - \sa x(), pos() + This function has been deprecated, use position() instead. */ /*! \fn QPoint QWheelEvent::globalPos() const + \obsolete - Returns the global position of the mouse pointer \e{at the time - of the event}. This is important on asynchronous window systems - such as X11; whenever you move your widgets around in response to - mouse events, globalPos() can differ a lot from the current - cursor position returned by QCursor::pos(). - - \sa globalX(), globalY() + This function has been deprecated, use globalPosition() instead. */ /*! \fn int QWheelEvent::globalX() const + \obsolete - Returns the global x position of the mouse cursor at the time of - the event. - - \sa globalY(), globalPos() + This function has been deprecated, use globalPosition() instead. */ /*! \fn int QWheelEvent::globalY() const + \obsolete - Returns the global y position of the mouse cursor at the time of - the event. - - \sa globalX(), globalPos() + This function has been deprecated, use globalPosition() instead. */ /*! \fn const QPointF &QWheelEvent::posF() const + \obsolete - Returns the position of the mouse cursor relative to the widget - that received the event. - - If you move your widgets around in response to mouse events, - use globalPosF() instead of this function. - - \sa globalPosF() + This function has been deprecated, use position() instead. */ /*! \fn const QPointF &QWheelEvent::globalPosF() const + \obsolete - Returns the global position of the mouse pointer \e{at the time - of the event}. This is important on asynchronous window systems - such as X11; whenever you move your widgets around in response to - mouse events, globalPosF() can differ a lot from the current - cursor position returned by QCursor::pos(). - - \sa posF() + This function has been deprecated, use globalPosition() instead. */ /*! @@ -4074,8 +3930,10 @@ QDebug operator<<(QDebug dbg, const QEvent *e) dbg << "QWheelEvent(" << we->phase(); if (!we->pixelDelta().isNull() || !we->angleDelta().isNull()) dbg << ", pixelDelta=" << we->pixelDelta() << ", angleDelta=" << we->angleDelta(); +#if QT_DEPRECATED_SINCE(5, 14) else if (int qt4Delta = we->delta()) dbg << ", delta=" << qt4Delta << ", orientation=" << we->orientation(); +#endif dbg << ')'; } break; diff --git a/src/gui/kernel/qevent.h b/src/gui/kernel/qevent.h index eb0a6208a9..b73d90529a 100644 --- a/src/gui/kernel/qevent.h +++ b/src/gui/kernel/qevent.h @@ -175,24 +175,34 @@ class Q_GUI_EXPORT QWheelEvent : public QInputEvent public: enum { DefaultDeltasPerStep = 120 }; +#if QT_DEPRECATED_SINCE(5, 15) + // Actually deprecated since 5.0, in docs + QT_DEPRECATED_VERSION_X_5_15("Use the last QWheelEvent constructor taking pixelDelta, angleDelta, phase, and inverted") QWheelEvent(const QPointF &pos, int delta, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, Qt::Orientation orient = Qt::Vertical); + // Actually deprecated since 5.0, in docs + QT_DEPRECATED_VERSION_X_5_15("Use the last QWheelEvent constructor taking pixelDelta, angleDelta, phase, and inverted") QWheelEvent(const QPointF &pos, const QPointF& globalPos, int delta, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, Qt::Orientation orient = Qt::Vertical); + QT_DEPRECATED_VERSION_X_5_15("Use the last QWheelEvent constructor taking pixelDelta, angleDelta, phase, and inverted") QWheelEvent(const QPointF &pos, const QPointF& globalPos, QPoint pixelDelta, QPoint angleDelta, int qt4Delta, Qt::Orientation qt4Orientation, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers); + QT_DEPRECATED_VERSION_X_5_15("Use the last QWheelEvent constructor taking pixelDelta, angleDelta, phase, and inverted") QWheelEvent(const QPointF &pos, const QPointF& globalPos, QPoint pixelDelta, QPoint angleDelta, int qt4Delta, Qt::Orientation qt4Orientation, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, Qt::ScrollPhase phase); + QT_DEPRECATED_VERSION_X_5_15("Use the last QWheelEvent constructor taking pixelDelta, angleDelta, phase, and inverted") QWheelEvent(const QPointF &pos, const QPointF &globalPos, QPoint pixelDelta, QPoint angleDelta, int qt4Delta, Qt::Orientation qt4Orientation, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, Qt::ScrollPhase phase, Qt::MouseEventSource source); + QT_DEPRECATED_VERSION_X_5_15("Use the last QWheelEvent constructor taking pixelDelta, angleDelta, phase, and inverted") QWheelEvent(const QPointF &pos, const QPointF &globalPos, QPoint pixelDelta, QPoint angleDelta, int qt4Delta, Qt::Orientation qt4Orientation, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, Qt::ScrollPhase phase, Qt::MouseEventSource source, bool inverted); +#endif QWheelEvent(QPointF pos, QPointF globalPos, QPoint pixelDelta, QPoint angleDelta, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, Qt::ScrollPhase phase, @@ -203,19 +213,35 @@ public: inline QPoint pixelDelta() const { return pixelD; } inline QPoint angleDelta() const { return angleD; } +#if QT_DEPRECATED_SINCE(5, 15) + // Actually deprecated since 5.0, in docs + QT_DEPRECATED_VERSION_X_5_15("Use angleDelta()") inline int delta() const { return qt4D; } + // Actually deprecated since 5.0, in docs + QT_DEPRECATED_VERSION_X_5_15("Use angleDelta()") inline Qt::Orientation orientation() const { return qt4O; } - #ifndef QT_NO_INTEGER_EVENT_COORDINATES + QT_DEPRECATED_VERSION_X_5_15("Use position()") inline QPoint pos() const { return p.toPoint(); } + QT_DEPRECATED_VERSION_X_5_15("Use globalPosition()") inline QPoint globalPos() const { return g.toPoint(); } + QT_DEPRECATED_VERSION_X_5_15("Use position()") inline int x() const { return int(p.x()); } + QT_DEPRECATED_VERSION_X_5_15("Use position()") inline int y() const { return int(p.y()); } + QT_DEPRECATED_VERSION_X_5_15("Use globalPosition()") inline int globalX() const { return int(g.x()); } + QT_DEPRECATED_VERSION_X_5_15("Use globalPosition()") inline int globalY() const { return int(g.y()); } #endif + QT_DEPRECATED_VERSION_X_5_15("Use position()") inline const QPointF &posF() const { return p; } + QT_DEPRECATED_VERSION_X_5_15("Use globalPosition()") inline const QPointF &globalPosF() const { return g; } +#endif // QT_DEPRECATED_SINCE(5, 15) + + inline QPointF position() const { return p; } + inline QPointF globalPosition() const { return g; } inline Qt::MouseButtons buttons() const { return mouseState; } @@ -231,7 +257,7 @@ protected: QPoint angleD; int qt4D = 0; Qt::Orientation qt4O = Qt::Vertical; - Qt::MouseButtons mouseState; + Qt::MouseButtons mouseState = Qt::NoButton; uint _unused_ : 2; // Kept for binary compatibility uint src: 2; bool invertedScrolling : 1; diff --git a/src/gui/kernel/qguiapplication.cpp b/src/gui/kernel/qguiapplication.cpp index ceb5055a9d..426f2aeece 100644 --- a/src/gui/kernel/qguiapplication.cpp +++ b/src/gui/kernel/qguiapplication.cpp @@ -2239,8 +2239,13 @@ void QGuiApplicationPrivate::processWheelEvent(QWindowSystemInterfacePrivate::Wh return; } +#if QT_DEPRECATED_SINCE(5, 14) QWheelEvent ev(localPoint, globalPoint, e->pixelDelta, e->angleDelta, e->qt4Delta, e->qt4Orientation, mouse_buttons, e->modifiers, e->phase, e->source, e->inverted); +#else + QWheelEvent ev(localPoint, globalPoint, e->pixelDelta, e->angleDelta, + mouse_buttons, e->modifiers, e->phase, e->inverted, e->source); +#endif ev.setTimestamp(e->timestamp); QGuiApplication::sendSpontaneousEvent(window, &ev); #else diff --git a/src/gui/kernel/qopenglcontext.cpp b/src/gui/kernel/qopenglcontext.cpp index 326d2823eb..10adee438b 100644 --- a/src/gui/kernel/qopenglcontext.cpp +++ b/src/gui/kernel/qopenglcontext.cpp @@ -611,8 +611,8 @@ bool QOpenGLContext::create() d->platformGLContext = QGuiApplicationPrivate::platformIntegration()->createPlatformOpenGLContext(this); if (!d->platformGLContext) return false; - d->platformGLContext->initialize(); d->platformGLContext->setContext(this); + d->platformGLContext->initialize(); if (!d->platformGLContext->isSharing()) d->shareContext = 0; d->shareGroup = d->shareContext ? d->shareContext->shareGroup() : new QOpenGLContextGroup; diff --git a/src/gui/kernel/qstylehints.cpp b/src/gui/kernel/qstylehints.cpp index 9b5b7a6f1e..732ede90d0 100644 --- a/src/gui/kernel/qstylehints.cpp +++ b/src/gui/kernel/qstylehints.cpp @@ -65,6 +65,20 @@ static inline QVariant themeableHint(QPlatformTheme::ThemeHint th, return QGuiApplicationPrivate::platformIntegration()->styleHint(ih); } +static inline QVariant themeableHint(QPlatformTheme::ThemeHint th) +{ + if (!QCoreApplication::instance()) { + qWarning("Must construct a QGuiApplication before accessing a platform theme hint."); + return QVariant(); + } + if (const QPlatformTheme *theme = QGuiApplicationPrivate::platformTheme()) { + const QVariant themeHint = theme->themeHint(th); + if (themeHint.isValid()) + return themeHint; + } + return QPlatformTheme::defaultThemeHint(th); +} + class QStyleHintsPrivate : public QObjectPrivate { Q_DECLARE_PUBLIC(QStyleHints) @@ -80,6 +94,8 @@ public: int m_showShortcutsInContextMenus = -1; int m_wheelScrollLines = -1; int m_mouseQuickSelectionThreshold = -1; + int m_mouseDoubleClickDistance = -1; + int m_touchDoubleTapDistance = -1; }; /*! @@ -133,6 +149,34 @@ int QStyleHints::mouseDoubleClickInterval() const } /*! + \property QStyleHints::mouseDoubleClickDistance + \brief the maximum distance, in pixels, that the mouse can be moved between + two consecutive mouse clicks and still have it detected as a double-click + \since 5.14 +*/ +int QStyleHints::mouseDoubleClickDistance() const +{ + Q_D(const QStyleHints); + return d->m_mouseDoubleClickDistance >= 0 ? + d->m_mouseDoubleClickDistance : + themeableHint(QPlatformTheme::MouseDoubleClickDistance).toInt(); +} + +/*! + \property QStyleHints::touchDoubleTapDistance + \brief the maximum distance, in pixels, that a finger can be moved between + two consecutive taps and still have it detected as a double-tap + \since 5.14 +*/ +int QStyleHints::touchDoubleTapDistance() const +{ + Q_D(const QStyleHints); + return d->m_touchDoubleTapDistance >= 0 ? + d->m_touchDoubleTapDistance : + themeableHint(QPlatformTheme::TouchDoubleTapDistance).toInt(); +} + +/*! Sets the \a mousePressAndHoldInterval. \internal \sa mousePressAndHoldInterval() diff --git a/src/gui/kernel/qstylehints.h b/src/gui/kernel/qstylehints.h index 9091db9624..30d8fdc64d 100644 --- a/src/gui/kernel/qstylehints.h +++ b/src/gui/kernel/qstylehints.h @@ -74,10 +74,14 @@ class Q_GUI_EXPORT QStyleHints : public QObject Q_PROPERTY(bool useHoverEffects READ useHoverEffects WRITE setUseHoverEffects NOTIFY useHoverEffectsChanged FINAL) Q_PROPERTY(int wheelScrollLines READ wheelScrollLines NOTIFY wheelScrollLinesChanged FINAL) Q_PROPERTY(int mouseQuickSelectionThreshold READ mouseQuickSelectionThreshold WRITE setMouseQuickSelectionThreshold NOTIFY mouseQuickSelectionThresholdChanged FINAL) + Q_PROPERTY(int mouseDoubleClickDistance READ mouseDoubleClickDistance STORED false CONSTANT FINAL) + Q_PROPERTY(int touchDoubleTapDistance READ touchDoubleTapDistance STORED false CONSTANT FINAL) public: void setMouseDoubleClickInterval(int mouseDoubleClickInterval); int mouseDoubleClickInterval() const; + int mouseDoubleClickDistance() const; + int touchDoubleTapDistance() const; void setMousePressAndHoldInterval(int mousePressAndHoldInterval); int mousePressAndHoldInterval() const; void setStartDragDistance(int startDragDistance); |