summaryrefslogtreecommitdiff
path: root/noncore/net/mail/editaccounts.cpp
Unidiff
Diffstat (limited to 'noncore/net/mail/editaccounts.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/mail/editaccounts.cpp471
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
7AccountListItem::AccountListItem( QListView *parent, Account *a)
8 : QListViewItem( parent )
9{
10 account = a;
11 setText( 0, account->getAccountName() );
12 setText( 1, account->getType() );
13}
14
15EditAccounts::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
36void 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
52void 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
63void 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
116void 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
149void 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
159void 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
173void 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
186void EditAccounts::slotNewNews()
187{
188 qDebug( "New News Account" );
189 slotNewAccount( "NNTP" );
190}
191
192void 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
206void 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
220void 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
234void EditAccounts::accept()
235{
236 settings->saveAccounts();
237
238 QDialog::accept();
239}
240
241/**
242 * SelectMailType
243 */
244
245SelectMailType::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
253void SelectMailType::slotSelection( const QString &sel )
254{
255 selected->replace( 0, selected->length(), sel );
256}
257
258/**
259 * IMAPconfig
260 */
261
262IMAPconfig::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
272void IMAPconfig::slotSSL( bool enabled )
273{
274 if ( enabled ) {
275 portLine->setText( IMAP_SSL_PORT );
276 } else {
277 portLine->setText( IMAP_PORT );
278 }
279}
280
281void 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
292void 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
309POP3config::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
318void POP3config::slotSSL( bool enabled )
319{
320 if ( enabled ) {
321 portLine->setText( POP3_SSL_PORT );
322 } else {
323 portLine->setText( POP3_PORT );
324 }
325}
326
327void 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
337void 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
353SMTPconfig::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
369void SMTPconfig::slotSSL( bool enabled )
370{
371 if ( enabled ) {
372 portLine->setText( SMTP_SSL_PORT );
373 } else {
374 portLine->setText( SMTP_PORT );
375 }
376}
377
378void 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
399void 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
426NNTPconfig::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
439void NNTPconfig::slotSSL( bool enabled )
440{
441 if ( enabled ) {
442 portLine->setText( NNTP_SSL_PORT );
443 } else {
444 portLine->setText( NNTP_PORT );
445 }
446}
447
448void 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
459void 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