Change QWidget::enterEvent signature to take a QEnterEvent

This is a source incompatible change for widget implementors.
Leaving the old enterEvent as a virtual overload is problematic due to
shadowing. Best to make a clean cut, widget reimplementors will get a compile
time warning if they mark their override as such, or if they try to call the
parent class implementation.

Addresses ### Qt 6 comment.

[ChangeLog][QtWidgets][QWidget] The virtual enterEvent handler now receives
a QEnterEvent, which contains information about mouse position and button
states, rather than a plain QEvent.

Change-Id: I233f594fd79c0c090983b3db8532913d00132fde
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
This commit is contained in:
Volker Hilsheimer 2020-09-02 12:04:07 +02:00
parent 403b01f866
commit 0f39cfae93
14 changed files with 21 additions and 22 deletions

View File

@ -94,7 +94,7 @@ QSize QVistaBackButton::sizeHint() const
return QSize(width, height);
}
void QVistaBackButton::enterEvent(QEvent *event)
void QVistaBackButton::enterEvent(QEnterEvent *event)
{
if (isEnabled())
update();

View File

@ -75,7 +75,7 @@ public:
inline QSize minimumSizeHint() const override
{ return sizeHint(); }
void enterEvent(QEvent *event) override;
void enterEvent(QEnterEvent *event) override;
void leaveEvent(QEvent *event) override;
void paintEvent(QPaintEvent *event) override;
};

View File

@ -8756,7 +8756,7 @@ bool QWidget::event(QEvent *event)
QCoreApplication::sendEvent(const_cast<QWidget *>(this), &tip);
}
#endif
enterEvent(event);
enterEvent(static_cast<QEnterEvent*>(event));
break;
case QEvent::Leave:
@ -9402,7 +9402,7 @@ void QWidget::focusOutEvent(QFocusEvent *)
}
/*!
\fn void QWidget::enterEvent(QEvent *event)
\fn void QWidget::enterEvent(QEnterEvent *event)
This event handler can be reimplemented in a subclass to receive
widget enter events which are passed in the \a event parameter.
@ -9413,12 +9413,10 @@ void QWidget::focusOutEvent(QFocusEvent *)
\sa leaveEvent(), mouseMoveEvent(), event()
*/
void QWidget::enterEvent(QEvent *)
void QWidget::enterEvent(QEnterEvent *)
{
}
// ### Qt 6: void QWidget::enterEvent(QEnterEvent *).
/*!
\fn void QWidget::leaveEvent(QEvent *event)

View File

@ -75,6 +75,7 @@ class QMouseEvent;
class QWheelEvent;
class QHoverEvent;
class QKeyEvent;
class QEnterEvent;
class QFocusEvent;
class QPaintEvent;
class QMoveEvent;
@ -622,7 +623,7 @@ protected:
virtual void keyReleaseEvent(QKeyEvent *event);
virtual void focusInEvent(QFocusEvent *event);
virtual void focusOutEvent(QFocusEvent *event);
virtual void enterEvent(QEvent *event);
virtual void enterEvent(QEnterEvent *event);
virtual void leaveEvent(QEvent *event);
virtual void paintEvent(QPaintEvent *event);
virtual void moveEvent(QMoveEvent *event);

View File

@ -154,7 +154,7 @@ protected:
fast = false;
}
void enterEvent(QEvent *) override {
void enterEvent(QEnterEvent *) override {
startTimer();
}

View File

@ -129,7 +129,7 @@ public:
QSize minimumSizeHint() const override
{ return sizeHint(); }
void enterEvent(QEvent *event) override;
void enterEvent(QEnterEvent *event) override;
void leaveEvent(QEvent *event) override;
void paintEvent(QPaintEvent *event) override;
@ -205,7 +205,7 @@ QSize QDockWidgetTitleButton::sizeHint() const
return QSize(size, size);
}
void QDockWidgetTitleButton::enterEvent(QEvent *event)
void QDockWidgetTitleButton::enterEvent(QEnterEvent *event)
{
if (isEnabled()) update();
QAbstractButton::enterEvent(event);

View File

@ -3502,7 +3502,7 @@ void QMenu::mouseMoveEvent(QMouseEvent *e)
/*!
\reimp
*/
void QMenu::enterEvent(QEvent *)
void QMenu::enterEvent(QEnterEvent *)
{
Q_D(QMenu);
d->hasReceievedEnter = true;

View File

@ -249,7 +249,7 @@ protected:
#if QT_CONFIG(wheelevent)
void wheelEvent(QWheelEvent *) override;
#endif
void enterEvent(QEvent *) override;
void enterEvent(QEnterEvent *) override;
void leaveEvent(QEvent *) override;
void hideEvent(QHideEvent *) override;
void paintEvent(QPaintEvent *) override;

View File

@ -83,7 +83,7 @@ public:
QSize sizeHint() const override;
QSize minimumSizeHint() const override
{ return sizeHint(); }
void enterEvent(QEvent *event) override;
void enterEvent(QEnterEvent *event) override;
void leaveEvent(QEvent *event) override;
void paintEvent(QPaintEvent *event) override;
};
@ -2814,7 +2814,7 @@ QSize CloseButton::sizeHint() const
return QSize(width, height);
}
void CloseButton::enterEvent(QEvent *event)
void CloseButton::enterEvent(QEnterEvent *event)
{
if (isEnabled())
update();

View File

@ -527,7 +527,7 @@ void QToolButtonPrivate::_q_actionTriggered()
/*!
\reimp
*/
void QToolButton::enterEvent(QEvent * e)
void QToolButton::enterEvent(QEnterEvent * e)
{
Q_D(QToolButton);
if (d->autoRaise)

View File

@ -112,7 +112,7 @@ protected:
void paintEvent(QPaintEvent *) override;
void actionEvent(QActionEvent *) override;
void enterEvent(QEvent *) override;
void enterEvent(QEnterEvent *) override;
void leaveEvent(QEvent *) override;
void timerEvent(QTimerEvent *) override;
void changeEvent(QEvent *) override;

View File

@ -943,7 +943,7 @@ public:
installEventFilter(this);
}
void enterEvent(QEvent *event)
void enterEvent(QEnterEvent *event)
{
enterCount++;
QWidget::enterEvent(event);

View File

@ -5596,7 +5596,7 @@ public:
r = QRegion();
}
void enterEvent(QEvent *) override { ++enters; }
void enterEvent(QEnterEvent *) override { ++enters; }
void leaveEvent(QEvent *) override { ++leaves; }
void resetCounts()
@ -9627,7 +9627,7 @@ void tst_QWidget::syntheticEnterLeave()
{
public:
using QWidget::QWidget;
void enterEvent(QEvent *) override { ++numEnterEvents; }
void enterEvent(QEnterEvent *) override { ++numEnterEvents; }
void leaveEvent(QEvent *) override { ++numLeaveEvents; }
int numEnterEvents = 0;
int numLeaveEvents = 0;
@ -9742,7 +9742,7 @@ void tst_QWidget::taskQTBUG_4055_sendSyntheticEnterLeave()
{
public:
using QWidget::QWidget;
void enterEvent(QEvent *) override { ++numEnterEvents; }
void enterEvent(QEnterEvent *) override { ++numEnterEvents; }
void mouseMoveEvent(QMouseEvent *event) override
{
QCOMPARE(event->button(), Qt::NoButton);

View File

@ -61,7 +61,7 @@ public:
update();
}
void enterEvent(QEvent *)
void enterEvent(QEnterEvent *)
{
s = 200;
v = 200;