From aecc590390ad1115d0aa775f5be3ac1995f16442 Mon Sep 17 00:00:00 2001 From: Marco Benelli Date: Wed, 20 Apr 2016 15:51:04 +0200 Subject: [PATCH] qmljs: use QRegularExpression to parse imports. Use a regular expression to get the module name, major version and minor version from a string representing the module import. Change-Id: I99f85ff4844cdfba142b45b4881241a1d40b772e Reviewed-by: Erik Verbruggen --- src/libs/qmljs/qmljsplugindumper.cpp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/libs/qmljs/qmljsplugindumper.cpp b/src/libs/qmljs/qmljsplugindumper.cpp index 7556863568c..0950f767498 100644 --- a/src/libs/qmljs/qmljsplugindumper.cpp +++ b/src/libs/qmljs/qmljsplugindumper.cpp @@ -34,6 +34,7 @@ #include #include +#include using namespace LanguageUtils; using namespace QmlJS; @@ -417,17 +418,16 @@ void PluginDumper::loadQmlTypeDescription(const QStringList &paths, */ QString PluginDumper::buildQmltypesPath(const QString &name) const { - QStringList importName = name.split(QLatin1Char(' ')); - QString qualifiedName = importName[0]; + QString qualifiedName; QString majorVersion; QString minorVersion; - if (importName.length() == 2) { - QString versionString = importName[1]; - QStringList version = versionString.split(QLatin1Char('.')); - if (version.length() == 2) { - majorVersion = version[0]; - minorVersion = version[1]; - } + + QRegularExpression import("^(?[\\w|\\.]+)\\s+(?\\d+)\\.(?\\d+)$"); + QRegularExpressionMatch m = import.match(name); + if (m.hasMatch()) { + qualifiedName = m.captured("name"); + majorVersion = m.captured("major"); + minorVersion = m.captured("minor"); } for (const PathAndLanguage &p: m_modelManager->importPaths()) {