diff options
author | Jarkko Koivikko <jarkko.koivikko@code-q.fi> | 2018-08-23 21:51:19 +0300 |
---|---|---|
committer | Mitch Curtis <mitch.curtis@qt.io> | 2018-09-07 08:21:22 +0000 |
commit | ea088ff4c53e625be194f4c915fed912f9518bcf (patch) | |
tree | cca6f1294f85e4337422097b71df30e6168df2e9 | |
parent | a046dd2d5486e4805481fd360e486f869d0fa36d (diff) |
Fix string cast
Enforce proper string cast using QT_NO_CAST_TO_ASCII and friends.
Change-Id: I039b23144c8d57f12aad1c27f29654b382078222
Reviewed-by: Jarkko Koivikko <jarkko.koivikko@code-q.fi>
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
39 files changed, 239 insertions, 115 deletions
diff --git a/src/plugin/plugin.cpp b/src/plugin/plugin.cpp index fb54ce65..e1e03df7 100644 --- a/src/plugin/plugin.cpp +++ b/src/plugin/plugin.cpp @@ -84,10 +84,10 @@ QPlatformInputContext *QVirtualKeyboardPlugin::create(const QString &system, con qCWarning(qlcVirtualKeyboard) << "Error loading extension - metadata not found!"; continue; } - const QString inputMethod = metaData.value("InputMethod").toString(); + const QString inputMethod = metaData.value(QLatin1String("InputMethod")).toString(); if (!inputMethod.isEmpty() && inputMethodList.contains(inputMethod)) { qCWarning(qlcVirtualKeyboard) << "Ignored extension" << extensionName << - "by" << metaData.value("Provider").toString() << + "by" << metaData.value(QLatin1String("Provider")).toString() << "-" << inputMethod << "is already registered!"; continue; } diff --git a/src/plugin/plugin.pro b/src/plugin/plugin.pro index 2256b677..8cf53c9a 100644 --- a/src/plugin/plugin.pro +++ b/src/plugin/plugin.pro @@ -12,6 +12,12 @@ HEADERS += \ OTHER_FILES += \ qtvirtualkeyboard.json +DEFINES += \ + QT_NO_CAST_TO_ASCII \ + QT_ASCII_CAST_WARNINGS \ + QT_NO_CAST_FROM_ASCII \ + QT_NO_CAST_FROM_BYTEARRAY + win32 { QMAKE_TARGET_PRODUCT = "Qt Virtual Keyboard (Qt $$QT_VERSION)" QMAKE_TARGET_DESCRIPTION = "Virtual Keyboard for Qt." diff --git a/src/plugins/hangul/hangul.pro b/src/plugins/hangul/hangul.pro index 5106ce34..5ce08a65 100644 --- a/src/plugins/hangul/hangul.pro +++ b/src/plugins/hangul/hangul.pro @@ -12,6 +12,12 @@ SOURCES += \ OTHER_FILES += \ hangul.json +DEFINES += \ + QT_NO_CAST_TO_ASCII \ + QT_ASCII_CAST_WARNINGS \ + QT_NO_CAST_FROM_ASCII \ + QT_NO_CAST_FROM_BYTEARRAY + include(../../config.pri) LAYOUT_FILES += \ diff --git a/src/plugins/hunspell/hunspellinputmethod/hunspellinputmethod.pro b/src/plugins/hunspell/hunspellinputmethod/hunspellinputmethod.pro index d2a47e0c..9dc2e654 100644 --- a/src/plugins/hunspell/hunspellinputmethod/hunspellinputmethod.pro +++ b/src/plugins/hunspell/hunspellinputmethod/hunspellinputmethod.pro @@ -16,6 +16,12 @@ HEADERS += \ hunspellworker_p.h \ qhunspellinputmethod_global.h +DEFINES += \ + QT_NO_CAST_TO_ASCII \ + QT_ASCII_CAST_WARNINGS \ + QT_NO_CAST_FROM_ASCII \ + QT_NO_CAST_FROM_BYTEARRAY + include(../../../config.pri) hunspell-library: QMAKE_USE += hunspell diff --git a/src/plugins/hunspell/hunspellinputmethod/hunspellworker.cpp b/src/plugins/hunspell/hunspellinputmethod/hunspellworker.cpp index 6387ee16..15af0841 100644 --- a/src/plugins/hunspell/hunspellinputmethod/hunspellworker.cpp +++ b/src/plugins/hunspell/hunspellinputmethod/hunspellworker.cpp @@ -763,7 +763,7 @@ void HunspellWorker::run() continue; perf.start(); currentTask->run(); - qCDebug(lcHunspell) << QString(QLatin1String(currentTask->metaObject()->className()) + "::run(): time:").toLatin1().constData() << perf.elapsed() << "ms"; + qCDebug(lcHunspell) << QString(QLatin1String(currentTask->metaObject()->className()) + QLatin1String("::run(): time:")).toLatin1().constData() << perf.elapsed() << "ms"; } } if (hunspell) { diff --git a/src/plugins/hunspell/plugin/plugin.pro b/src/plugins/hunspell/plugin/plugin.pro index 99eab6c9..1981b5e5 100644 --- a/src/plugins/hunspell/plugin/plugin.pro +++ b/src/plugins/hunspell/plugin/plugin.pro @@ -8,6 +8,12 @@ SOURCES += \ OTHER_FILES += \ hunspell.json +DEFINES += \ + QT_NO_CAST_TO_ASCII \ + QT_ASCII_CAST_WARNINGS \ + QT_NO_CAST_FROM_ASCII \ + QT_NO_CAST_FROM_BYTEARRAY + include(../../../config.pri) hunspell-library { diff --git a/src/plugins/lipi-toolkit/plugin/lipiinputmethod.cpp b/src/plugins/lipi-toolkit/plugin/lipiinputmethod.cpp index 00e82541..ca23c491 100644 --- a/src/plugins/lipi-toolkit/plugin/lipiinputmethod.cpp +++ b/src/plugins/lipi-toolkit/plugin/lipiinputmethod.cpp @@ -117,19 +117,19 @@ public: if (context == currentContext) return; - qCDebug(lcLipi) << "LipiInputMethodPrivate::setContext():" << QString(context.toHex()); + qCDebug(lcLipi) << "LipiInputMethodPrivate::setContext():" << QLatin1String(context.toHex()); clearTraces(); deviceInfo.reset(new LTKCaptureDevice()); - deviceInfo->setSamplingRate(traceCaptureDeviceInfo.value("sampleRate", 60).toInt()); - deviceInfo->setXDPI(traceCaptureDeviceInfo.value("dpi", 96).toInt()); + deviceInfo->setSamplingRate(traceCaptureDeviceInfo.value(QLatin1String("sampleRate"), 60).toInt()); + deviceInfo->setXDPI(traceCaptureDeviceInfo.value(QLatin1String("dpi"), 96).toInt()); deviceInfo->setYDPI(deviceInfo->getXDPI()); - deviceInfo->setLatency(traceCaptureDeviceInfo.value("latency", 0.0).toFloat()); - deviceInfo->setUniformSampling(traceCaptureDeviceInfo.value("uniform", false).toBool()); + deviceInfo->setLatency(traceCaptureDeviceInfo.value(QLatin1String("latency"), 0.0).toFloat()); + deviceInfo->setUniformSampling(traceCaptureDeviceInfo.value(QLatin1String("uniform"), false).toBool()); screenContext.reset(new LTKScreenContext()); - QRectF boundingBox(traceScreenInfo.value("boundingBox").toRectF()); + QRectF boundingBox(traceScreenInfo.value(QLatin1String("boundingBox")).toRectF()); if (!boundingBox.isEmpty()) { screenContext->setBboxLeft(boundingBox.left()); screenContext->setBboxTop(boundingBox.top()); @@ -137,7 +137,7 @@ public: screenContext->setBboxBottom(boundingBox.bottom()); } - QVariantList horizontalRulers(traceScreenInfo.value("horizontalRulers", QVariantList()).toList()); + QVariantList horizontalRulers(traceScreenInfo.value(QLatin1String("horizontalRulers"), QVariantList()).toList()); if (!horizontalRulers.isEmpty()) { for (QVariantList::ConstIterator i = horizontalRulers.constBegin(); i != horizontalRulers.constEnd(); i++) { @@ -145,7 +145,7 @@ public: } } - QVariantList verticalRulers(traceScreenInfo.value("verticalRulers", QVariantList()).toList()); + QVariantList verticalRulers(traceScreenInfo.value(QLatin1String("verticalRulers"), QVariantList()).toList()); if (!horizontalRulers.isEmpty()) { for (QVariantList::ConstIterator i = verticalRulers.constBegin(); i != verticalRulers.constEnd(); i++) { @@ -182,7 +182,7 @@ public: #endif QVirtualKeyboardTrace *trace = new QVirtualKeyboardTrace(); - trace->setChannels(QStringList("t")); + trace->setChannels(QStringList(QLatin1String("t"))); traceList.append(trace); return trace; @@ -271,7 +271,7 @@ public: saveTraces(Qt::Key_Space, 100); #endif cancelRecognition(); - ic->inputEngine()->virtualKeyClick(Qt::Key_Space, QString(" "), Qt::NoModifier); + ic->inputEngine()->virtualKeyClick(Qt::Key_Space, QLatin1String(" "), Qt::NoModifier); } else if (swipeTouchCount == 2) { // Double swipe: commit word, or insert space cancelRecognition(); @@ -282,7 +282,7 @@ public: return; } #endif - ic->inputEngine()->virtualKeyClick(Qt::Key_Space, QString(" "), Qt::NoModifier); + ic->inputEngine()->virtualKeyClick(Qt::Key_Space, QLatin1String(" "), Qt::NoModifier); } return; } @@ -325,14 +325,14 @@ public: vector<LTKChannel> channels; channels.push_back(LTKChannel("X", DT_INT, true)); channels.push_back(LTKChannel("Y", DT_INT, true)); - bool hasTime = trace->channels().contains("t"); + bool hasTime = trace->channels().contains(QLatin1String("t")); if (hasTime) channels.push_back(LTKChannel("T", DT_FLOAT, true)); LTKTraceFormat traceFormat(channels); LTKTrace ltktrace(traceFormat); const QVariantList points = trace->points(); - const QVariantList timeData = hasTime ? trace->channelData("t") : QVariantList(); + const QVariantList timeData = hasTime ? trace->channelData(QLatin1String("t")) : QVariantList(); QVariantList::ConstIterator t = timeData.constBegin(); for (const QVariant &p : points) { const QPointF pt(p.toPointF()); @@ -355,7 +355,7 @@ public: #endif stopRecognizeTimer(); clearTraces(); - if (recognitionTask && !delayedResult.isEmpty() && recognitionTask->resultId() == delayedResult["resultId"].toInt()) + if (recognitionTask && !delayedResult.isEmpty() && recognitionTask->resultId() == delayedResult[QLatin1String("resultId")].toInt()) processResult(delayedResult); delayedResult.clear(); recognitionTask.reset(); @@ -408,7 +408,7 @@ public: { if (!resultList.isEmpty()) { const QVariantMap result = resultList.at(0).toMap(); - if (recognitionTask && recognitionTask->resultId() == result["resultId"].toInt()) + if (recognitionTask && recognitionTask->resultId() == result[QLatin1String("resultId")].toInt()) delayedResult = result; else processResult(result); @@ -417,13 +417,13 @@ public: void processResult(const QVariantMap &result) { - const QChar ch = result["unicode"].toChar(); + const QChar ch = result[QLatin1String("unicode")].toChar(); const QChar chUpper = ch.toUpper(); #ifdef QT_VIRTUALKEYBOARD_RECORD_TRACE_INPUT // In recording mode, the text case must match with the current text case if (unipenTrace) { if (!ch.isLetter() || (ch.isUpper() == (textCase == QVirtualKeyboardInputEngine::TextCase::Upper))) - saveTraces(ch.unicode(), qRound(result["confidence"].toDouble() * 100)); + saveTraces(ch.unicode(), qRound(result[QLatin1String("confidence")].toDouble() * 100)); delete unipenTrace; unipenTrace = 0; } @@ -448,7 +448,7 @@ public: QStringList homeLocations = QStandardPaths::standardLocations(QStandardPaths::HomeLocation); if (!homeLocations.isEmpty()) { - QString filePath = QStringLiteral("%1/%2").arg(homeLocations.at(0)).arg("VIRTUAL_KEYBOARD_TRACES"); + QString filePath = QStringLiteral("%1/%2").arg(homeLocations.at(0)).arg(QLatin1String("VIRTUAL_KEYBOARD_TRACES")); unipenTrace->setDirectory(filePath); unipenTrace->save(unicode, confidence); } @@ -625,7 +625,10 @@ void LipiInputMethod::resultsAvailable(const QVariantList &resultList) qCDebug(lcLipi) << "LipiInputMethod::resultsAvailable():"; for (int i = 0; i < resultList.size(); i++) { QVariantMap result = resultList.at(i).toMap(); - qCDebug(lcLipi) << QString("%1: %2 (%3)").arg(i + 1).arg(result["unicode"].toChar()).arg(result["confidence"].toFloat()).toUtf8().constData(); + const QChar unicode = result[QLatin1String("unicode")].toChar(); + const double confidence = result[QLatin1String("confidence")].toDouble(); + qCDebug(lcLipi) << QStringLiteral("%1: %2 (%3)").arg(i + 1) + .arg(unicode).arg(confidence).toUtf8().constData(); } } Q_D(LipiInputMethod); diff --git a/src/plugins/lipi-toolkit/plugin/lipisharedrecognizer.cpp b/src/plugins/lipi-toolkit/plugin/lipisharedrecognizer.cpp index 8a45dcb6..090f129c 100644 --- a/src/plugins/lipi-toolkit/plugin/lipisharedrecognizer.cpp +++ b/src/plugins/lipi-toolkit/plugin/lipisharedrecognizer.cpp @@ -90,7 +90,7 @@ bool LipiSharedRecognizer::setModel(const QString &modelName) qCDebug(lcLipi) << "LipiSharedRecognizer::setModel():" << modelName; if (!s_lipiEngine) { - qWarning() << "Engine not initialized"; + qCWarning(lcLipi) << "Engine not initialized"; return false; } @@ -187,16 +187,16 @@ int LipiSharedRecognizer::loadLipiInterface() */ bool lipiRootVarIsEmpty = qEnvironmentVariableIsEmpty("LIPI_ROOT"); s_lipiRoot = lipiRootVarIsEmpty ? - QDir(QLibraryInfo::location(QLibraryInfo::DataPath) + "/qtvirtualkeyboard/lipi_toolkit").absolutePath() : + QDir(QLibraryInfo::location(QLibraryInfo::DataPath) + QLatin1String("/qtvirtualkeyboard/lipi_toolkit")).absolutePath() : qEnvironmentVariable("LIPI_ROOT"); bool lipiLibVarIsEmpty = qEnvironmentVariableIsEmpty("LIPI_LIB"); if (!lipiLibVarIsEmpty) s_lipiLib = qEnvironmentVariable("LIPI_LIB"); else if (!lipiRootVarIsEmpty) - s_lipiLib = s_lipiRoot + "/lib"; + s_lipiLib = s_lipiRoot + QLatin1String("/lib"); else - s_lipiLib = QDir(QLibraryInfo::location(QLibraryInfo::PluginsPath) + "/lipi_toolkit").absolutePath(); + s_lipiLib = QDir(QLibraryInfo::location(QLibraryInfo::PluginsPath) + QLatin1String("/lipi_toolkit")).absolutePath(); } QScopedPointer<LTKOSUtil> osUtil(LTKOSUtilFactory::getInstance()); @@ -205,7 +205,7 @@ int LipiSharedRecognizer::loadLipiInterface() int result = osUtil->loadSharedLib(lipiLibPath, LIPIENGINE_MODULE_STR, &s_lipiEngineHandle); if (result != SUCCESS) { - qWarning() << QString("Error %1: Could not open shared library for module '%2'").arg(result).arg(LIPIENGINE_MODULE_STR); + qCWarning(lcLipi) << QStringLiteral("Error %1: Could not open shared library for module '%2'").arg(result).arg(QLatin1String(LIPIENGINE_MODULE_STR)); return result; } @@ -215,13 +215,13 @@ int LipiSharedRecognizer::loadLipiInterface() result = osUtil->getFunctionAddress(s_lipiEngineHandle, "createLTKLipiEngine", (void **)&s_createLTKLipiEngine); if (result != SUCCESS) { - qWarning() << QString("Error %1: %2").arg(result).arg(getErrorMessage(result).c_str()); + qCWarning(lcLipi) << QStringLiteral("Error %1: %2").arg(result).arg(QLatin1String(getErrorMessage(result).c_str())); return result; } result = osUtil->getFunctionAddress(s_lipiEngineHandle, "deleteLTKLipiEngine", (void **)&s_deleteLTKLipiEngine); if (result != SUCCESS) { - qWarning() << QString("Error %1: %2").arg(result).arg(getErrorMessage(result).c_str()); + qCWarning(lcLipi) << QStringLiteral("Error %1: %2").arg(result).arg(QLatin1String(getErrorMessage(result).c_str())); return result; } @@ -235,7 +235,7 @@ int LipiSharedRecognizer::loadLipiInterface() result = s_lipiEngine->initializeLipiEngine(); if (result != SUCCESS) { - qWarning() << QString("Error %1: %2").arg(result).arg(getErrorMessage(result).c_str()); + qCWarning(lcLipi) << QStringLiteral("Error %1: %2").arg(result).arg(QLatin1String(getErrorMessage(result).c_str())); return result; } } @@ -266,9 +266,9 @@ int LipiSharedRecognizer::loadLipiEngineConfig() { s_lipiEngineConfigEntries.clear(); - const QString &lipiEngineConfigFile(QDir::toNativeSeparators(QString("%1/projects/lipiengine.cfg").arg(s_lipiRoot))); + const QString &lipiEngineConfigFile(QDir::toNativeSeparators(QStringLiteral("%1/projects/lipiengine.cfg").arg(s_lipiRoot))); if (!QFileInfo::exists(lipiEngineConfigFile)) { - qWarning() << "File not found" << lipiEngineConfigFile; + qCWarning(lcLipi) << "File not found" << lipiEngineConfigFile; return FAILURE; } @@ -291,11 +291,11 @@ int LipiSharedRecognizer::resolveLogicalNameToProjectProfile(const QString &logi if (configEntry == s_lipiEngineConfigEntries.end()) return FAILURE; - QStringList parts = QString(configEntry->second.c_str()).split('(', QString::SkipEmptyParts); + QStringList parts = QString::fromLatin1(configEntry->second.c_str()).split(QLatin1Char('('), QString::SkipEmptyParts); if (parts.length() != 2) return FAILURE; - parts[1].replace(')', ""); + parts[1].replace(QLatin1Char(')'), QString()); outProjectName = parts[0].trimmed(); outProfileName = parts[1].trimmed(); @@ -323,7 +323,7 @@ int LipiSharedRecognizer::loadModelData(const QString &logicalName) string strProfile = profile.toStdString(); int result = s_lipiEngine->createShapeRecognizer(strProject, strProfile, &s_shapeRecognizer); if (result == SUCCESS) { - result = loadMapping(QDir::toNativeSeparators(QString("%1/projects/%2/config/unicodeMapfile_%2.ini").arg(s_lipiRoot).arg(project))); + result = loadMapping(QDir::toNativeSeparators(QStringLiteral("%1/projects/%2/config/unicodeMapfile_%2.ini").arg(s_lipiRoot).arg(project))); if (result == SUCCESS) { s_lipiWorker = new LipiWorker(s_shapeRecognizer); QSharedPointer<LipiLoadModelDataTask> loadModelDataTask(new LipiLoadModelDataTask()); @@ -337,7 +337,7 @@ int LipiSharedRecognizer::loadModelData(const QString &logicalName) qCDebug(lcLipi) << "LipiSharedRecognizer::loadModelData(): time:" << perf.elapsed() << "ms"; if (result != SUCCESS) { - qWarning() << QString("Error %1: %2").arg(result).arg(getErrorMessage(result).c_str()); + qCWarning(lcLipi) << QStringLiteral("Error %1: %2").arg(result).arg(QLatin1String(getErrorMessage(result).c_str())); unloadModelData(); } @@ -370,7 +370,7 @@ void LipiSharedRecognizer::unloadModelData() int LipiSharedRecognizer::loadMapping(const QString &mapFile) { if (!QFileInfo(mapFile).exists()) { - qWarning() << "File not found" << mapFile; + qCWarning(lcLipi) << "File not found" << mapFile; return FAILURE; } @@ -381,15 +381,15 @@ int LipiSharedRecognizer::loadMapping(const QString &mapFile) for (stringStringMap::const_iterator i = cfgFileMap.begin(); i != cfgFileMap.end(); i++) { if (i->first.empty()) continue; - if (!QChar(i->first.at(0)).isDigit()) + if (!QChar::fromLatin1(i->first.at(0)).isDigit()) continue; bool ok; - int id = QString(i->first.c_str()).toInt(&ok, 10); + int id = QString::fromLatin1(i->first.c_str()).toInt(&ok, 10); if (!ok) continue; - QChar ch = QChar(QString(i->second.c_str()).toInt(&ok, 16)); + QChar ch = QChar(QString::fromLatin1(i->second.c_str()).toInt(&ok, 16)); if (!ok) continue; diff --git a/src/plugins/lipi-toolkit/plugin/lipiworker.cpp b/src/plugins/lipi-toolkit/plugin/lipiworker.cpp index b1e8320d..ffe5c3b7 100644 --- a/src/plugins/lipi-toolkit/plugin/lipiworker.cpp +++ b/src/plugins/lipi-toolkit/plugin/lipiworker.cpp @@ -58,7 +58,7 @@ void LipiLoadModelDataTask::run() int result = shapeRecognizer->loadModelData(); qCDebug(lcLipi) << "LipiLoadModelDataTask::run(): time:" << perf.elapsed() << "ms"; if (result != SUCCESS) - qWarning() << QString("Error %1: %2").arg(result).arg(getErrorMessage(result).c_str()); + qCWarning(lcLipi) << QStringLiteral("Error %1: %2").arg(result).arg(QLatin1String(getErrorMessage(result).c_str())); } /*! @@ -159,10 +159,10 @@ void LipiRecognitionResultsTask::run() i != resultVector->end(); i++) { QVariantMap result; int shapeId = i->getShapeId(); - result["resultId"] = _resultId; - result["shapeId"] = shapeId; - result["unicode"] = unicodeMap.value(shapeId); - result["confidence"] = i->getConfidence(); + result[QLatin1String("resultId")] = _resultId; + result[QLatin1String("shapeId")] = shapeId; + result[QLatin1String("unicode")] = unicodeMap.value(shapeId); + result[QLatin1String("confidence")] = i->getConfidence(); resultList.append(result); } diff --git a/src/plugins/lipi-toolkit/plugin/plugin.pro b/src/plugins/lipi-toolkit/plugin/plugin.pro index 427d2aa8..c3a12440 100644 --- a/src/plugins/lipi-toolkit/plugin/plugin.pro +++ b/src/plugins/lipi-toolkit/plugin/plugin.pro @@ -15,6 +15,12 @@ SOURCES += \ OTHER_FILES += \ lipi.json +DEFINES += \ + QT_NO_CAST_TO_ASCII \ + QT_ASCII_CAST_WARNINGS \ + QT_NO_CAST_FROM_ASCII \ + QT_NO_CAST_FROM_BYTEARRAY + include(../../../config.pri) INCLUDEPATH += \ diff --git a/src/plugins/openwnn/3rdparty/openwnn/openwnn.pro b/src/plugins/openwnn/3rdparty/openwnn/openwnn.pro index 6c75d8ee..150ed169 100644 --- a/src/plugins/openwnn/3rdparty/openwnn/openwnn.pro +++ b/src/plugins/openwnn/3rdparty/openwnn/openwnn.pro @@ -51,6 +51,12 @@ HEADERS += \ wnnEngine/include/romkanhalfkatakana.h \ wnnEngine/include/wnnlookuptable.h +DEFINES += \ + QT_NO_CAST_TO_ASCII \ + QT_ASCII_CAST_WARNINGS \ + QT_NO_CAST_FROM_ASCII \ + QT_NO_CAST_FROM_BYTEARRAY + load(qt_helper_lib) CONFIG += qt diff --git a/src/plugins/openwnn/3rdparty/openwnn/wnnEngine/composingtext.cpp b/src/plugins/openwnn/3rdparty/openwnn/wnnEngine/composingtext.cpp index 82022c8e..1f9ca4ff 100644 --- a/src/plugins/openwnn/3rdparty/openwnn/wnnEngine/composingtext.cpp +++ b/src/plugins/openwnn/3rdparty/openwnn/wnnEngine/composingtext.cpp @@ -210,7 +210,7 @@ void ComposingText::debugout() const QString tmp; for (QList<StrSegment>::ConstIterator it = d->mStringLayer[i].constBegin(); it != d->mStringLayer[i].constEnd(); it++) { - tmp += QString("(%1,%2,%3)").arg(it->string).arg(it->from).arg(it->to); + tmp += QStringLiteral("(%1,%2,%3)").arg(it->string).arg(it->from).arg(it->to); } } } diff --git a/src/plugins/openwnn/3rdparty/openwnn/wnnEngine/openwnnenginejajp.cpp b/src/plugins/openwnn/3rdparty/openwnn/wnnEngine/openwnnenginejajp.cpp index dbcb7c37..534e97b6 100644 --- a/src/plugins/openwnn/3rdparty/openwnn/wnnEngine/openwnnenginejajp.cpp +++ b/src/plugins/openwnn/3rdparty/openwnn/wnnEngine/openwnnenginejajp.cpp @@ -178,8 +178,8 @@ public: } if (input.length() == 0) { - mInputHiragana = ""; - mInputRomaji = ""; + mInputHiragana.clear(); + mInputRomaji.clear(); return 0; } diff --git a/src/plugins/openwnn/plugin/openwnninputmethod.cpp b/src/plugins/openwnn/plugin/openwnninputmethod.cpp index 4d47a0a5..d6206732 100644 --- a/src/plugins/openwnn/plugin/openwnninputmethod.cpp +++ b/src/plugins/openwnn/plugin/openwnninputmethod.cpp @@ -184,7 +184,7 @@ public: { if (composingText.size(ComposingText::LAYER0) != 0) { Q_Q(OpenWnnInputMethod); - q->inputContext()->commit(""); + q->inputContext()->commit(QString()); } composingText.clear(); exactMatchMode = false; diff --git a/src/plugins/openwnn/plugin/plugin.pro b/src/plugins/openwnn/plugin/plugin.pro index 76234f89..7e11d890 100644 --- a/src/plugins/openwnn/plugin/plugin.pro +++ b/src/plugins/openwnn/plugin/plugin.pro @@ -10,6 +10,12 @@ SOURCES += \ OTHER_FILES += \ openwnn.json +DEFINES += \ + QT_NO_CAST_TO_ASCII \ + QT_ASCII_CAST_WARNINGS \ + QT_NO_CAST_FROM_ASCII \ + QT_NO_CAST_FROM_BYTEARRAY + include(../../../config.pri) LAYOUT_FILES += \ diff --git a/src/plugins/pinyin/3rdparty/pinyin/patches/0005-Fix-string-cast.patch b/src/plugins/pinyin/3rdparty/pinyin/patches/0005-Fix-string-cast.patch new file mode 100644 index 00000000..63e126d1 --- /dev/null +++ b/src/plugins/pinyin/3rdparty/pinyin/patches/0005-Fix-string-cast.patch @@ -0,0 +1,28 @@ +From 821c869ad7af125a7a718093f8d4730108cffe5b Mon Sep 17 00:00:00 2001 +From: Jarkko Koivikko <jarkko.koivikko@code-q.fi> +Date: Thu, 23 Aug 2018 21:51:19 +0300 +Subject: [PATCH] Fix string cast + +Enforce proper string cast using QT_NO_CAST_TO_ASCII and friends. + +Change-Id: I039b23144c8d57f12aad1c27f29654b382078222 +--- + src/plugins/pinyin/3rdparty/pinyin/share/dicttrie.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/plugins/pinyin/3rdparty/pinyin/share/dicttrie.cpp b/src/plugins/pinyin/3rdparty/pinyin/share/dicttrie.cpp +index e7d194f..a084395 100644 +--- a/src/plugins/pinyin/3rdparty/pinyin/share/dicttrie.cpp ++++ b/src/plugins/pinyin/3rdparty/pinyin/share/dicttrie.cpp +@@ -245,7 +245,7 @@ bool DictTrie::load_dict(const char *filename, LemmaIdType start_id, + if (NULL == filename || end_id <= start_id) + return false; + +- QFile file(filename); ++ QFile file(QString::fromUtf8(filename)); + if (!file.open(QIODevice::ReadOnly)) + return false; + QFile *fp = &file; +-- +2.14.1.windows.1 + diff --git a/src/plugins/pinyin/3rdparty/pinyin/pinyin.pro b/src/plugins/pinyin/3rdparty/pinyin/pinyin.pro index 0aedbb31..193f571a 100644 --- a/src/plugins/pinyin/3rdparty/pinyin/pinyin.pro +++ b/src/plugins/pinyin/3rdparty/pinyin/pinyin.pro @@ -45,6 +45,12 @@ HEADERS += \ include/utf16char.h \ include/utf16reader.h +DEFINES += \ + QT_NO_CAST_TO_ASCII \ + QT_ASCII_CAST_WARNINGS \ + QT_NO_CAST_FROM_ASCII \ + QT_NO_CAST_FROM_BYTEARRAY + OTHER_FILES +=\ data/rawdict_utf16_65105_freq.txt \ data/valid_utf16.txt diff --git a/src/plugins/pinyin/3rdparty/pinyin/share/dicttrie.cpp b/src/plugins/pinyin/3rdparty/pinyin/share/dicttrie.cpp index e7d194f6..a084395e 100644 --- a/src/plugins/pinyin/3rdparty/pinyin/share/dicttrie.cpp +++ b/src/plugins/pinyin/3rdparty/pinyin/share/dicttrie.cpp @@ -245,7 +245,7 @@ bool DictTrie::load_dict(const char *filename, LemmaIdType start_id, if (NULL == filename || end_id <= start_id) return false; - QFile file(filename); + QFile file(QString::fromUtf8(filename)); if (!file.open(QIODevice::ReadOnly)) return false; QFile *fp = &file; diff --git a/src/plugins/pinyin/3rdparty/pinyin/update-patches.sh b/src/plugins/pinyin/3rdparty/pinyin/update-patches.sh index 98d7af6e..ed67686a 100644 --- a/src/plugins/pinyin/3rdparty/pinyin/update-patches.sh +++ b/src/plugins/pinyin/3rdparty/pinyin/update-patches.sh @@ -29,8 +29,8 @@ ############################################################################# REV_FILTER=". :!./patches :!./update-patches.sh :!./pinyin.pro :!./qt_attribution.json" -REV_LIST=$(git rev-list --reverse HEAD -- $REV_FILTER) -N=0 +REV_LIST=$(git rev-list --reverse 59208edaaf40be982904a6c8cad4eab2d14f938e..HEAD -- $REV_FILTER) +N=5 for REV in $REV_LIST; do if [ $N -gt 0 ]; then diff --git a/src/plugins/pinyin/plugin/pinyindecoderservice.cpp b/src/plugins/pinyin/plugin/pinyindecoderservice.cpp index e01f7e63..4d9890f4 100644 --- a/src/plugins/pinyin/plugin/pinyindecoderservice.cpp +++ b/src/plugins/pinyin/plugin/pinyindecoderservice.cpp @@ -82,11 +82,11 @@ bool PinyinDecoderService::init() if (!QFileInfo::exists(sysDict)) { sysDict = QLatin1String(":///QtQuick/VirtualKeyboard/3rdparty/pinyin/data/dict_pinyin.dat"); if (!QFileInfo::exists(sysDict)) - sysDict = QLibraryInfo::location(QLibraryInfo::DataPath) + "/qtvirtualkeyboard/pinyin/dict_pinyin.dat"; + sysDict = QLibraryInfo::location(QLibraryInfo::DataPath) + QLatin1String("/qtvirtualkeyboard/pinyin/dict_pinyin.dat"); } QString usrDictPath = QStandardPaths::writableLocation(QStandardPaths::ConfigLocation); - QFileInfo usrDictInfo(usrDictPath + "/qtvirtualkeyboard/pinyin/usr_dict.dat"); + QFileInfo usrDictInfo(usrDictPath + QLatin1String("/qtvirtualkeyboard/pinyin/usr_dict.dat")); if (!usrDictInfo.exists()) { qCWarning(lcPinyin) << "PinyinDecoderService::init(): creating directory for user dictionary" << usrDictInfo.absolutePath(); QDir().mkpath(usrDictInfo.absolutePath()); @@ -105,7 +105,7 @@ void PinyinDecoderService::setUserDictionary(bool enabled) return; if (enabled) { QString usrDictPath = QStandardPaths::writableLocation(QStandardPaths::ConfigLocation); - QFileInfo usrDictInfo(usrDictPath + "/qtvirtualkeyboard/pinyin/usr_dict.dat"); + QFileInfo usrDictInfo(usrDictPath + QLatin1String("/qtvirtualkeyboard/pinyin/usr_dict.dat")); im_init_user_dictionary(usrDictInfo.absoluteFilePath().toUtf8().constData()); } else { im_init_user_dictionary(nullptr); diff --git a/src/plugins/pinyin/plugin/pinyininputmethod.cpp b/src/plugins/pinyin/plugin/pinyininputmethod.cpp index 8cc13c79..35d481c8 100644 --- a/src/plugins/pinyin/plugin/pinyininputmethod.cpp +++ b/src/plugins/pinyin/plugin/pinyininputmethod.cpp @@ -88,7 +88,7 @@ public: finishSelection = true; composingStr.clear(); if (inputContext) - inputContext->setPreeditText(""); + inputContext->setPreeditText(QString()); activeCmpsLen = 0; posDelSpl = -1; isPosInSpl = false; @@ -231,7 +231,7 @@ public: for (int pos = fixedLen + 1; pos < splStart.size() - 1; pos++) { composingStrDisplay += surface.mid(splStart[pos], splStart[pos + 1] - splStart[pos]).toUpper(); if (splStart[pos + 1] < surfaceDecodedLen) - composingStrDisplay += " "; + composingStrDisplay += QLatin1String(" "); } if (surfaceDecodedLen < surface.length()) composingStrDisplay += surface.mid(surfaceDecodedLen).toLower(); diff --git a/src/plugins/pinyin/plugin/plugin.pro b/src/plugins/pinyin/plugin/plugin.pro index 980862b4..f66c887e 100644 --- a/src/plugins/pinyin/plugin/plugin.pro +++ b/src/plugins/pinyin/plugin/plugin.pro @@ -12,6 +12,12 @@ SOURCES += \ OTHER_FILES += \ pinyin.json +DEFINES += \ + QT_NO_CAST_TO_ASCII \ + QT_ASCII_CAST_WARNINGS \ + QT_NO_CAST_FROM_ASCII \ + QT_NO_CAST_FROM_BYTEARRAY + include(../../../config.pri) LAYOUT_FILES += \ diff --git a/src/plugins/t9write/plugin/plugin.pro b/src/plugins/t9write/plugin/plugin.pro index 1c6393cf..0f68f8c4 100644 --- a/src/plugins/t9write/plugin/plugin.pro +++ b/src/plugins/t9write/plugin/plugin.pro @@ -15,6 +15,12 @@ SOURCES += \ OTHER_FILES += \ t9write.json +DEFINES += \ + QT_NO_CAST_TO_ASCII \ + QT_ASCII_CAST_WARNINGS \ + QT_NO_CAST_FROM_ASCII \ + QT_NO_CAST_FROM_BYTEARRAY + include(../../../config.pri) include(../3rdparty/t9write/t9write-build.pri) diff --git a/src/plugins/t9write/plugin/t9writeinputmethod.cpp b/src/plugins/t9write/plugin/t9writeinputmethod.cpp index 2ec9d073..63647e85 100644 --- a/src/plugins/t9write/plugin/t9writeinputmethod.cpp +++ b/src/plugins/t9write/plugin/t9writeinputmethod.cpp @@ -346,7 +346,7 @@ public: { srcType = numberOfSrcDictionaryTypes; - QStringList languageCountry = locale.name().split("_"); + QStringList languageCountry = locale.name().split(QLatin1String("_")); if (languageCountry.length() != 2) return QString(); @@ -355,7 +355,7 @@ public: while (it.hasNext()) { QString fileEntry = it.next(); - if (!fileEntry.contains("_" + languageCountry[0].toUpper())) + if (!fileEntry.contains(QLatin1String("_") + languageCountry[0].toUpper())) continue; if (fileEntry.endsWith(QLatin1String(".ldb"))) { @@ -1007,7 +1007,7 @@ public: return; currentContext = context; - qCDebug(lcT9Write) << "T9WriteInputMethodPrivate::setContext():" << QString(context.toHex()); + qCDebug(lcT9Write) << "T9WriteInputMethodPrivate::setContext():" << QLatin1String((context.toHex())); // Finish recognition, but preserve current input Q_Q(T9WriteInputMethod); @@ -1027,7 +1027,7 @@ public: emit q->selectionListActiveItemChanged(QVirtualKeyboardSelectionListModel::Type::WordCandidateList, activeWordIndex); } - const int dpi = traceCaptureDeviceInfo.value("dpi", 96).toInt(); + const int dpi = traceCaptureDeviceInfo.value(QLatin1String("dpi"), 96).toInt(); static const int INSTANT_GESTURE_WIDTH_THRESHOLD_MM = 25; static const int INSTANT_GESTURE_HEIGHT_THRESHOLD_MM = 25; instantGestureSettings.widthThreshold = INSTANT_GESTURE_WIDTH_THRESHOLD_MM / 25.4 * dpi; @@ -1035,7 +1035,7 @@ public: gestureRecognizer.setDpi(dpi); - QVariantList horizontalRulers(traceScreenInfo.value("horizontalRulers", QVariantList()).toList()); + QVariantList horizontalRulers(traceScreenInfo.value(QLatin1String("horizontalRulers"), QVariantList()).toList()); if (horizontalRulers.count() >= 2) { sessionSettings.baseline = horizontalRulers.last().toInt(); sessionSettings.helpline = 0; @@ -1343,8 +1343,8 @@ public: if (resultList.isEmpty()) return; - if (resultList.first().toMap()["resultId"] != resultId) { - qCDebug(lcT9Write) << "T9WriteInputMethodPrivate::processResult(): resultId mismatch" << resultList.first().toMap()["resultId"] << "(" << resultId << ")"; + if (resultList.first().toMap()[QLatin1String("resultId")] != resultId) { + qCDebug(lcT9Write) << "T9WriteInputMethodPrivate::processResult(): resultId mismatch" << resultList.first().toMap()[QLatin1String("resultId")] << "(" << resultId << ")"; resultList.clear(); return; } @@ -1352,7 +1352,7 @@ public: for (int i = 0; i < resultList.size(); i++) { QVariantMap result = resultList.at(i).toMap(); - QString resultChars = result["chars"].toString(); + QString resultChars = result[QLatin1String("chars")].toString(); if (i == 0) { if (ic->shift()) { caseFormatter.ensureLength(1, textCase); @@ -1370,16 +1370,16 @@ public: } if (i == 0) { resultString = resultChars; - if (result.contains("gesture")) - gesture = result["gesture"].toString(); - if (sessionSettings.recognitionMode != scrMode && result.contains("symbolStrokes")) - symbolStrokes = result["symbolStrokes"].toList(); + if (result.contains(QLatin1String("gesture"))) + gesture = result[QLatin1String("gesture")].toString(); + if (sessionSettings.recognitionMode != scrMode && result.contains(QLatin1String("symbolStrokes"))) + symbolStrokes = result[QLatin1String("symbolStrokes")].toList(); if (sessionSettings.recognitionMode == scrMode) break; } else { // Add a gesture symbol to the secondary candidate - if (sessionSettings.recognitionMode != scrMode && result.contains("gesture")) { - QString gesture2 = result["gesture"].toString(); + if (sessionSettings.recognitionMode != scrMode && result.contains(QLatin1String("gesture"))) { + QString gesture2 = result[QLatin1String("gesture")].toString(); if (gesture2.length() == 1) { QChar symbol = T9WriteInputMethodPrivate::mapGestureToSymbol(gesture2.at(0).unicode()); if (!symbol.isNull()) { @@ -1485,9 +1485,9 @@ public: { switch (symbol.unicode()) { case 0x23CE: - return QChar('\r'); + return QLatin1Char('\r'); case 0x2423: - return QChar(' '); + return QLatin1Char(' '); default: return QChar(); } @@ -1553,7 +1553,7 @@ public: if (swipeAngle <= SWIPE_ANGLE_THRESHOLD || swipeAngle >= 360 - SWIPE_ANGLE_THRESHOLD) { if (swipeTouchCount == 1) { // Single swipe: space - ic->inputEngine()->virtualKeyClick(Qt::Key_Space, QString(" "), Qt::NoModifier); + ic->inputEngine()->virtualKeyClick(Qt::Key_Space, QLatin1String(" "), Qt::NoModifier); return true; } return false; @@ -2089,15 +2089,18 @@ void T9WriteInputMethod::resultsAvailable(const QVariantList &resultList) qCDebug(lcT9Write) << "T9WriteInputMethod::resultsAvailable():"; for (int i = 0; i < resultList.size(); i++) { QVariantMap result = resultList.at(i).toMap(); - QString resultPrint = QString("%1: ").arg(i + 1); - QString resultChars = result.value("chars").toString(); + QString resultPrint = QStringLiteral("%1: ").arg(i + 1); + QString resultChars = result.value(QLatin1String("chars")).toString(); if (!resultChars.isEmpty()) resultPrint.append(resultChars); - if (result.contains("gesture")) { + if (result.contains(QLatin1String("gesture"))) { if (!resultChars.isEmpty()) - resultPrint.append(", "); - resultPrint.append("gesture = 0x"); - resultPrint.append(result["gesture"].toString().toUtf8().toHex()); + resultPrint.append(QLatin1String(", ")); + QString gesture = result[QLatin1String("gesture")].toString(); + resultPrint.append(QLatin1String("gesture =")); + for (const QChar &chr : gesture) { + resultPrint.append(QString::fromLatin1(" 0x%1").arg(chr.unicode(), 0, 16)); + } } qCDebug(lcT9Write) << resultPrint.toUtf8().constData(); } diff --git a/src/plugins/t9write/plugin/t9writeworker.cpp b/src/plugins/t9write/plugin/t9writeworker.cpp index 68fadf27..be9b4d9e 100644 --- a/src/plugins/t9write/plugin/t9writeworker.cpp +++ b/src/plugins/t9write/plugin/t9writeworker.cpp @@ -288,11 +288,11 @@ void T9WriteRecognitionResultsTask::run() symbolStrokes.append(QVariant((int)hwrResult.pSymbolStrokes[symbolIndex])); } - resultMap["resultId"] = result->id; - resultMap["chars"] = resultString; - resultMap["symbolStrokes"] = symbolStrokes; + resultMap[QLatin1String("resultId")] = result->id; + resultMap[QLatin1String("chars")] = resultString; + resultMap[QLatin1String("symbolStrokes")] = symbolStrokes; if (!gesture.isEmpty()) - resultMap["gesture"] = gesture; + resultMap[QLatin1String("gesture")] = gesture; resultList.append(resultMap); } diff --git a/src/plugins/tcime/3rdparty/tcime/cangjiedictionary.cpp b/src/plugins/tcime/3rdparty/tcime/cangjiedictionary.cpp index 1a50d371..7326b839 100644 --- a/src/plugins/tcime/3rdparty/tcime/cangjiedictionary.cpp +++ b/src/plugins/tcime/3rdparty/tcime/cangjiedictionary.cpp @@ -28,7 +28,7 @@ bool CangjieDictionary::_simplified = false; CangjieDictionary::CangjieDictionary() : WordDictionary(), - _collator(QLocale("zh_TW")) + _collator(QLocale(QLatin1String("zh_TW"))) { } diff --git a/src/plugins/tcime/3rdparty/tcime/tcime.pro b/src/plugins/tcime/3rdparty/tcime/tcime.pro index 55ce8f81..d9fc4f2e 100644 --- a/src/plugins/tcime/3rdparty/tcime/tcime.pro +++ b/src/plugins/tcime/3rdparty/tcime/tcime.pro @@ -22,6 +22,12 @@ OTHER_FILES += \ data/dict_cangjie.dat \ data/dict_phrases.dat +DEFINES += \ + QT_NO_CAST_TO_ASCII \ + QT_ASCII_CAST_WARNINGS \ + QT_NO_CAST_FROM_ASCII \ + QT_NO_CAST_FROM_BYTEARRAY + MODULE_INCLUDEPATH = $$PWD MODULE_DEFINES = HAVE_TCIME diff --git a/src/plugins/tcime/3rdparty/tcime/zhuyintable.cpp b/src/plugins/tcime/3rdparty/tcime/zhuyintable.cpp index c405b1e3..8198122a 100644 --- a/src/plugins/tcime/3rdparty/tcime/zhuyintable.cpp +++ b/src/plugins/tcime/3rdparty/tcime/zhuyintable.cpp @@ -41,7 +41,7 @@ const QChar ZhuyinTable::WU_FINALS = 0x3128; const QChar ZhuyinTable::YU_FINALS = 0x3129; const QList<QChar> ZhuyinTable::tones = QList<QChar>() << ZhuyinTable::DEFAULT_TONE << 0x02d9 << 0x02ca << 0x02c7 << 0x02cb; -const QChar ZhuyinTable::DEFAULT_TONE = QChar(' '); +const QChar ZhuyinTable::DEFAULT_TONE = QLatin1Char(' '); int ZhuyinTable::getInitials(const QChar &initials) { diff --git a/src/plugins/tcime/plugin/plugin.pro b/src/plugins/tcime/plugin/plugin.pro index b50b8402..9ac49798 100644 --- a/src/plugins/tcime/plugin/plugin.pro +++ b/src/plugins/tcime/plugin/plugin.pro @@ -10,6 +10,12 @@ SOURCES += \ OTHER_FILES += \ tcime.json +DEFINES += \ + QT_NO_CAST_TO_ASCII \ + QT_ASCII_CAST_WARNINGS \ + QT_NO_CAST_FROM_ASCII \ + QT_NO_CAST_FROM_BYTEARRAY + include(../../../config.pri) LAYOUT_FILES += \ diff --git a/src/plugins/tcime/plugin/tcinputmethod.cpp b/src/plugins/tcime/plugin/tcinputmethod.cpp index e347979a..abbbdd36 100644 --- a/src/plugins/tcime/plugin/tcinputmethod.cpp +++ b/src/plugins/tcime/plugin/tcinputmethod.cpp @@ -378,7 +378,7 @@ bool TCInputMethod::setInputMode(const QString &locale, QVirtualKeyboardInputEng if (!QFileInfo::exists(cangjieDictionary)) { cangjieDictionary = QLatin1String(":///QtQuick/VirtualKeyboard/3rdparty/tcime/data/qt/dict_cangjie.dat"); if (!QFileInfo::exists(cangjieDictionary)) - cangjieDictionary = QLibraryInfo::location(QLibraryInfo::DataPath) + "/qtvirtualkeyboard/tcime/dict_cangjie.dat"; + cangjieDictionary = QLibraryInfo::location(QLibraryInfo::DataPath) + QLatin1String("/qtvirtualkeyboard/tcime/dict_cangjie.dat"); } d->cangjieDictionary.load(cangjieDictionary); } @@ -392,7 +392,7 @@ bool TCInputMethod::setInputMode(const QString &locale, QVirtualKeyboardInputEng if (!QFileInfo::exists(zhuyinDictionary)) { zhuyinDictionary = QLatin1String(":///QtQuick/VirtualKeyboard/3rdparty/tcime/data/qt/dict_zhuyin.dat"); if (!QFileInfo::exists(zhuyinDictionary)) - zhuyinDictionary = QLibraryInfo::location(QLibraryInfo::DataPath) + "/qtvirtualkeyboard/tcime/dict_zhuyin.dat"; + zhuyinDictionary = QLibraryInfo::location(QLibraryInfo::DataPath) + QLatin1String("/qtvirtualkeyboard/tcime/dict_zhuyin.dat"); } d->zhuyinDictionary.load(zhuyinDictionary); } @@ -405,7 +405,7 @@ bool TCInputMethod::setInputMode(const QString &locale, QVirtualKeyboardInputEng if (!QFileInfo::exists(phraseDictionary)) { phraseDictionary = QLatin1String(":///QtQuick/VirtualKeyboard/3rdparty/tcime/data/qt/dict_phrases.dat"); if (!QFileInfo::exists(phraseDictionary)) - phraseDictionary = QLibraryInfo::location(QLibraryInfo::DataPath) + "/qtvirtualkeyboard/tcime/dict_phrases.dat"; + phraseDictionary = QLibraryInfo::location(QLibraryInfo::DataPath) + QLatin1String("/qtvirtualkeyboard/tcime/dict_phrases.dat"); } d->phraseDictionary.load(phraseDictionary); } diff --git a/src/plugins/thai/plugin/plugin.pro b/src/plugins/thai/plugin/plugin.pro index 65d61709..81f05b4b 100644 --- a/src/plugins/thai/plugin/plugin.pro +++ b/src/plugins/thai/plugin/plugin.pro @@ -10,6 +10,12 @@ SOURCES += \ OTHER_FILES += \ thai.json +DEFINES += \ + QT_NO_CAST_TO_ASCII \ + QT_ASCII_CAST_WARNINGS \ + QT_NO_CAST_FROM_ASCII \ + QT_NO_CAST_FROM_BYTEARRAY + include(../../../config.pri) !disable-hunspell { diff --git a/src/plugins/thai/plugin/thaiinputmethod.cpp b/src/plugins/thai/plugin/thaiinputmethod.cpp index 02e7603a..57dc8a67 100644 --- a/src/plugins/thai/plugin/thaiinputmethod.cpp +++ b/src/plugins/thai/plugin/thaiinputmethod.cpp @@ -71,7 +71,7 @@ bool ThaiInputMethod::keyEvent(Qt::Key key, const QString &text, Qt::KeyboardModifiers modifiers) { - const bool isMark = text.length() == 2 && text.at(0) == QChar(' '); + const bool isMark = text.length() == 2 && text.at(0) == QLatin1Char(' '); #ifdef QT_HUNSPELLINPUTMETHOD_LIB if (isMark) { const QString mark(text.right(1)); diff --git a/src/styles/styles.pro b/src/styles/styles.pro index 85c99f05..aa7280e2 100644 --- a/src/styles/styles.pro +++ b/src/styles/styles.pro @@ -20,6 +20,12 @@ OTHER_FILES += \ plugins.qmltypes \ qmldir +DEFINES += \ + QT_NO_CAST_TO_ASCII \ + QT_ASCII_CAST_WARNINGS \ + QT_NO_CAST_FROM_ASCII \ + QT_NO_CAST_FROM_BYTEARRAY + win32 { QMAKE_TARGET_PRODUCT = "Qt Virtual Keyboard (Qt $$QT_VERSION)" QMAKE_TARGET_DESCRIPTION = "Virtual Keyboard for Qt." diff --git a/src/styles/svgimageprovider.cpp b/src/styles/svgimageprovider.cpp index 1dd2930f..d4e16d80 100644 --- a/src/styles/svgimageprovider.cpp +++ b/src/styles/svgimageprovider.cpp @@ -46,24 +46,24 @@ QPixmap SvgImageProvider::requestPixmap(const QString &id, QSize *size, const QS { QSize imageSize(-1, -1); QUrl request(id); - QString imagePath = ":/" + request.path(); + QString imagePath = QLatin1String(":/") + request.path(); if (request.hasQuery()) { const QString query = request.query(); - const QStringList paramList = query.split(QChar('&'), QString::SkipEmptyParts); + const QStringList paramList = query.split(QLatin1Char('&'), QString::SkipEmptyParts); QVariantMap params; for (const QString ¶m : paramList) { - QStringList keyValue = param.split(QChar('='), QString::SkipEmptyParts); + QStringList keyValue = param.split(QLatin1Char('='), QString::SkipEmptyParts); if (keyValue.length() == 2) params[keyValue[0]] = keyValue[1]; } - const auto widthIt = params.constFind("width"); + const auto widthIt = params.constFind(QLatin1String("width")); if (widthIt != params.cend()) { bool ok = false; int value = widthIt.value().toInt(&ok); if (ok) imageSize.setWidth(value); } - const auto heightIt = params.constFind("height"); + const auto heightIt = params.constFind(QLatin1String("height")); if (heightIt != params.cend()) { bool ok = false; int value = heightIt.value().toInt(&ok); @@ -75,7 +75,7 @@ QPixmap SvgImageProvider::requestPixmap(const QString &id, QSize *size, const QS } QPixmap image; - if ((imageSize.width() > 0 || imageSize.height() > 0) && imagePath.endsWith(".svg")) { + if ((imageSize.width() > 0 || imageSize.height() > 0) && imagePath.endsWith(QLatin1String(".svg"))) { QSvgRenderer renderer(imagePath); QSize defaultSize(renderer.defaultSize()); if (defaultSize.isEmpty()) diff --git a/src/virtualkeyboard/desktopinputpanel.cpp b/src/virtualkeyboard/desktopinputpanel.cpp index 5b5e52d3..aee0f100 100644 --- a/src/virtualkeyboard/desktopinputpanel.cpp +++ b/src/virtualkeyboard/desktopinputpanel.cpp @@ -154,7 +154,7 @@ void DesktopInputPanel::createView() break; } d->view->setColor(QColor(Qt::transparent)); - d->view->setSource(QUrl("qrc:///QtQuick/VirtualKeyboard/content/InputPanel.qml")); + d->view->setSource(QUrl(QLatin1String("qrc:///QtQuick/VirtualKeyboard/content/InputPanel.qml"))); if (QGuiApplication *app = qGuiApp) connect(app, SIGNAL(aboutToQuit()), SLOT(destroyView())); } diff --git a/src/virtualkeyboard/qvirtualkeyboardabstractinputmethod.cpp b/src/virtualkeyboard/qvirtualkeyboardabstractinputmethod.cpp index e4cca1b1..8ca0cdba 100644 --- a/src/virtualkeyboard/qvirtualkeyboardabstractinputmethod.cpp +++ b/src/virtualkeyboard/qvirtualkeyboardabstractinputmethod.cpp @@ -151,7 +151,7 @@ QVariant QVirtualKeyboardAbstractInputMethod::selectionListData(QVirtualKeyboard Q_UNUSED(index) switch (role) { case QVirtualKeyboardSelectionListModel::Role::Display: - return QVariant(""); + return QVariant(QString()); case QVirtualKeyboardSelectionListModel::Role::WordCompletionLength: return QVariant(0); case QVirtualKeyboardSelectionListModel::Role::Dictionary: diff --git a/src/virtualkeyboard/unipentrace.cpp b/src/virtualkeyboard/unipentrace.cpp index 1ced292d..eca531c2 100644 --- a/src/virtualkeyboard/unipentrace.cpp +++ b/src/virtualkeyboard/unipentrace.cpp @@ -45,19 +45,19 @@ UnipenTrace::UnipenTrace(const QVariantMap &traceCaptureDeviceInfo, m_lines.append(QLatin1String(".HIERARCHY CHARACTER")); m_lines.append(QLatin1String(".COORD X Y T")); m_lines.append(QLatin1String(".SEGMENT CHARACTER")); - const QRectF boundingBox = traceScreenInfo["boundingBox"].toRectF(); + const QRectF boundingBox = traceScreenInfo[QLatin1String("boundingBox")].toRectF(); if (!boundingBox.isEmpty()) { m_lines.append(QStringLiteral(".X_DIM %1").arg(qRound(boundingBox.right()))); m_lines.append(QStringLiteral(".Y_DIM %1").arg(qRound(boundingBox.bottom()))); } bool ok = false; - int dpi = traceCaptureDeviceInfo["dpi"].toInt(&ok); + int dpi = traceCaptureDeviceInfo[QLatin1String("dpi")].toInt(&ok); if (ok) { m_lines.append(QStringLiteral(".X_POINTS_PER_INCH %1").arg(dpi)); m_lines.append(QStringLiteral(".Y_POINTS_PER_INCH %1").arg(dpi)); } ok = false; - int sampleRate = traceCaptureDeviceInfo["sampleRate"].toInt(&ok); + int sampleRate = traceCaptureDeviceInfo[QLatin1String("sampleRate")].toInt(&ok); if (ok) m_lines.append(QStringLiteral(".POINTS_PER_SECOND %1").arg(sampleRate)); } @@ -67,8 +67,8 @@ void UnipenTrace::record(const QList<QVirtualKeyboardTrace *> &traceList) qlonglong t0 = 0; for (const QVirtualKeyboardTrace *trace : qAsConst(traceList)) { const QVariantList &points = trace->points(); - const bool hasTime = trace->channels().contains("t"); - const QVariantList timeData = hasTime ? trace->channelData("t") : QVariantList(); + const bool hasTime = trace->channels().contains(QLatin1String("t")); + const QVariantList timeData = hasTime ? trace->channelData(QLatin1String("t")) : QVariantList(); QVariantList::ConstIterator t = timeData.constBegin(); if (t0 == 0 && hasTime) t0 = t->toLongLong(); @@ -107,8 +107,8 @@ void UnipenTrace::save(uint unicode, uint confidence) } while (QFileInfo::exists(fileName)); } - QString dataStr(m_lines.join('\n')); - dataStr.append('\n'); + QString dataStr(m_lines.join(QLatin1Char('\n'))); + dataStr.append(QLatin1Char('\n')); QFile file(fileName); if (file.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Truncate)) { file.write(dataStr.toUtf8().constData()); diff --git a/src/virtualkeyboard/virtualkeyboard.pro b/src/virtualkeyboard/virtualkeyboard.pro index 92cdab88..cb28d6a1 100644 --- a/src/virtualkeyboard/virtualkeyboard.pro +++ b/src/virtualkeyboard/virtualkeyboard.pro @@ -387,6 +387,12 @@ no-builtin-style { DEFINES += QT_VIRTUALKEYBOARD_DEFAULT_LAYOUTS_DIR=\\\"qrc:/QtQuick/VirtualKeyboard/content/layouts\\\" +DEFINES += \ + QT_NO_CAST_TO_ASCII \ + QT_ASCII_CAST_WARNINGS \ + QT_NO_CAST_FROM_ASCII \ + QT_NO_CAST_FROM_BYTEARRAY + OTHER_FILES += \ content/styles/default/*.qml \ content/styles/retro/*.qml \ diff --git a/src/virtualkeyboard/virtualkeyboardsettings.cpp b/src/virtualkeyboard/virtualkeyboardsettings.cpp index b5c1a339..5f9e82f0 100644 --- a/src/virtualkeyboard/virtualkeyboardsettings.cpp +++ b/src/virtualkeyboard/virtualkeyboardsettings.cpp @@ -49,8 +49,8 @@ public: QString buildStyleImportPath(const QString &path, const QString &name) const { - QString importPath(path + name + "/style.qml"); - if (!importPath.startsWith("qrc:")) { + QString importPath(path + name + QLatin1String("/style.qml")); + if (!importPath.startsWith(QLatin1String("qrc:"))) { QUrl url = QUrl::fromLocalFile(importPath); importPath = url.toString(); } @@ -60,9 +60,9 @@ public: QString buildStyleFilePath(const QString &path, const QString &name) const { QString filePath(path); - if (filePath.startsWith("qrc:")) + if (filePath.startsWith(QLatin1String("qrc:"))) filePath.remove(0, 3); - return filePath + name + "/style.qml"; + return filePath + name + QLatin1String("/style.qml"); } QString styleImportPath(const QString &name) const @@ -71,12 +71,12 @@ public: return QString(); QStringList styleImportPathList; - styleImportPathList << "qrc:/QtQuick/VirtualKeyboard/content/styles/"; + styleImportPathList << QLatin1String("qrc:/QtQuick/VirtualKeyboard/content/styles/"); const QStringList importPathList = engine->importPathList(); // Add QML import path (Note: the QML base dir is usually the last entry in the list) for (int i = importPathList.size() - 1; i >= 0; --i) { const QString stylesPath = importPathList.at(i) - + QStringLiteral("/QtQuick/VirtualKeyboard/Styles/"); + + QLatin1String("/QtQuick/VirtualKeyboard/Styles/"); styleImportPathList += stylesPath; } @@ -226,7 +226,7 @@ void VirtualKeyboardSettings::setLayoutPath(const QUrl &layoutPath) void VirtualKeyboardSettings::resetLayoutPath() { Settings *settings = Settings::instance(); - QUrl layoutPath(QT_VIRTUALKEYBOARD_DEFAULT_LAYOUTS_DIR); + QUrl layoutPath(QLatin1String(QT_VIRTUALKEYBOARD_DEFAULT_LAYOUTS_DIR)); const QString customLayoutPath(QDir::fromNativeSeparators(qEnvironmentVariable("QT_VIRTUALKEYBOARD_LAYOUT_PATH"))); if (!customLayoutPath.isEmpty()) { bool found = false; @@ -293,12 +293,12 @@ void VirtualKeyboardSettings::resetStyle() { Q_D(VirtualKeyboardSettings); Settings *settings = Settings::instance(); - QString styleName = QT_VIRTUALKEYBOARD_DEFAULT_STYLE; + QString styleName = QLatin1String(QT_VIRTUALKEYBOARD_DEFAULT_STYLE); QString style = d->styleImportPath(styleName); - QString customStyleName = qgetenv("QT_VIRTUALKEYBOARD_STYLE"); + QString customStyleName = QString::fromLatin1(qgetenv("QT_VIRTUALKEYBOARD_STYLE")); if (!customStyleName.isEmpty()) { bool found = false; - QRegularExpression styleNameValidator("\\A(?:\\w+)\\z"); + QRegularExpression styleNameValidator(QLatin1String("\\A(?:\\w+)\\z")); QRegularExpressionMatch match = styleNameValidator.match(customStyleName); if (match.hasMatch()) { QString customStyle = d->styleImportPath(customStyleName); |