diff options
author | Tim Jenssen <tim.jenssen@digia.com> | 2014-08-28 16:51:00 +0200 |
---|---|---|
committer | Thomas Hartmann <Thomas.Hartmann@digia.com> | 2014-08-28 16:52:02 +0200 |
commit | e64b6245a91a9d2bd269452c772c7c6eea784b39 (patch) | |
tree | 7991c4cbfc7a0b702fef6b8a3e9cb362a2b9ce8b /src/qml/qml/qqmldirparser.cpp | |
parent | 26fb6a0915ec64d30eaa78e781e7f18468bc2ed7 (diff) |
Add new property "designersupported" to qmldir
This patch adds a property called "designersupported" to qmldir.
This allows the Qt Quick Designer to only load plugins that
have the line ""designersupported"" in their qmldir file.
So the designer can load sub components without risking to load
plugins that have never been tested in the designer and that might crash.
The check for "designersupported"" is activated by using
QQmlImports::setDesignerSupportRequired().
Change-Id: I4bf07cc163faa47996eacb1365a7961c51c51060
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
Reviewed-by: Tim Jenssen <tim.jenssen@digia.com>
Diffstat (limited to 'src/qml/qml/qqmldirparser.cpp')
-rw-r--r-- | src/qml/qml/qqmldirparser.cpp | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/qml/qml/qqmldirparser.cpp b/src/qml/qml/qqmldirparser.cpp index 5f5f7d4a38..7068818f15 100644 --- a/src/qml/qml/qqmldirparser.cpp +++ b/src/qml/qml/qqmldirparser.cpp @@ -55,7 +55,7 @@ static int parseInt(const QStringRef &str, bool *ok) return number; } -QQmlDirParser::QQmlDirParser() +QQmlDirParser::QQmlDirParser() : _designerSupported(false) { } @@ -87,6 +87,7 @@ bool QQmlDirParser::parse(const QString &source) _plugins.clear(); _components.clear(); _scripts.clear(); + _designerSupported = false; quint16 lineNumber = 0; bool firstLine = true; @@ -225,6 +226,11 @@ bool QQmlDirParser::parse(const QString &source) _typeInfos.append(typeInfo); #endif + } else if (sections[0] == QLatin1String("designersupported")) { + if (sectionCount != 1) + reportError(lineNumber, 0, QString::fromLatin1("designersupported does not expect any argument")); + else + _designerSupported = true; } else if (sectionCount == 2) { // No version specified (should only be used for relative qmldir files) const Component entry(sections[0], sections[1], -1, -1); @@ -354,6 +360,11 @@ QList<QQmlDirParser::TypeInfo> QQmlDirParser::typeInfos() const } #endif +bool QQmlDirParser::designerSupported() const +{ + return _designerSupported; +} + QDebug &operator<< (QDebug &debug, const QQmlDirParser::Component &component) { const QString output = QString::fromLatin1("{%1 %2.%3}"). |