File indexing completed on 2024-05-12 05:36:19
0001 /* 0002 SPDX-FileCopyrightText: 2020 Bhushan Shah <bshah@kde.org> 0003 0004 SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0005 */ 0006 0007 #include "virtualkeyboard.h" 0008 #include <KLocalizedString> 0009 #include <KPluginFactory> 0010 0011 #include <QDir> 0012 0013 #include "languagemodel.h" 0014 0015 // clang-format off 0016 0017 #define SETTER(setter, member, gsetting, signal) \ 0018 void VirtualKeyboard::setter(bool enabled) \ 0019 { \ 0020 if (member != enabled) {\ 0021 member = enabled; \ 0022 m_gsettings->set(gsetting, enabled); \ 0023 Q_EMIT signal();\ 0024 }\ 0025 } 0026 0027 // clang-format on 0028 0029 K_PLUGIN_CLASS_WITH_JSON(VirtualKeyboard, "kcm_mobile_onscreenkeyboard.json") 0030 0031 VirtualKeyboard::VirtualKeyboard(QObject *parent, const KPluginMetaData &metaData) 0032 : KQuickConfigModule(parent, metaData) 0033 , m_gsettings(new GSettingsItem("/org/maliit/keyboard/maliit/", parent)) 0034 , m_langModel(new LanguageModel(this, m_gsettings)) 0035 { 0036 setButtons({}); 0037 0038 qmlRegisterAnonymousType<LanguageModel>("org.kde.kcm.virtualkeyboard", 1); 0039 0040 m_autoCapitalize = m_gsettings->value("auto-capitalization").toBool(); 0041 m_autoCompleteOnSpace = m_gsettings->value("auto-completion").toBool(); 0042 m_showSuggestions = m_gsettings->value("predictive-text").toBool(); 0043 m_fullStopOnDoubleSpace = m_gsettings->value("double-space-full-stop").toBool(); 0044 m_spellCheck = m_gsettings->value("spell-checking").toBool(); 0045 0046 m_soundFeedback = m_gsettings->value("key-press-feedback").toBool(); 0047 m_vibrateFeedback = m_gsettings->value("key-press-haptic-feedback").toBool(); 0048 } 0049 0050 SETTER(setAutoCapitalize, m_autoCapitalize, "auto-capitalization", autoCapitalizeChanged) 0051 SETTER(setAutoCompleteOnSpace, m_autoCompleteOnSpace, "auto-completion", autoCompleteOnSpaceChanged); 0052 SETTER(setShowSuggestions, m_showSuggestions, "predictive-text", showSuggestionsChanged) 0053 SETTER(setFullStopOnDoubleSpace, m_fullStopOnDoubleSpace, "double-space-full-stop", fullStopOnDoubleSpaceChanged) 0054 SETTER(setSpellCheck, m_spellCheck, "spell-checking", spellCheckChanged) 0055 0056 SETTER(setSoundFeedback, m_soundFeedback, "key-press-feedback", soundFeedbackChanged) 0057 SETTER(setVibrateFeedback, m_vibrateFeedback, "key-press-haptic-feedback", vibrateFeedbackChanged) 0058 0059 #include "virtualkeyboard.moc"