Line data Source code
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 examples of the Qt Toolkit.
7 : **
8 : ** $QT_BEGIN_LICENSE:LGPL$
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 Lesser General Public License Usage
18 : ** Alternatively, this file may be used under the terms of the GNU Lesser
19 : ** General Public License version 3 as published by the Free Software
20 : ** Foundation and appearing in the file LICENSE.LGPL3 included in the
21 : ** packaging of this file. Please review the following information to
22 : ** ensure the GNU Lesser General Public License version 3 requirements
23 : ** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
24 : **
25 : ** GNU General Public License Usage
26 : ** Alternatively, this file may be used under the terms of the GNU
27 : ** General Public License version 2.0 or (at your option) the GNU General
28 : ** Public license version 3 or any later version approved by the KDE Free
29 : ** Qt Foundation. The licenses are as published by the Free Software
30 : ** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
31 : ** included in the packaging of this file. Please review the following
32 : ** information to ensure the GNU General Public License requirements will
33 : ** be met: https://www.gnu.org/licenses/gpl-2.0.html and
34 : ** https://www.gnu.org/licenses/gpl-3.0.html.
35 : **
36 : ** $QT_END_LICENSE$
37 : **
38 : ****************************************************************************/
39 :
40 : #ifndef QQMLSETTINGS_P_H
41 : #define QQMLSETTINGS_P_H
42 :
43 : //
44 : // W A R N I N G
45 : // -------------
46 : //
47 : // This file is not part of the Qt API. It exists purely as an
48 : // implementation detail. This header file may change from version to
49 : // version without notice, or even be removed.
50 : //
51 : // We mean it.
52 : //
53 :
54 : #include <QtQml/qqml.h>
55 : #include <QtCore/qobject.h>
56 : #include <QtCore/qscopedpointer.h>
57 : #include <QtQml/qqmlparserstatus.h>
58 :
59 : QT_BEGIN_NAMESPACE
60 :
61 : class QQmlSettingsPrivate;
62 :
63 : class QQmlSettings : public QObject, public QQmlParserStatus
64 : {
65 : Q_OBJECT
66 : Q_INTERFACES(QQmlParserStatus)
67 : Q_PROPERTY(QString category READ category WRITE setCategory FINAL)
68 : Q_PROPERTY(QString fileName READ fileName WRITE setFileName FINAL)
69 : QML_NAMED_ELEMENT(Settings)
70 :
71 : public:
72 : explicit QQmlSettings(QObject* parent = 0);
73 : ~QQmlSettings();
74 :
75 : QString category() const;
76 : void setCategory(const QString& category);
77 :
78 : QString fileName() const;
79 : void setFileName(const QString& fileName);
80 :
81 : Q_INVOKABLE QVariant value(const QString& key, const QVariant& defaultValue = QVariant()) const;
82 : Q_INVOKABLE void setValue(const QString& key, const QVariant& value);
83 : Q_INVOKABLE void sync();
84 :
85 : protected:
86 : void timerEvent(QTimerEvent* event) override;
87 :
88 : void classBegin() override;
89 : void componentComplete() override;
90 :
91 : private:
92 : Q_DISABLE_COPY(QQmlSettings)
93 0 : Q_DECLARE_PRIVATE(QQmlSettings)
94 : QScopedPointer<QQmlSettingsPrivate> d_ptr;
95 : Q_PRIVATE_SLOT(d_func(), void _q_propertyChanged())
96 : };
97 :
98 : QT_END_NAMESPACE
99 :
100 0 : QML_DECLARE_TYPE(QQmlSettings)
101 :
102 : #endif // QQMLSETTINGS_P_H
|