1// Copyright (C) 2021 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
3
4#ifndef VIRTUALKEYBOARDSETTINGS_H
5#define VIRTUALKEYBOARDSETTINGS_H
6
7//
8// W A R N I N G
9// -------------
10//
11// This file is not part of the Qt API. It exists purely as an
12// implementation detail. This header file may change from version to
13// version without notice, or even be removed.
14//
15// We mean it.
16//
17
18#include <QtVirtualKeyboard/private/qvirtualkeyboardnamespace_p.h>
19#include <QtQml/qqml.h>
20#include <QtCore/private/qglobal_p.h>
21
22QT_BEGIN_NAMESPACE
23namespace QtVirtualKeyboard {
24
25class QQuickWordCandidateListSettings;
26class QQuickVirtualKeyboardSettingsPrivate;
27
28class QQuickVirtualKeyboardSettings : public QObject
29{
30 Q_OBJECT
31 Q_DECLARE_PRIVATE(QQuickVirtualKeyboardSettings)
32 Q_PROPERTY(QUrl style READ style NOTIFY styleChanged)
33 Q_PROPERTY(QUrl layoutPath READ layoutPath WRITE setLayoutPath NOTIFY layoutPathChanged)
34 Q_PROPERTY(QString styleName READ styleName WRITE setStyleName NOTIFY styleNameChanged)
35 Q_PROPERTY(QString locale READ locale WRITE setLocale NOTIFY localeChanged)
36 Q_PROPERTY(QStringList availableLocales READ availableLocales NOTIFY availableLocalesChanged)
37 Q_PROPERTY(QStringList activeLocales READ activeLocales WRITE setActiveLocales NOTIFY activeLocalesChanged)
38 Q_PROPERTY(QQuickWordCandidateListSettings *wordCandidateList READ wordCandidateList CONSTANT)
39 Q_PROPERTY(bool fullScreenMode READ fullScreenMode WRITE setFullScreenMode NOTIFY fullScreenModeChanged)
40 Q_PROPERTY(QString userDataPath READ userDataPath WRITE setUserDataPath NOTIFY userDataPathChanged REVISION(6, 1))
41 Q_PROPERTY(int hwrTimeoutForAlphabetic READ hwrTimeoutForAlphabetic WRITE setHwrTimeoutForAlphabetic NOTIFY hwrTimeoutForAlphabeticChanged REVISION(6, 1))
42 Q_PROPERTY(int hwrTimeoutForCjk READ hwrTimeoutForCjk WRITE setHwrTimeoutForCjk NOTIFY hwrTimeoutForCjkChanged REVISION(6, 1))
43 Q_PROPERTY(Qt::InputMethodHints inputMethodHints READ inputMethodHints WRITE setInputMethodHints NOTIFY inputMethodHintsChanged REVISION(6, 1))
44 Q_PROPERTY(bool handwritingModeDisabled READ isHandwritingModeDisabled WRITE setHandwritingModeDisabled NOTIFY handwritingModeDisabledChanged REVISION(6, 1))
45 Q_PROPERTY(bool defaultInputMethodDisabled READ isDefaultInputMethodDisabled WRITE setDefaultInputMethodDisabled NOTIFY defaultInputMethodDisabledChanged REVISION(6, 1))
46 Q_PROPERTY(bool defaultDictionaryDisabled READ isDefaultDictionaryDisabled WRITE setDefaultDictionaryDisabled NOTIFY defaultDictionaryDisabledChanged REVISION(6, 1))
47 Q_PROPERTY(QtVirtualKeyboard::KeyboardFunctionKeys visibleFunctionKeys READ visibleFunctionKeys WRITE setVisibleFunctionKeys NOTIFY visibleFunctionKeysChanged REVISION(6, 6))
48 Q_PROPERTY(bool closeOnReturn READ closeOnReturn WRITE setCloseOnReturn NOTIFY closeOnReturnChanged REVISION(6, 8))
49 Q_PROPERTY(qreal keySoundVolume READ keySoundVolume WRITE setKeySoundVolume NOTIFY keySoundVolumeChanged REVISION(6, 9))
50 QML_NAMED_ELEMENT(VirtualKeyboardSettings)
51 QML_SINGLETON
52 QML_ADDED_IN_VERSION(1, 0)
53 QML_EXTRA_VERSION(2, 0)
54
55 explicit QQuickVirtualKeyboardSettings(QQmlEngine *engine, QObject *parent = nullptr);
56
57public:
58 static QQuickVirtualKeyboardSettings *create(QQmlEngine *qmlEngine, QJSEngine *jsEngine);
59 QString style() const;
60
61 QUrl layoutPath() const;
62 void setLayoutPath(const QUrl &layoutPath);
63
64 QString styleName() const;
65 void setStyleName(const QString &styleName);
66
67 QString locale() const;
68 void setLocale(const QString &locale);
69
70 QStringList availableLocales() const;
71
72 void setActiveLocales(const QStringList &activeLocales);
73 QStringList activeLocales() const;
74
75 QQuickWordCandidateListSettings *wordCandidateList() const;
76
77 bool fullScreenMode() const;
78 void setFullScreenMode(bool fullScreenMode);
79
80 QString userDataPath() const;
81 void setUserDataPath(const QString &userDataPath);
82
83 int hwrTimeoutForAlphabetic() const;
84 void setHwrTimeoutForAlphabetic(int hwrTimeoutForAlphabetic);
85
86 int hwrTimeoutForCjk() const;
87 void setHwrTimeoutForCjk(int hwrTimeoutForCjk);
88
89 Qt::InputMethodHints inputMethodHints() const;
90 void setInputMethodHints(const Qt::InputMethodHints &inputMethodHints);
91
92 bool isHandwritingModeDisabled() const;
93 void setHandwritingModeDisabled(bool handwritingModeDisabled);
94
95 bool isDefaultInputMethodDisabled() const;
96 void setDefaultInputMethodDisabled(bool defaultInputMethodDisabled);
97
98 bool isDefaultDictionaryDisabled() const;
99 void setDefaultDictionaryDisabled(bool defaultDictionaryDisabled);
100
101 QtVirtualKeyboard::KeyboardFunctionKeys visibleFunctionKeys() const;
102 void setVisibleFunctionKeys(QtVirtualKeyboard::KeyboardFunctionKeys newVisibleFunctionKeys);
103
104 bool closeOnReturn() const;
105 void setCloseOnReturn(bool enable);
106
107 qreal keySoundVolume() const;
108 void setKeySoundVolume(qreal volume);
109
110 Q_REVISION(6, 9)
111 Q_INVOKABLE qreal convertVolume(qreal volume) const;
112
113signals:
114 void styleChanged();
115 void styleNameChanged();
116 void localeChanged();
117 void availableLocalesChanged();
118 void activeLocalesChanged();
119 void layoutPathChanged();
120 void fullScreenModeChanged();
121 Q_REVISION(6, 1) void userDataPathChanged();
122 Q_REVISION(6, 1) void userDataReset();
123 Q_REVISION(6, 1) void hwrTimeoutForAlphabeticChanged();
124 Q_REVISION(6, 1) void hwrTimeoutForCjkChanged();
125 Q_REVISION(6, 1) void inputMethodHintsChanged();
126 Q_REVISION(6, 1) void handwritingModeDisabledChanged();
127 Q_REVISION(6, 1) void defaultInputMethodDisabledChanged();
128 Q_REVISION(6, 1) void defaultDictionaryDisabledChanged();
129 Q_REVISION(6, 6) void visibleFunctionKeysChanged();
130 Q_REVISION(6, 8) void closeOnReturnChanged();
131 Q_REVISION(6, 9) void keySoundVolumeChanged();
132
133private:
134 void resetStyle();
135 void resetLayoutPath();
136};
137
138class QQuickWordCandidateListSettings : public QObject
139{
140 Q_OBJECT
141 Q_PROPERTY(int autoHideDelay READ autoHideDelay WRITE setAutoHideDelay NOTIFY autoHideDelayChanged)
142 Q_PROPERTY(bool alwaysVisible READ alwaysVisible WRITE setAlwaysVisible NOTIFY alwaysVisibleChanged)
143 Q_PROPERTY(bool autoCommitWord READ autoCommitWord WRITE setAutoCommitWord NOTIFY autoCommitWordChanged)
144 QML_ANONYMOUS
145
146 explicit QQuickWordCandidateListSettings(QObject *parent = nullptr);
147 friend class QQuickVirtualKeyboardSettingsPrivate;
148
149public:
150 int autoHideDelay() const;
151 void setAutoHideDelay(int autoHideDelay);
152
153 bool alwaysVisible() const;
154 void setAlwaysVisible(bool alwaysVisible);
155
156 bool autoCommitWord() const;
157 void setAutoCommitWord(bool autoCommitWord);
158
159signals:
160 void autoHideDelayChanged();
161 void alwaysVisibleChanged();
162 void autoCommitWordChanged();
163};
164
165} // namespace QtVirtualKeyboard
166QT_END_NAMESPACE
167
168#endif // VIRTUALKEYBOARDSETTINGS_H
169

source code of qtvirtualkeyboard/src/settings/qquickvirtualkeyboardsettings_p.h