Diffstat (limited to 'noncore/net/mail/editaccounts.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/net/mail/editaccounts.cpp | 471 |
1 files changed, 471 insertions, 0 deletions
diff --git a/noncore/net/mail/editaccounts.cpp b/noncore/net/mail/editaccounts.cpp new file mode 100644 index 0000000..7e2dd24 --- a/dev/null +++ b/noncore/net/mail/editaccounts.cpp | |||
@@ -0,0 +1,471 @@ | |||
1 | #include <qt.h> | ||
2 | #include <qtabwidget.h> | ||
3 | |||
4 | #include "defines.h" | ||
5 | #include "editaccounts.h" | ||
6 | |||
7 | AccountListItem::AccountListItem( QListView *parent, Account *a) | ||
8 | : QListViewItem( parent ) | ||
9 | { | ||
10 | account = a; | ||
11 | setText( 0, account->getAccountName() ); | ||
12 | setText( 1, account->getType() ); | ||
13 | } | ||
14 | |||
15 | EditAccounts::EditAccounts( Settings *s, QWidget *parent, const char *name, bool modal, WFlags flags ) | ||
16 | : EditAccountsUI( parent, name, modal, flags ) | ||
17 | { | ||
18 | qDebug( "New Account Configuration Widget" ); | ||
19 | settings = s; | ||
20 | |||
21 | mailList->addColumn( tr( "Account" ) ); | ||
22 | mailList->addColumn( tr( "Type" ) ); | ||
23 | |||
24 | newsList->addColumn( tr( "Account" ) ); | ||
25 | |||
26 | connect( newMail, SIGNAL( clicked() ), SLOT( slotNewMail() ) ); | ||
27 | connect( editMail, SIGNAL( clicked() ), SLOT( slotEditMail() ) ); | ||
28 | connect( deleteMail, SIGNAL( clicked() ), SLOT( slotDeleteMail() ) ); | ||
29 | connect( newNews, SIGNAL( clicked() ), SLOT( slotNewNews() ) ); | ||
30 | connect( editNews, SIGNAL( clicked() ), SLOT( slotEditNews() ) ); | ||
31 | connect( deleteNews, SIGNAL( clicked() ), SLOT( slotDeleteNews() ) ); | ||
32 | |||
33 | slotFillLists(); | ||
34 | } | ||
35 | |||
36 | void EditAccounts::slotFillLists() | ||
37 | { | ||
38 | mailList->clear(); | ||
39 | newsList->clear(); | ||
40 | |||
41 | QList<Account> accounts = settings->getAccounts(); | ||
42 | Account *it; | ||
43 | for ( it = accounts.first(); it; it = accounts.next() ) { | ||
44 | if ( it->getType().compare( "NNTP" ) == 0 ) { | ||
45 | (void) new AccountListItem( newsList, it ); | ||
46 | } else { | ||
47 | (void) new AccountListItem( mailList, it ); | ||
48 | } | ||
49 | } | ||
50 | } | ||
51 | |||
52 | void EditAccounts::slotNewMail() | ||
53 | { | ||
54 | qDebug( "New Mail Account" ); | ||
55 | QString *selection = new QString(); | ||
56 | SelectMailType selType( selection, this, 0, true ); | ||
57 | selType.show(); | ||
58 | if ( QDialog::Accepted == selType.exec() ) { | ||
59 | slotNewAccount( *selection ); | ||
60 | } | ||
61 | } | ||
62 | |||
63 | void EditAccounts::slotNewAccount( const QString &type ) | ||
64 | { | ||
65 | if ( type.compare( "IMAP" ) == 0 ) { | ||
66 | qDebug( "-> config IMAP" ); | ||
67 | IMAPaccount *account = new IMAPaccount(); | ||
68 | IMAPconfig imap( account, this, 0, true ); | ||
69 | imap.showMaximized(); | ||
70 | if ( QDialog::Accepted == imap.exec() ) { | ||
71 | settings->addAccount( account ); | ||
72 | account->save(); | ||
73 | slotFillLists(); | ||
74 | } else { | ||
75 | account->remove(); | ||
76 | } | ||
77 | } else if ( type.compare( "POP3" ) == 0 ) { | ||
78 | qDebug( "-> config POP3" ); | ||
79 | POP3account *account = new POP3account(); | ||
80 | POP3config pop3( account, this, 0, true ); | ||
81 | pop3.showMaximized(); | ||
82 | if ( QDialog::Accepted == pop3.exec() ) { | ||
83 | settings->addAccount( account ); | ||
84 | account->save(); | ||
85 | slotFillLists(); | ||
86 | } else { | ||
87 | account->remove(); | ||
88 | } | ||
89 | } else if ( type.compare( "SMTP" ) == 0 ) { | ||
90 | qDebug( "-> config SMTP" ); | ||
91 | SMTPaccount *account = new SMTPaccount(); | ||
92 | SMTPconfig smtp( account, this, 0, true ); | ||
93 | smtp.showMaximized(); | ||
94 | if ( QDialog::Accepted == smtp.exec() ) { | ||
95 | settings->addAccount( account ); | ||
96 | account->save(); | ||
97 | slotFillLists(); | ||
98 | } else { | ||
99 | account->remove(); | ||
100 | } | ||
101 | } else if ( type.compare( "NNTP" ) == 0 ) { | ||
102 | qDebug( "-> config NNTP" ); | ||
103 | NNTPaccount *account = new NNTPaccount(); | ||
104 | NNTPconfig nntp( account, this, 0, true ); | ||
105 | nntp.showMaximized(); | ||
106 | if ( QDialog::Accepted == nntp.exec() ) { | ||
107 | settings->addAccount( account ); | ||
108 | account->save(); | ||
109 | slotFillLists(); | ||
110 | } else { | ||
111 | account->remove(); | ||
112 | } | ||
113 | } | ||
114 | } | ||
115 | |||
116 | void EditAccounts::slotEditAccount( Account *account ) | ||
117 | { | ||
118 | if ( account->getType().compare( "IMAP" ) == 0 ) { | ||
119 | IMAPaccount *imapAcc = static_cast<IMAPaccount *>(account); | ||
120 | IMAPconfig imap( imapAcc, this, 0, true ); | ||
121 | imap.showMaximized(); | ||
122 | if ( QDialog::Accepted == imap.exec() ) { | ||
123 | slotFillLists(); | ||
124 | } | ||
125 | } else if ( account->getType().compare( "POP3" ) == 0 ) { | ||
126 | POP3account *pop3Acc = static_cast<POP3account *>(account); | ||
127 | POP3config pop3( pop3Acc, this, 0, true ); | ||
128 | pop3.showMaximized(); | ||
129 | if ( QDialog::Accepted == pop3.exec() ) { | ||
130 | slotFillLists(); | ||
131 | } | ||
132 | } else if ( account->getType().compare( "SMTP" ) == 0 ) { | ||
133 | SMTPaccount *smtpAcc = static_cast<SMTPaccount *>(account); | ||
134 | SMTPconfig smtp( smtpAcc, this, 0, true ); | ||
135 | smtp.showMaximized(); | ||
136 | if ( QDialog::Accepted == smtp.exec() ) { | ||
137 | slotFillLists(); | ||
138 | } | ||
139 | } else if ( account->getType().compare( "NNTP" ) == 0 ) { | ||
140 | NNTPaccount *nntpAcc = static_cast<NNTPaccount *>(account); | ||
141 | NNTPconfig nntp( nntpAcc, this, 0, true ); | ||
142 | nntp.showMaximized(); | ||
143 | if ( QDialog::Accepted == nntp.exec() ) { | ||
144 | slotFillLists(); | ||
145 | } | ||
146 | } | ||
147 | } | ||
148 | |||
149 | void EditAccounts::slotDeleteAccount( Account *account ) | ||
150 | { | ||
151 | if ( QMessageBox::information( this, tr( "Question" ), | ||
152 | tr( "<p>Do you really want to delete the selected Account?</p>" ), | ||
153 | tr( "Yes" ), tr( "No" ) ) == 0 ) { | ||
154 | settings->delAccount( account ); | ||
155 | slotFillLists(); | ||
156 | } | ||
157 | } | ||
158 | |||
159 | void EditAccounts::slotEditMail() | ||
160 | { | ||
161 | qDebug( "Edit Mail Account" ); | ||
162 | if ( !mailList->currentItem() ) { | ||
163 | QMessageBox::information( this, tr( "Error" ), | ||
164 | tr( "<p>Please select an account.</p>" ), | ||
165 | tr( "Ok" ) ); | ||
166 | return; | ||
167 | } | ||
168 | |||
169 | Account *a = ((AccountListItem *) mailList->currentItem())->getAccount(); | ||
170 | slotEditAccount( a ); | ||
171 | } | ||
172 | |||
173 | void EditAccounts::slotDeleteMail() | ||
174 | { | ||
175 | if ( !mailList->currentItem() ) { | ||
176 | QMessageBox::information( this, tr( "Error" ), | ||
177 | tr( "<p>Please select an account.</p>" ), | ||
178 | tr( "Ok" ) ); | ||
179 | return; | ||
180 | } | ||
181 | |||
182 | Account *a = ((AccountListItem *) mailList->currentItem())->getAccount(); | ||
183 | slotDeleteAccount( a ); | ||
184 | } | ||
185 | |||
186 | void EditAccounts::slotNewNews() | ||
187 | { | ||
188 | qDebug( "New News Account" ); | ||
189 | slotNewAccount( "NNTP" ); | ||
190 | } | ||
191 | |||
192 | void EditAccounts::slotEditNews() | ||
193 | { | ||
194 | qDebug( "Edit News Account" ); | ||
195 | if ( !newsList->currentItem() ) { | ||
196 | QMessageBox::information( this, tr( "Error" ), | ||
197 | tr( "<p>Please select an account.</p>" ), | ||
198 | tr( "Ok" ) ); | ||
199 | return; | ||
200 | } | ||
201 | |||
202 | Account *a = ((AccountListItem *) newsList->currentItem())->getAccount(); | ||
203 | slotEditAccount( a ); | ||
204 | } | ||
205 | |||
206 | void EditAccounts::slotDeleteNews() | ||
207 | { | ||
208 | qDebug( "Delete News Account" ); | ||
209 | if ( !newsList->currentItem() ) { | ||
210 | QMessageBox::information( this, tr( "Error" ), | ||
211 | tr( "<p>Please select an account.</p>" ), | ||
212 | tr( "Ok" ) ); | ||
213 | return; | ||
214 | } | ||
215 | |||
216 | Account *a = ((AccountListItem *) newsList->currentItem())->getAccount(); | ||
217 | slotDeleteAccount( a ); | ||
218 | } | ||
219 | |||
220 | void EditAccounts::slotAdjustColumns() | ||
221 | { | ||
222 | int currPage = configTab->currentPageIndex(); | ||
223 | |||
224 | configTab->showPage( mailTab ); | ||
225 | mailList->setColumnWidth( 0, mailList->visibleWidth() - 50 ); | ||
226 | mailList->setColumnWidth( 1, 50 ); | ||
227 | |||
228 | configTab->showPage( newsTab ); | ||
229 | newsList->setColumnWidth( 0, newsList->visibleWidth() ); | ||
230 | |||
231 | configTab->setCurrentPage( currPage ); | ||
232 | } | ||
233 | |||
234 | void EditAccounts::accept() | ||
235 | { | ||
236 | settings->saveAccounts(); | ||
237 | |||
238 | QDialog::accept(); | ||
239 | } | ||
240 | |||
241 | /** | ||
242 | * SelectMailType | ||
243 | */ | ||
244 | |||
245 | SelectMailType::SelectMailType( QString *selection, QWidget *parent, const char *name, bool modal, WFlags flags ) | ||
246 | : SelectMailTypeUI( parent, name, modal, flags ) | ||
247 | { | ||
248 | selected = selection; | ||
249 | selected->replace( 0, selected->length(), typeBox->currentText() ); | ||
250 | connect( typeBox, SIGNAL( activated( const QString & ) ), SLOT( slotSelection( const QString & ) ) ); | ||
251 | } | ||
252 | |||
253 | void SelectMailType::slotSelection( const QString &sel ) | ||
254 | { | ||
255 | selected->replace( 0, selected->length(), sel ); | ||
256 | } | ||
257 | |||
258 | /** | ||
259 | * IMAPconfig | ||
260 | */ | ||
261 | |||
262 | IMAPconfig::IMAPconfig( IMAPaccount *account, QWidget *parent, const char *name, bool modal, WFlags flags ) | ||
263 | : IMAPconfigUI( parent, name, modal, flags ) | ||
264 | { | ||
265 | data = account; | ||
266 | |||
267 | fillValues(); | ||
268 | |||
269 | connect( sslBox, SIGNAL( toggled( bool ) ), SLOT( slotSSL( bool ) ) ); | ||
270 | } | ||
271 | |||
272 | void IMAPconfig::slotSSL( bool enabled ) | ||
273 | { | ||
274 | if ( enabled ) { | ||
275 | portLine->setText( IMAP_SSL_PORT ); | ||
276 | } else { | ||
277 | portLine->setText( IMAP_PORT ); | ||
278 | } | ||
279 | } | ||
280 | |||
281 | void IMAPconfig::fillValues() | ||
282 | { | ||
283 | accountLine->setText( data->getAccountName() ); | ||
284 | serverLine->setText( data->getServer() ); | ||
285 | portLine->setText( data->getPort() ); | ||
286 | sslBox->setChecked( data->getSSL() ); | ||
287 | userLine->setText( data->getUser() ); | ||
288 | passLine->setText( data->getPassword() ); | ||
289 | prefixLine->setText(data->getPrefix()); | ||
290 | } | ||
291 | |||
292 | void IMAPconfig::accept() | ||
293 | { | ||
294 | data->setAccountName( accountLine->text() ); | ||
295 | data->setServer( serverLine->text() ); | ||
296 | data->setPort( portLine->text() ); | ||
297 | data->setSSL( sslBox->isChecked() ); | ||
298 | data->setUser( userLine->text() ); | ||
299 | data->setPassword( passLine->text() ); | ||
300 | data->setPrefix(prefixLine->text()); | ||
301 | |||
302 | QDialog::accept(); | ||
303 | } | ||
304 | |||
305 | /** | ||
306 | * POP3config | ||
307 | */ | ||
308 | |||
309 | POP3config::POP3config( POP3account *account, QWidget *parent, const char *name, bool modal, WFlags flags ) | ||
310 | : POP3configUI( parent, name, modal, flags ) | ||
311 | { | ||
312 | data = account; | ||
313 | fillValues(); | ||
314 | |||
315 | connect( sslBox, SIGNAL( toggled( bool ) ), SLOT( slotSSL( bool ) ) ); | ||
316 | } | ||
317 | |||
318 | void POP3config::slotSSL( bool enabled ) | ||
319 | { | ||
320 | if ( enabled ) { | ||
321 | portLine->setText( POP3_SSL_PORT ); | ||
322 | } else { | ||
323 | portLine->setText( POP3_PORT ); | ||
324 | } | ||
325 | } | ||
326 | |||
327 | void POP3config::fillValues() | ||
328 | { | ||
329 | accountLine->setText( data->getAccountName() ); | ||
330 | serverLine->setText( data->getServer() ); | ||
331 | portLine->setText( data->getPort() ); | ||
332 | sslBox->setChecked( data->getSSL() ); | ||
333 | userLine->setText( data->getUser() ); | ||
334 | passLine->setText( data->getPassword() ); | ||
335 | } | ||
336 | |||
337 | void POP3config::accept() | ||
338 | { | ||
339 | data->setAccountName( accountLine->text() ); | ||
340 | data->setServer( serverLine->text() ); | ||
341 | data->setPort( portLine->text() ); | ||
342 | data->setSSL( sslBox->isChecked() ); | ||
343 | data->setUser( userLine->text() ); | ||
344 | data->setPassword( passLine->text() ); | ||
345 | |||
346 | QDialog::accept(); | ||
347 | } | ||
348 | |||
349 | /** | ||
350 | * SMTPconfig | ||
351 | */ | ||
352 | |||
353 | SMTPconfig::SMTPconfig( SMTPaccount *account, QWidget *parent, const char *name, bool modal, WFlags flags ) | ||
354 | : SMTPconfigUI( parent, name, modal, flags ) | ||
355 | { | ||
356 | data = account; | ||
357 | |||
358 | connect( ccBox, SIGNAL( toggled( bool ) ), ccLine, SLOT( setEnabled( bool ) ) ); | ||
359 | connect( bccBox, SIGNAL( toggled( bool ) ), bccLine, SLOT( setEnabled( bool ) ) ); | ||
360 | connect( replyBox, SIGNAL( toggled( bool ) ), replyLine, SLOT( setEnabled( bool ) ) ); | ||
361 | connect( loginBox, SIGNAL( toggled( bool ) ), userLine, SLOT( setEnabled( bool ) ) ); | ||
362 | connect( loginBox, SIGNAL( toggled( bool ) ), passLine, SLOT( setEnabled( bool ) ) ); | ||
363 | |||
364 | fillValues(); | ||
365 | |||
366 | connect( sslBox, SIGNAL( toggled( bool ) ), SLOT( slotSSL( bool ) ) ); | ||
367 | } | ||
368 | |||
369 | void SMTPconfig::slotSSL( bool enabled ) | ||
370 | { | ||
371 | if ( enabled ) { | ||
372 | portLine->setText( SMTP_SSL_PORT ); | ||
373 | } else { | ||
374 | portLine->setText( SMTP_PORT ); | ||
375 | } | ||
376 | } | ||
377 | |||
378 | void SMTPconfig::fillValues() | ||
379 | { | ||
380 | accountLine->setText( data->getAccountName() ); | ||
381 | serverLine->setText( data->getServer() ); | ||
382 | portLine->setText( data->getPort() ); | ||
383 | sslBox->setChecked( data->getSSL() ); | ||
384 | loginBox->setChecked( data->getLogin() ); | ||
385 | userLine->setText( data->getUser() ); | ||
386 | passLine->setText( data->getPassword() ); | ||
387 | nameLine->setText( data->getName() ); | ||
388 | mailLine->setText( data->getMail() ); | ||
389 | orgLine->setText( data->getOrg() ); | ||
390 | ccBox->setChecked( data->getUseCC() ); | ||
391 | ccLine->setText( data->getCC() ); | ||
392 | bccBox->setChecked( data->getUseBCC() ); | ||
393 | bccLine->setText( data->getBCC() ); | ||
394 | replyBox->setChecked( data->getUseReply() ); | ||
395 | replyLine->setText( data->getReply() ); | ||
396 | sigMultiLine->setText( data->getSignature() ); | ||
397 | } | ||
398 | |||
399 | void SMTPconfig::accept() | ||
400 | { | ||
401 | data->setAccountName( accountLine->text() ); | ||
402 | data->setServer( serverLine->text() ); | ||
403 | data->setPort( portLine->text() ); | ||
404 | data->setSSL( sslBox->isChecked() ); | ||
405 | data->setLogin( loginBox->isChecked() ); | ||
406 | data->setUser( userLine->text() ); | ||
407 | data->setPassword( passLine->text() ); | ||
408 | data->setName( nameLine->text() ); | ||
409 | data->setMail( mailLine->text() ); | ||
410 | data->setOrg( orgLine->text() ); | ||
411 | data->setCC( ccLine->text() ); | ||
412 | data->setUseCC( ccBox->isChecked() ); | ||
413 | data->setBCC( bccLine->text() ); | ||
414 | data->setUseBCC( bccBox->isChecked() ); | ||
415 | data->setReply( replyLine->text() ); | ||
416 | data->setUseReply( replyBox->isChecked() ); | ||
417 | data->setSignature( sigMultiLine->text() ); | ||
418 | |||
419 | QDialog::accept(); | ||
420 | } | ||
421 | |||
422 | /** | ||
423 | * NNTPconfig | ||
424 | */ | ||
425 | |||
426 | NNTPconfig::NNTPconfig( NNTPaccount *account, QWidget *parent, const char *name, bool modal, WFlags flags ) | ||
427 | : NNTPconfigUI( parent, name, modal, flags ) | ||
428 | { | ||
429 | data = account; | ||
430 | |||
431 | connect( loginBox, SIGNAL( toggled( bool ) ), userLine, SLOT( setEnabled( bool ) ) ); | ||
432 | connect( loginBox, SIGNAL( toggled( bool ) ), passLine, SLOT( setEnabled( bool ) ) ); | ||
433 | |||
434 | fillValues(); | ||
435 | |||
436 | connect( sslBox, SIGNAL( toggled( bool ) ), SLOT( slotSSL( bool ) ) ); | ||
437 | } | ||
438 | |||
439 | void NNTPconfig::slotSSL( bool enabled ) | ||
440 | { | ||
441 | if ( enabled ) { | ||
442 | portLine->setText( NNTP_SSL_PORT ); | ||
443 | } else { | ||
444 | portLine->setText( NNTP_PORT ); | ||
445 | } | ||
446 | } | ||
447 | |||
448 | void NNTPconfig::fillValues() | ||
449 | { | ||
450 | accountLine->setText( data->getAccountName() ); | ||
451 | serverLine->setText( data->getServer() ); | ||
452 | portLine->setText( data->getPort() ); | ||
453 | sslBox->setChecked( data->getSSL() ); | ||
454 | loginBox->setChecked( data->getLogin() ); | ||
455 | userLine->setText( data->getUser() ); | ||
456 | passLine->setText( data->getPassword() ); | ||
457 | } | ||
458 | |||
459 | void NNTPconfig::accept() | ||
460 | { | ||
461 | data->setAccountName( accountLine->text() ); | ||
462 | data->setServer( serverLine->text() ); | ||
463 | data->setPort( portLine->text() ); | ||
464 | data->setSSL( sslBox->isChecked() ); | ||
465 | data->setLogin( loginBox->isChecked() ); | ||
466 | data->setUser( userLine->text() ); | ||
467 | data->setPassword( passLine->text() ); | ||
468 | |||
469 | QDialog::accept(); | ||
470 | } | ||
471 | |||