summaryrefslogtreecommitdiffabout
authorzautrix <zautrix>2004-09-16 20:39:34 (UTC)
committer zautrix <zautrix>2004-09-16 20:39:34 (UTC)
commitb44edfb21be0eee91c4f47401e3fe6ff37e4c16c (patch) (side-by-side diff)
treea17655e0e679f67498d9fee6f6a532e9c0f0e9e5
parentb6bfa63deb15a2600d46a8c68c231f068da1444a (diff)
downloadkdepimpi-b44edfb21be0eee91c4f47401e3fe6ff37e4c16c.zip
kdepimpi-b44edfb21be0eee91c4f47401e3fe6ff37e4c16c.tar.gz
kdepimpi-b44edfb21be0eee91c4f47401e3fe6ff37e4c16c.tar.bz2
better newsgroup handling
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--kmicromail/accountitem.cpp21
-rw-r--r--kmicromail/editaccounts.cpp70
-rw-r--r--kmicromail/editaccounts.h3
-rw-r--r--kmicromail/mainwindow.cpp7
-rw-r--r--kmicromail/mainwindow.h1
-rw-r--r--kmicromail/nntpconfigui.ui126
-rw-r--r--kmicromail/opiemail.cpp8
-rw-r--r--kmicromail/opiemail.h1
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
@@ -92,14 +92,14 @@ QPopupMenu * POP3viewItem::getContextMenu()
{
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;
@@ -187,6 +187,7 @@ 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);
@@ -217,6 +218,9 @@ void POP3folderItem::contextMenuSelected(int which)
case 2:
downloadMails();
break;
+ case GET_NEW_MAILS: // daunlood
+ view->downloadMailsInbox(getFolder() ,pop3->getWrapper());
+ break;
default:
break;
}
@@ -513,19 +517,18 @@ QPopupMenu * IMAPviewItem::getContextMenu()
{
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;
@@ -669,6 +672,7 @@ QPopupMenu * IMAPfolderItem::getContextMenu()
{
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);
@@ -753,6 +757,13 @@ void IMAPfolderItem::contextMenuSelected(int id)
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
@@ -538,26 +538,63 @@ 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 ) {
- 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 )
@@ -600,17 +637,20 @@ void NNTPconfig::save()
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()
diff --git a/kmicromail/editaccounts.h b/kmicromail/editaccounts.h
index a9eb19f..6cf842e 100644
--- a/kmicromail/editaccounts.h
+++ b/kmicromail/editaccounts.h
@@ -141,9 +141,12 @@ 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
@@ -34,8 +34,13 @@ MainWindow::MainWindow( QWidget *parent, const char *name, WFlags flags )
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 );
diff --git a/kmicromail/mainwindow.h b/kmicromail/mainwindow.h
index ff0ff20..35b9c8c 100644
--- a/kmicromail/mainwindow.h
+++ b/kmicromail/mainwindow.h
@@ -42,6 +42,7 @@ protected slots:
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();
diff --git a/kmicromail/nntpconfigui.ui b/kmicromail/nntpconfigui.ui
index 25d564e..16ff6fc 100644
--- a/kmicromail/nntpconfigui.ui
+++ b/kmicromail/nntpconfigui.ui
@@ -11,8 +11,8 @@
<rect>
<x>0</x>
<y>0</y>
- <width>409</width>
- <height>520</height>
+ <width>268</width>
+ <height>347</height>
</rect>
</property>
<property stdset="1">
@@ -28,7 +28,7 @@
<vbox>
<property stdset="1">
<name>margin</name>
- <number>3</number>
+ <number>2</number>
</property>
<property stdset="1">
<name>spacing</name>
@@ -289,43 +289,109 @@
<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>
diff --git a/kmicromail/opiemail.cpp b/kmicromail/opiemail.cpp
index 4e7c6be..7ccfb65 100644
--- a/kmicromail/opiemail.cpp
+++ b/kmicromail/opiemail.cpp
@@ -253,6 +253,14 @@ 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();
diff --git a/kmicromail/opiemail.h b/kmicromail/opiemail.h
index 47264e4..9de95f8 100644
--- a/kmicromail/opiemail.h
+++ b/kmicromail/opiemail.h
@@ -32,6 +32,7 @@ protected slots:
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 );