diff options
author | Liang Qi <liang.qi@qt.io> | 2017-01-04 10:27:49 +0100 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2017-01-04 10:27:49 +0100 |
commit | 0a4715a6d2a3bd98eed3ced4d6eeef887c1dd0b6 (patch) | |
tree | ef045b69558629e97110daa56ced1cf33c92794a /tools | |
parent | 7fa26117ecb79adbc9dd183a8dd4fa3fd27dbb03 (diff) | |
parent | 4704292500b98143eee9b0fb0b6a34a858ed1253 (diff) |
Merge remote-tracking branch 'origin/5.8.0' into 5.8
Conflicts:
src/scxml/qscxmlinvokableservice.cpp
tools/qscxmlc/scxmlcppdumper.cpp
Change-Id: Iadbe84d8eae7ccdf8dd9a0109af236a3747976c8
Diffstat (limited to 'tools')
-rw-r--r-- | tools/qscxmlc/decl.t | 2 | ||||
-rw-r--r-- | tools/qscxmlc/scxmlcppdumper.cpp | 16 | ||||
-rw-r--r-- | tools/qscxmlc/scxmlcppdumper.h | 6 |
3 files changed, 19 insertions, 5 deletions
diff --git a/tools/qscxmlc/decl.t b/tools/qscxmlc/decl.t index 9482885..648476d 100644 --- a/tools/qscxmlc/decl.t +++ b/tools/qscxmlc/decl.t @@ -5,7 +5,7 @@ class ${classname}: public QScxmlStateMachine ${properties} public: - ${classname}(QObject *parent = 0); + Q_INVOKABLE ${classname}(QObject *parent = 0); ~${classname}(); private: diff --git a/tools/qscxmlc/scxmlcppdumper.cpp b/tools/qscxmlc/scxmlcppdumper.cpp index 81b9dcf..db03d70 100644 --- a/tools/qscxmlc/scxmlcppdumper.cpp +++ b/tools/qscxmlc/scxmlcppdumper.cpp @@ -375,7 +375,7 @@ int createFactoryId(QStringList &factories, const QString &className, QString line = QStringLiteral("case %1: return new ").arg(QString::number(idx)); if (invokeInfo.expr == QScxmlExecutableContent::NoEvaluator) { - line += QStringLiteral("QScxmlStaticScxmlServiceFactory< %1::%2 >(") + line += QStringLiteral("QScxmlStaticScxmlServiceFactory(&%1::%2::staticMetaObject,") .arg(namespacePrefix, className); } else { line += QStringLiteral("QScxmlDynamicScxmlServiceFactory("); @@ -714,6 +714,20 @@ QString CppDumper::generateMetaObject(const QString &className, classDef.qualified = classDef.classname; classDef.superclassList << qMakePair(QByteArray("QScxmlStateMachine"), FunctionDef::Public); classDef.hasQObject = true; + FunctionDef constructor; + constructor.name = className.toUtf8(); + constructor.access = FunctionDef::Public; + constructor.isInvokable = true; + constructor.isConstructor = true; + + ArgumentDef arg; + arg.type.name = "QObject *"; + arg.type.rawName = arg.type.name; + arg.normalizedType = arg.type.name; + arg.name = "parent"; + arg.typeNameForCast = arg.type.name + "*"; + constructor.arguments.append(arg); + classDef.constructorList.append(constructor); // stateNames: int stateIdx = 0; diff --git a/tools/qscxmlc/scxmlcppdumper.h b/tools/qscxmlc/scxmlcppdumper.h index 95fa48a..bd49cea 100644 --- a/tools/qscxmlc/scxmlcppdumper.h +++ b/tools/qscxmlc/scxmlcppdumper.h @@ -26,8 +26,8 @@ ** ****************************************************************************/ -#ifndef CPPDUMPER_H -#define CPPDUMPER_H +#ifndef SCXMLCPPDUMPER_H +#define SCXMLCPPDUMPER_H #include "qscxmlglobals.h" @@ -95,4 +95,4 @@ private: QT_END_NAMESPACE -#endif // CPPDUMPER_H +#endif // SCXMLCPPDUMPER_H |