summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2017-01-04 10:27:49 +0100
committerLiang Qi <liang.qi@qt.io>2017-01-04 10:27:49 +0100
commit0a4715a6d2a3bd98eed3ced4d6eeef887c1dd0b6 (patch)
treeef045b69558629e97110daa56ced1cf33c92794a /tools
parent7fa26117ecb79adbc9dd183a8dd4fa3fd27dbb03 (diff)
parent4704292500b98143eee9b0fb0b6a34a858ed1253 (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.t2
-rw-r--r--tools/qscxmlc/scxmlcppdumper.cpp16
-rw-r--r--tools/qscxmlc/scxmlcppdumper.h6
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