1/****************************************************************************
2**
3** Copyright (C) 2016 The Qt Company Ltd.
4** Contact: https://www.qt.io/licensing/
5**
6** This file is part of the Qt Virtual Keyboard module of the Qt Toolkit.
7**
8** $QT_BEGIN_LICENSE:GPL$
9** Commercial License Usage
10** Licensees holding valid commercial Qt licenses may use this file in
11** accordance with the commercial license agreement provided with the
12** Software or, alternatively, in accordance with the terms contained in
13** a written agreement between you and The Qt Company. For licensing terms
14** and conditions see https://www.qt.io/terms-conditions. For further
15** information use the contact form at https://www.qt.io/contact-us.
16**
17** GNU General Public License Usage
18** Alternatively, this file may be used under the terms of the GNU
19** General Public License version 3 or (at your option) any later version
20** approved by the KDE Free Qt Foundation. The licenses are as published by
21** the Free Software Foundation and appearing in the file LICENSE.GPL3
22** included in the packaging of this file. Please review the following
23** information to ensure the GNU General Public License requirements will
24** be met: https://www.gnu.org/licenses/gpl-3.0.html.
25**
26** $QT_END_LICENSE$
27**
28****************************************************************************/
29
30#include <QtVirtualKeyboard/private/settings_p.h>
31#include <QtCore/private/qobject_p.h>
32
33QT_BEGIN_NAMESPACE
34namespace QtVirtualKeyboard {
35
36class SettingsPrivate : public QObjectPrivate
37{
38public:
39 SettingsPrivate() :
40 QObjectPrivate(),
41 style(),
42 styleName(),
43 locale(),
44 availableLocales(),
45 activeLocales(),
46 layoutPath(),
47 wclAutoHideDelay(5000),
48 wclAlwaysVisible(false),
49 wclAutoCommitWord(false),
50 fullScreenMode(false)
51 {}
52
53 QString style;
54 QString styleName;
55 QString locale;
56 QStringList availableLocales;
57 QStringList activeLocales;
58 QUrl layoutPath;
59 int wclAutoHideDelay;
60 bool wclAlwaysVisible;
61 bool wclAutoCommitWord;
62 bool fullScreenMode;
63};
64
65static QScopedPointer<Settings> s_settingsInstance;
66
67/*!
68 \class QtVirtualKeyboard::Settings
69 \internal
70*/
71
72Settings::Settings(QObject *parent) :
73 QObject(*new SettingsPrivate(), parent)
74{
75}
76
77Settings *Settings::instance()
78{
79 if (!s_settingsInstance)
80 s_settingsInstance.reset(other: new Settings());
81 return s_settingsInstance.data();
82}
83
84QString Settings::style() const
85{
86 Q_D(const Settings);
87 return d->style;
88}
89
90void Settings::setStyle(const QString &style)
91{
92 Q_D(Settings);
93 if (d->style != style) {
94 d->style = style;
95 emit styleChanged();
96 }
97}
98
99QString Settings::styleName() const
100{
101 Q_D(const Settings);
102 return d->styleName;
103}
104
105void Settings::setStyleName(const QString &styleName)
106{
107 Q_D(Settings);
108 if (d->styleName != styleName) {
109 d->styleName = styleName;
110 emit styleNameChanged();
111 }
112}
113
114QString Settings::locale() const
115{
116 Q_D(const Settings);
117 return d->locale;
118}
119
120void Settings::setLocale(const QString &locale)
121{
122 Q_D(Settings);
123 if (d->locale != locale) {
124 d->locale = locale;
125 emit localeChanged();
126 }
127}
128
129QStringList Settings::availableLocales() const
130{
131 Q_D(const Settings);
132 return d->availableLocales;
133}
134
135void Settings::setAvailableLocales(const QStringList &availableLocales)
136{
137 Q_D(Settings);
138 if (d->availableLocales != availableLocales) {
139 d->availableLocales = availableLocales;
140 emit availableLocalesChanged();
141 }
142}
143
144QStringList Settings::activeLocales() const
145{
146 Q_D(const Settings);
147 return d->activeLocales;
148}
149
150void Settings::setActiveLocales(const QStringList &activeLocales)
151{
152 Q_D(Settings);
153 if (d->activeLocales != activeLocales) {
154 d->activeLocales = activeLocales;
155 emit activeLocalesChanged();
156 }
157}
158
159QUrl Settings::layoutPath() const
160{
161 Q_D(const Settings);
162 return d->layoutPath;
163}
164
165void Settings::setLayoutPath(const QUrl &layoutPath)
166{
167 Q_D(Settings);
168 if (d->layoutPath != layoutPath) {
169 d->layoutPath = layoutPath;
170 emit layoutPathChanged();
171 }
172}
173
174int Settings::wclAutoHideDelay() const
175{
176 Q_D(const Settings);
177 return d->wclAutoHideDelay;
178}
179
180void Settings::setWclAutoHideDelay(int wclAutoHideDelay)
181{
182 Q_D(Settings);
183 if (d->wclAutoHideDelay != wclAutoHideDelay) {
184 d->wclAutoHideDelay = wclAutoHideDelay;
185 emit wclAutoHideDelayChanged();
186 }
187}
188
189bool Settings::wclAlwaysVisible() const
190{
191 Q_D(const Settings);
192 return d->wclAlwaysVisible;
193}
194
195void Settings::setWclAlwaysVisible(bool wclAlwaysVisible)
196{
197 Q_D(Settings);
198 if (d->wclAlwaysVisible != wclAlwaysVisible) {
199 d->wclAlwaysVisible = wclAlwaysVisible;
200 emit wclAlwaysVisibleChanged();
201 }
202}
203
204bool Settings::wclAutoCommitWord() const
205{
206 Q_D(const Settings);
207 return d->wclAutoCommitWord;
208}
209
210void Settings::setWclAutoCommitWord(bool wclAutoCommitWord)
211{
212 Q_D(Settings);
213 if (d->wclAutoCommitWord != wclAutoCommitWord) {
214 d->wclAutoCommitWord = wclAutoCommitWord;
215 emit wclAutoCommitWordChanged();
216 }
217}
218
219bool Settings::fullScreenMode() const
220{
221 Q_D(const Settings);
222 return d->fullScreenMode;
223}
224
225void Settings::setFullScreenMode(bool fullScreenMode)
226{
227 Q_D(Settings);
228 if (d->fullScreenMode != fullScreenMode) {
229 d->fullScreenMode = fullScreenMode;
230 emit fullScreenModeChanged();
231 }
232}
233
234} // namespace QtVirtualKeyboard
235QT_END_NAMESPACE
236

source code of qtvirtualkeyboard/src/virtualkeyboard/settings.cpp