summaryrefslogtreecommitdiffstats
path: root/src/corelib/kernel/qcoreevent.h
diff options
context:
space:
mode:
authorVolker Hilsheimer <volker.hilsheimer@qt.io>2020-11-16 12:30:59 +0100
committerVolker Hilsheimer <volker.hilsheimer@qt.io>2020-11-17 06:21:05 +0100
commit496c977b43b131c6bf315cc030c21023b60e2661 (patch)
treedb381a102edf35b18ccc90ee2952c21212cbc224 /src/corelib/kernel/qcoreevent.h
parent26866440823ffd0796755bc04eb3f298b73f3f16 (diff)
Allow cloning of event objects
We have use cases for cloning of events, e.g. in the state machine and for event propagation. Provide the means to do so through a virtual method. Adapt QFutureCallOutEvent::clone, which is now an override. No code seems to be using that method. Change-Id: I6864d6597f6de800343c4dc458a7994e84dc6fb4 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Diffstat (limited to 'src/corelib/kernel/qcoreevent.h')
-rw-r--r--src/corelib/kernel/qcoreevent.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/corelib/kernel/qcoreevent.h b/src/corelib/kernel/qcoreevent.h
index edd67b79d3..23503dee05 100644
--- a/src/corelib/kernel/qcoreevent.h
+++ b/src/corelib/kernel/qcoreevent.h
@@ -313,6 +313,8 @@ public:
static int registerEventType(int hint = -1) noexcept;
+ virtual QEvent *clone() const;
+
protected:
struct InputEventTag { explicit InputEventTag() = default; };
QEvent(Type type, InputEventTag) : QEvent(type) { m_inputEvent = true; }
@@ -362,6 +364,8 @@ public:
~QTimerEvent();
int timerId() const { return id; }
+ QEvent *clone() const override { return new QTimerEvent(*this); };
+
protected:
int id;
};
@@ -378,6 +382,8 @@ public:
bool polished() const { return type() == ChildPolished; }
bool removed() const { return type() == ChildRemoved; }
+ QEvent *clone() const override { return new QChildEvent(*this); };
+
protected:
QObject *c;
};
@@ -390,6 +396,8 @@ public:
inline QByteArray propertyName() const { return n; }
+ QEvent *clone() const override { return new QDynamicPropertyChangeEvent(*this); };
+
private:
QByteArray n;
};
@@ -401,6 +409,8 @@ public:
~QDeferredDeleteEvent();
int loopLevel() const { return level; }
+ QEvent *clone() const override { return new QDeferredDeleteEvent(*this); };
+
private:
int level;
friend class QCoreApplication;