Diffstat (limited to 'noncore/net/mail/libmailwrapper/settings.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/net/mail/libmailwrapper/settings.cpp | 432 |
1 files changed, 432 insertions, 0 deletions
diff --git a/noncore/net/mail/libmailwrapper/settings.cpp b/noncore/net/mail/libmailwrapper/settings.cpp new file mode 100644 index 0000000..9632301 --- a/dev/null +++ b/noncore/net/mail/libmailwrapper/settings.cpp | |||
@@ -0,0 +1,432 @@ | |||
1 | #include <stdlib.h> | ||
2 | #include <qdir.h> | ||
3 | |||
4 | #include <qpe/config.h> | ||
5 | |||
6 | #include "settings.h" | ||
7 | #include "defines.h" | ||
8 | |||
9 | Settings::Settings() | ||
10 | : QObject() | ||
11 | { | ||
12 | updateAccounts(); | ||
13 | } | ||
14 | |||
15 | void Settings::checkDirectory() | ||
16 | { | ||
17 | if ( !QDir( (QString) getenv( "HOME" ) + "/Applications/opiemail/" ).exists() ) { | ||
18 | system( "mkdir -p $HOME/Applications/opiemail" ); | ||
19 | qDebug( "$HOME/Applications/opiemail created" ); | ||
20 | } | ||
21 | } | ||
22 | |||
23 | QList<Account> Settings::getAccounts() | ||
24 | { | ||
25 | return accounts; | ||
26 | } | ||
27 | |||
28 | void Settings::addAccount( Account *account ) | ||
29 | { | ||
30 | accounts.append( account ); | ||
31 | } | ||
32 | |||
33 | void Settings::delAccount( Account *account ) | ||
34 | { | ||
35 | accounts.remove( account ); | ||
36 | account->remove(); | ||
37 | } | ||
38 | |||
39 | void Settings::updateAccounts() | ||
40 | { | ||
41 | accounts.clear(); | ||
42 | QDir dir( (QString) getenv( "HOME" ) + "/Applications/opiemail" ); | ||
43 | QStringList::Iterator it; | ||
44 | |||
45 | QStringList imap = dir.entryList( "imap-*" ); | ||
46 | for ( it = imap.begin(); it != imap.end(); it++ ) { | ||
47 | qDebug( "Added IMAP account" ); | ||
48 | IMAPaccount *account = new IMAPaccount( (*it).replace(0, 5, "") ); | ||
49 | accounts.append( account ); | ||
50 | } | ||
51 | |||
52 | QStringList pop3 = dir.entryList( "pop3-*" ); | ||
53 | for ( it = pop3.begin(); it != pop3.end(); it++ ) { | ||
54 | qDebug( "Added POP account" ); | ||
55 | POP3account *account = new POP3account( (*it).replace(0, 5, "") ); | ||
56 | accounts.append( account ); | ||
57 | } | ||
58 | |||
59 | QStringList smtp = dir.entryList( "smtp-*" ); | ||
60 | for ( it = smtp.begin(); it != smtp.end(); it++ ) { | ||
61 | qDebug( "Added SMTP account" ); | ||
62 | SMTPaccount *account = new SMTPaccount( (*it).replace(0, 5, "") ); | ||
63 | accounts.append( account ); | ||
64 | } | ||
65 | |||
66 | QStringList nntp = dir.entryList( "nntp-*" ); | ||
67 | for ( it = nntp.begin(); it != nntp.end(); it++ ) { | ||
68 | qDebug( "Added NNTP account" ); | ||
69 | NNTPaccount *account = new NNTPaccount( (*it).replace(0, 5, "") ); | ||
70 | accounts.append( account ); | ||
71 | } | ||
72 | |||
73 | readAccounts(); | ||
74 | } | ||
75 | |||
76 | void Settings::saveAccounts() | ||
77 | { | ||
78 | checkDirectory(); | ||
79 | Account *it; | ||
80 | |||
81 | for ( it = accounts.first(); it; it = accounts.next() ) { | ||
82 | it->save(); | ||
83 | } | ||
84 | } | ||
85 | |||
86 | void Settings::readAccounts() | ||
87 | { | ||
88 | checkDirectory(); | ||
89 | Account *it; | ||
90 | |||
91 | for ( it = accounts.first(); it; it = accounts.next() ) { | ||
92 | it->read(); | ||
93 | } | ||
94 | } | ||
95 | |||
96 | Account::Account() | ||
97 | { | ||
98 | accountName = "changeMe"; | ||
99 | type = "changeMe"; | ||
100 | ssl = false; | ||
101 | } | ||
102 | |||
103 | void Account::remove() | ||
104 | { | ||
105 | QFile file( getFileName() ); | ||
106 | file.remove(); | ||
107 | } | ||
108 | |||
109 | IMAPaccount::IMAPaccount() | ||
110 | : Account() | ||
111 | { | ||
112 | file = IMAPaccount::getUniqueFileName(); | ||
113 | accountName = "New IMAP Account"; | ||
114 | ssl = false; | ||
115 | type = "IMAP"; | ||
116 | port = IMAP_PORT; | ||
117 | } | ||
118 | |||
119 | IMAPaccount::IMAPaccount( QString filename ) | ||
120 | : Account() | ||
121 | { | ||
122 | file = filename; | ||
123 | accountName = "New IMAP Account"; | ||
124 | ssl = false; | ||
125 | type = "IMAP"; | ||
126 | port = IMAP_PORT; | ||
127 | } | ||
128 | |||
129 | QString IMAPaccount::getUniqueFileName() | ||
130 | { | ||
131 | int num = 0; | ||
132 | QString unique; | ||
133 | |||
134 | QDir dir( (QString) getenv( "HOME" ) + "/Applications/opiemail" ); | ||
135 | QStringList::Iterator it; | ||
136 | |||
137 | QStringList imap = dir.entryList( "imap-*" ); | ||
138 | do { | ||
139 | unique.setNum( num++ ); | ||
140 | } while ( imap.contains( "imap-" + unique ) > 0 ); | ||
141 | |||
142 | return unique; | ||
143 | } | ||
144 | |||
145 | void IMAPaccount::read() | ||
146 | { | ||
147 | Config *conf = new Config( getFileName(), Config::File ); | ||
148 | conf->setGroup( "IMAP Account" ); | ||
149 | accountName = conf->readEntry( "Account","" ); | ||
150 | if (accountName.isNull()) accountName = ""; | ||
151 | server = conf->readEntry( "Server","" ); | ||
152 | if (server.isNull()) server=""; | ||
153 | port = conf->readEntry( "Port","" ); | ||
154 | if (port.isNull()) port="143"; | ||
155 | ssl = conf->readBoolEntry( "SSL",false ); | ||
156 | user = conf->readEntry( "User","" ); | ||
157 | if (user.isNull()) user = ""; | ||
158 | password = conf->readEntryCrypt( "Password","" ); | ||
159 | if (password.isNull()) password = ""; | ||
160 | prefix = conf->readEntry("MailPrefix",""); | ||
161 | if (prefix.isNull()) prefix = ""; | ||
162 | } | ||
163 | |||
164 | void IMAPaccount::save() | ||
165 | { | ||
166 | qDebug( "saving " + getFileName() ); | ||
167 | Settings::checkDirectory(); | ||
168 | |||
169 | Config *conf = new Config( getFileName(), Config::File ); | ||
170 | conf->setGroup( "IMAP Account" ); | ||
171 | conf->writeEntry( "Account", accountName ); | ||
172 | conf->writeEntry( "Server", server ); | ||
173 | conf->writeEntry( "Port", port ); | ||
174 | conf->writeEntry( "SSL", ssl ); | ||
175 | conf->writeEntry( "User", user ); | ||
176 | conf->writeEntryCrypt( "Password", password ); | ||
177 | conf->writeEntry( "MailPrefix",prefix); | ||
178 | conf->write(); | ||
179 | } | ||
180 | |||
181 | |||
182 | QString IMAPaccount::getFileName() | ||
183 | { | ||
184 | return (QString) getenv( "HOME" ) + "/Applications/opiemail/imap-" + file; | ||
185 | } | ||
186 | |||
187 | POP3account::POP3account() | ||
188 | : Account() | ||
189 | { | ||
190 | file = POP3account::getUniqueFileName(); | ||
191 | accountName = "New POP3 Account"; | ||
192 | ssl = false; | ||
193 | type = "POP3"; | ||
194 | port = POP3_PORT; | ||
195 | } | ||
196 | |||
197 | POP3account::POP3account( QString filename ) | ||
198 | : Account() | ||
199 | { | ||
200 | file = filename; | ||
201 | accountName = "New POP3 Account"; | ||
202 | ssl = false; | ||
203 | type = "POP3"; | ||
204 | port = POP3_PORT; | ||
205 | } | ||
206 | |||
207 | QString POP3account::getUniqueFileName() | ||
208 | { | ||
209 | int num = 0; | ||
210 | QString unique; | ||
211 | |||
212 | QDir dir( (QString) getenv( "HOME" ) + "/Applications/opiemail" ); | ||
213 | QStringList::Iterator it; | ||
214 | |||
215 | QStringList imap = dir.entryList( "pop3-*" ); | ||
216 | do { | ||
217 | unique.setNum( num++ ); | ||
218 | } while ( imap.contains( "pop3-" + unique ) > 0 ); | ||
219 | |||
220 | return unique; | ||
221 | } | ||
222 | |||
223 | void POP3account::read() | ||
224 | { | ||
225 | Config *conf = new Config( getFileName(), Config::File ); | ||
226 | conf->setGroup( "POP3 Account" ); | ||
227 | accountName = conf->readEntry( "Account" ); | ||
228 | server = conf->readEntry( "Server" ); | ||
229 | port = conf->readEntry( "Port" ); | ||
230 | ssl = conf->readBoolEntry( "SSL" ); | ||
231 | user = conf->readEntry( "User" ); | ||
232 | password = conf->readEntryCrypt( "Password" ); | ||
233 | } | ||
234 | |||
235 | void POP3account::save() | ||
236 | { | ||
237 | qDebug( "saving " + getFileName() ); | ||
238 | Settings::checkDirectory(); | ||
239 | |||
240 | Config *conf = new Config( getFileName(), Config::File ); | ||
241 | conf->setGroup( "POP3 Account" ); | ||
242 | conf->writeEntry( "Account", accountName ); | ||
243 | conf->writeEntry( "Server", server ); | ||
244 | conf->writeEntry( "Port", port ); | ||
245 | conf->writeEntry( "SSL", ssl ); | ||
246 | conf->writeEntry( "User", user ); | ||
247 | conf->writeEntryCrypt( "Password", password ); | ||
248 | conf->write(); | ||
249 | } | ||
250 | |||
251 | |||
252 | QString POP3account::getFileName() | ||
253 | { | ||
254 | return (QString) getenv( "HOME" ) + "/Applications/opiemail/pop3-" + file; | ||
255 | } | ||
256 | |||
257 | SMTPaccount::SMTPaccount() | ||
258 | : Account() | ||
259 | { | ||
260 | file = SMTPaccount::getUniqueFileName(); | ||
261 | accountName = "New SMTP Account"; | ||
262 | ssl = false; | ||
263 | login = false; | ||
264 | useCC = false; | ||
265 | useBCC = false; | ||
266 | useReply = false; | ||
267 | type = "SMTP"; | ||
268 | port = SMTP_PORT; | ||
269 | } | ||
270 | |||
271 | SMTPaccount::SMTPaccount( QString filename ) | ||
272 | : Account() | ||
273 | { | ||
274 | file = filename; | ||
275 | accountName = "New SMTP Account"; | ||
276 | ssl = false; | ||
277 | login = false; | ||
278 | useCC = false; | ||
279 | useBCC = false; | ||
280 | useReply = false; | ||
281 | type = "SMTP"; | ||
282 | port = SMTP_PORT; | ||
283 | } | ||
284 | |||
285 | QString SMTPaccount::getUniqueFileName() | ||
286 | { | ||
287 | int num = 0; | ||
288 | QString unique; | ||
289 | |||
290 | QDir dir( (QString) getenv( "HOME" ) + "/Applications/opiemail" ); | ||
291 | QStringList::Iterator it; | ||
292 | |||
293 | QStringList imap = dir.entryList( "smtp-*" ); | ||
294 | do { | ||
295 | unique.setNum( num++ ); | ||
296 | } while ( imap.contains( "smtp-" + unique ) > 0 ); | ||
297 | |||
298 | return unique; | ||
299 | } | ||
300 | |||
301 | void SMTPaccount::read() | ||
302 | { | ||
303 | Config *conf = new Config( getFileName(), Config::File ); | ||
304 | conf->setGroup( "SMTP Account" ); | ||
305 | accountName = conf->readEntry( "Account" ); | ||
306 | server = conf->readEntry( "Server" ); | ||
307 | port = conf->readEntry( "Port" ); | ||
308 | ssl = conf->readBoolEntry( "SSL" ); | ||
309 | login = conf->readBoolEntry( "Login" ); | ||
310 | user = conf->readEntry( "User" ); | ||
311 | password = conf->readEntryCrypt( "Password" ); | ||
312 | useCC = conf->readBoolEntry( "useCC" ); | ||
313 | useBCC = conf->readBoolEntry( "useBCC" ); | ||
314 | useReply = conf->readBoolEntry( "useReply" ); | ||
315 | name = conf->readEntry( "Name" ); | ||
316 | mail = conf->readEntry( "Mail" ); | ||
317 | org = conf->readEntry( "Org" ); | ||
318 | cc = conf->readEntry( "CC" ); | ||
319 | bcc = conf->readEntry( "BCC" ); | ||
320 | reply = conf->readEntry( "Reply" ); | ||
321 | signature = conf->readEntry( "Signature" ); | ||
322 | signature = signature.replace( QRegExp( "<br>" ), "\n" ); | ||
323 | } | ||
324 | |||
325 | void SMTPaccount::save() | ||
326 | { | ||
327 | qDebug( "saving " + getFileName() ); | ||
328 | Settings::checkDirectory(); | ||
329 | |||
330 | Config *conf = new Config( getFileName(), Config::File ); | ||
331 | conf->setGroup( "SMTP Account" ); | ||
332 | conf->writeEntry( "Account", accountName ); | ||
333 | conf->writeEntry( "Server", server ); | ||
334 | conf->writeEntry( "Port", port ); | ||
335 | conf->writeEntry( "SSL", ssl ); | ||
336 | conf->writeEntry( "Login", login ); | ||
337 | conf->writeEntry( "User", user ); | ||
338 | conf->writeEntryCrypt( "Password", password ); | ||
339 | conf->writeEntry( "useCC", useCC ); | ||
340 | conf->writeEntry( "useBCC", useBCC ); | ||
341 | conf->writeEntry( "useReply", useReply ); | ||
342 | conf->writeEntry( "Name", name ); | ||
343 | conf->writeEntry( "Mail", mail ); | ||
344 | conf->writeEntry( "Org", org ); | ||
345 | conf->writeEntry( "CC", cc ); | ||
346 | conf->writeEntry( "BCC", bcc ); | ||
347 | conf->writeEntry( "Reply", reply ); | ||
348 | conf->writeEntry( "Signature", | ||
349 | signature.replace( QRegExp( "\\n" ), "<br>" ) ); | ||
350 | conf->write(); | ||
351 | } | ||
352 | |||
353 | |||
354 | QString SMTPaccount::getFileName() | ||
355 | { | ||
356 | return (QString) getenv( "HOME" ) + "/Applications/opiemail/smtp-" + file; | ||
357 | } | ||
358 | |||
359 | NNTPaccount::NNTPaccount() | ||
360 | : Account() | ||
361 | { | ||
362 | file = NNTPaccount::getUniqueFileName(); | ||
363 | accountName = "New NNTP Account"; | ||
364 | ssl = false; | ||
365 | login = false; | ||
366 | type = "NNTP"; | ||
367 | port = NNTP_PORT; | ||
368 | } | ||
369 | |||
370 | NNTPaccount::NNTPaccount( QString filename ) | ||
371 | : Account() | ||
372 | { | ||
373 | file = filename; | ||
374 | accountName = "New NNTP Account"; | ||
375 | ssl = false; | ||
376 | login = false; | ||
377 | type = "NNTP"; | ||
378 | port = NNTP_PORT; | ||
379 | } | ||
380 | |||
381 | QString NNTPaccount::getUniqueFileName() | ||
382 | { | ||
383 | int num = 0; | ||
384 | QString unique; | ||
385 | |||
386 | QDir dir( (QString) getenv( "HOME" ) + "/Applications/opiemail" ); | ||
387 | QStringList::Iterator it; | ||
388 | |||
389 | QStringList imap = dir.entryList( "nntp-*" ); | ||
390 | do { | ||
391 | unique.setNum( num++ ); | ||
392 | } while ( imap.contains( "nntp-" + unique ) > 0 ); | ||
393 | |||
394 | return unique; | ||
395 | } | ||
396 | |||
397 | void NNTPaccount::read() | ||
398 | { | ||
399 | Config *conf = new Config( getFileName(), Config::File ); | ||
400 | conf->setGroup( "NNTP Account" ); | ||
401 | accountName = conf->readEntry( "Account" ); | ||
402 | server = conf->readEntry( "Server" ); | ||
403 | port = conf->readEntry( "Port" ); | ||
404 | ssl = conf->readBoolEntry( "SSL" ); | ||
405 | login = conf->readBoolEntry( "Login" ); | ||
406 | user = conf->readEntry( "User" ); | ||
407 | password = conf->readEntryCrypt( "Password" ); | ||
408 | } | ||
409 | |||
410 | void NNTPaccount::save() | ||
411 | { | ||
412 | qDebug( "saving " + getFileName() ); | ||
413 | Settings::checkDirectory(); | ||
414 | |||
415 | Config *conf = new Config( getFileName(), Config::File ); | ||
416 | conf->setGroup( "NNTP Account" ); | ||
417 | conf->writeEntry( "Account", accountName ); | ||
418 | conf->writeEntry( "Server", server ); | ||
419 | conf->writeEntry( "Port", port ); | ||
420 | conf->writeEntry( "SSL", ssl ); | ||
421 | conf->writeEntry( "Login", login ); | ||
422 | conf->writeEntry( "User", user ); | ||
423 | conf->writeEntryCrypt( "Password", password ); | ||
424 | conf->write(); | ||
425 | } | ||
426 | |||
427 | |||
428 | QString NNTPaccount::getFileName() | ||
429 | { | ||
430 | return (QString) getenv( "HOME" ) + "/Applications/opiemail/nntp-" + file; | ||
431 | } | ||
432 | |||