diff --git a/src/plugins/squish/objectsmapdocument.cpp b/src/plugins/squish/objectsmapdocument.cpp index 32d0804efa2..0d277900d6b 100644 --- a/src/plugins/squish/objectsmapdocument.cpp +++ b/src/plugins/squish/objectsmapdocument.cpp @@ -12,7 +12,7 @@ #include #include -#include +#include namespace Squish { namespace Internal { @@ -187,13 +187,13 @@ Core::IDocument::OpenResult ObjectsMapDocument::openImpl(QString *error, if (fileName.isEmpty()) return OpenResult::CannotHandle; - QString text; + QByteArray text; if (realFileName.fileName() == "objects.map") { Utils::FileReader reader; if (!reader.fetch(realFileName, QIODevice::Text, error)) return OpenResult::ReadError; - text = QString::fromLocal8Bit(reader.data()); + text = reader.data(); } else { const Utils::FilePath base = SquishPlugin::squishSettings()->squishPath.filePath(); if (base.isEmpty()) { @@ -212,11 +212,12 @@ Core::IDocument::OpenResult ObjectsMapDocument::openImpl(QString *error, Utils::QtcProcess objectMapReader; objectMapReader.setCommand({exe, {"--scriptMap", "--mode", "read", "--scriptedObjectMapPath", realFileName.toUserOutput()}}); + objectMapReader.setCodec(QTextCodec::codecForName("UTF-8")); objectMapReader.start(); objectMapReader.waitForFinished(); - text = objectMapReader.cleanedStdOut(); + text = objectMapReader.cleanedStdOut().toUtf8(); } - if (!setContents(text.toUtf8())) { + if (!setContents(text)) { if (error) error->append(Tr::tr("Failure while parsing objects.map content.")); return OpenResult::ReadError; diff --git a/src/plugins/squish/objectsmapeditorwidget.cpp b/src/plugins/squish/objectsmapeditorwidget.cpp index dd981124b91..50f92e46242 100644 --- a/src/plugins/squish/objectsmapeditorwidget.cpp +++ b/src/plugins/squish/objectsmapeditorwidget.cpp @@ -346,7 +346,7 @@ void ObjectsMapEditorWidget::onPropertiesContentModified(const QString &text) const QModelIndex &idx = m_objMapFilterModel->mapToSource(selected.first()); if (auto item = static_cast(m_document->model()->itemForIndex(idx))) - item->setPropertiesContent(text.toLocal8Bit().trimmed()); + item->setPropertiesContent(text.toUtf8().trimmed()); } void ObjectsMapEditorWidget::onJumpToSymbolicNameClicked() diff --git a/src/plugins/squish/objectsmaptreeitem.cpp b/src/plugins/squish/objectsmaptreeitem.cpp index 4338181be3b..79c0c27eaea 100644 --- a/src/plugins/squish/objectsmaptreeitem.cpp +++ b/src/plugins/squish/objectsmaptreeitem.cpp @@ -130,19 +130,20 @@ bool ObjectsMapTreeItem::parseProperties(const QByteArray &properties) if (properties.isEmpty() || properties.at(0) != '{') return false; + QString p = QString::fromUtf8(properties); ParseState state = None; - QByteArray name; - QByteArray value; - QByteArray oper; + QString name; + QString value; + QString oper; bool masquerading = false; - for (char c : properties) { + for (QChar c : p) { if (masquerading) { value.append('\\').append(c); masquerading = false; continue; } - switch (c) { + switch (c.unicode()) { case '=': if (state == Value) { value.append(c); @@ -172,7 +173,7 @@ bool ObjectsMapTreeItem::parseProperties(const QByteArray &properties) } else if (state == Value) { state = None; Property prop; - if (!prop.set(QLatin1String(name), QLatin1String(oper), QLatin1String(value))) { + if (!prop.set(name, oper, value)) { propertyRoot->removeChildren(); return false; } @@ -214,7 +215,7 @@ bool ObjectsMapTreeItem::parseProperties(const QByteArray &properties) } break; default: - if (QChar::isSpace(c)) { + if (c.isSpace()) { if (state == Value) { value.append(c); } else if (state == Name) { diff --git a/src/plugins/squish/squish.qbs b/src/plugins/squish/squish.qbs index c0026e7e562..4c74c6466fc 100644 --- a/src/plugins/squish/squish.qbs +++ b/src/plugins/squish/squish.qbs @@ -10,6 +10,7 @@ QtcPlugin { Depends { name: "Utils" } Depends { name: "Qt.widgets" } + Depends { name: "Qt.core5compat" } files: [ "deletesymbolicnamedialog.cpp",