summaryrefslogtreecommitdiffabout
authorzautrix <zautrix>2004-09-16 20:39:34 (UTC)
committer zautrix <zautrix>2004-09-16 20:39:34 (UTC)
commitb44edfb21be0eee91c4f47401e3fe6ff37e4c16c (patch) (unidiff)
treea17655e0e679f67498d9fee6f6a532e9c0f0e9e5
parentb6bfa63deb15a2600d46a8c68c231f068da1444a (diff)
downloadkdepimpi-b44edfb21be0eee91c4f47401e3fe6ff37e4c16c.zip
kdepimpi-b44edfb21be0eee91c4f47401e3fe6ff37e4c16c.tar.gz
kdepimpi-b44edfb21be0eee91c4f47401e3fe6ff37e4c16c.tar.bz2
better newsgroup handling
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--kmicromail/accountitem.cpp21
-rw-r--r--kmicromail/editaccounts.cpp50
-rw-r--r--kmicromail/editaccounts.h3
-rw-r--r--kmicromail/mainwindow.cpp7
-rw-r--r--kmicromail/mainwindow.h1
-rw-r--r--kmicromail/nntpconfigui.ui72
-rw-r--r--kmicromail/opiemail.cpp8
-rw-r--r--kmicromail/opiemail.h1
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
@@ -92,14 +92,14 @@ QPopupMenu * POP3viewItem::getContextMenu()
92 { 92 {
93 if (!account->getOffline()) 93 if (!account->getOffline())
94 { 94 {
95 m->insertItem(QObject::tr("Get new messages",contextName),GET_NEW_MAILS);
95 m->insertItem(QObject::tr("Disconnect",contextName),0); 96 m->insertItem(QObject::tr("Disconnect",contextName),0);
96 m->insertItem(QObject::tr("Set offline",contextName),1); 97 m->insertItem(QObject::tr("Set offline",contextName),1);
97 m->insertItem(QObject::tr("Get new messages",contextName),GET_NEW_MAILS);
98 } 98 }
99 else 99 else
100 { 100 {
101 m->insertItem(QObject::tr("Set online",contextName),1);
102 m->insertItem(QObject::tr("Get new messages",contextName),GET_NEW_MAILS); 101 m->insertItem(QObject::tr("Get new messages",contextName),GET_NEW_MAILS);
102 m->insertItem(QObject::tr("Set online",contextName),1);
103 } 103 }
104 } 104 }
105 return m; 105 return m;
@@ -187,6 +187,7 @@ QPopupMenu * POP3folderItem::getContextMenu()
187 QPopupMenu *m = new QPopupMenu(0); 187 QPopupMenu *m = new QPopupMenu(0);
188 if (m) 188 if (m)
189 { 189 {
190 m->insertItem(QObject::tr("Get new messages",contextName),GET_NEW_MAILS);
190 m->insertItem(QObject::tr("Refresh header list",contextName),0); 191 m->insertItem(QObject::tr("Refresh header list",contextName),0);
191 m->insertItem(QObject::tr("Delete all mails",contextName),1); 192 m->insertItem(QObject::tr("Delete all mails",contextName),1);
192 m->insertItem(QObject::tr("Move/Copie all mails",contextName),2); 193 m->insertItem(QObject::tr("Move/Copie all mails",contextName),2);
@@ -217,6 +218,9 @@ void POP3folderItem::contextMenuSelected(int which)
217 case 2: 218 case 2:
218 downloadMails(); 219 downloadMails();
219 break; 220 break;
221 case GET_NEW_MAILS: // daunlood
222 view->downloadMailsInbox(getFolder() ,pop3->getWrapper());
223 break;
220 default: 224 default:
221 break; 225 break;
222 } 226 }
@@ -513,19 +517,18 @@ QPopupMenu * IMAPviewItem::getContextMenu()
513 { 517 {
514 if (!account->getOffline()) 518 if (!account->getOffline())
515 { 519 {
520 m->insertItem(QObject::tr("Get new messages",contextName),GET_NEW_MAILS);
516 m->insertItem(QObject::tr("Refresh folder list",contextName),0); 521 m->insertItem(QObject::tr("Refresh folder list",contextName),0);
517 m->insertItem(QObject::tr("Create new folder",contextName),1); 522 m->insertItem(QObject::tr("Create new folder",contextName),1);
518 m->insertSeparator(); 523 m->insertSeparator();
519 m->insertItem(QObject::tr("Disconnect",contextName),2); 524 m->insertItem(QObject::tr("Disconnect",contextName),2);
520 m->insertItem(QObject::tr("Set offline",contextName),3); 525 m->insertItem(QObject::tr("Set offline",contextName),3);
521 m->insertSeparator(); 526 m->insertSeparator();
522 m->insertItem(QObject::tr("Get new messages",contextName),GET_NEW_MAILS);
523 } 527 }
524 else 528 else
525 { 529 {
526 m->insertItem(QObject::tr("Set online",contextName),3);
527 m->insertSeparator();
528 m->insertItem(QObject::tr("Get new messages",contextName),GET_NEW_MAILS); 530 m->insertItem(QObject::tr("Get new messages",contextName),GET_NEW_MAILS);
531 m->insertItem(QObject::tr("Set online",contextName),3);
529 } 532 }
530 } 533 }
531 return m; 534 return m;
@@ -669,6 +672,7 @@ QPopupMenu * IMAPfolderItem::getContextMenu()
669 { 672 {
670 if (folder->may_select()) 673 if (folder->may_select())
671 { 674 {
675 m->insertItem(QObject::tr("Get new messages",contextName),GET_NEW_MAILS);
672 m->insertItem(QObject::tr("Refresh header list",contextName),0); 676 m->insertItem(QObject::tr("Refresh header list",contextName),0);
673 m->insertItem(QObject::tr("Move/Copie all mails",contextName),4); 677 m->insertItem(QObject::tr("Move/Copie all mails",contextName),4);
674 m->insertItem(QObject::tr("Delete all mails",contextName),1); 678 m->insertItem(QObject::tr("Delete all mails",contextName),1);
@@ -753,6 +757,13 @@ void IMAPfolderItem::contextMenuSelected(int id)
753 case 4: 757 case 4:
754 downloadMails(); 758 downloadMails();
755 break; 759 break;
760 case GET_NEW_MAILS: // daunlood
761 {
762 AccountView*bl = accountView();
763 if (!bl) return;
764 bl->downloadMailsInbox(getFolder(),imap->getWrapper());
765 }
766 break;
756 default: 767 default:
757 break; 768 break;
758 } 769 }
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,
538 connect( loginBox, SIGNAL( toggled(bool) ), userLine, SLOT( setEnabled(bool) ) ); 538 connect( loginBox, SIGNAL( toggled(bool) ), userLine, SLOT( setEnabled(bool) ) );
539 connect( loginBox, SIGNAL( toggled(bool) ), passLine, SLOT( setEnabled(bool) ) ); 539 connect( loginBox, SIGNAL( toggled(bool) ), passLine, SLOT( setEnabled(bool) ) );
540 connect( GetNGButton, SIGNAL( clicked() ), this, SLOT( slotGetNG() ) ); 540 connect( GetNGButton, SIGNAL( clicked() ), this, SLOT( slotGetNG() ) );
541 connect( ShowSubcribed, SIGNAL( clicked() ), this, SLOT( slotShowSub() ) );
542 connect( FilterButton, SIGNAL( clicked() ), this, SLOT( slotShowFilter() ) );
541 fillValues(); 543 fillValues();
542 544
543 connect( sslBox, SIGNAL( toggled(bool) ), SLOT( slotSSL(bool) ) ); 545 connect( sslBox, SIGNAL( toggled(bool) ), SLOT( slotSSL(bool) ) );
544} 546}
545 547
548void NNTPconfig::slotShowSub()
549{
550 save();
551 data->save();
552 ListViewGroups->clear();
553 for ( QStringList::Iterator it = subscribedGroups.begin(); it != subscribedGroups.end(); ++it ) {
554 QCheckListItem *item;
555 item = new QCheckListItem( ListViewGroups, (*it), QCheckListItem::CheckBox );
556 item->setOn( true );
557 }
558 topLevelWidget()->setCaption( tr("%1 groups subscribed").arg( subscribedGroups.count()));
559}
560void NNTPconfig::slotShowFilter()
561{
562 save();
563 data->save();
564 ListViewGroups->clear();
565 int count = 0;
566 for ( QStringList::Iterator it = allGroups.begin(); it != allGroups.end(); ++it ) {
567 QCheckListItem *item;
568 if ( GroupFilter->text().isEmpty() || (*it).find( GroupFilter->text() ) >= 0 ) {
569 item = new QCheckListItem( ListViewGroups, (*it), QCheckListItem::CheckBox );
570 ++count;
571 if ( subscribedGroups.contains( (*it) ) >= 1 ) {
572 item->setOn( true );
573 }
574 }
575 }
576 topLevelWidget()->setCaption( tr("Filter found %1 groups").arg( count));
577}
546void NNTPconfig::slotGetNG() { 578void NNTPconfig::slotGetNG() {
547 save(); 579 save();
548 data->save(); 580 data->save();
581 topLevelWidget()->setCaption( tr("Fetching group list..."));
582 qApp->processEvents();
549 NNTPwrapper* tmp = new NNTPwrapper( data ); 583 NNTPwrapper* tmp = new NNTPwrapper( data );
550 QStringList list = tmp->listAllNewsgroups(); 584 allGroups = tmp->listAllNewsgroups();
585 topLevelWidget()->setCaption( tr("Downloaded %1 group names").arg( allGroups.count()));
551 586
552 ListViewGroups->clear(); 587 ListViewGroups->clear();
553 588
554 for ( QStringList::Iterator it = list.begin(); it != list.end(); ++it ) { 589 for ( QStringList::Iterator it = allGroups.begin(); it != allGroups.end(); ++it ) {
555 QCheckListItem *item; 590 QCheckListItem *item;
556 item = new QCheckListItem( ListViewGroups, (*it), QCheckListItem::CheckBox ); 591 item = new QCheckListItem( ListViewGroups, (*it), QCheckListItem::CheckBox );
557 if ( subscribedGroups.contains( (*it) ) >= 1 ) { 592 if ( subscribedGroups.contains( (*it) ) >= 1 ) {
558 item->setOn( true ); 593 item->setOn( true );
594
559 } 595 }
560 } 596 }
597 delete tmp;
561} 598}
562 599
563void NNTPconfig::slotSSL( bool enabled ) 600void NNTPconfig::slotSSL( bool enabled )
@@ -602,15 +639,18 @@ void NNTPconfig::save()
602 639
603 QListViewItemIterator list_it( ListViewGroups ); 640 QListViewItemIterator list_it( ListViewGroups );
604 641
605 QStringList groupList;
606 for ( ; list_it.current(); ++list_it ) { 642 for ( ; list_it.current(); ++list_it ) {
607 643
608 if ( ( (QCheckListItem*)list_it.current() )->isOn() ) { 644 if ( ( (QCheckListItem*)list_it.current() )->isOn() ) {
609 groupList.append( list_it.current()->text(0) ); 645 if ( subscribedGroups.contains( list_it.current()->text(0) ) < 1 )
646 subscribedGroups.append( list_it.current()->text(0) );
647 } else {
648 if ( subscribedGroups.contains( list_it.current()->text(0) ) >= 1 )
649 subscribedGroups.remove( list_it.current()->text(0) );
610 } 650 }
611 651
612 } 652 }
613 data->setGroups( groupList ); 653 data->setGroups( subscribedGroups );
614} 654}
615 655
616void NNTPconfig::accept() 656void 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:
141 void slotSSL( bool enabled ); 141 void slotSSL( bool enabled );
142 void accept(); 142 void accept();
143 void slotGetNG(); 143 void slotGetNG();
144 void slotShowSub();
145 void slotShowFilter();
144 146
145private: 147private:
146 QStringList subscribedGroups; 148 QStringList subscribedGroups;
149 QStringList allGroups;
147 void save(); 150 void save();
148 NNTPaccount *data; 151 NNTPaccount *data;
149 clist* list; 152 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 )
34 34
35 addToolBar( toolBar ); 35 addToolBar( toolBar );
36 toolBar->setHorizontalStretchable( true ); 36 toolBar->setHorizontalStretchable( true );
37 QAction* getMail = new QAction( tr( "Get all new mails" ), SmallIcon("add"),
38 0, 0, this );
39 connect(getMail, SIGNAL( activated() ),
40 SLOT( slotGetAllMail() ) );
41 getMail->addTo( mailMenu );
37 42
38 QAction* getMail = new QAction( tr( "Get new mail" ), SmallIcon("add"), 43 getMail = new QAction( tr( "Get new messages" ), SmallIcon("add"),
39 0, 0, this ); 44 0, 0, this );
40 getMail->addTo( toolBar ); 45 getMail->addTo( toolBar );
41 getMail->addTo( mailMenu ); 46 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:
42 virtual void refreshMailView(const QValueList<RecMailP>&); 42 virtual void refreshMailView(const QValueList<RecMailP>&);
43 virtual void displayMail(); 43 virtual void displayMail();
44 virtual void slotGetMail() = 0; 44 virtual void slotGetMail() = 0;
45 virtual void slotGetAllMail() = 0;
45 virtual void slotDeleteMail(); 46 virtual void slotDeleteMail();
46 virtual void mailHold(int, QListViewItem *,const QPoint&,int); 47 virtual void mailHold(int, QListViewItem *,const QPoint&,int);
47 virtual void slotAdjustLayout(); 48 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 @@
11 <rect> 11 <rect>
12 <x>0</x> 12 <x>0</x>
13 <y>0</y> 13 <y>0</y>
14 <width>409</width> 14 <width>268</width>
15 <height>520</height> 15 <height>347</height>
16 </rect> 16 </rect>
17 </property> 17 </property>
18 <property stdset="1"> 18 <property stdset="1">
@@ -28,7 +28,7 @@
28 <vbox> 28 <vbox>
29 <property stdset="1"> 29 <property stdset="1">
30 <name>margin</name> 30 <name>margin</name>
31 <number>3</number> 31 <number>2</number>
32 </property> 32 </property>
33 <property stdset="1"> 33 <property stdset="1">
34 <name>spacing</name> 34 <name>spacing</name>
@@ -289,8 +289,26 @@
289 <vbox> 289 <vbox>
290 <property stdset="1"> 290 <property stdset="1">
291 <name>margin</name> 291 <name>margin</name>
292 <number>2</number>
293 </property>
294 <property stdset="1">
295 <name>spacing</name>
292 <number>3</number> 296 <number>3</number>
293 </property> 297 </property>
298 <widget>
299 <class>QLayoutWidget</class>
300 <property stdset="1">
301 <name>name</name>
302 <cstring>Layout10</cstring>
303 </property>
304 <property>
305 <name>layoutSpacing</name>
306 </property>
307 <vbox>
308 <property stdset="1">
309 <name>margin</name>
310 <number>0</number>
311 </property>
294 <property stdset="1"> 312 <property stdset="1">
295 <name>spacing</name> 313 <name>spacing</name>
296 <number>3</number> 314 <number>3</number>
@@ -327,6 +345,54 @@
327 <string>Get newsgroup list from server</string> 345 <string>Get newsgroup list from server</string>
328 </property> 346 </property>
329 </widget> 347 </widget>
348 <widget>
349 <class>QLayoutWidget</class>
350 <property stdset="1">
351 <name>name</name>
352 <cstring>Layout9</cstring>
353 </property>
354 <hbox>
355 <property stdset="1">
356 <name>margin</name>
357 <number>0</number>
358 </property>
359 <property stdset="1">
360 <name>spacing</name>
361 <number>6</number>
362 </property>
363 <widget>
364 <class>QPushButton</class>
365 <property stdset="1">
366 <name>name</name>
367 <cstring>FilterButton</cstring>
368 </property>
369 <property stdset="1">
370 <name>text</name>
371 <string>Filter:</string>
372 </property>
373 </widget>
374 <widget>
375 <class>QLineEdit</class>
376 <property stdset="1">
377 <name>name</name>
378 <cstring>GroupFilter</cstring>
379 </property>
380 </widget>
381 <widget>
382 <class>QPushButton</class>
383 <property stdset="1">
384 <name>name</name>
385 <cstring>ShowSubcribed</cstring>
386 </property>
387 <property stdset="1">
388 <name>text</name>
389 <string>Show subscribed</string>
390 </property>
391 </widget>
392 </hbox>
393 </widget>
394 </vbox>
395 </widget>
330 </vbox> 396 </vbox>
331 </widget> 397 </widget>
332 </widget> 398 </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()
253 ( (MailListViewItem*)item )->setPixmap( 0, QPixmap() ); 253 ( (MailListViewItem*)item )->setPixmap( 0, QPixmap() );
254 } 254 }
255} 255}
256void OpieMail::slotGetAllMail()
257{
258 QListViewItem * item = folderView->firstChild();
259 while ( item ){
260 ((AccountViewItem *)item)->contextMenuSelected( 101 );
261 item = item->nextSibling ();
262 }
263}
256void OpieMail::slotGetMail() 264void OpieMail::slotGetMail()
257{ 265{
258 QListViewItem * item = folderView->currentItem(); 266 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:
32 virtual void displayMail(); 32 virtual void displayMail();
33 virtual void slotDeleteMail(); 33 virtual void slotDeleteMail();
34 virtual void slotGetMail(); 34 virtual void slotGetMail();
35 virtual void slotGetAllMail();
35 virtual void slotDeleteAllMail(); 36 virtual void slotDeleteAllMail();
36 virtual void mailHold(int, QListViewItem *,const QPoint&,int); 37 virtual void mailHold(int, QListViewItem *,const QPoint&,int);
37 virtual void slotShowFolders( bool show ); 38 virtual void slotShowFolders( bool show );