QtBase  v6.3.1
qsettings.h
Go to the documentation of this file.
1 /****************************************************************************
2 **
3 ** Copyright (C) 2020 The Qt Company Ltd.
4 ** Contact: https://www.qt.io/licensing/
5 **
6 ** This file is part of the QtCore module 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 QSETTINGS_H
41 #define QSETTINGS_H
42 
43 #include <QtCore/qobject.h>
44 #include <QtCore/qvariant.h>
45 #include <QtCore/qstring.h>
46 #include <QtCore/qscopedpointer.h>
47 
49 
50 #include <ctype.h>
51 
53 
54 #ifdef Status // we seem to pick up a macro Status --> int somewhere
55 #undef Status
56 #endif
57 
58 class QIODevice;
59 class QSettingsPrivate;
60 
61 #ifndef QT_NO_QOBJECT
62 class Q_CORE_EXPORT QSettings : public QObject
63 #else
64 class Q_CORE_EXPORT QSettings
65 #endif
66 {
67 #ifndef QT_NO_QOBJECT
68  Q_OBJECT
69 #else
71 #endif
72  Q_DECLARE_PRIVATE(QSettings)
73 
74 public:
75  enum Status {
76  NoError = 0,
78  FormatError
79  };
80 #ifndef QT_NO_QOBJECT
81  Q_ENUM(Status)
82 #endif
83 
84  enum Format {
87 
88 #if defined(Q_OS_WIN) || defined(Q_CLANG_QDOC)
89  Registry32Format,
90  Registry64Format,
91 #endif
92 
93  InvalidFormat = 16,
109  CustomFormat16
110  };
111 #ifndef QT_NO_QOBJECT
112  Q_ENUM(Format)
113 #endif
114 
115  enum Scope {
117  SystemScope
118  };
119 #ifndef QT_NO_QOBJECT
120  Q_ENUM(Scope)
121 #endif
122 
123 #ifndef QT_NO_QOBJECT
124  explicit QSettings(const QString &organization,
125  const QString &application = QString(), QObject *parent = nullptr);
126  QSettings(Scope scope, const QString &organization,
127  const QString &application = QString(), QObject *parent = nullptr);
128  QSettings(Format format, Scope scope, const QString &organization,
129  const QString &application = QString(), QObject *parent = nullptr);
130  QSettings(const QString &fileName, Format format, QObject *parent = nullptr);
131  explicit QSettings(QObject *parent = nullptr);
132  explicit QSettings(Scope scope, QObject *parent = nullptr);
133 #else
134  explicit QSettings(const QString &organization,
135  const QString &application = QString());
136  QSettings(Scope scope, const QString &organization,
137  const QString &application = QString());
138  QSettings(Format format, Scope scope, const QString &organization,
139  const QString &application = QString());
140  QSettings(const QString &fileName, Format format);
141  explicit QSettings(Scope scope = UserScope);
142 #endif
143  ~QSettings();
144 
145  void clear();
146  void sync();
147  Status status() const;
148  bool isAtomicSyncRequired() const;
149  void setAtomicSyncRequired(bool enable);
150 
151  void beginGroup(const QString &prefix);
152  void endGroup();
153  QString group() const;
154 
155  int beginReadArray(const QString &prefix);
156  void beginWriteArray(const QString &prefix, int size = -1);
157  void endArray();
158  void setArrayIndex(int i);
159 
160  QStringList allKeys() const;
161  QStringList childKeys() const;
162  QStringList childGroups() const;
163  bool isWritable() const;
164 
165  void setValue(const QString &key, const QVariant &value);
166  QVariant value(const QString &key, const QVariant &defaultValue) const;
167  QVariant value(const QString &key) const;
168 
169  void remove(const QString &key);
170  bool contains(const QString &key) const;
171 
172  void setFallbacksEnabled(bool b);
173  bool fallbacksEnabled() const;
174 
175  QString fileName() const;
176  Format format() const;
177  Scope scope() const;
178  QString organizationName() const;
179  QString applicationName() const;
180 
181  static void setDefaultFormat(Format format);
182  static Format defaultFormat();
183  static void setPath(Format format, Scope scope, const QString &path);
184 
186  typedef bool (*ReadFunc)(QIODevice &device, SettingsMap &map);
187  typedef bool (*WriteFunc)(QIODevice &device, const SettingsMap &map);
188 
189  static Format registerFormat(const QString &extension, ReadFunc readFunc, WriteFunc writeFunc,
190  Qt::CaseSensitivity caseSensitivity = Qt::CaseSensitive);
191 
192 protected:
193 #ifndef QT_NO_QOBJECT
194  bool event(QEvent *event) override;
195 #endif
196 
197 private:
199 };
200 
202 
203 #endif // QSETTINGS_H
small capitals from c petite p scientific i
[1]
Definition: afcover.h:80
#define value
[5]
The QEvent class is the base class of all event classes. Event objects contain event parameters.
Definition: qcoreevent.h:58
The QIODevice class is the base interface class of all I/O devices in Qt.
Definition: qiodevice.h:70
The QObject class is the base class of all Qt objects.
Definition: qobject.h:125
virtual bool event(QEvent *event)
Definition: qobject.cpp:1329
QScopedPointer< QObjectData > d_ptr
Definition: qobject.h:436
The QScopedPointer class stores a pointer to a dynamically allocated object, and deletes it upon dest...
The QSettings class provides persistent platform-independent application settings.
Definition: qsettings.h:66
static void setDefaultFormat(Format format)
Definition: qsettings.cpp:3319
QSettings(const QString &organization, const QString &application=QString(), QObject *parent=nullptr)
Definition: qsettings.cpp:2482
QMap< QString, QVariant > SettingsMap
Definition: qsettings.h:185
static Format defaultFormat()
Definition: qsettings.cpp:3332
@ CustomFormat2
Definition: qsettings.h:95
@ CustomFormat10
Definition: qsettings.h:103
@ CustomFormat1
Definition: qsettings.h:94
@ CustomFormat15
Definition: qsettings.h:108
@ CustomFormat13
Definition: qsettings.h:106
@ CustomFormat3
Definition: qsettings.h:96
@ CustomFormat8
Definition: qsettings.h:101
@ NativeFormat
Definition: qsettings.h:85
@ CustomFormat7
Definition: qsettings.h:100
@ IniFormat
Definition: qsettings.h:86
@ CustomFormat5
Definition: qsettings.h:98
@ CustomFormat9
Definition: qsettings.h:102
@ CustomFormat11
Definition: qsettings.h:104
@ CustomFormat12
Definition: qsettings.h:105
@ CustomFormat14
Definition: qsettings.h:107
@ CustomFormat4
Definition: qsettings.h:97
@ CustomFormat6
Definition: qsettings.h:99
void setAtomicSyncRequired(bool enable)
Definition: qsettings.cpp:2858
QString organizationName() const
Definition: qsettings.cpp:2785
QStringList childKeys() const
Definition: qsettings.cpp:3081
static Format registerFormat(const QString &extension, ReadFunc readFunc, WriteFunc writeFunc, Qt::CaseSensitivity caseSensitivity=Qt::CaseSensitive)
Definition: qsettings.cpp:3448
QString applicationName() const
Definition: qsettings.cpp:2798
QStringList allKeys() const
Definition: qsettings.cpp:3057
void sync()
Definition: qsettings.cpp:2730
@ AccessError
Definition: qsettings.h:77
Scope scope() const
Definition: qsettings.cpp:2772
bool isWritable() const
Definition: qsettings.cpp:3123
int beginReadArray(const QString &prefix)
Definition: qsettings.cpp:2946
static void setPath(Format format, Scope scope, const QString &path)
Definition: qsettings.cpp:3371
bool isAtomicSyncRequired() const
Definition: qsettings.cpp:2831
QStringList childGroups() const
Definition: qsettings.cpp:3105
void setArrayIndex(int i)
Definition: qsettings.cpp:3028
Status status() const
Definition: qsettings.cpp:2814
bool fallbacksEnabled() const
Definition: qsettings.cpp:3240
void setFallbacksEnabled(bool b)
Definition: qsettings.cpp:3227
The QString class provides a Unicode character string.
Definition: qstring.h:388
The QStringList class provides a list of strings.
The QVariant class acts like a union for the most common Qt data types.
Definition: qvariant.h:95
b clear()
QMap< QString, QString > map
[6]
set contains("Julia")
CaseSensitivity
Definition: qnamespace.h:1282
@ CaseSensitive
Definition: qnamespace.h:1284
#define QString()
Definition: parse-defines.h:51
EGLOutputLayerEXT EGLint EGLAttrib value
#define Q_DISABLE_COPY(Class)
Definition: qglobal.h:515
GLboolean GLboolean GLboolean b
GLuint64 key
GLenum GLuint GLintptr GLsizeiptr size
[1]
GLboolean GLuint group
GLboolean enable
GLint GLsizei GLsizei GLenum format
struct _cl_event * event
Definition: qopenglext.h:2998
GLsizei const GLchar *const * path
Definition: qopenglext.h:4283
QT_REQUIRE_CONFIG(settings)
#define Q_ENUM(x)
Definition: qtmetamacros.h:104
#define Q_OBJECT
Definition: qtmetamacros.h:158
settings beginWriteArray("logins")
settings beginGroup("mainwindow")
[12]
QSettings settings("MySoft", "Star Runner")
[0]
settings endGroup()
settings endArray()
settings remove("monkey")
header setValue("Host", "qt-project.org")
IUIAutomationTreeWalker __RPC__deref_out_opt IUIAutomationElement ** parent