-rw-r--r-- | kmicromail/accountitem.cpp | 21 | ||||
-rw-r--r-- | kmicromail/editaccounts.cpp | 70 | ||||
-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 | 126 | ||||
-rw-r--r-- | kmicromail/opiemail.cpp | 8 | ||||
-rw-r--r-- | kmicromail/opiemail.h | 1 |
8 files changed, 186 insertions, 51 deletions
diff --git a/kmicromail/accountitem.cpp b/kmicromail/accountitem.cpp index 12d047a..7795055 100644 --- a/kmicromail/accountitem.cpp +++ b/kmicromail/accountitem.cpp @@ -89,20 +89,20 @@ QPopupMenu * POP3viewItem::getContextMenu() { QPopupMenu *m = new QPopupMenu(0); 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; } void POP3viewItem::disconnect() @@ -184,12 +184,13 @@ RECBODYP POP3folderItem::fetchBody(const RecMailP&aMail) 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); } return m; } @@ -214,12 +215,15 @@ void POP3folderItem::contextMenuSelected(int which) case 1: deleteAllMail(pop3->getWrapper(),folder); break; case 2: downloadMails(); break; + case GET_NEW_MAILS: // daunlood + view->downloadMailsInbox(getFolder() ,pop3->getWrapper()); + break; default: break; } } /** @@ -510,25 +514,24 @@ QPopupMenu * IMAPviewItem::getContextMenu() { QPopupMenu *m = new QPopupMenu(0); 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; } void IMAPviewItem::createNewFolder() @@ -666,12 +669,13 @@ QPopupMenu * IMAPfolderItem::getContextMenu() { QPopupMenu *m = new QPopupMenu(0); 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); } if (folder->no_inferior()==false) { @@ -750,12 +754,19 @@ void IMAPfolderItem::contextMenuSelected(int id) case 3: deleteFolder(); 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 @@ -535,32 +535,69 @@ NNTPconfig::NNTPconfig( NNTPaccount *account, QWidget *parent, const char *name, { data = account; 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 ) { - QCheckListItem *item; - item = new QCheckListItem( ListViewGroups, (*it), QCheckListItem::CheckBox ); - if ( subscribedGroups.contains( (*it) ) >= 1 ) { - item->setOn( true ); - } + 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 ) { if ( enabled ) { @@ -597,23 +634,26 @@ void NNTPconfig::save() data->setPort( portLine->text() ); data->setSSL( sslBox->isChecked() ); data->setLogin( loginBox->isChecked() ); data->setUser( userLine->text() ); data->setPassword( passLine->text() ); - QListViewItemIterator list_it( ListViewGroups ); + QListViewItemIterator list_it( ListViewGroups ); - QStringList groupList; - for ( ; list_it.current(); ++list_it ) { + for ( ; list_it.current(); ++list_it ) { - if ( ( (QCheckListItem*)list_it.current() )->isOn() ) { - groupList.append( list_it.current()->text(0) ); - } + if ( ( (QCheckListItem*)list_it.current() )->isOn() ) { + 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() { save(); QDialog::accept(); diff --git a/kmicromail/editaccounts.h b/kmicromail/editaccounts.h index a9eb19f..6cf842e 100644 --- a/kmicromail/editaccounts.h +++ b/kmicromail/editaccounts.h @@ -138,15 +138,18 @@ public slots: void fillValues(); 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 @@ -31,14 +31,19 @@ MainWindow::MainWindow( QWidget *parent, const char *name, WFlags flags ) menuBar->insertItem( tr( "Mail" ), mailMenu ); settingsMenu = new QPopupMenu( menuBar ); 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() ), SLOT( slotGetMail() ) ); diff --git a/kmicromail/mainwindow.h b/kmicromail/mainwindow.h index ff0ff20..35b9c8c 100644 --- a/kmicromail/mainwindow.h +++ b/kmicromail/mainwindow.h @@ -39,12 +39,13 @@ protected slots: virtual void slotSendQueued(); virtual void slotEditAccounts(); 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(); virtual void mailLeftClicked( QListViewItem * ); void showLicence(); diff --git a/kmicromail/nntpconfigui.ui b/kmicromail/nntpconfigui.ui index 25d564e..16ff6fc 100644 --- a/kmicromail/nntpconfigui.ui +++ b/kmicromail/nntpconfigui.ui @@ -8,14 +8,14 @@ </property> <property stdset="1"> <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> <string>Configure NNTP</string> </property> @@ -25,13 +25,13 @@ <property> <name>layoutSpacing</name> </property> <vbox> <property stdset="1"> <name>margin</name> - <number>3</number> + <number>2</number> </property> <property stdset="1"> <name>spacing</name> <number>3</number> </property> <widget> @@ -286,49 +286,115 @@ <name>title</name> <string>Groups</string> </attribute> <vbox> <property stdset="1"> <name>margin</name> - <number>3</number> + <number>2</number> </property> <property stdset="1"> <name>spacing</name> <number>3</number> </property> <widget> - <class>QListView</class> - <column> - <property> - <name>text</name> - <string>Newsgroup</string> - </property> - <property> - <name>clickable</name> - <bool>true</bool> - </property> - <property> - <name>resizeable</name> - <bool>true</bool> - </property> - </column> - <property stdset="1"> - <name>name</name> - <cstring>ListViewGroups</cstring> - </property> - </widget> - <widget> - <class>QPushButton</class> + <class>QLayoutWidget</class> <property stdset="1"> <name>name</name> - <cstring>GetNGButton</cstring> + <cstring>Layout10</cstring> </property> - <property stdset="1"> - <name>text</name> - <string>Get newsgroup list from server</string> + <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> + <widget> + <class>QListView</class> + <column> + <property> + <name>text</name> + <string>Newsgroup</string> + </property> + <property> + <name>clickable</name> + <bool>true</bool> + </property> + <property> + <name>resizeable</name> + <bool>true</bool> + </property> + </column> + <property stdset="1"> + <name>name</name> + <cstring>ListViewGroups</cstring> + </property> + </widget> + <widget> + <class>QPushButton</class> + <property stdset="1"> + <name>name</name> + <cstring>GetNGButton</cstring> + </property> + <property stdset="1"> + <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> </widget> diff --git a/kmicromail/opiemail.cpp b/kmicromail/opiemail.cpp index 4e7c6be..7ccfb65 100644 --- a/kmicromail/opiemail.cpp +++ b/kmicromail/opiemail.cpp @@ -250,12 +250,20 @@ void OpieMail::displayMail() } else { ( (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; while ( item->parent () ) item = item->parent (); diff --git a/kmicromail/opiemail.h b/kmicromail/opiemail.h index 47264e4..9de95f8 100644 --- a/kmicromail/opiemail.h +++ b/kmicromail/opiemail.h @@ -29,12 +29,13 @@ protected slots: virtual void slotSearchMails(); virtual void slotEditSettings(); 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>&); virtual void mailLeftClicked( QListViewItem * ); virtual void slotMoveCopyMail(); |