libquentier
0.5.0
The library for rich desktop clients of Evernote service
headers
quentier
utility
ApplicationSettings.h
1
/*
2
* Copyright 2016-2020 Dmitry Ivanov
3
*
4
* This file is part of libquentier
5
*
6
* libquentier is free software; you can redistribute it and/or modify
7
* it under the terms of the GNU Lesser General Public License as published by
8
* the Free Software Foundation, version 3 of the License.
9
*
10
* libquentier is distributed in the hope that it will be useful,
11
* but WITHOUT ANY WARRANTY; without even the implied warranty of
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
* GNU Lesser General Public License for more details.
14
*
15
* You should have received a copy of the GNU Lesser General Public License
16
* along with libquentier. If not, see <http://www.gnu.org/licenses/>.
17
*/
18
19
#ifndef LIB_QUENTIER_UTILITY_APPLICATION_SETTINGS_H
20
#define LIB_QUENTIER_UTILITY_APPLICATION_SETTINGS_H
21
22
#include <quentier/types/Account.h>
23
24
#include <QSettings>
25
26
namespace
quentier {
27
33
class
QUENTIER_EXPORT
ApplicationSettings
:
34
public
QSettings,
public
Printable
35
{
36
Q_OBJECT
37
public
:
41
ApplicationSettings
();
42
54
ApplicationSettings
(
55
const
Account
& account,
const
QString & settingsName = {});
56
60
virtual
~
ApplicationSettings
()
override
;
61
62
public
:
67
struct
ArrayCloser
68
{
69
ArrayCloser
(
ApplicationSettings
& settings) :
70
m_settings(settings)
71
{}
72
73
~
ArrayCloser
()
74
{
75
m_settings.endArray();
76
m_settings.sync();
77
}
78
79
ApplicationSettings
& m_settings;
80
};
81
86
struct
GroupCloser
87
{
88
GroupCloser
(
ApplicationSettings
& settings) :
89
m_settings(settings)
90
{}
91
92
~
GroupCloser
()
93
{
94
m_settings.endGroup();
95
m_settings.sync();
96
}
97
98
ApplicationSettings
& m_settings;
99
};
100
101
public
:
102
virtual
QTextStream & print(QTextStream & strm)
const override
;
103
104
private
:
105
Q_DISABLE_COPY(
ApplicationSettings
)
106
};
107
108
}
// namespace quentier
109
110
#endif // LIB_QUENTIER_UTILITY_APPLICATION_SETTINGS_H
quentier::Account
The Account class encapsulates some details about the account: its name, whether it is local or synch...
Definition:
Account.h:39
quentier::ApplicationSettings::GroupCloser
Definition:
ApplicationSettings.h:86
quentier::Printable
The Printable class is the interface for Quentier's internal classes which should be able to write th...
Definition:
Printable.h:38
quentier::ApplicationSettings::ArrayCloser
Definition:
ApplicationSettings.h:67
quentier::ApplicationSettings
The ApplicationSettings class enhances the functionality of QSettings, in particular it simplifies th...
Definition:
ApplicationSettings.h:33
Generated on Wed Jun 17 2020 18:33:52 for libquentier by
1.8.17