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 "languagemodel.h"
0008 #include <KQuickConfigModule>
0009 
0010 #include <QList>
0011 #include <QString>
0012 
0013 #ifndef VIRTUALKEYBOARD_H
0014 #define VIRTUALKEYBOARD_H
0015 
0016 class VirtualKeyboard : public KQuickConfigModule
0017 {
0018     Q_OBJECT
0019     Q_PROPERTY(LanguageModel *languageModel MEMBER m_langModel CONSTANT)
0020 
0021     Q_PROPERTY(bool spellCheck MEMBER m_spellCheck WRITE setSpellCheck NOTIFY spellCheckChanged)
0022     Q_PROPERTY(bool autoCapitalize MEMBER m_autoCapitalize WRITE setAutoCapitalize NOTIFY autoCapitalizeChanged)
0023     Q_PROPERTY(bool autoCompleteOnSpace MEMBER m_autoCompleteOnSpace WRITE setAutoCompleteOnSpace NOTIFY autoCompleteOnSpaceChanged)
0024     Q_PROPERTY(bool showSuggestions MEMBER m_showSuggestions WRITE setShowSuggestions NOTIFY showSuggestionsChanged)
0025     Q_PROPERTY(bool fullStopOnDoubleSpace MEMBER m_fullStopOnDoubleSpace WRITE setFullStopOnDoubleSpace NOTIFY fullStopOnDoubleSpaceChanged)
0026 
0027     Q_PROPERTY(bool soundFeedback MEMBER m_soundFeedback WRITE setSoundFeedback NOTIFY soundFeedbackChanged)
0028     Q_PROPERTY(bool vibrateFeedback MEMBER m_vibrateFeedback WRITE setVibrateFeedback NOTIFY vibrateFeedbackChanged)
0029 
0030 public:
0031     VirtualKeyboard(QObject *parent, const KPluginMetaData &metaData);
0032 
0033     void setSpellCheck(bool enabled);
0034     void setAutoCapitalize(bool enabled);
0035     void setAutoCompleteOnSpace(bool enabled);
0036     void setShowSuggestions(bool enabled);
0037     void setFullStopOnDoubleSpace(bool enabled);
0038 
0039     void setSoundFeedback(bool enabled);
0040     void setVibrateFeedback(bool enabled);
0041 
0042 Q_SIGNALS:
0043     void spellCheckChanged();
0044     void autoCapitalizeChanged();
0045     void autoCompleteOnSpaceChanged();
0046     void showSuggestionsChanged();
0047     void fullStopOnDoubleSpaceChanged();
0048     void soundFeedbackChanged();
0049     void vibrateFeedbackChanged();
0050 
0051 private:
0052     GSettingsItem *m_gsettings;
0053     LanguageModel *m_langModel;
0054 
0055     // spell check
0056     bool m_spellCheck;
0057     bool m_autoCapitalize;
0058     bool m_autoCompleteOnSpace;
0059     bool m_showSuggestions;
0060     bool m_fullStopOnDoubleSpace;
0061 
0062     // feedback
0063     bool m_soundFeedback;
0064     bool m_vibrateFeedback;
0065 };
0066 
0067 #endif