summaryrefslogtreecommitdiff
path: root/src/libs/extensionsystem
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@qt.io>2017-07-21 14:50:23 +0200
committerEike Ziller <eike.ziller@qt.io>2017-07-25 06:00:49 +0000
commite8e46ab553bce9aac9adcaf2ac4ee1207b69ac93 (patch)
tree32bf7963c0d7d71309b62026e01f8586fffe5aee /src/libs/extensionsystem
parent5df0f97d2f4f90decbc2fb263704755857416846 (diff)
downloadqt-creator-e8e46ab553bce9aac9adcaf2ac4ee1207b69ac93.tar.gz
Plugins: Fix that mimetype definition was not valid JSON
JSON officially does not support multiline strings, so we should use the same mechanism that we already use for the plugin description (i.e. additionally support arrays of strings which are interpreted as lines). This just happens to work because Qt's JSON parser eats it without choking. Change-Id: I25ef04600b209775c5a7af916c687fda4a8b1a4d Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Diffstat (limited to 'src/libs/extensionsystem')
-rw-r--r--src/libs/extensionsystem/pluginspec.cpp12
-rw-r--r--src/libs/extensionsystem/pluginspec.h2
2 files changed, 7 insertions, 7 deletions
diff --git a/src/libs/extensionsystem/pluginspec.cpp b/src/libs/extensionsystem/pluginspec.cpp
index 19be010c4d..cde1903099 100644
--- a/src/libs/extensionsystem/pluginspec.cpp
+++ b/src/libs/extensionsystem/pluginspec.cpp
@@ -31,6 +31,7 @@
#include "pluginmanager.h"
#include <utils/algorithm.h>
+#include <utils/qtcassert.h>
#include <QCoreApplication>
#include <QDebug>
@@ -630,12 +631,9 @@ static inline QString msgInvalidFormat(const char *key, const QString &content)
.arg(QLatin1String(key), content);
}
-static inline bool readMultiLineString(const QJsonValue &value, QString *out)
+bool PluginSpec::readMultiLineString(const QJsonValue &value, QString *out)
{
- if (!out) {
- qCWarning(pluginLog) << Q_FUNC_INFO << "missing output parameter";
- return false;
- }
+ QTC_ASSERT(out, return false);
if (value.isString()) {
*out = value.toString();
} else if (value.isArray()) {
@@ -737,7 +735,7 @@ bool PluginSpecPrivate::readMetaData(const QJsonObject &pluginMetaData)
copyright = value.toString();
value = metaData.value(QLatin1String(DESCRIPTION));
- if (!value.isUndefined() && !readMultiLineString(value, &description))
+ if (!value.isUndefined() && !PluginSpec::readMultiLineString(value, &description))
return reportError(msgValueIsNotAString(DESCRIPTION));
value = metaData.value(QLatin1String(URL));
@@ -751,7 +749,7 @@ bool PluginSpecPrivate::readMetaData(const QJsonObject &pluginMetaData)
category = value.toString();
value = metaData.value(QLatin1String(LICENSE));
- if (!value.isUndefined() && !readMultiLineString(value, &license))
+ if (!value.isUndefined() && !PluginSpec::readMultiLineString(value, &license))
return reportError(msgValueIsNotAMultilineString(LICENSE));
value = metaData.value(QLatin1String(PLATFORM));
diff --git a/src/libs/extensionsystem/pluginspec.h b/src/libs/extensionsystem/pluginspec.h
index 0462acddef..da89ff6029 100644
--- a/src/libs/extensionsystem/pluginspec.h
+++ b/src/libs/extensionsystem/pluginspec.h
@@ -131,6 +131,8 @@ public:
bool hasError() const;
QString errorString() const;
+ static bool readMultiLineString(const QJsonValue &value, QString *out);
+
private:
PluginSpec();