From 5b49d47174925c1e2415641b77269b753688f5f1 Mon Sep 17 00:00:00 2001 From: alwin Date: Sat, 06 Mar 2004 03:17:38 +0000 Subject: removed dependies to libetpan from the frontend and some stuff more --- 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 @@ -11,8 +11,6 @@ #include -#include - AccountListItem::AccountListItem( QListView *parent, Account *a) : QListViewItem( parent ) { @@ -503,23 +501,17 @@ void NNTPconfig::slotGetNG() { save(); data->save(); NNTPwrapper* tmp = new NNTPwrapper( data ); - clist* list = tmp->listAllNewsgroups(); - - clistcell *current; - newsnntp_group_description *group; - - // FIXME - test if not empty - current = list->first; - for ( current=clist_begin(list);current!=NULL;current=clist_next(current) ) { - group = ( newsnntp_group_description* ) current->data; - // qDebug( group->grp_name ); - - QCheckListItem *item; - item = new QCheckListItem( ListViewGroups, ( QString )group->grp_name, QCheckListItem::CheckBox ); - if ( subscribedGroups.contains( ( QString )group->grp_name ) >= 1 ) { - item->setOn( true ); - } - } + QStringList list = tmp->listAllNewsgroups(); + + ListViewGroups->clear(); + + for ( QStringList::Iterator it = list.begin(); it != list.end(); ++it ) { + QCheckListItem *item; + item = new QCheckListItem( ListViewGroups, (*it), QCheckListItem::CheckBox ); + if ( subscribedGroups.contains( (*it) ) >= 1 ) { + item->setOn( true ); + } + } } void NNTPconfig::slotSSL( bool enabled ) @@ -544,6 +536,12 @@ void NNTPconfig::fillValues() userLine->setText( data->getUser() ); passLine->setText( data->getPassword() ); subscribedGroups = data->getGroups(); + /* don't forget that - you will overwrite values if user clicks cancel! */ + for ( QStringList::Iterator it = subscribedGroups.begin(); it != subscribedGroups.end(); ++it ) { + QCheckListItem *item; + item = new QCheckListItem( ListViewGroups, (*it), QCheckListItem::CheckBox ); + item->setOn( true ); + } } void NNTPconfig::save() 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 @@ -202,20 +202,29 @@ QList* NNTPwrapper::listFolders() { return folders; } - clist * NNTPwrapper::listAllNewsgroups() { - login(); +QStringList NNTPwrapper::listAllNewsgroups() { + login(); + QStringList res; clist *result = 0; - clistcell *current; - newsnntp_group_description *list; - if ( m_nntp ) { - mailsession * session = m_nntp->sto_session; - newsnntp * news = ( ( nntp_session_state_data * )session->sess_data )->nntp_session; - int err = newsnntp_list_newsgroups(news, NULL, &result); - - if ( err == NEWSNNTP_NO_ERROR ) { - return result; - } - } + clistcell *current = 0; + newsnntp_group_description *group; + + if ( m_nntp ) { + mailsession * session = m_nntp->sto_session; + newsnntp * news = ( ( nntp_session_state_data * )session->sess_data )->nntp_session; + int err = newsnntp_list_newsgroups(news, NULL, &result); + if ( err == NEWSNNTP_NO_ERROR && result) { + for ( current=clist_begin(result);current!=NULL;current=clist_next(current) ) { + group = ( newsnntp_group_description* ) current->data; + if (!group||!group->grp_name||strlen(group->grp_name)==0) continue; + res.append(group->grp_name); + } + } + } + if (result) { + clist_free(result); + } + return res; } void NNTPwrapper::answeredMail(const RecMail&) {} 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 @@ -25,7 +25,7 @@ public: virtual QList* listFolders(); /* mailbox will be ignored */ virtual void statusFolder(folderStat&target_stat,const QString & mailbox="INBOX"); - clist * listAllNewsgroups(); + QStringList listAllNewsgroups(); virtual void deleteMail(const RecMail&mail); virtual void answeredMail(const RecMail&mail); virtual int deleteAllMail(const Folder*); -- cgit v0.9.0.2