-rw-r--r-- | noncore/net/mail/editaccounts.cpp | 36 | ||||
-rw-r--r-- | noncore/net/mail/libmailwrapper/nntpwrapper.cpp | 35 | ||||
-rw-r--r-- | noncore/net/mail/libmailwrapper/nntpwrapper.h | 2 |
3 files changed, 40 insertions, 33 deletions
diff --git a/noncore/net/mail/editaccounts.cpp b/noncore/net/mail/editaccounts.cpp index b8aad11..28d531b 100644 --- a/noncore/net/mail/editaccounts.cpp +++ b/noncore/net/mail/editaccounts.cpp | |||
@@ -8,14 +8,12 @@ | |||
8 | /* QT */ | 8 | /* QT */ |
9 | #include <qt.h> | 9 | #include <qt.h> |
10 | #include <qstringlist.h> | 10 | #include <qstringlist.h> |
11 | 11 | ||
12 | #include <libmailwrapper/nntpwrapper.h> | 12 | #include <libmailwrapper/nntpwrapper.h> |
13 | 13 | ||
14 | #include <libetpan/nntpdriver.h> | ||
15 | |||
16 | AccountListItem::AccountListItem( QListView *parent, Account *a) | 14 | AccountListItem::AccountListItem( QListView *parent, Account *a) |
17 | : QListViewItem( parent ) | 15 | : QListViewItem( parent ) |
18 | { | 16 | { |
19 | account = a; | 17 | account = a; |
20 | setText( 0, account->getAccountName() ); | 18 | setText( 0, account->getAccountName() ); |
21 | setText( 1, account->getType() ); | 19 | setText( 1, account->getType() ); |
@@ -500,29 +498,23 @@ NNTPconfig::NNTPconfig( NNTPaccount *account, QWidget *parent, const char *name, | |||
500 | } | 498 | } |
501 | 499 | ||
502 | void NNTPconfig::slotGetNG() { | 500 | void NNTPconfig::slotGetNG() { |
503 | save(); | 501 | save(); |
504 | data->save(); | 502 | data->save(); |
505 | NNTPwrapper* tmp = new NNTPwrapper( data ); | 503 | NNTPwrapper* tmp = new NNTPwrapper( data ); |
506 | clist* list = tmp->listAllNewsgroups(); | 504 | QStringList list = tmp->listAllNewsgroups(); |
507 | 505 | ||
508 | clistcell *current; | 506 | ListViewGroups->clear(); |
509 | newsnntp_group_description *group; | 507 | |
510 | 508 | for ( QStringList::Iterator it = list.begin(); it != list.end(); ++it ) { | |
511 | // FIXME - test if not empty | 509 | QCheckListItem *item; |
512 | current = list->first; | 510 | item = new QCheckListItem( ListViewGroups, (*it), QCheckListItem::CheckBox ); |
513 | for ( current=clist_begin(list);current!=NULL;current=clist_next(current) ) { | 511 | if ( subscribedGroups.contains( (*it) ) >= 1 ) { |
514 | group = ( newsnntp_group_description* ) current->data; | 512 | item->setOn( true ); |
515 | // qDebug( group->grp_name ); | 513 | } |
516 | 514 | } | |
517 | QCheckListItem *item; | ||
518 | item = new QCheckListItem( ListViewGroups, ( QString )group->grp_name, QCheckListItem::CheckBox ); | ||
519 | if ( subscribedGroups.contains( ( QString )group->grp_name ) >= 1 ) { | ||
520 | item->setOn( true ); | ||
521 | } | ||
522 | } | ||
523 | } | 515 | } |
524 | 516 | ||
525 | void NNTPconfig::slotSSL( bool enabled ) | 517 | void NNTPconfig::slotSSL( bool enabled ) |
526 | { | 518 | { |
527 | if ( enabled ) | 519 | if ( enabled ) |
528 | { | 520 | { |
@@ -541,12 +533,18 @@ void NNTPconfig::fillValues() | |||
541 | portLine->setText( data->getPort() ); | 533 | portLine->setText( data->getPort() ); |
542 | sslBox->setChecked( data->getSSL() ); | 534 | sslBox->setChecked( data->getSSL() ); |
543 | loginBox->setChecked( data->getLogin() ); | 535 | loginBox->setChecked( data->getLogin() ); |
544 | userLine->setText( data->getUser() ); | 536 | userLine->setText( data->getUser() ); |
545 | passLine->setText( data->getPassword() ); | 537 | passLine->setText( data->getPassword() ); |
546 | subscribedGroups = data->getGroups(); | 538 | subscribedGroups = data->getGroups(); |
539 | /* don't forget that - you will overwrite values if user clicks cancel! */ | ||
540 | for ( QStringList::Iterator it = subscribedGroups.begin(); it != subscribedGroups.end(); ++it ) { | ||
541 | QCheckListItem *item; | ||
542 | item = new QCheckListItem( ListViewGroups, (*it), QCheckListItem::CheckBox ); | ||
543 | item->setOn( true ); | ||
544 | } | ||
547 | } | 545 | } |
548 | 546 | ||
549 | void NNTPconfig::save() | 547 | void NNTPconfig::save() |
550 | { | 548 | { |
551 | data->setAccountName( accountLine->text() ); | 549 | data->setAccountName( accountLine->text() ); |
552 | data->setServer( serverLine->text() ); | 550 | data->setServer( serverLine->text() ); |
diff --git a/noncore/net/mail/libmailwrapper/nntpwrapper.cpp b/noncore/net/mail/libmailwrapper/nntpwrapper.cpp index 798879d..a766a59 100644 --- a/noncore/net/mail/libmailwrapper/nntpwrapper.cpp +++ b/noncore/net/mail/libmailwrapper/nntpwrapper.cpp | |||
@@ -199,26 +199,35 @@ QList<Folder>* NNTPwrapper::listFolders() { | |||
199 | for ( QStringList::Iterator it = groups.begin(); it != groups.end(); ++it ) { | 199 | for ( QStringList::Iterator it = groups.begin(); it != groups.end(); ++it ) { |
200 | folders->append(new Folder((*it),".")); | 200 | folders->append(new Folder((*it),".")); |
201 | } | 201 | } |
202 | return folders; | 202 | return folders; |
203 | } | 203 | } |
204 | 204 | ||
205 | clist * NNTPwrapper::listAllNewsgroups() { | 205 | QStringList NNTPwrapper::listAllNewsgroups() { |
206 | login(); | 206 | login(); |
207 | QStringList res; | ||
207 | clist *result = 0; | 208 | clist *result = 0; |
208 | clistcell *current; | 209 | clistcell *current = 0; |
209 | newsnntp_group_description *list; | 210 | newsnntp_group_description *group; |
210 | if ( m_nntp ) { | 211 | |
211 | mailsession * session = m_nntp->sto_session; | 212 | if ( m_nntp ) { |
212 | newsnntp * news = ( ( nntp_session_state_data * )session->sess_data )->nntp_session; | 213 | mailsession * session = m_nntp->sto_session; |
213 | int err = newsnntp_list_newsgroups(news, NULL, &result); | 214 | newsnntp * news = ( ( nntp_session_state_data * )session->sess_data )->nntp_session; |
214 | 215 | int err = newsnntp_list_newsgroups(news, NULL, &result); | |
215 | if ( err == NEWSNNTP_NO_ERROR ) { | 216 | if ( err == NEWSNNTP_NO_ERROR && result) { |
216 | return result; | 217 | for ( current=clist_begin(result);current!=NULL;current=clist_next(current) ) { |
217 | } | 218 | group = ( newsnntp_group_description* ) current->data; |
218 | } | 219 | if (!group||!group->grp_name||strlen(group->grp_name)==0) continue; |
220 | res.append(group->grp_name); | ||
221 | } | ||
222 | } | ||
223 | } | ||
224 | if (result) { | ||
225 | clist_free(result); | ||
226 | } | ||
227 | return res; | ||
219 | } | 228 | } |
220 | 229 | ||
221 | void NNTPwrapper::answeredMail(const RecMail&) {} | 230 | void NNTPwrapper::answeredMail(const RecMail&) {} |
222 | 231 | ||
223 | void NNTPwrapper::statusFolder(folderStat&target_stat,const QString&) { | 232 | void NNTPwrapper::statusFolder(folderStat&target_stat,const QString&) { |
224 | login(); | 233 | login(); |
diff --git a/noncore/net/mail/libmailwrapper/nntpwrapper.h b/noncore/net/mail/libmailwrapper/nntpwrapper.h index e8e2cf4..4d03754 100644 --- a/noncore/net/mail/libmailwrapper/nntpwrapper.h +++ b/noncore/net/mail/libmailwrapper/nntpwrapper.h | |||
@@ -22,13 +22,13 @@ public: | |||
22 | /* mailbox will be ignored */ | 22 | /* mailbox will be ignored */ |
23 | virtual void listMessages(const QString & mailbox, QList<RecMail> &target ); | 23 | virtual void listMessages(const QString & mailbox, QList<RecMail> &target ); |
24 | /* should only get the subscribed one */ | 24 | /* should only get the subscribed one */ |
25 | virtual QList<Folder>* listFolders(); | 25 | virtual QList<Folder>* listFolders(); |
26 | /* mailbox will be ignored */ | 26 | /* mailbox will be ignored */ |
27 | virtual void statusFolder(folderStat&target_stat,const QString & mailbox="INBOX"); | 27 | virtual void statusFolder(folderStat&target_stat,const QString & mailbox="INBOX"); |
28 | clist * listAllNewsgroups(); | 28 | QStringList listAllNewsgroups(); |
29 | virtual void deleteMail(const RecMail&mail); | 29 | virtual void deleteMail(const RecMail&mail); |
30 | virtual void answeredMail(const RecMail&mail); | 30 | virtual void answeredMail(const RecMail&mail); |
31 | virtual int deleteAllMail(const Folder*); | 31 | virtual int deleteAllMail(const Folder*); |
32 | 32 | ||
33 | virtual RecBody fetchBody( const RecMail &mail ); | 33 | virtual RecBody fetchBody( const RecMail &mail ); |
34 | virtual encodedString* fetchRawBody(const RecMail&mail); | 34 | virtual encodedString* fetchRawBody(const RecMail&mail); |