diff options
author | Jarkko Koivikko <jarkko.koivikko@code-q.fi> | 2018-08-22 16:35:31 +0300 |
---|---|---|
committer | Jarkko Koivikko <jarkko.koivikko@code-q.fi> | 2018-08-28 07:55:45 +0000 |
commit | 84f96372584c37149fe6df751f937b61e3b7abe5 (patch) | |
tree | a0b1d5111a8506704e73d1f8e9d26a3a09891a23 /src/virtualkeyboard/qvirtualkeyboardinputengine.cpp | |
parent | 9513bd4b5fc2adc1d7d3ab070040543b989d9ed3 (diff) |
Use enum class in the public API
This change was suggested in the API review.
All the "old" enums are backwards compatible in QML, since unscoped
values are enabled by default.
Added the following new enum values maintaining compatibility (in QML):
- QVirtualKeyboardInputEngine::PatternRecognitionMode::None (same as PatternRecognitionDisabled)
- QVirtualKeyboardInputEngine::PatternRecognitionMode::Handwriting (same as HandwritingRecoginition)
- QVirtualKeyboardSelectionListModel::Role::Display (same as DisplayRole)
- QVirtualKeyboardSelectionListModel::Role::WordCompletionLength (same as WordCompletionLengthRole)
Renamed the following enum values (new in 5.12):
- QVirtualKeyboardSelectionListModel::Role::Dictionary (was DictionaryTypeRole)
- QVirtualKeyboardSelectionListModel::Role::CanRemoveSuggestion (was CanRemoveSuggestionRole)
- QVirtualKeyboardSelectionListModel::DictionaryType::Default (was DefaultDictionary)
- QVirtualKeyboardSelectionListModel::DictionaryType::User (was UserDictionary)
Added missing Q_DECLARE_METATYPE for:
- QVirtualKeyboardInputEngine::PatternRecognitionMode
- QVirtualKeyboardInputEngine::ReselectFlag
- QVirtualKeyboardSelectionListModel::DictionaryType
The enums can be found in:
- src/virtualkeyboard/qvirtualkeyboardinputengine.h
- src/virtualkeyboard/qvirtualkeyboardselectionlistmodel.h
Added a test case for verifying QML enum values.
Change-Id: I16749af71aadd762e9c303b5c682b2888afaa672
Reviewed-by: Jarkko Koivikko <jarkko.koivikko@code-q.fi>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
Diffstat (limited to 'src/virtualkeyboard/qvirtualkeyboardinputengine.cpp')
-rw-r--r-- | src/virtualkeyboard/qvirtualkeyboardinputengine.cpp | 110 |
1 files changed, 58 insertions, 52 deletions
diff --git a/src/virtualkeyboard/qvirtualkeyboardinputengine.cpp b/src/virtualkeyboard/qvirtualkeyboardinputengine.cpp index 4bee3904..82f2fe8f 100644 --- a/src/virtualkeyboard/qvirtualkeyboardinputengine.cpp +++ b/src/virtualkeyboard/qvirtualkeyboardinputengine.cpp @@ -51,8 +51,8 @@ public: q_ptr(q_ptr), inputContext(nullptr), fallbackInputMethod(nullptr), - textCase(QVirtualKeyboardInputEngine::Lower), - inputMode(QVirtualKeyboardInputEngine::Latin), + textCase(QVirtualKeyboardInputEngine::TextCase::Lower), + inputMode(QVirtualKeyboardInputEngine::InputMode::Latin), activeKey(Qt::Key_unknown), activeKeyModifiers(Qt::NoModifier), previousKey(Qt::Key_unknown), @@ -170,7 +170,7 @@ void QVirtualKeyboardInputEngine::init() d->fallbackInputMethod = new FallbackInputMethod(this); if (d->fallbackInputMethod) d->fallbackInputMethod->setInputEngine(this); - d->selectionListModels[QVirtualKeyboardSelectionListModel::WordCandidateList] = new QVirtualKeyboardSelectionListModel(this); + d->selectionListModels[QVirtualKeyboardSelectionListModel::Type::WordCandidateList] = new QVirtualKeyboardSelectionListModel(this); } /*! @@ -417,7 +417,7 @@ void QVirtualKeyboardInputEngine::setInputMode(QVirtualKeyboardInputEngine::Inpu updateInputModes(); Q_ASSERT(cachedInputModes == d->inputModes); #endif - if (d->inputModes.contains(inputMode)) { + if (d->inputModes.contains(static_cast<const int>(inputMode))) { d->inputMethod->setInputMode(d->inputContext->locale(), inputMode); if (d->inputMode != inputMode) { d->inputMode = inputMode; @@ -433,13 +433,13 @@ void QVirtualKeyboardInputEngine::setInputMode(QVirtualKeyboardInputEngine::Inpu QVirtualKeyboardSelectionListModel *QVirtualKeyboardInputEngine::wordCandidateListModel() const { Q_D(const QVirtualKeyboardInputEngine); - return d->selectionListModels[QVirtualKeyboardSelectionListModel::WordCandidateList]; + return d->selectionListModels[QVirtualKeyboardSelectionListModel::Type::WordCandidateList]; } bool QVirtualKeyboardInputEngine::wordCandidateListVisibleHint() const { Q_D(const QVirtualKeyboardInputEngine); - const auto it = d->selectionListModels.constFind(QVirtualKeyboardSelectionListModel::WordCandidateList); + const auto it = d->selectionListModels.constFind(QVirtualKeyboardSelectionListModel::Type::WordCandidateList); if (it == d->selectionListModels.cend()) return false; return it.value()->dataSource() != nullptr; @@ -459,7 +459,7 @@ QList<int> QVirtualKeyboardInputEngine::patternRecognitionModes() const return resultList; resultList.reserve(patterRecognitionModeList.size()); for (const PatternRecognitionMode &patternRecognitionMode : qAsConst(patterRecognitionModeList)) - resultList.append(patternRecognitionMode); + resultList.append(static_cast<int>(patternRecognitionMode)); return resultList; } @@ -516,7 +516,7 @@ QVirtualKeyboardTrace *QVirtualKeyboardInputEngine::traceBegin( << "traceScreenInfo:" << traceScreenInfo; if (!d->inputMethod) return nullptr; - if (patternRecognitionMode == PatternRecognitionDisabled) + if (patternRecognitionMode == PatternRecognitionMode::None) return nullptr; if (!d->inputMethod->patternRecognitionModes().contains(patternRecognitionMode)) return nullptr; @@ -625,7 +625,7 @@ void QVirtualKeyboardInputEngine::update() void QVirtualKeyboardInputEngine::shiftChanged() { Q_D(QVirtualKeyboardInputEngine); - TextCase newCase = d->inputContext->priv()->shiftHandler()->shift() ? Upper : Lower; + TextCase newCase = d->inputContext->priv()->shiftHandler()->shift() ? TextCase::Upper : TextCase::Lower; if (d->textCase != newCase) { d->textCase = newCase; if (d->inputMethod) { @@ -648,11 +648,11 @@ void QVirtualKeyboardInputEngine::updateSelectionListModels() auto it = d->selectionListModels.find(selectionListType); if (it == d->selectionListModels.end()) { it = d->selectionListModels.insert(selectionListType, new QVirtualKeyboardSelectionListModel(this)); - if (selectionListType == QVirtualKeyboardSelectionListModel::WordCandidateList) + if (selectionListType == QVirtualKeyboardSelectionListModel::Type::WordCandidateList) emit wordCandidateListModelChanged(); } it.value()->setDataSource(d->inputMethod, selectionListType); - if (selectionListType == QVirtualKeyboardSelectionListModel::WordCandidateList) + if (selectionListType == QVirtualKeyboardSelectionListModel::Type::WordCandidateList) emit wordCandidateListVisibleHintChanged(); inactiveSelectionLists.removeAll(selectionListType); } @@ -663,7 +663,7 @@ void QVirtualKeyboardInputEngine::updateSelectionListModels() const auto it = d->selectionListModels.constFind(selectionListType); if (it != d->selectionListModels.cend()) { it.value()->setDataSource(nullptr, selectionListType); - if (selectionListType == QVirtualKeyboardSelectionListModel::WordCandidateList) + if (selectionListType == QVirtualKeyboardSelectionListModel::Type::WordCandidateList) emit wordCandidateListVisibleHintChanged(); } } @@ -771,23 +771,23 @@ void QVirtualKeyboardInputEngine::timerEvent(QTimerEvent *timerEvent) The predefined input modes are: \list - \li \c InputEngine.Latin The default input mode for latin text. - \li \c InputEngine.Numeric Only numeric input is allowed. - \li \c InputEngine.Dialable Only dialable input is allowed. - \li \c InputEngine.Pinyin Pinyin input mode for Chinese. - \li \c InputEngine.Cangjie Cangjie input mode for Chinese. - \li \c InputEngine.Zhuyin Zhuyin input mode for Chinese. - \li \c InputEngine.Hangul Hangul input mode for Korean. - \li \c InputEngine.Hiragana Hiragana input mode for Japanese. - \li \c InputEngine.Katakana Katakana input mode for Japanese. - \li \c InputEngine.FullwidthLatin Fullwidth latin input mode for East Asian languages. - \li \c InputEngine.Greek Greek input mode. - \li \c InputEngine.Cyrillic Cyrillic input mode. - \li \c InputEngine.Arabic Arabic input mode. - \li \c InputEngine.Hebrew Hebrew input mode. - \li \c InputEngine.ChineseHandwriting Chinese handwriting. - \li \c InputEngine.JapaneseHandwriting Japanese handwriting. - \li \c InputEngine.KoreanHandwriting Korean handwriting. + \li \c InputEngine.InputMode.Latin The default input mode for latin text. + \li \c InputEngine.InputMode.Numeric Only numeric input is allowed. + \li \c InputEngine.InputMode.Dialable Only dialable input is allowed. + \li \c InputEngine.InputMode.Pinyin Pinyin input mode for Chinese. + \li \c InputEngine.InputMode.Cangjie Cangjie input mode for Chinese. + \li \c InputEngine.InputMode.Zhuyin Zhuyin input mode for Chinese. + \li \c InputEngine.InputMode.Hangul Hangul input mode for Korean. + \li \c InputEngine.InputMode.Hiragana Hiragana input mode for Japanese. + \li \c InputEngine.InputMode.Katakana Katakana input mode for Japanese. + \li \c InputEngine.InputMode.FullwidthLatin Fullwidth latin input mode for East Asian languages. + \li \c InputEngine.InputMode.Greek Greek input mode. + \li \c InputEngine.InputMode.Cyrillic Cyrillic input mode. + \li \c InputEngine.InputMode.Arabic Arabic input mode. + \li \c InputEngine.InputMode.Hebrew Hebrew input mode. + \li \c InputEngine.InputMode.ChineseHandwriting Chinese handwriting. + \li \c InputEngine.InputMode.JapaneseHandwriting Japanese handwriting. + \li \c InputEngine.InputMode.KoreanHandwriting Korean handwriting. \endlist */ @@ -835,33 +835,33 @@ void QVirtualKeyboardInputEngine::timerEvent(QTimerEvent *timerEvent) This enum specifies the input mode for the input method. - \value Latin + \value InputMode::Latin The default input mode for latin text. - \value Numeric + \value InputMode::Numeric Only numeric input is allowed. - \value Dialable + \value InputMode::Dialable Only dialable input is allowed. - \value Pinyin + \value InputMode::Pinyin Pinyin input mode for Chinese. - \value Cangjie + \value InputMode::Cangjie Cangjie input mode for Chinese. - \value Zhuyin + \value InputMode::Zhuyin Zhuyin input mode for Chinese. - \value Hangul + \value InputMode::Hangul Hangul input mode for Korean. - \value Hiragana + \value InputMode::Hiragana Hiragana input mode for Japanese. - \value Katakana + \value InputMode::Katakana Katakana input mode for Japanese. - \value FullwidthLatin + \value InputMode::FullwidthLatin Fullwidth latin input mode for East Asian languages. - \value Greek + \value InputMode::Greek Greek input mode. - \value Cyrillic + \value InputMode::Cyrillic Cyrillic input mode. - \value Arabic + \value InputMode::Arabic Arabic input mode. - \value Hebrew + \value InputMode::Hebrew Hebrew input mode. */ @@ -870,9 +870,9 @@ void QVirtualKeyboardInputEngine::timerEvent(QTimerEvent *timerEvent) This enum specifies the text case for the input method. - \value Lower + \value TextCase::Lower Lower case text. - \value Upper + \value TextCase::Upper Upper case text. */ @@ -881,10 +881,14 @@ void QVirtualKeyboardInputEngine::timerEvent(QTimerEvent *timerEvent) This enum specifies the input mode for the input method. - \value PatternRecognitionDisabled + \value PatternRecognitionMode::None Pattern recognition is not available. - \value HandwritingRecoginition + \value PatternRecognitionMode::PatternRecognitionDisabled + \c obsolete Use PatternRecognitionMode::None + \value PatternRecognitionMode::Handwriting Pattern recognition mode for handwriting recognition. + \value PatternRecognitionMode::HandwritingRecoginition + \c obsolete Use PatternRecognitionMode::Handwriting */ /*! @@ -892,11 +896,11 @@ void QVirtualKeyboardInputEngine::timerEvent(QTimerEvent *timerEvent) This enum specifies the rules for word reselection. - \value WordBeforeCursor + \value ReselectFlag::WordBeforeCursor Activate the word before the cursor. When this flag is used exclusively, the word must end exactly at the cursor. - \value WordAfterCursor + \value ReselectFlag::WordAfterCursor Activate the word after the cursor. When this flag is used exclusively, the word must start exactly at the cursor. - \value WordAtCursor + \value ReselectFlag::WordAtCursor Activate the word at the cursor. This flag is a combination of the above flags with the exception that the word cannot start or stop at the cursor. */ @@ -1033,8 +1037,10 @@ void QVirtualKeyboardInputEngine::timerEvent(QTimerEvent *timerEvent) The predefined pattern recognition modes are: \list - \li \c InputEngine.PatternRecognitionDisabled Pattern recognition is not available. - \li \c InputEngine.HandwritingRecoginition Pattern recognition mode for handwriting recognition. + \li \c InputEngine.PatternRecognitionMode.None Pattern recognition is not available. + \li \c InputEngine.PatternRecognitionMode.PatternRecognitionDisabled \c obsolete Use InputEngine.PatternRecognitionMode.None + \li \c InputEngine.PatternRecognitionMode.Handwriting Pattern recognition mode for handwriting recognition. + \li \c InputEngine.PatternRecognitionMode.HandwritingRecoginition \c obsolete Use InputEngine.PatternRecognitionMode.Handwriting \endlist */ |