From 63827c4d278a090522148ae36202205854388187 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Klitzing?= Date: Mon, 31 Aug 2015 15:04:51 +0200 Subject: Add PointerToMemberFunction for ctor of QSignalTransition [ChangeLog][QtCore][State Machine] Added constructor overload that takes a pointer-to-member for the QSignalTransition. Change-Id: I80ac6e16d0edf7d2ab09882b6f6db4cbd73364e1 Reviewed-by: Olivier Goffart (Woboq GmbH) --- src/corelib/statemachine/qsignaltransition.cpp | 13 +++++++++++++ src/corelib/statemachine/qsignaltransition.h | 13 +++++++++++++ 2 files changed, 26 insertions(+) (limited to 'src/corelib') diff --git a/src/corelib/statemachine/qsignaltransition.cpp b/src/corelib/statemachine/qsignaltransition.cpp index 7ec72df77c..e8c5f3e479 100644 --- a/src/corelib/statemachine/qsignaltransition.cpp +++ b/src/corelib/statemachine/qsignaltransition.cpp @@ -145,6 +145,19 @@ QSignalTransition::QSignalTransition(const QObject *sender, const char *signal, d->maybeRegister(); } +/*! + \fn QSignalTransition::QSignalTransition(const QObject *sender, + PointerToMemberFunction signal, QState *sourceState); + \since 5.7 + \overload + + Constructs a new signal transition associated with the given \a signal of + the given \a sender object and with the given \a sourceSate. + This constructor is enabled if compiler supports delegating constructor. + + \sa Q_COMPILER_DELEGATING_CONSTRUCTORS +*/ + /*! Destroys this signal transition. */ diff --git a/src/corelib/statemachine/qsignaltransition.h b/src/corelib/statemachine/qsignaltransition.h index c388323ec4..b428cb621d 100644 --- a/src/corelib/statemachine/qsignaltransition.h +++ b/src/corelib/statemachine/qsignaltransition.h @@ -35,6 +35,7 @@ #define QSIGNALTRANSITION_H #include +#include QT_BEGIN_NAMESPACE @@ -52,6 +53,18 @@ public: QSignalTransition(QState *sourceState = Q_NULLPTR); QSignalTransition(const QObject *sender, const char *signal, QState *sourceState = Q_NULLPTR); +#ifdef Q_QDOC + QSignalTransition(const QObject *object, PointerToMemberFunction signal, + QState *sourceState = Q_NULLPTR); +#elif defined(Q_COMPILER_DELEGATING_CONSTRUCTORS) + template + QSignalTransition(const typename QtPrivate::FunctionPointer::Object *obj, + Func sig, QState *srcState = Q_NULLPTR) + : QSignalTransition(obj, QMetaMethod::fromSignal(sig).methodSignature().constData(), srcState) + { + } +#endif + ~QSignalTransition(); QObject *senderObject() const; -- cgit v1.2.3