-
Notifications
You must be signed in to change notification settings - Fork 12
Expand file tree
/
Copy pathsettings.hh
More file actions
311 lines (255 loc) · 9.22 KB
/
settings.hh
File metadata and controls
311 lines (255 loc) · 9.22 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
/*
* This file is part of TTRss, a Tiny Tiny RSS Reader App
* for MeeGo Harmattan and Sailfish OS.
* Copyright (C) 2012–2015 Hauke Schade
*
* TTRss is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* TTRss is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with TTRss; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA or see
* http://www.gnu.org/licenses/.
*/
#ifndef SETTINGS_HH
#define SETTINGS_HH
#include <QtCore/QObject>
#include <QtCore/QScopedPointer>
#include <QtCore/QString>
#include <QtNetwork/QSsl>
class QSettings;
class Settings : public QObject
{
Q_OBJECT
// Login Credentials
Q_PROPERTY(QString servername READ servername WRITE setServername NOTIFY servernameChanged)
Q_PROPERTY(QString username READ username WRITE setUsername NOTIFY usernameChanged)
Q_PROPERTY(QString password READ password WRITE setPassword NOTIFY passwordChanged)
Q_PROPERTY(QString httpauthusername READ httpauthUsername WRITE setHttpauthUsername NOTIFY httpauthUsernameChanged)
Q_PROPERTY(QString httpauthpassword READ httpauthPassword WRITE setHttpauthPassword NOTIFY httpauthPasswordChanged)
Q_PROPERTY(bool ignoreSSLErrors READ ignoreSSLErrors WRITE setIgnoreSSLErrors NOTIFY ignoreSSLErrorsChanged)
Q_PROPERTY(int minSSLVersion READ minSSLVersion WRITE setMinSSLVersion NOTIFY minSSLVersionChanged)
// Startup
Q_PROPERTY(bool autologin READ hasAutologin WRITE setAutologin NOTIFY autologinChanged)
Q_PROPERTY(bool useAutologin READ hasUseAutologin WRITE setUseAutologin NOTIFY useAutologinChanged)
Q_PROPERTY(int startpage READ startpage WRITE setStartpage NOTIFY startpageChanged)
Q_PROPERTY(bool useAllFeedsOnStartup READ useAllFeedsOnStartup WRITE setUseAllFeedsOnStartup NOTIFY useAllFeedsOnStartupChanged)
// Feeds
Q_PROPERTY(bool displayIcons READ displayIcons WRITE setDisplayIcons NOTIFY displayIconsChanged)
Q_PROPERTY(bool whiteBackgroundOnIcons READ whiteBackgroundOnIcons WRITE setWhiteBackgroundOnIcons NOTIFY whiteBackgroundOnIconsChanged)
// Item List
Q_PROPERTY(int feeditemsOrder READ feeditemsOrder WRITE setFeeditemsOrder NOTIFY feeditemsOrderChanged)
Q_PROPERTY(int lengthOfTitle READ lengthOfTitle WRITE setLengthOfTitle NOTIFY lengthOfTitleChanged)
Q_PROPERTY(bool showExcerpt READ showExcerpt WRITE setShowExcerpt NOTIFY showExcerptChanged)
Q_PROPERTY(int lengthOfExcerpt READ lengthOfExcerpt WRITE setLengthOfExcerpt NOTIFY lengthOfExcerptChanged)
Q_PROPERTY(bool displayLabels READ displayLabels WRITE setDisplayLabels NOTIFY displayLabelsChanged)
Q_PROPERTY(bool showNote READ showNote WRITE setShowNote NOTIFY showNoteChanged)
Q_PROPERTY(int lengthOfNote READ lengthOfNote WRITE setLengthOfNote NOTIFY lengthOfNoteChanged)
// Items
Q_PROPERTY(bool autoMarkRead READ autoMarkRead WRITE setAutoMarkRead NOTIFY autoMarkReadChanged)
Q_PROPERTY(bool displayImages READ displayImages WRITE setDisplayImages NOTIFY displayImagesChanged)
Q_PROPERTY(bool stripInvisibleImg READ stripInvisibleImg WRITE setStripInvisibleImg NOTIFY stripInvisibleImgChanged)
Q_PROPERTY(int webviewFontSize READ webviewFontSize WRITE setWebviewFontSize NOTIFY webviewFontSizeChanged)
// Harmattan
Q_PROPERTY(bool whiteTheme READ isWhiteTheme WRITE setWhiteTheme NOTIFY whiteThemeChanged)
// Other
Q_PROPERTY(bool showAll READ showAll WRITE setShowAll NOTIFY showAllChanged)
public:
static Settings *instance();
static void migrateSettings_v1();
static void migrateSettings_v2();
// Login Credentials
QString servername() const {
return this->_servername;
}
void setServername(QString servername);
QString username() const {
return this->_username;
}
void setUsername(QString username);
QString password() const {
return this->_password;
}
void setPassword(QString password);
QString httpauthUsername() const {
return this->_httpauthuser;
}
void setHttpauthUsername(QString username);
QString httpauthPassword() const {
return this->_httpauthpasswd;
}
void setHttpauthPassword(QString password);
bool ignoreSSLErrors() const {
return this->_ignoreSSLErrors;
}
void setIgnoreSSLErrors(bool ignoreSSLErrors);
int minSSLVersion() const {
return this->_minSSLVersion;
}
void setMinSSLVersion(int minSSLVersion);
QSsl::SslProtocol getMinSSLVersion() const;
bool isMinSSlVersionGreaterThan(QSsl::SslProtocol otherVersion) const;
// Startup
bool hasAutologin() const {
return this->_autologin;
}
void setAutologin(bool autologin);
bool hasUseAutologin() const {
return this->_useAutologin;
}
void setUseAutologin(bool useAutologin);
bool useAllFeedsOnStartup() const {
return this->_useAllFeedsOnStartup;
}
void setUseAllFeedsOnStartup(bool useAllFeedsOnStartup);
int startpage() const {
return this->_startpage;
}
void setStartpage(int index);
// Feeds
bool displayIcons() const {
return this->_displayIcons;
}
void setDisplayIcons(bool displayIcons);
bool whiteBackgroundOnIcons() const {
return this->_whiteBackgroundOnIcons;
}
void setWhiteBackgroundOnIcons(bool whiteBackgroundOnIcons);
// Item List
int feeditemsOrder() const {
return this->_feeditemsOrder;
}
void setFeeditemsOrder(int feeditemsOrder);
int lengthOfTitle() const {
return this->_lengthOfTitle;
}
void setLengthOfTitle(int lengthOfTitle);
bool showExcerpt() const {
return this->_showExcerpt;
}
void setShowExcerpt(bool showExcerpt);
int lengthOfExcerpt() const {
return this->_lengthOfExcerpt;
}
void setLengthOfExcerpt(int lengthOfExcerpt);
bool displayLabels() const {
return this->_displayLabels;
}
void setDisplayLabels(bool displayLabels);
bool showNote() const {
return this->_showNote;
}
void setShowNote(bool showNote);
int lengthOfNote() const {
return this->_lengthOfNote;
}
void setLengthOfNote(int lengthOfNote);
// Items
bool autoMarkRead() const {
return this->_autoMarkRead;
}
void setAutoMarkRead(bool autoMarkRead);
bool displayImages() const {
return this->_displayImages;
}
void setDisplayImages(bool displayImages);
bool stripInvisibleImg() const {
return this->_stripInvisibleImg;
}
void setStripInvisibleImg(bool stripInvisibleImg);
int webviewFontSize() const {
return this->_webviewFontSize;
}
void setWebviewFontSize(int webviewFontSize);
// Harmattan
bool isWhiteTheme() const {
return this->_whiteTheme;
}
void setWhiteTheme(bool whiteTheme);
// Other
bool showAll() const {
return this->_showAll;
}
void setShowAll(bool showAll);
signals:
// Login Credentials
void servernameChanged();
void usernameChanged();
void passwordChanged();
void httpauthUsernameChanged();
void httpauthPasswordChanged();
void ignoreSSLErrorsChanged();
void minSSLVersionChanged();
// Startup
void autologinChanged();
void useAutologinChanged();
void startpageChanged();
void useAllFeedsOnStartupChanged();
// Feeds
void displayIconsChanged();
void whiteBackgroundOnIconsChanged();
// Item List
void feeditemsOrderChanged();
void lengthOfTitleChanged();
void showExcerptChanged();
void lengthOfExcerptChanged();
void displayLabelsChanged();
void showNoteChanged();
void lengthOfNoteChanged();
// Items
void autoMarkReadChanged();
void displayImagesChanged();
void stripInvisibleImgChanged();
void webviewFontSizeChanged();
// Harmattan
void whiteThemeChanged();
// Other
void showAllChanged();
private:
static QScopedPointer<Settings> m_instance;
QString settingFile() const;
explicit Settings(QObject *parent = 0);
Q_DISABLE_COPY(Settings)
QSettings *m_settings;
// Login Credentials
QString _servername;
QString _username;
QString _password;
QString _httpauthuser;
QString _httpauthpasswd;
bool _ignoreSSLErrors;
int _minSSLVersion;
// Startup
bool _autologin;
bool _useAutologin;
bool _useAllFeedsOnStartup;
int _startpage;
// Feeds
bool _displayIcons;
bool _whiteBackgroundOnIcons;
// Item List
int _feeditemsOrder;
int _lengthOfTitle;
bool _showExcerpt;
int _lengthOfExcerpt;
bool _displayLabels;
bool _showNote;
int _lengthOfNote;
// Items
bool _autoMarkRead;
bool _displayImages;
bool _stripInvisibleImg;
int _webviewFontSize;
// Harmattan
bool _whiteTheme;
// Other
bool _showAll;
};
#endif // SETTINGS_HH