summaryrefslogtreecommitdiff
path: root/noncore/net/mail
authoralwin <alwin>2005-03-09 14:40:43 (UTC)
committer alwin <alwin>2005-03-09 14:40:43 (UTC)
commit84f237fb3b83400a031bf7c2d3025f78c02f28a8 (patch) (unidiff)
treefbe8992bea9ddda02129d4c3aa4facc4ec38e00c /noncore/net/mail
parente62e4a9111d9f5cfe4f004f1b21d377b92018b33 (diff)
downloadopie-84f237fb3b83400a031bf7c2d3025f78c02f28a8.zip
opie-84f237fb3b83400a031bf7c2d3025f78c02f28a8.tar.gz
opie-84f237fb3b83400a031bf7c2d3025f78c02f28a8.tar.bz2
cleanups/fixed potential crashers
context menus are displayed in mainmenu, too.
Diffstat (limited to 'noncore/net/mail') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/mail/accountitem.cpp155
-rw-r--r--noncore/net/mail/accountitem.h13
-rw-r--r--noncore/net/mail/accountview.cpp52
-rw-r--r--noncore/net/mail/accountview.h11
-rw-r--r--noncore/net/mail/defines.h27
-rw-r--r--noncore/net/mail/mainwindow.cpp35
-rw-r--r--noncore/net/mail/mainwindow.h5
-rw-r--r--noncore/net/mail/opiemail.cpp4
8 files changed, 217 insertions, 85 deletions
diff --git a/noncore/net/mail/accountitem.cpp b/noncore/net/mail/accountitem.cpp
index c1574fd..4869df8 100644
--- a/noncore/net/mail/accountitem.cpp
+++ b/noncore/net/mail/accountitem.cpp
@@ -81,3 +81,3 @@ RECBODYP POP3viewItem::fetchBody( const RecMailP &mail )
81{ 81{
82 odebug << "POP3 fetchBody" << oendl; 82 odebug << "POP3 fetchBody" << oendl;
83 return wrapper->fetchBody( mail ); 83 return wrapper->fetchBody( mail );
@@ -92,4 +92,4 @@ QPopupMenu * POP3viewItem::getContextMenu()
92 { 92 {
93 m->insertItem(QObject::tr("Disconnect",contextName),0); 93 m->insertItem(QObject::tr("Disconnect",contextName),SERVER_MENU_DISCONNECT);
94 m->insertItem(QObject::tr("Set offline",contextName),1); 94 m->insertItem(QObject::tr("Set offline",contextName),SERVER_MENU_OFFLINE);
95 } 95 }
@@ -97,3 +97,3 @@ QPopupMenu * POP3viewItem::getContextMenu()
97 { 97 {
98 m->insertItem(QObject::tr("Set online",contextName),1); 98 m->insertItem(QObject::tr("Set online",contextName),SERVER_MENU_OFFLINE);
99 } 99 }
@@ -131,6 +131,6 @@ void POP3viewItem::contextMenuSelected(int which)
131 { 131 {
132 case 0: 132 case SERVER_MENU_DISCONNECT:
133 disconnect(); 133 disconnect();
134 break; 134 break;
135 case 1: 135 case SERVER_MENU_OFFLINE:
136 setOnOffline(); 136 setOnOffline();
@@ -174,5 +174,5 @@ QPopupMenu * POP3folderItem::getContextMenu()
174 { 174 {
175 m->insertItem(QObject::tr("Refresh header list",contextName),0); 175 m->insertItem(QObject::tr("Refresh header list",contextName),FOLDER_MENU_REFRESH_HEADER);
176 m->insertItem(QObject::tr("Delete all mails",contextName),1); 176 m->insertItem(QObject::tr("Delete all mails",contextName),FOLDER_MENU_DELETE_ALL_MAILS);
177 m->insertItem(QObject::tr("Move/Copie all mails",contextName),2); 177 m->insertItem(QObject::tr("Move/Copie all mails",contextName),FOLDER_MENU_MOVE_MAILS);
178 } 178 }
@@ -193,3 +193,3 @@ void POP3folderItem::contextMenuSelected(int which)
193 { 193 {
194 case 0: 194 case FOLDER_MENU_REFRESH_HEADER:
195 /* must be 'cause pop3 lists are cached */ 195 /* must be 'cause pop3 lists are cached */
@@ -198,6 +198,6 @@ void POP3folderItem::contextMenuSelected(int which)
198 break; 198 break;
199 case 1: 199 case FOLDER_MENU_DELETE_ALL_MAILS:
200 deleteAllMail(pop3->getWrapper(),folder); 200 deleteAllMail(pop3->getWrapper(),folder);
201 break; 201 break;
202 case 2: 202 case FOLDER_MENU_MOVE_MAILS:
203 downloadMails(); 203 downloadMails();
@@ -272,3 +272,3 @@ RECBODYP NNTPviewItem::fetchBody( const RecMailP &mail )
272{ 272{
273 odebug << "NNTP fetchBody" << oendl; 273 odebug << "NNTP fetchBody" << oendl;
274 return wrapper->fetchBody( mail ); 274 return wrapper->fetchBody( mail );
@@ -283,5 +283,5 @@ QPopupMenu * NNTPviewItem::getContextMenu()
283 { 283 {
284 m->insertItem(QObject::tr("Disconnect",contextName),0); 284 m->insertItem(QObject::tr("Disconnect",contextName),SERVER_MENU_DISCONNECT);
285 m->insertItem(QObject::tr("Set offline",contextName),1); 285 m->insertItem(QObject::tr("Set offline",contextName),SERVER_MENU_OFFLINE);
286 m->insertItem(QObject::tr("(Un-)Subscribe groups",contextName),2); 286 m->insertItem(QObject::tr("(Un-)Subscribe groups",contextName),SERVER_MENU_SUBSCRIBE);
287 } 287 }
@@ -289,3 +289,3 @@ QPopupMenu * NNTPviewItem::getContextMenu()
289 { 289 {
290 m->insertItem(QObject::tr("Set online",contextName),1); 290 m->insertItem(QObject::tr("Set online",contextName),SERVER_MENU_OFFLINE);
291 } 291 }
@@ -332,9 +332,9 @@ void NNTPviewItem::contextMenuSelected(int which)
332 { 332 {
333 case 0: 333 case SERVER_MENU_DISCONNECT:
334 disconnect(); 334 disconnect();
335 break; 335 break;
336 case 1: 336 case SERVER_MENU_OFFLINE:
337 setOnOffline(); 337 setOnOffline();
338 break; 338 break;
339 case 2: 339 case SERVER_MENU_SUBSCRIBE:
340 subscribeGroups(); 340 subscribeGroups();
@@ -378,4 +378,4 @@ QPopupMenu * NNTPfolderItem::getContextMenu()
378 { 378 {
379 m->insertItem(QObject::tr("Refresh header list",contextName),0); 379 m->insertItem(QObject::tr("Refresh header list",contextName),FOLDER_MENU_REFRESH_HEADER);
380 m->insertItem(QObject::tr("Copy all postings",contextName),1); 380 m->insertItem(QObject::tr("Copy all postings",contextName),FOLDER_MENU_MOVE_MAILS);
381 } 381 }
@@ -396,4 +396,4 @@ void NNTPfolderItem::contextMenuSelected(int which)
396 { 396 {
397 case 0: 397 case FOLDER_MENU_REFRESH_HEADER:
398 /* must be 'cause pop3 lists are cached */ 398 /* must be 'cause nntp lists are cached */
399 nntp->getWrapper()->logout(); 399 nntp->getWrapper()->logout();
@@ -401,3 +401,3 @@ void NNTPfolderItem::contextMenuSelected(int which)
401 break; 401 break;
402 case 1: 402 case FOLDER_MENU_MOVE_MAILS:
403 downloadMails(); 403 downloadMails();
@@ -463,3 +463,3 @@ void IMAPviewItem::refreshFolders(bool force)
463 folders->remove(it); 463 folders->remove(it);
464 odebug << "inbox found" << oendl; 464 odebug << "inbox found" << oendl;
465 break; 465 break;
@@ -500,7 +500,7 @@ QPopupMenu * IMAPviewItem::getContextMenu()
500 { 500 {
501 m->insertItem(QObject::tr("Refresh folder list",contextName),0); 501 m->insertItem(QObject::tr("Disconnect",contextName),SERVER_MENU_DISCONNECT);
502 m->insertItem(QObject::tr("Create new folder",contextName),1); 502 m->insertItem(QObject::tr("Set offline",contextName),SERVER_MENU_OFFLINE);
503 m->insertSeparator(); 503 m->insertSeparator();
504 m->insertItem(QObject::tr("Disconnect",contextName),2); 504 m->insertItem(QObject::tr("Refresh folder list",contextName),SERVER_MENU_REFRESH_FOLDER);
505 m->insertItem(QObject::tr("Set offline",contextName),3); 505 m->insertItem(QObject::tr("Create new folder",contextName),SERVER_MENU_CREATE_FOLDER);
506 } 506 }
@@ -508,3 +508,3 @@ QPopupMenu * IMAPviewItem::getContextMenu()
508 { 508 {
509 m->insertItem(QObject::tr("Set online",contextName),3); 509 m->insertItem(QObject::tr("Set online",contextName),SERVER_MENU_OFFLINE);
510 } 510 }
@@ -536,12 +536,12 @@ void IMAPviewItem::contextMenuSelected(int id)
536{ 536{
537 odebug << "Id selected: " << id << "" << oendl; 537 odebug << "Id selected: " << id << "" << oendl;
538 switch (id) 538 switch (id)
539 { 539 {
540 case 0: 540 case SERVER_MENU_REFRESH_FOLDER:
541 refreshFolders(true); 541 refreshFolders(true);
542 break; 542 break;
543 case 1: 543 case SERVER_MENU_CREATE_FOLDER:
544 createNewFolder(); 544 createNewFolder();
545 break; 545 break;
546 case 2: 546 case SERVER_MENU_DISCONNECT:
547 removeChilds(); 547 removeChilds();
@@ -549,3 +549,3 @@ void IMAPviewItem::contextMenuSelected(int id)
549 break; 549 break;
550 case 3: 550 case SERVER_MENU_OFFLINE:
551 if (account->getOffline()==false) 551 if (account->getOffline()==false)
@@ -637,5 +637,5 @@ QPopupMenu * IMAPfolderItem::getContextMenu()
637 { 637 {
638 m->insertItem(QObject::tr("Refresh header list",contextName),0); 638 m->insertItem(QObject::tr("Refresh header list",contextName),FOLDER_MENU_REFRESH_HEADER);
639 m->insertItem(QObject::tr("Move/Copie all mails",contextName),4); 639 m->insertItem(QObject::tr("Move/Copy all mails",contextName),FOLDER_MENU_MOVE_MAILS);
640 m->insertItem(QObject::tr("Delete all mails",contextName),1); 640 m->insertItem(QObject::tr("Delete all mails",contextName),FOLDER_MENU_DELETE_ALL_MAILS);
641 } 641 }
@@ -643,3 +643,3 @@ QPopupMenu * IMAPfolderItem::getContextMenu()
643 { 643 {
644 m->insertItem(QObject::tr("Create new subfolder",contextName),2); 644 m->insertItem(QObject::tr("Create new subfolder",contextName),FOLDER_MENU_NEW_SUBFOLDER);
645 } 645 }
@@ -647,3 +647,3 @@ QPopupMenu * IMAPfolderItem::getContextMenu()
647 { 647 {
648 m->insertItem(QObject::tr("Delete folder",contextName),3); 648 m->insertItem(QObject::tr("Delete folder",contextName),FOLDER_MENU_DELETE_FOLDER);
649 } 649 }
@@ -674,3 +674,3 @@ void IMAPfolderItem::deleteFolder()
674 QObject::tr("No",contextName),QString::null,1,1); 674 QObject::tr("No",contextName),QString::null,1,1);
675 odebug << "Auswahl: " << yesno << "" << oendl; 675 odebug << "Auswahl: " << yesno << "" << oendl;
676 if (yesno == 0) 676 if (yesno == 0)
@@ -701,3 +701,3 @@ void IMAPfolderItem::contextMenuSelected(int id)
701{ 701{
702 odebug << "Selected id: " << id << "" << oendl; 702 odebug << "Selected id: " << id << "" << oendl;
703 AccountView * view = (AccountView*)listView(); 703 AccountView * view = (AccountView*)listView();
@@ -705,15 +705,19 @@ void IMAPfolderItem::contextMenuSelected(int id)
705 { 705 {
706 case 0: 706 case FOLDER_MENU_REFRESH_HEADER:
707 view->refreshCurrent(); 707 view->refreshCurrent();
708 break; 708 break;
709 case 1: 709 case FOLDER_MENU_DELETE_ALL_MAILS:
710 deleteAllMail(imap->getWrapper(),folder); 710 deleteAllMail(imap->getWrapper(),folder);
711 break; 711 break;
712 case 2: 712 case FOLDER_MENU_NEW_SUBFOLDER:
713 createNewFolder(); 713 if (folder->no_inferior()==false) {
714 createNewFolder();
715 }
714 break; 716 break;
715 case 3: 717 case FOLDER_MENU_DELETE_FOLDER:
716 deleteFolder(); 718 if (folder->getDisplayName().lower()!="inbox") {
719 deleteFolder();
720 }
717 break; 721 break;
718 case 4: 722 case FOLDER_MENU_MOVE_MAILS:
719 downloadMails(); 723 downloadMails();
@@ -761,2 +765,3 @@ void MHviewItem::refresh(bool force)
761 if (childCount()>0 && force==false) return; 765 if (childCount()>0 && force==false) return;
766 odebug << "Refresh mh folders" << oendl;
762 removeChilds(); 767 removeChilds();
@@ -805,3 +810,3 @@ RECBODYP MHviewItem::fetchBody( const RecMailP &mail )
805{ 810{
806 odebug << "MH fetchBody" << oendl; 811 odebug << "MH fetchBody" << oendl;
807 return wrapper->fetchBody( mail ); 812 return wrapper->fetchBody( mail );
@@ -814,6 +819,6 @@ QPopupMenu * MHviewItem::getContextMenu()
814 { 819 {
815 m->insertItem(QObject::tr("Refresh folder list",contextName),0); 820 m->insertItem(QObject::tr("Refresh folder list",contextName),SERVER_MENU_REFRESH_FOLDER);
816 m->insertItem(QObject::tr("Create new folder",contextName),1); 821 m->insertItem(QObject::tr("Create new folder",contextName),FOLDER_MENU_NEW_SUBFOLDER);
817 m->insertItem(QObject::tr("Delete all mails",contextName),2); 822 m->insertItem(QObject::tr("Delete all mails",contextName),FOLDER_MENU_DELETE_ALL_MAILS);
818 m->insertItem(QObject::tr("Move/Copie all mails",contextName),3); 823 m->insertItem(QObject::tr("Move/Copie all mails",contextName),FOLDER_MENU_MOVE_MAILS);
819 } 824 }
@@ -849,16 +854,22 @@ void MHviewItem::contextMenuSelected(int which)
849{ 854{
855 AccountView*view = 0;
856
850 switch (which) 857 switch (which)
851 { 858 {
852 case 0: 859 case SERVER_MENU_REFRESH_FOLDER:
853 refresh(true); 860 refresh(true);
854 break; 861 break;
855 case 1: 862 case FOLDER_MENU_NEW_SUBFOLDER:
856 createFolder(); 863 createFolder();
857 break; 864 break;
858 case 2: 865 case FOLDER_MENU_DELETE_ALL_MAILS:
859 deleteAllMail(getWrapper(),folder); 866 deleteAllMail(getWrapper(),folder);
860 break; 867 break;
861 case 3: 868 case FOLDER_MENU_MOVE_MAILS:
862 downloadMails(); 869 downloadMails();
863 break; 870 break;
871 case FOLDER_MENU_REFRESH_HEADER:
872 view = (AccountView*)listView();
873 if (view) view->refreshCurrent();
874 break;
864 default: 875 default:
@@ -935,3 +946,3 @@ void MHfolderItem::deleteFolder()
935 QObject::tr("No",contextName),QString::null,1,1); 946 QObject::tr("No",contextName),QString::null,1,1);
936 odebug << "Auswahl: " << yesno << "" << oendl; 947 odebug << "Auswahl: " << yesno << "" << oendl;
937 if (yesno == 0) 948 if (yesno == 0)
@@ -958,6 +969,7 @@ QPopupMenu * MHfolderItem::getContextMenu()
958 { 969 {
959 m->insertItem(QObject::tr("Move/Copie all mails",contextName),2); 970 m->insertItem(QObject::tr("Create new subfolder",contextName),FOLDER_MENU_NEW_SUBFOLDER);
960 m->insertItem(QObject::tr("Delete all mails",contextName),0); 971 m->insertItem(QObject::tr("Refresh header list",contextName),FOLDER_MENU_REFRESH_HEADER);
961 m->insertItem(QObject::tr("Create new subfolder",contextName),3); 972 m->insertItem(QObject::tr("Move/Copie all mails",contextName),FOLDER_MENU_MOVE_MAILS);
962 m->insertItem(QObject::tr("Delete folder",contextName),1); 973 m->insertItem(QObject::tr("Delete all mails",contextName),FOLDER_MENU_DELETE_ALL_MAILS);
974 m->insertItem(QObject::tr("Delete folder",contextName),FOLDER_MENU_DELETE_FOLDER);
963 } 975 }
@@ -996,16 +1008,21 @@ void MHfolderItem::contextMenuSelected(int which)
996{ 1008{
1009 AccountView*view = 0;
997 switch(which) 1010 switch(which)
998 { 1011 {
999 case 0: 1012 case FOLDER_MENU_DELETE_ALL_MAILS:
1000 deleteAllMail(mbox->getWrapper(),folder); 1013 deleteAllMail(mbox->getWrapper(),folder);
1001 break; 1014 break;
1002 case 1: 1015 case FOLDER_MENU_DELETE_FOLDER:
1003 deleteFolder(); 1016 deleteFolder();
1004 break; 1017 break;
1005 case 2: 1018 case FOLDER_MENU_MOVE_MAILS:
1006 downloadMails(); 1019 downloadMails();
1007 break; 1020 break;
1008 case 3: 1021 case FOLDER_MENU_NEW_SUBFOLDER:
1009 createFolder(); 1022 createFolder();
1010 break; 1023 break;
1024 case FOLDER_MENU_REFRESH_HEADER:
1025 view = (AccountView*)listView();
1026 if (view) view->refreshCurrent();
1027 break;
1011 default: 1028 default:
@@ -1077,3 +1094,3 @@ void AccountViewItem::deleteAllMail(AbstractMail*wrapper,const FolderP&folder)
1077 QObject::tr("No",contextName),QString::null,1,1); 1094 QObject::tr("No",contextName),QString::null,1,1);
1078 odebug << "Auswahl: " << yesno << "" << oendl; 1095 odebug << "Auswahl: " << yesno << "" << oendl;
1079 if (yesno == 0) 1096 if (yesno == 0)
diff --git a/noncore/net/mail/accountitem.h b/noncore/net/mail/accountitem.h
index f125eeb..b2c50a1 100644
--- a/noncore/net/mail/accountitem.h
+++ b/noncore/net/mail/accountitem.h
@@ -38,2 +38,7 @@ public:
38 virtual bool isDraftfolder(); 38 virtual bool isDraftfolder();
39 /* 1 - server
40 * 2 - folder
41 * 3 - beides
42 */
43 virtual int isServer()const=0;
39 44
@@ -60,2 +65,3 @@ public:
60 virtual void contextMenuSelected(int); 65 virtual void contextMenuSelected(int);
66 virtual int isServer()const{return 1;}
61 67
@@ -79,2 +85,3 @@ public:
79 virtual void contextMenuSelected(int); 85 virtual void contextMenuSelected(int);
86 virtual int isServer()const{return 2;}
80 87
@@ -97,2 +104,3 @@ public:
97 virtual void contextMenuSelected(int); 104 virtual void contextMenuSelected(int);
105 virtual int isServer()const{return 1;}
98 106
@@ -117,2 +125,3 @@ public:
117 virtual void contextMenuSelected(int); 125 virtual void contextMenuSelected(int);
126 virtual int isServer()const{return 2;}
118 127
@@ -138,2 +147,3 @@ public:
138 virtual void refreshFolders(bool force=false); 147 virtual void refreshFolders(bool force=false);
148 virtual int isServer()const{return 1;}
139 bool offline(); 149 bool offline();
@@ -159,2 +169,3 @@ public:
159 virtual const QString& Delemiter()const; 169 virtual const QString& Delemiter()const;
170 virtual int isServer()const{return 2;}
160protected: 171protected:
@@ -180,2 +191,3 @@ public:
180 virtual void refresh(bool force=false); 191 virtual void refresh(bool force=false);
192 virtual int isServer()const{return 3;}
181 193
@@ -202,2 +214,3 @@ public:
202 virtual bool isDraftfolder(); 214 virtual bool isDraftfolder();
215 virtual int isServer()const{return 2;}
203 216
diff --git a/noncore/net/mail/accountview.cpp b/noncore/net/mail/accountview.cpp
index c747a8b..d01d6bb 100644
--- a/noncore/net/mail/accountview.cpp
+++ b/noncore/net/mail/accountview.cpp
@@ -22,7 +22,13 @@ AccountView::AccountView( QWidget *parent, const char *name, WFlags flags )
22{ 22{
23 setSorting(0);
24 setSelectionMode(Single);
25 m_rightPressed = false;
26
23 connect( this, SIGNAL( selectionChanged(QListViewItem*) ), 27 connect( this, SIGNAL( selectionChanged(QListViewItem*) ),
24 SLOT( refresh(QListViewItem*) ) ); 28 SLOT( slotSelectionChanged(QListViewItem*) ) );
25 connect( this, SIGNAL( mouseButtonPressed(int,QListViewItem*,const QPoint&,int) ),this, 29 connect( this, SIGNAL( mouseButtonPressed(int,QListViewItem*,const QPoint&,int) ),this,
26 SLOT( slotHold(int,QListViewItem*,const QPoint&,int) ) ); 30 SLOT( slotMouseButton(int,QListViewItem*,const QPoint&,int) ) );
27 setSorting(0); 31 connect( this, SIGNAL(clicked(QListViewItem*) ),this,
32 SLOT( slotMouseClicked(QListViewItem*) ) );
33 m_currentItem = 0;
28} 34}
@@ -35,2 +41,14 @@ AccountView::~AccountView()
35 41
42void AccountView::slotSelectionChanged(QListViewItem*item)
43{
44 odebug << "AccountView: Selection changed" << oendl;
45 if (!item) {
46 emit serverSelected(0);
47 return;
48 }
49 AccountViewItem *view = static_cast<AccountViewItem *>(item);
50
51 emit serverSelected(view->isServer());
52}
53
36void AccountView::slotContextMenu(int id) 54void AccountView::slotContextMenu(int id)
@@ -42,5 +60,5 @@ void AccountView::slotContextMenu(int id)
42 60
43void AccountView::slotHold(int button, QListViewItem * item,const QPoint&,int) 61void AccountView::slotRightButton(int button, QListViewItem * item,const QPoint&,int)
44{ 62{
45 if (button==1) {return;} 63 m_rightPressed = true;
46 if (!item) return; 64 if (!item) return;
@@ -53,2 +71,26 @@ void AccountView::slotHold(int button, QListViewItem * item,const QPoint&,int)
53 delete m; 71 delete m;
72 setSelected(item,true);
73}
74
75void AccountView::slotLeftButton(int button, QListViewItem * item,const QPoint&,int)
76{
77 m_rightPressed = false;
78}
79
80void AccountView::slotMouseClicked(QListViewItem*item)
81{
82 if (m_rightPressed) return;
83 if (!item || m_currentItem == item) return;
84 /* ### ToDo check settings if on single tab it should open */
85 m_currentItem = item;
86 refresh(m_currentItem);
87}
88
89void AccountView::slotMouseButton(int button, QListViewItem * item,const QPoint&pos,int column)
90{
91 if (button==1) {
92 slotLeftButton(button,item,pos,column);
93 } else if (button==2) {
94 slotRightButton(button,item,pos,column);
95 }
54} 96}
diff --git a/noncore/net/mail/accountview.h b/noncore/net/mail/accountview.h
index 787b0b0..ae24dce 100644
--- a/noncore/net/mail/accountview.h
+++ b/noncore/net/mail/accountview.h
@@ -31,4 +31,4 @@ public slots:
31 virtual void refreshCurrent(); 31 virtual void refreshCurrent();
32 virtual void slotHold(int, QListViewItem *,const QPoint&,int);
33 virtual void slotContextMenu(int id); 32 virtual void slotContextMenu(int id);
33
34 void setupFolderselect(Selectstore*sels); 34 void setupFolderselect(Selectstore*sels);
@@ -37,2 +37,3 @@ signals:
37 void refreshMailview(const QValueList<RecMailP>& ); 37 void refreshMailview(const QValueList<RecMailP>& );
38 void serverSelected(int);
38 39
@@ -42,2 +43,10 @@ protected:
42 QValueList<MHviewItem*> mhAccounts; 43 QValueList<MHviewItem*> mhAccounts;
44 bool m_rightPressed:1;
45
46protected slots:
47 virtual void slotRightButton(int, QListViewItem *,const QPoint&,int);
48 virtual void slotLeftButton(int, QListViewItem *,const QPoint&,int);
49 virtual void slotMouseButton(int, QListViewItem *,const QPoint&,int);
50 virtual void slotMouseClicked(QListViewItem*);
51 virtual void slotSelectionChanged(QListViewItem*);
43}; 52};
diff --git a/noncore/net/mail/defines.h b/noncore/net/mail/defines.h
index d840f09..5fcbf0f 100644
--- a/noncore/net/mail/defines.h
+++ b/noncore/net/mail/defines.h
@@ -20,9 +20,9 @@
20 20
21#define ICON_COMPOSEMAIL QIconSet( Resource::loadPixmap( PIC_COMPOSEMAIL ) ) 21#define ICON_COMPOSEMAIL QIconSet( Resource::loadPixmap( PIC_COMPOSEMAIL ) )
22#define ICON_SENDQUEUED QIconSet( Resource::loadPixmap( PIC_SENDQUEUED ) ) 22#define ICON_SENDQUEUED QIconSet( Resource::loadPixmap( PIC_SENDQUEUED ) )
23#define ICON_SHOWFOLDERS QIconSet( Resource::loadPixmap( PIC_SHOWFOLDERS ) ) 23#define ICON_SHOWFOLDERS QIconSet( Resource::loadPixmap( PIC_SHOWFOLDERS ) )
24#define ICON_SEARCHMAILS QIconSet( Resource::loadPixmap( PIC_SEARCHMAILS ) ) 24#define ICON_SEARCHMAILS QIconSet( Resource::loadPixmap( PIC_SEARCHMAILS ) )
25#define ICON_EDITSETTINGS QIconSet( Resource::loadPixmap( PIC_EDITSETTINGS ) ) 25#define ICON_EDITSETTINGS QIconSet( Resource::loadPixmap( PIC_EDITSETTINGS ) )
26#define ICON_EDITACCOUNTS QIconSet( Resource::loadPixmap( PIC_EDITACCOUNTS ) ) 26#define ICON_EDITACCOUNTS QIconSet( Resource::loadPixmap( PIC_EDITACCOUNTS ) )
27#define ICON_SYNC QIconSet( Resource::loadPixmap( PIC_SYNC ) ) 27#define ICON_SYNC QIconSet( Resource::loadPixmap( PIC_SYNC ) )
28 28
@@ -56,2 +56,15 @@
56 56
57/* used for making menuids transparent */
58#define FOLDER_MENU_REFRESH_HEADER 0
59#define FOLDER_MENU_DELETE_ALL_MAILS 1
60#define FOLDER_MENU_NEW_SUBFOLDER 2
61#define FOLDER_MENU_DELETE_FOLDER 3
62#define FOLDER_MENU_MOVE_MAILS 4
63
64#define SERVER_MENU_DISCONNECT 5
65#define SERVER_MENU_OFFLINE 6
66#define SERVER_MENU_REFRESH_FOLDER 7
67#define SERVER_MENU_CREATE_FOLDER 8
68#define SERVER_MENU_SUBSCRIBE 9
69
57#endif 70#endif
diff --git a/noncore/net/mail/mainwindow.cpp b/noncore/net/mail/mainwindow.cpp
index 0a45445..81c8fee 100644
--- a/noncore/net/mail/mainwindow.cpp
+++ b/noncore/net/mail/mainwindow.cpp
@@ -23,5 +23,8 @@ MainWindow::MainWindow( QWidget *parent, const char *name, WFlags flags )
23 toolBar = new QToolBar( this ); 23 toolBar = new QToolBar( this );
24
24 menuBar = new QMenuBar( toolBar ); 25 menuBar = new QMenuBar( toolBar );
26
25 mailMenu = new QPopupMenu( menuBar ); 27 mailMenu = new QPopupMenu( menuBar );
26 menuBar->insertItem( tr( "Mail" ), mailMenu ); 28 menuBar->insertItem( tr( "Mail" ), mailMenu );
29
27 settingsMenu = new QPopupMenu( menuBar ); 30 settingsMenu = new QPopupMenu( menuBar );
@@ -29,2 +32,23 @@ MainWindow::MainWindow( QWidget *parent, const char *name, WFlags flags )
29 32
33 serverMenu = new QPopupMenu( menuBar );
34 m_ServerMenuId = menuBar->insertItem( tr( "Server" ), serverMenu );
35 serverMenu->insertItem(tr("Disconnect"),SERVER_MENU_DISCONNECT);
36 serverMenu->insertItem(tr("Set on/offline"),SERVER_MENU_OFFLINE);
37 serverMenu->insertSeparator();
38 serverMenu->insertItem(tr("Refresh folder list"),SERVER_MENU_REFRESH_FOLDER);
39 serverMenu->insertItem(tr("Create new folder"),SERVER_MENU_CREATE_FOLDER);
40 serverMenu->insertSeparator();
41 serverMenu->insertItem(tr("(Un-)Subscribe groups"),SERVER_MENU_SUBSCRIBE);
42
43 folderMenu = new QPopupMenu( menuBar );
44 m_FolderMenuId = menuBar->insertItem( tr( "Folder" ), folderMenu );
45 folderMenu->insertItem(tr("Refresh headerlist"),FOLDER_MENU_REFRESH_HEADER);
46 folderMenu->insertItem(tr("Delete all mails"),FOLDER_MENU_DELETE_ALL_MAILS);
47 folderMenu->insertItem(tr("New subfolder"),FOLDER_MENU_NEW_SUBFOLDER);
48 folderMenu->insertItem(tr("Delete folder"),FOLDER_MENU_DELETE_FOLDER);
49 folderMenu->insertItem(tr("Move/Copie all mails"),FOLDER_MENU_MOVE_MAILS);
50
51 menuBar->setItemEnabled(m_ServerMenuId,false);
52 menuBar->setItemEnabled(m_FolderMenuId,false);
53
30 addToolBar( toolBar ); 54 addToolBar( toolBar );
@@ -92,2 +116,6 @@ MainWindow::MainWindow( QWidget *parent, const char *name, WFlags flags )
92 folderView->addColumn( tr( "Mailbox" ) ); 116 folderView->addColumn( tr( "Mailbox" ) );
117 connect(folderView,SIGNAL(serverSelected(int)),this,SLOT(serverSelected(int)));
118 connect(serverMenu,SIGNAL(activated(int)),folderView,SLOT(slotContextMenu(int)));
119 connect(folderMenu,SIGNAL(activated(int)),folderView,SLOT(slotContextMenu(int)));
120
93 121
@@ -147,2 +175,9 @@ MainWindow::~MainWindow()
147 175
176void MainWindow::serverSelected(int m_isFolder)
177{
178 mailView->clear();
179 menuBar->setItemEnabled(m_ServerMenuId,m_isFolder&1);
180 menuBar->setItemEnabled(m_FolderMenuId,m_isFolder&2);
181}
182
148void MainWindow::systemMessage( const QCString& msg, const QByteArray& data ) 183void MainWindow::systemMessage( const QCString& msg, const QByteArray& data )
diff --git a/noncore/net/mail/mainwindow.h b/noncore/net/mail/mainwindow.h
index ad71a54..409f160 100644
--- a/noncore/net/mail/mainwindow.h
+++ b/noncore/net/mail/mainwindow.h
@@ -43,2 +43,3 @@ protected slots:
43 virtual void mailLeftClicked( int, QListViewItem *,const QPoint&,int ); 43 virtual void mailLeftClicked( int, QListViewItem *,const QPoint&,int );
44 virtual void serverSelected(int);
44 45
@@ -47,3 +48,4 @@ protected:
47 QMenuBar *menuBar; 48 QMenuBar *menuBar;
48 QPopupMenu *mailMenu, *settingsMenu; 49 QPopupMenu *mailMenu, *settingsMenu,*serverMenu,*folderMenu;
50
49 QAction *composeMail, *sendQueued, *showFolders, *searchMails, *deleteMails, 51 QAction *composeMail, *sendQueued, *showFolders, *searchMails, *deleteMails,
@@ -55,2 +57,3 @@ protected:
55 QCopChannel* m_sysChannel; 57 QCopChannel* m_sysChannel;
58 int m_ServerMenuId,m_FolderMenuId;
56}; 59};
diff --git a/noncore/net/mail/opiemail.cpp b/noncore/net/mail/opiemail.cpp
index 9eba23e..7c6d314 100644
--- a/noncore/net/mail/opiemail.cpp
+++ b/noncore/net/mail/opiemail.cpp
@@ -82,4 +82,4 @@ void ValueExplode::splitit()
82 } 82 }
83 int pos,pos2,startpos; 83 int pos,pos2;
84 startpos = 0; 84 unsigned startpos = 0;
85 iLine = m_Command; 85 iLine = m_Command;