summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2017-10-30 08:45:34 +0100
committerLiang Qi <liang.qi@qt.io>2017-10-30 09:24:34 +0100
commit2143fd3362cc294c3076f879ef20c70ed3683f33 (patch)
tree132ea199c80976b10be4e086dcb8ef34bfb4cad6 /src
parent3ba4176568867cb146c2b758cd39461367ad22d1 (diff)
parent113b502b194d6d7573b9f86f400bdf481e98cf74 (diff)
Merge remote-tracking branch 'origin/5.9' into 5.10v5.10.0-beta4
Conflicts: .qmake.conf Change-Id: Idcb35d4015f20d785263f00fe42d4839c7c4ad48
Diffstat (limited to 'src')
-rw-r--r--src/imports/scxmlstatemachine/statemachineloader.cpp13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/imports/scxmlstatemachine/statemachineloader.cpp b/src/imports/scxmlstatemachine/statemachineloader.cpp
index 946988f..0d28e6c 100644
--- a/src/imports/scxmlstatemachine/statemachineloader.cpp
+++ b/src/imports/scxmlstatemachine/statemachineloader.cpp
@@ -163,7 +163,18 @@ bool QScxmlStateMachineLoader::parse(const QUrl &source)
return false;
}
- m_stateMachine = QScxmlStateMachine::fromData(&buf, source.toString());
+ QString fileName;
+ if (source.isLocalFile()) {
+ fileName = source.toLocalFile();
+ } else if (source.scheme() == QStringLiteral("qrc")) {
+ fileName = ":" + source.path();
+ } else {
+ qmlWarning(this) << QStringLiteral("%1 is neither a local nor a resource URL.")
+ .arg(source.url())
+ << QStringLiteral("Invoking services by relative path will not work.");
+ }
+
+ m_stateMachine = QScxmlStateMachine::fromData(&buf, fileName);
m_stateMachine->setParent(this);
m_implicitDataModel = m_stateMachine->dataModel();