aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTim Jenssen <tim.jenssen@digia.com>2014-08-01 10:38:03 +0200
committerTim Jenssen <tim.jenssen@digia.com>2014-08-01 10:40:21 +0200
commit2bfd14dbf855f1f585a6a1c2b90c87cd076261d0 (patch)
treecd1e3f8309b72af221a89a658e24b5b8302d7bdd
parent1a26446186b19fadc0592a4b12d2830d4995cbd3 (diff)
QmlPuppet: Fix compile with Qt older than 5.2
Change-Id: I0ef3c5e374b1b01c22b553b99dfbd8eb7783fa90 Reviewed-by: Christian Stenger <christian.stenger@digia.com> Reviewed-by: Tim Jenssen <tim.jenssen@digia.com>
-rw-r--r--share/qtcreator/qml/qmlpuppet/container/sharedmemory_unix.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/share/qtcreator/qml/qmlpuppet/container/sharedmemory_unix.cpp b/share/qtcreator/qml/qmlpuppet/container/sharedmemory_unix.cpp
index cbc5635ad0..a685b9fd40 100644
--- a/share/qtcreator/qml/qmlpuppet/container/sharedmemory_unix.cpp
+++ b/share/qtcreator/qml/qmlpuppet/container/sharedmemory_unix.cpp
@@ -53,6 +53,14 @@
#define NAME_MAX PSHMNAMLEN
#endif
+#ifndef QStringLiteral
+#define QStringLiteral(str) QString::fromUtf8(str)
+#endif
+
+#if QT_VERSION < QT_VERSION_CHECK(5, 2, 0)
+#include <QRegExp>
+#endif
+
namespace QmlDesigner {
class SharedMemoryLocker
@@ -94,8 +102,17 @@ static QByteArray makePlatformSafeKey(const QString &key)
{
if (key.isEmpty())
return QByteArray();
+#if QT_VERSION < QT_VERSION_CHECK(5, 2, 0)
+ QByteArray data(QCryptographicHash::hash(key.toLatin1(), QCryptographicHash::Sha1).toBase64());
+ QString ambiguousChars(QStringLiteral("[=~<>|?*!@#$%^&:,; \\\\]"));
+
+ QByteArray normalizedData;
+ normalizedData = QString(data).replace(QRegExp(ambiguousChars), QStringLiteral("_")).toLatin1();
+ return normalizedData;
+#else
return QCryptographicHash::hash(key.toLatin1(), QCryptographicHash::Sha1).toBase64(QByteArray::Base64UrlEncoding | QByteArray::OmitTrailingEquals);
+#endif
}