summaryrefslogtreecommitdiff
path: root/noncore/net/mail/libmailwrapper/settings.cpp
Unidiff
Diffstat (limited to 'noncore/net/mail/libmailwrapper/settings.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/mail/libmailwrapper/settings.cpp432
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
9Settings::Settings()
10 : QObject()
11{
12 updateAccounts();
13}
14
15void 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
23QList<Account> Settings::getAccounts()
24{
25 return accounts;
26}
27
28void Settings::addAccount( Account *account )
29{
30 accounts.append( account );
31}
32
33void Settings::delAccount( Account *account )
34{
35 accounts.remove( account );
36 account->remove();
37}
38
39void 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
76void Settings::saveAccounts()
77{
78 checkDirectory();
79 Account *it;
80
81 for ( it = accounts.first(); it; it = accounts.next() ) {
82 it->save();
83 }
84}
85
86void Settings::readAccounts()
87{
88 checkDirectory();
89 Account *it;
90
91 for ( it = accounts.first(); it; it = accounts.next() ) {
92 it->read();
93 }
94}
95
96Account::Account()
97{
98 accountName = "changeMe";
99 type = "changeMe";
100 ssl = false;
101}
102
103void Account::remove()
104{
105 QFile file( getFileName() );
106 file.remove();
107}
108
109IMAPaccount::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
119IMAPaccount::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
129QString 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
145void 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
164void 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
182QString IMAPaccount::getFileName()
183{
184 return (QString) getenv( "HOME" ) + "/Applications/opiemail/imap-" + file;
185}
186
187POP3account::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
197POP3account::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
207QString 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
223void 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
235void 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
252QString POP3account::getFileName()
253{
254 return (QString) getenv( "HOME" ) + "/Applications/opiemail/pop3-" + file;
255}
256
257SMTPaccount::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
271SMTPaccount::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
285QString 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
301void 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
325void 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
354QString SMTPaccount::getFileName()
355{
356 return (QString) getenv( "HOME" ) + "/Applications/opiemail/smtp-" + file;
357}
358
359NNTPaccount::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
370NNTPaccount::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
381QString 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
397void 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
410void 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
428QString NNTPaccount::getFileName()
429{
430 return (QString) getenv( "HOME" ) + "/Applications/opiemail/nntp-" + file;
431}
432