From 0396c7a7d89b0813b997076a52c3f29fb3a0e919 Mon Sep 17 00:00:00 2001 From: Albert Astals Cid Date: Thu, 10 Sep 2015 17:34:56 +0200 Subject: Doc: Mention that calling parent class event() is important If you don't deleteLater and more won't work Change-Id: I47cbb24f8e22a7f269a0297410e4163878819f82 Reviewed-by: Thiago Macieira --- .../snippets/code/src_corelib_kernel_qobject.cpp | 27 ++++++++++++++++++++++ src/corelib/kernel/qobject.cpp | 7 ++++++ 2 files changed, 34 insertions(+) diff --git a/src/corelib/doc/snippets/code/src_corelib_kernel_qobject.cpp b/src/corelib/doc/snippets/code/src_corelib_kernel_qobject.cpp index 8ff44c9dca..8846437b7c 100644 --- a/src/corelib/doc/snippets/code/src_corelib_kernel_qobject.cpp +++ b/src/corelib/doc/snippets/code/src_corelib_kernel_qobject.cpp @@ -486,6 +486,33 @@ QObject::connect(socket, &QTcpSocket::connected, this, [=] () { }, Qt::AutoConnection); //! [51] +//! [52] +class MyClass : public QWidget +{ + Q_OBJECT + +public: + MyClass(QWidget *parent = 0); + ~MyClass(); + + bool event(QEvent* ev) + { + if (ev->type() == QEvent::PolishRequest) { + // overwrite handling of PolishRequest if any + doThings(); + return true; + } else if (ev->type() == QEvent::Show) { + // complement handling of Show if any + doThings2(); + QWidget::event(ev); + return true; + } + // Make sure the rest of events are handled + return QWidget::event(ev); + } +}; +//! [52] + //! [meta data] //: This is a comment for the translator. //= qtn_foo_bar diff --git a/src/corelib/kernel/qobject.cpp b/src/corelib/kernel/qobject.cpp index 7f95b6a591..d324b6f150 100644 --- a/src/corelib/kernel/qobject.cpp +++ b/src/corelib/kernel/qobject.cpp @@ -1219,6 +1219,13 @@ void QObject::setObjectName(const QString &name) The event() function can be reimplemented to customize the behavior of an object. + Make sure you call the parent event class implementation + for all the events you did not handle. + + Example: + + \snippet code/src_corelib_kernel_qobject.cpp 52 + \sa installEventFilter(), timerEvent(), QCoreApplication::sendEvent(), QCoreApplication::postEvent() */ -- cgit v1.2.3