diff --git a/src/plugins/coreplugin/corejsextensions.cpp b/src/plugins/coreplugin/corejsextensions.cpp index 806a5054e18..f09a06b949a 100644 --- a/src/plugins/coreplugin/corejsextensions.cpp +++ b/src/plugins/coreplugin/corejsextensions.cpp @@ -142,5 +142,17 @@ QString UtilsJsExtension::mktemp(const QString &pattern) const return file.fileName(); } +QString UtilsJsExtension::asciify(const QString &input) const +{ + QString result; + for (const QChar c : input) { + if (c.isPrint() && c.unicode() < 128) + result.append(c); + else + result.append(QString::fromLatin1("u%1").arg(c.unicode(), 4, 16, QChar('0'))); + } + return result; +} + } // namespace Internal } // namespace Core diff --git a/src/plugins/coreplugin/corejsextensions.h b/src/plugins/coreplugin/corejsextensions.h index 78e1bc99daa..2390d91a33f 100644 --- a/src/plugins/coreplugin/corejsextensions.h +++ b/src/plugins/coreplugin/corejsextensions.h @@ -39,7 +39,7 @@ class UtilsJsExtension : public QObject Q_OBJECT public: - UtilsJsExtension(QObject *parent = 0) : QObject(parent) { } + UtilsJsExtension(QObject *parent = nullptr) : QObject(parent) { } // File name conversions: Q_INVOKABLE QString toNativeSeparators(const QString &in) const; @@ -69,6 +69,9 @@ public: // Generate temporary file: Q_INVOKABLE QString mktemp(const QString &pattern) const; + + // Generate a ascii-only string: + Q_INVOKABLE QString asciify(const QString &input) const; }; } // namespace Internal