From 68375389bf09427103ab3ff2b7fb1517e9b55615 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Thu, 18 Jul 2019 23:03:17 +0200 Subject: Port from implicit QChar(*int*) to explicit ones Found a nice misuse of QChar <=> Qt::Key, which happens to work for '\'', but not for all other keys (e.g. Esc)... I want to note that, yes, I took note of the code's abuse of Qt containers, and no, I _did_ constrain myself; this patch is just fixing implicit *int*->QChar conversions. Change-Id: I3cb43417f3922fdc500783b7e0b8caecc0d3c5f5 Reviewed-by: Thiago Macieira Reviewed-by: Volker Hilsheimer --- src/plugins/pinyin/plugin/pinyindecoderservice.cpp | 2 +- src/plugins/pinyin/plugin/pinyininputmethod.cpp | 2 +- .../tcime/3rdparty/tcime/cangjiedictionary.cpp | 2 +- src/plugins/tcime/3rdparty/tcime/cangjietable.cpp | 50 +++++++++++----------- src/plugins/tcime/3rdparty/tcime/zhuyintable.cpp | 21 +++++---- src/plugins/tcime/plugin/tcinputmethod.cpp | 4 +- 6 files changed, 40 insertions(+), 41 deletions(-) diff --git a/src/plugins/pinyin/plugin/pinyindecoderservice.cpp b/src/plugins/pinyin/plugin/pinyindecoderservice.cpp index 4d9890f4..3592040b 100644 --- a/src/plugins/pinyin/plugin/pinyindecoderservice.cpp +++ b/src/plugins/pinyin/plugin/pinyindecoderservice.cpp @@ -185,7 +185,7 @@ QString PinyinDecoderService::candidateAt(int index) candidateBuf.resize(kMaxSearchSteps + 1); if (!im_get_candidate(size_t(index), (char16 *)candidateBuf.data(), candidateBuf.length() - 1)) return QString(); - candidateBuf.last() = 0; + candidateBuf.last() = u'\0'; return QString(candidateBuf.data()); } diff --git a/src/plugins/pinyin/plugin/pinyininputmethod.cpp b/src/plugins/pinyin/plugin/pinyininputmethod.cpp index 35d481c8..cdd7d218 100644 --- a/src/plugins/pinyin/plugin/pinyininputmethod.cpp +++ b/src/plugins/pinyin/plugin/pinyininputmethod.cpp @@ -102,7 +102,7 @@ public: surface.clear(); pinyinDecoderService->resetSearch(); } - if (ch == Qt::Key_Apostrophe) { + if (ch == u'\'') { if (surface.isEmpty()) return false; if (surface.endsWith(ch)) diff --git a/src/plugins/tcime/3rdparty/tcime/cangjiedictionary.cpp b/src/plugins/tcime/3rdparty/tcime/cangjiedictionary.cpp index b02c8fef..ee9ee686 100644 --- a/src/plugins/tcime/3rdparty/tcime/cangjiedictionary.cpp +++ b/src/plugins/tcime/3rdparty/tcime/cangjiedictionary.cpp @@ -112,7 +112,7 @@ QStringList CangjieDictionary::searchWords(int secondaryIndex, const DictionaryE DictionaryEntry::ConstIterator start = data.constBegin(); DictionaryEntry::ConstIterator end = start + length; DictionaryEntry::ConstIterator rangeStart = std::lower_bound(start, end, (DictionaryWord)secondaryIndex); - if (rangeStart == end || *rangeStart != secondaryIndex) + if (rangeStart == end || *rangeStart != QChar(secondaryIndex)) return QStringList(); // There may be more than one words with the same index; look up words with diff --git a/src/plugins/tcime/3rdparty/tcime/cangjietable.cpp b/src/plugins/tcime/3rdparty/tcime/cangjietable.cpp index ee8ae4f8..41693a78 100644 --- a/src/plugins/tcime/3rdparty/tcime/cangjietable.cpp +++ b/src/plugins/tcime/3rdparty/tcime/cangjietable.cpp @@ -32,31 +32,31 @@ const QMap &CangjieTable::letters() static QMap letters; if (letters.isEmpty()) { int i = 1; - letters.insert(0x65e5, i++); - letters.insert(0x6708, i++); - letters.insert(0x91d1, i++); - letters.insert(0x6728, i++); - letters.insert(0x6c34, i++); - letters.insert(0x706b, i++); - letters.insert(0x571f, i++); - letters.insert(0x7af9, i++); - letters.insert(0x6208, i++); - letters.insert(0x5341, i++); - letters.insert(0x5927, i++); - letters.insert(0x4e2d, i++); - letters.insert(0x4e00, i++); - letters.insert(0x5f13, i++); - letters.insert(0x4eba, i++); - letters.insert(0x5fc3, i++); - letters.insert(0x624b, i++); - letters.insert(0x53e3, i++); - letters.insert(0x5c38, i++); - letters.insert(0x5eff, i++); - letters.insert(0x5c71, i++); - letters.insert(0x5973, i++); - letters.insert(0x7530, i++); - letters.insert(0x96e3, i++); - letters.insert(0x535c, i++); + letters.insert(QChar(0x65e5), i++); + letters.insert(QChar(0x6708), i++); + letters.insert(QChar(0x91d1), i++); + letters.insert(QChar(0x6728), i++); + letters.insert(QChar(0x6c34), i++); + letters.insert(QChar(0x706b), i++); + letters.insert(QChar(0x571f), i++); + letters.insert(QChar(0x7af9), i++); + letters.insert(QChar(0x6208), i++); + letters.insert(QChar(0x5341), i++); + letters.insert(QChar(0x5927), i++); + letters.insert(QChar(0x4e2d), i++); + letters.insert(QChar(0x4e00), i++); + letters.insert(QChar(0x5f13), i++); + letters.insert(QChar(0x4eba), i++); + letters.insert(QChar(0x5fc3), i++); + letters.insert(QChar(0x624b), i++); + letters.insert(QChar(0x53e3), i++); + letters.insert(QChar(0x5c38), i++); + letters.insert(QChar(0x5eff), i++); + letters.insert(QChar(0x5c71), i++); + letters.insert(QChar(0x5973), i++); + letters.insert(QChar(0x7530), i++); + letters.insert(QChar(0x96e3), i++); + letters.insert(QChar(0x535c), i++); } return letters; } diff --git a/src/plugins/tcime/3rdparty/tcime/zhuyintable.cpp b/src/plugins/tcime/3rdparty/tcime/zhuyintable.cpp index 8198122a..7dc62f37 100644 --- a/src/plugins/tcime/3rdparty/tcime/zhuyintable.cpp +++ b/src/plugins/tcime/3rdparty/tcime/zhuyintable.cpp @@ -26,21 +26,21 @@ using namespace tcime; const int ZhuyinTable::INITIALS_SIZE = 22; const QList ZhuyinTable::yiEndingFinals = QList() - << 0x311a << 0x311b << 0x311d << 0x311e << 0x3120 << 0x3121 << 0x3122 - << 0x3123 << 0x3124 << 0x3125; + << QChar(0x311a) << QChar(0x311b) << QChar(0x311d) << QChar(0x311e) << QChar(0x3120) << QChar(0x3121) << QChar(0x3122) + << QChar(0x3123) << QChar(0x3124) << QChar(0x3125); const QList ZhuyinTable::wuEndingFinals = QList() - << 0x311a << 0x311b << 0x311e << 0x311f << 0x3122 << 0x3123 << 0x3124 - << 0x3125; + << QChar(0x311a) << QChar(0x311b) << QChar(0x311e) << QChar(0x311f) << QChar(0x3122) << QChar(0x3123) << QChar(0x3124) + << QChar(0x3125); const QList ZhuyinTable::yuEndingFinals = QList() - << 0x311d << 0x3122 << 0x3123 << 0x3125; + << QChar(0x311d) << QChar(0x3122) << QChar(0x3123) << QChar(0x3125); const int ZhuyinTable::YI_FINALS_INDEX = 14; const int ZhuyinTable::WU_FINALS_INDEX = 25; const int ZhuyinTable::YU_FINALS_INDEX = 34; -const QChar ZhuyinTable::YI_FINALS = 0x3127; -const QChar ZhuyinTable::WU_FINALS = 0x3128; -const QChar ZhuyinTable::YU_FINALS = 0x3129; +const QChar ZhuyinTable::YI_FINALS(0x3127); +const QChar ZhuyinTable::WU_FINALS(0x3128); +const QChar ZhuyinTable::YU_FINALS (0x3129); const QList ZhuyinTable::tones = QList() - << ZhuyinTable::DEFAULT_TONE << 0x02d9 << 0x02ca << 0x02c7 << 0x02cb; + << ZhuyinTable::DEFAULT_TONE << QChar(0x02d9) << QChar(0x02ca) << QChar(0x02c7) << QChar(0x02cb); const QChar ZhuyinTable::DEFAULT_TONE = QLatin1Char(' '); int ZhuyinTable::getInitials(const QChar &initials) @@ -139,8 +139,7 @@ bool ZhuyinTable::isTone(const QChar &c) bool ZhuyinTable::isYiWuYuFinals(const QChar &c) { - ushort unicode = c.unicode(); - return unicode == YI_FINALS || unicode == WU_FINALS || unicode == YU_FINALS; + return c == YI_FINALS || c == WU_FINALS || c == YU_FINALS; } QStringList ZhuyinTable::stripTones(const QString &input) diff --git a/src/plugins/tcime/plugin/tcinputmethod.cpp b/src/plugins/tcime/plugin/tcinputmethod.cpp index abbbdd36..1f5fc6e3 100644 --- a/src/plugins/tcime/plugin/tcinputmethod.cpp +++ b/src/plugins/tcime/plugin/tcinputmethod.cpp @@ -124,7 +124,7 @@ public: bool composeCangjie(QVirtualKeyboardInputContext *ic, const QChar &c) { bool accept = false; - if (!input.contains(0x91CD) && CangjieTable::isLetter(c)) { + if (!input.contains(QChar(0x91CD)) && CangjieTable::isLetter(c)) { if (input.length() < (cangjieDictionary.simplified() ? CangjieTable::MAX_SIMPLIFIED_CODE_LENGTH : CangjieTable::MAX_CODE_LENGTH)) { input.append(c); ic->setPreeditText(input); @@ -260,7 +260,7 @@ public: QList decomposeZhuyin() { - QList results = QList() << 0 << 0 << 0 << 0; + QList results = {QChar::Null, QChar::Null, QChar::Null, QChar::Null}; QStringList pair = ZhuyinTable::stripTones(input); if (!pair.isEmpty()) { // Decompose tones. -- cgit v1.2.3