author | zautrix <zautrix> | 2004-09-16 20:39:34 (UTC) |
---|---|---|
committer | zautrix <zautrix> | 2004-09-16 20:39:34 (UTC) |
commit | b44edfb21be0eee91c4f47401e3fe6ff37e4c16c (patch) (side-by-side diff) | |
tree | a17655e0e679f67498d9fee6f6a532e9c0f0e9e5 | |
parent | b6bfa63deb15a2600d46a8c68c231f068da1444a (diff) | |
download | kdepimpi-b44edfb21be0eee91c4f47401e3fe6ff37e4c16c.zip kdepimpi-b44edfb21be0eee91c4f47401e3fe6ff37e4c16c.tar.gz kdepimpi-b44edfb21be0eee91c4f47401e3fe6ff37e4c16c.tar.bz2 |
better newsgroup handling
-rw-r--r-- | kmicromail/accountitem.cpp | 21 | ||||
-rw-r--r-- | kmicromail/editaccounts.cpp | 50 | ||||
-rw-r--r-- | kmicromail/editaccounts.h | 3 | ||||
-rw-r--r-- | kmicromail/mainwindow.cpp | 7 | ||||
-rw-r--r-- | kmicromail/mainwindow.h | 1 | ||||
-rw-r--r-- | kmicromail/nntpconfigui.ui | 72 | ||||
-rw-r--r-- | kmicromail/opiemail.cpp | 8 | ||||
-rw-r--r-- | kmicromail/opiemail.h | 1 |
8 files changed, 149 insertions, 14 deletions
diff --git a/kmicromail/accountitem.cpp b/kmicromail/accountitem.cpp index 12d047a..7795055 100644 --- a/kmicromail/accountitem.cpp +++ b/kmicromail/accountitem.cpp @@ -91,16 +91,16 @@ QPopupMenu * POP3viewItem::getContextMenu() if (m) { if (!account->getOffline()) { + m->insertItem(QObject::tr("Get new messages",contextName),GET_NEW_MAILS); m->insertItem(QObject::tr("Disconnect",contextName),0); m->insertItem(QObject::tr("Set offline",contextName),1); - m->insertItem(QObject::tr("Get new messages",contextName),GET_NEW_MAILS); } else { - m->insertItem(QObject::tr("Set online",contextName),1); m->insertItem(QObject::tr("Get new messages",contextName),GET_NEW_MAILS); + m->insertItem(QObject::tr("Set online",contextName),1); } } return m; } @@ -186,8 +186,9 @@ QPopupMenu * POP3folderItem::getContextMenu() { QPopupMenu *m = new QPopupMenu(0); if (m) { + m->insertItem(QObject::tr("Get new messages",contextName),GET_NEW_MAILS); m->insertItem(QObject::tr("Refresh header list",contextName),0); m->insertItem(QObject::tr("Delete all mails",contextName),1); m->insertItem(QObject::tr("Move/Copie all mails",contextName),2); } @@ -216,8 +217,11 @@ void POP3folderItem::contextMenuSelected(int which) break; case 2: downloadMails(); break; + case GET_NEW_MAILS: // daunlood + view->downloadMailsInbox(getFolder() ,pop3->getWrapper()); + break; default: break; } } @@ -512,21 +516,20 @@ QPopupMenu * IMAPviewItem::getContextMenu() if (m) { if (!account->getOffline()) { + m->insertItem(QObject::tr("Get new messages",contextName),GET_NEW_MAILS); m->insertItem(QObject::tr("Refresh folder list",contextName),0); m->insertItem(QObject::tr("Create new folder",contextName),1); m->insertSeparator(); m->insertItem(QObject::tr("Disconnect",contextName),2); m->insertItem(QObject::tr("Set offline",contextName),3); m->insertSeparator(); - m->insertItem(QObject::tr("Get new messages",contextName),GET_NEW_MAILS); } else { - m->insertItem(QObject::tr("Set online",contextName),3); - m->insertSeparator(); m->insertItem(QObject::tr("Get new messages",contextName),GET_NEW_MAILS); + m->insertItem(QObject::tr("Set online",contextName),3); } } return m; } @@ -668,8 +671,9 @@ QPopupMenu * IMAPfolderItem::getContextMenu() if (m) { if (folder->may_select()) { + m->insertItem(QObject::tr("Get new messages",contextName),GET_NEW_MAILS); m->insertItem(QObject::tr("Refresh header list",contextName),0); m->insertItem(QObject::tr("Move/Copie all mails",contextName),4); m->insertItem(QObject::tr("Delete all mails",contextName),1); } @@ -752,8 +756,15 @@ void IMAPfolderItem::contextMenuSelected(int id) break; case 4: downloadMails(); break; + case GET_NEW_MAILS: // daunlood + { + AccountView*bl = accountView(); + if (!bl) return; + bl->downloadMailsInbox(getFolder(),imap->getWrapper()); + } + break; default: break; } } diff --git a/kmicromail/editaccounts.cpp b/kmicromail/editaccounts.cpp index d43d23b..733e38a 100644 --- a/kmicromail/editaccounts.cpp +++ b/kmicromail/editaccounts.cpp @@ -537,28 +537,65 @@ NNTPconfig::NNTPconfig( NNTPaccount *account, QWidget *parent, const char *name, connect( loginBox, SIGNAL( toggled(bool) ), userLine, SLOT( setEnabled(bool) ) ); connect( loginBox, SIGNAL( toggled(bool) ), passLine, SLOT( setEnabled(bool) ) ); connect( GetNGButton, SIGNAL( clicked() ), this, SLOT( slotGetNG() ) ); + connect( ShowSubcribed, SIGNAL( clicked() ), this, SLOT( slotShowSub() ) ); + connect( FilterButton, SIGNAL( clicked() ), this, SLOT( slotShowFilter() ) ); fillValues(); connect( sslBox, SIGNAL( toggled(bool) ), SLOT( slotSSL(bool) ) ); } +void NNTPconfig::slotShowSub() +{ + save(); + data->save(); + ListViewGroups->clear(); + for ( QStringList::Iterator it = subscribedGroups.begin(); it != subscribedGroups.end(); ++it ) { + QCheckListItem *item; + item = new QCheckListItem( ListViewGroups, (*it), QCheckListItem::CheckBox ); + item->setOn( true ); + } + topLevelWidget()->setCaption( tr("%1 groups subscribed").arg( subscribedGroups.count())); +} +void NNTPconfig::slotShowFilter() +{ + save(); + data->save(); + ListViewGroups->clear(); + int count = 0; + for ( QStringList::Iterator it = allGroups.begin(); it != allGroups.end(); ++it ) { + QCheckListItem *item; + if ( GroupFilter->text().isEmpty() || (*it).find( GroupFilter->text() ) >= 0 ) { + item = new QCheckListItem( ListViewGroups, (*it), QCheckListItem::CheckBox ); + ++count; + if ( subscribedGroups.contains( (*it) ) >= 1 ) { + item->setOn( true ); + } + } + } + topLevelWidget()->setCaption( tr("Filter found %1 groups").arg( count)); +} void NNTPconfig::slotGetNG() { save(); data->save(); + topLevelWidget()->setCaption( tr("Fetching group list...")); + qApp->processEvents(); NNTPwrapper* tmp = new NNTPwrapper( data ); - QStringList list = tmp->listAllNewsgroups(); + allGroups = tmp->listAllNewsgroups(); + topLevelWidget()->setCaption( tr("Downloaded %1 group names").arg( allGroups.count())); ListViewGroups->clear(); - for ( QStringList::Iterator it = list.begin(); it != list.end(); ++it ) { + for ( QStringList::Iterator it = allGroups.begin(); it != allGroups.end(); ++it ) { QCheckListItem *item; item = new QCheckListItem( ListViewGroups, (*it), QCheckListItem::CheckBox ); if ( subscribedGroups.contains( (*it) ) >= 1 ) { item->setOn( true ); + } } + delete tmp; } void NNTPconfig::slotSSL( bool enabled ) { @@ -601,17 +638,20 @@ void NNTPconfig::save() data->setPassword( passLine->text() ); QListViewItemIterator list_it( ListViewGroups ); - QStringList groupList; for ( ; list_it.current(); ++list_it ) { if ( ( (QCheckListItem*)list_it.current() )->isOn() ) { - groupList.append( list_it.current()->text(0) ); + if ( subscribedGroups.contains( list_it.current()->text(0) ) < 1 ) + subscribedGroups.append( list_it.current()->text(0) ); + } else { + if ( subscribedGroups.contains( list_it.current()->text(0) ) >= 1 ) + subscribedGroups.remove( list_it.current()->text(0) ); } } - data->setGroups( groupList ); + data->setGroups( subscribedGroups ); } void NNTPconfig::accept() { diff --git a/kmicromail/editaccounts.h b/kmicromail/editaccounts.h index a9eb19f..6cf842e 100644 --- a/kmicromail/editaccounts.h +++ b/kmicromail/editaccounts.h @@ -140,11 +140,14 @@ public slots: protected slots: void slotSSL( bool enabled ); void accept(); void slotGetNG(); + void slotShowSub(); + void slotShowFilter(); private: QStringList subscribedGroups; + QStringList allGroups; void save(); NNTPaccount *data; clist* list; diff --git a/kmicromail/mainwindow.cpp b/kmicromail/mainwindow.cpp index d130317..2a67e39 100644 --- a/kmicromail/mainwindow.cpp +++ b/kmicromail/mainwindow.cpp @@ -33,10 +33,15 @@ MainWindow::MainWindow( QWidget *parent, const char *name, WFlags flags ) menuBar->insertItem( tr( "Settings" ), settingsMenu ); addToolBar( toolBar ); toolBar->setHorizontalStretchable( true ); + QAction* getMail = new QAction( tr( "Get all new mails" ), SmallIcon("add"), + 0, 0, this ); + connect(getMail, SIGNAL( activated() ), + SLOT( slotGetAllMail() ) ); + getMail->addTo( mailMenu ); - QAction* getMail = new QAction( tr( "Get new mail" ), SmallIcon("add"), + getMail = new QAction( tr( "Get new messages" ), SmallIcon("add"), 0, 0, this ); getMail->addTo( toolBar ); getMail->addTo( mailMenu ); connect(getMail, SIGNAL( activated() ), diff --git a/kmicromail/mainwindow.h b/kmicromail/mainwindow.h index ff0ff20..35b9c8c 100644 --- a/kmicromail/mainwindow.h +++ b/kmicromail/mainwindow.h @@ -41,8 +41,9 @@ protected slots: virtual void slotShowFolders( bool show ); virtual void refreshMailView(const QValueList<RecMailP>&); virtual void displayMail(); virtual void slotGetMail() = 0; + virtual void slotGetAllMail() = 0; virtual void slotDeleteMail(); virtual void mailHold(int, QListViewItem *,const QPoint&,int); virtual void slotAdjustLayout(); virtual void slotEditSettings(); diff --git a/kmicromail/nntpconfigui.ui b/kmicromail/nntpconfigui.ui index 25d564e..16ff6fc 100644 --- a/kmicromail/nntpconfigui.ui +++ b/kmicromail/nntpconfigui.ui @@ -10,10 +10,10 @@ <name>geometry</name> <rect> <x>0</x> <y>0</y> - <width>409</width> - <height>520</height> + <width>268</width> + <height>347</height> </rect> </property> <property stdset="1"> <name>caption</name> @@ -27,9 +27,9 @@ </property> <vbox> <property stdset="1"> <name>margin</name> - <number>3</number> + <number>2</number> </property> <property stdset="1"> <name>spacing</name> <number>3</number> @@ -288,10 +288,28 @@ </attribute> <vbox> <property stdset="1"> <name>margin</name> + <number>2</number> + </property> + <property stdset="1"> + <name>spacing</name> <number>3</number> </property> + <widget> + <class>QLayoutWidget</class> + <property stdset="1"> + <name>name</name> + <cstring>Layout10</cstring> + </property> + <property> + <name>layoutSpacing</name> + </property> + <vbox> + <property stdset="1"> + <name>margin</name> + <number>0</number> + </property> <property stdset="1"> <name>spacing</name> <number>3</number> </property> @@ -326,8 +344,56 @@ <name>text</name> <string>Get newsgroup list from server</string> </property> </widget> + <widget> + <class>QLayoutWidget</class> + <property stdset="1"> + <name>name</name> + <cstring>Layout9</cstring> + </property> + <hbox> + <property stdset="1"> + <name>margin</name> + <number>0</number> + </property> + <property stdset="1"> + <name>spacing</name> + <number>6</number> + </property> + <widget> + <class>QPushButton</class> + <property stdset="1"> + <name>name</name> + <cstring>FilterButton</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>Filter:</string> + </property> + </widget> + <widget> + <class>QLineEdit</class> + <property stdset="1"> + <name>name</name> + <cstring>GroupFilter</cstring> + </property> + </widget> + <widget> + <class>QPushButton</class> + <property stdset="1"> + <name>name</name> + <cstring>ShowSubcribed</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>Show subscribed</string> + </property> + </widget> + </hbox> + </widget> + </vbox> + </widget> </vbox> </widget> </widget> </vbox> diff --git a/kmicromail/opiemail.cpp b/kmicromail/opiemail.cpp index 4e7c6be..7ccfb65 100644 --- a/kmicromail/opiemail.cpp +++ b/kmicromail/opiemail.cpp @@ -252,8 +252,16 @@ void OpieMail::displayMail() { ( (MailListViewItem*)item )->setPixmap( 0, QPixmap() ); } } +void OpieMail::slotGetAllMail() +{ + QListViewItem * item = folderView->firstChild(); + while ( item ){ + ((AccountViewItem *)item)->contextMenuSelected( 101 ); + item = item->nextSibling (); + } +} void OpieMail::slotGetMail() { QListViewItem * item = folderView->currentItem(); if ( ! item ) return; diff --git a/kmicromail/opiemail.h b/kmicromail/opiemail.h index 47264e4..9de95f8 100644 --- a/kmicromail/opiemail.h +++ b/kmicromail/opiemail.h @@ -31,8 +31,9 @@ protected slots: virtual void slotEditAccounts(); virtual void displayMail(); virtual void slotDeleteMail(); virtual void slotGetMail(); + virtual void slotGetAllMail(); virtual void slotDeleteAllMail(); virtual void mailHold(int, QListViewItem *,const QPoint&,int); virtual void slotShowFolders( bool show ); virtual void refreshMailView(const QValueList<RecMailP>&); |