summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/mail/accountitem.cpp240
-rw-r--r--noncore/net/mail/accountitem.h50
-rw-r--r--noncore/net/mail/accountview.cpp29
-rw-r--r--noncore/net/mail/accountview.h8
-rw-r--r--noncore/net/mail/mainwindow.cpp23
-rw-r--r--noncore/net/mail/mainwindow.h12
-rw-r--r--noncore/net/mail/opiemail.cpp41
-rw-r--r--noncore/net/mail/opiemail.h8
8 files changed, 249 insertions, 162 deletions
diff --git a/noncore/net/mail/accountitem.cpp b/noncore/net/mail/accountitem.cpp
index 10db2c6..f7fdccd 100644
--- a/noncore/net/mail/accountitem.cpp
+++ b/noncore/net/mail/accountitem.cpp
@@ -85,18 +85,12 @@ RECBODYP POP3viewItem::fetchBody( const RecMailP &mail )
85 85
86QPopupMenu * POP3viewItem::getContextMenu() 86QMap<int,QString> POP3viewItem::serverMenu()
87{ 87{
88 QPopupMenu *m = new QPopupMenu(0); 88 QMap<int,QString> _entries;
89 if (m) 89 if (!account->getOffline()) {
90 { 90 _entries[SERVER_MENU_DISCONNECT]=QObject::tr("Disconnect",contextName);
91 if (!account->getOffline()) 91 _entries[SERVER_MENU_OFFLINE]=QObject::tr("Set offline",contextName);
92 { 92 } else {
93 m->insertItem(QObject::tr("Disconnect",contextName),SERVER_MENU_DISCONNECT); 93 _entries[SERVER_MENU_OFFLINE]=QObject::tr("Set online",contextName);
94 m->insertItem(QObject::tr("Set offline",contextName),SERVER_MENU_OFFLINE);
95 }
96 else
97 {
98 m->insertItem(QObject::tr("Set online",contextName),SERVER_MENU_OFFLINE);
99 }
100 } 94 }
101 return m; 95 return _entries;
102} 96}
@@ -127,3 +121,3 @@ void POP3viewItem::setOnOffline()
127 121
128void POP3viewItem::contextMenuSelected(int which) 122bool POP3viewItem::contextMenuSelected(int which)
129{ 123{
@@ -138,2 +132,3 @@ void POP3viewItem::contextMenuSelected(int which)
138 } 132 }
133 return false;
139} 134}
@@ -169,12 +164,9 @@ RECBODYP POP3folderItem::fetchBody(const RecMailP&aMail)
169 164
170QPopupMenu * POP3folderItem::getContextMenu() 165QMap<int,QString> POP3folderItem::folderMenu()
171{ 166{
172 QPopupMenu *m = new QPopupMenu(0); 167 QMap<int,QString> _entries;
173 if (m) 168 _entries[FOLDER_MENU_REFRESH_HEADER]=QObject::tr("Refresh header list",contextName);
174 { 169 _entries[FOLDER_MENU_DELETE_ALL_MAILS]=QObject::tr("Delete all mails",contextName);
175 m->insertItem(QObject::tr("Refresh header list",contextName),FOLDER_MENU_REFRESH_HEADER); 170 _entries[FOLDER_MENU_MOVE_MAILS]=QObject::tr("Move/Copie all mails",contextName);
176 m->insertItem(QObject::tr("Delete all mails",contextName),FOLDER_MENU_DELETE_ALL_MAILS); 171 return _entries;
177 m->insertItem(QObject::tr("Move/Copie all mails",contextName),FOLDER_MENU_MOVE_MAILS);
178 }
179 return m;
180} 172}
@@ -188,3 +180,3 @@ void POP3folderItem::downloadMails()
188 180
189void POP3folderItem::contextMenuSelected(int which) 181bool POP3folderItem::contextMenuSelected(int which)
190{ 182{
@@ -207,2 +199,3 @@ void POP3folderItem::contextMenuSelected(int which)
207 } 199 }
200 return false;
208} 201}
@@ -276,19 +269,14 @@ RECBODYP NNTPviewItem::fetchBody( const RecMailP &mail )
276 269
277QPopupMenu * NNTPviewItem::getContextMenu() 270QMap<int,QString> NNTPviewItem::serverMenu()
278{ 271{
279 QPopupMenu *m = new QPopupMenu(0); 272 QMap<int,QString> _entries;
280 if (m) 273 if (!account->getOffline())
281 { 274 {
282 if (!account->getOffline()) 275 _entries[SERVER_MENU_DISCONNECT]=QObject::tr("Disconnect",contextName);
283 { 276 _entries[SERVER_MENU_OFFLINE]=QObject::tr("Set offline",contextName);
284 m->insertItem(QObject::tr("Disconnect",contextName),SERVER_MENU_DISCONNECT); 277 _entries[SERVER_MENU_SUBSCRIBE]=QObject::tr("(Un-)Subscribe groups",contextName);
285 m->insertItem(QObject::tr("Set offline",contextName),SERVER_MENU_OFFLINE); 278 } else {
286 m->insertItem(QObject::tr("(Un-)Subscribe groups",contextName),SERVER_MENU_SUBSCRIBE); 279 _entries[SERVER_MENU_OFFLINE]=QObject::tr("Set online",contextName);
287 }
288 else
289 {
290 m->insertItem(QObject::tr("Set online",contextName),SERVER_MENU_OFFLINE);
291 }
292 } 280 }
293 return m; 281 return _entries;
294} 282}
@@ -328,3 +316,3 @@ void NNTPviewItem::setOnOffline()
328 316
329void NNTPviewItem::contextMenuSelected(int which) 317bool NNTPviewItem::contextMenuSelected(int which)
330{ 318{
@@ -342,2 +330,3 @@ void NNTPviewItem::contextMenuSelected(int which)
342 } 330 }
331 return false;
343} 332}
@@ -373,11 +362,8 @@ RECBODYP NNTPfolderItem::fetchBody(const RecMailP&aMail)
373 362
374QPopupMenu * NNTPfolderItem::getContextMenu() 363QMap<int,QString> NNTPfolderItem::folderMenu()
375{ 364{
376 QPopupMenu *m = new QPopupMenu(0); 365 QMap<int,QString> _entries;
377 if (m) 366 _entries[FOLDER_MENU_REFRESH_HEADER]=QObject::tr("Refresh header list",contextName);
378 { 367 _entries[FOLDER_MENU_MOVE_MAILS]=QObject::tr("Copy all postings",contextName);
379 m->insertItem(QObject::tr("Refresh header list",contextName),FOLDER_MENU_REFRESH_HEADER); 368 return _entries;
380 m->insertItem(QObject::tr("Copy all postings",contextName),FOLDER_MENU_MOVE_MAILS);
381 }
382 return m;
383} 369}
@@ -391,3 +377,3 @@ void NNTPfolderItem::downloadMails()
391 377
392void NNTPfolderItem::contextMenuSelected(int which) 378bool NNTPfolderItem::contextMenuSelected(int which)
393{ 379{
@@ -407,2 +393,3 @@ void NNTPfolderItem::contextMenuSelected(int which)
407 } 393 }
394 return false;
408} 395}
@@ -493,21 +480,14 @@ void IMAPviewItem::refreshFolders(bool force)
493 480
494QPopupMenu * IMAPviewItem::getContextMenu() 481QMap<int,QString> IMAPviewItem::serverMenu()
495{ 482{
496 QPopupMenu *m = new QPopupMenu(0); 483 QMap<int,QString> e;
497 if (m) 484 if (!account->getOffline()) {
498 { 485 e[SERVER_MENU_DISCONNECT]=QObject::tr("Disconnect",contextName);
499 if (!account->getOffline()) 486 e[SERVER_MENU_OFFLINE]=QObject::tr("Set offline",contextName);
500 { 487 e[SERVER_MENU_REFRESH_FOLDER]=QObject::tr("Refresh folder list",contextName);
501 m->insertItem(QObject::tr("Disconnect",contextName),SERVER_MENU_DISCONNECT); 488 e[SERVER_MENU_CREATE_FOLDER]=QObject::tr("Create new folder",contextName);
502 m->insertItem(QObject::tr("Set offline",contextName),SERVER_MENU_OFFLINE); 489 } else {
503 m->insertSeparator(); 490 e[SERVER_MENU_OFFLINE]=QObject::tr("Set online",contextName);
504 m->insertItem(QObject::tr("Refresh folder list",contextName),SERVER_MENU_REFRESH_FOLDER);
505 m->insertItem(QObject::tr("Create new folder",contextName),SERVER_MENU_CREATE_FOLDER);
506 }
507 else
508 {
509 m->insertItem(QObject::tr("Set online",contextName),SERVER_MENU_OFFLINE);
510 }
511 } 491 }
512 return m; 492 return e;
513} 493}
@@ -534,3 +514,3 @@ void IMAPviewItem::createNewFolder()
534 514
535void IMAPviewItem::contextMenuSelected(int id) 515bool IMAPviewItem::contextMenuSelected(int id)
536{ 516{
@@ -563,2 +543,3 @@ void IMAPviewItem::contextMenuSelected(int id)
563 } 543 }
544 return false;
564} 545}
@@ -630,23 +611,17 @@ RECBODYP IMAPfolderItem::fetchBody(const RecMailP&aMail)
630 611
631QPopupMenu * IMAPfolderItem::getContextMenu() 612QMap<int,QString> IMAPfolderItem::folderMenu()
632{ 613{
633 QPopupMenu *m = new QPopupMenu(0); 614 QMap<int,QString> e;
634 if (m) 615 if (folder->may_select()) {
635 { 616 e[FOLDER_MENU_REFRESH_HEADER]=QObject::tr("Refresh header list",contextName);
636 if (folder->may_select()) 617 e[FOLDER_MENU_MOVE_MAILS]=QObject::tr("Move/Copy all mails",contextName);
637 { 618 e[FOLDER_MENU_DELETE_ALL_MAILS]=QObject::tr("Delete all mails",contextName);
638 m->insertItem(QObject::tr("Refresh header list",contextName),FOLDER_MENU_REFRESH_HEADER);
639 m->insertItem(QObject::tr("Move/Copy all mails",contextName),FOLDER_MENU_MOVE_MAILS);
640 m->insertItem(QObject::tr("Delete all mails",contextName),FOLDER_MENU_DELETE_ALL_MAILS);
641 }
642 if (folder->no_inferior()==false)
643 {
644 m->insertItem(QObject::tr("Create new subfolder",contextName),FOLDER_MENU_NEW_SUBFOLDER);
645 }
646 if (folder->getDisplayName().lower()!="inbox")
647 {
648 m->insertItem(QObject::tr("Delete folder",contextName),FOLDER_MENU_DELETE_FOLDER);
649 }
650 } 619 }
651 return m; 620 if (folder->no_inferior()==false) {
621 e[FOLDER_MENU_NEW_SUBFOLDER]=QObject::tr("Create new subfolder",contextName);
622 }
623 if (folder->getDisplayName().lower()!="inbox") {
624 e[FOLDER_MENU_DELETE_FOLDER]=QObject::tr("Delete folder",contextName);
625 }
626 return e;
652} 627}
@@ -668,3 +643,3 @@ void IMAPfolderItem::createNewFolder()
668 643
669void IMAPfolderItem::deleteFolder() 644bool IMAPfolderItem::deleteFolder()
670{ 645{
@@ -688,4 +663,6 @@ void IMAPfolderItem::deleteFolder()
688 } 663 }
664 return true;
689 } 665 }
690 } 666 }
667 return false;
691} 668}
@@ -699,3 +676,3 @@ void IMAPfolderItem::downloadMails()
699 676
700void IMAPfolderItem::contextMenuSelected(int id) 677bool IMAPfolderItem::contextMenuSelected(int id)
701{ 678{
@@ -718,3 +695,3 @@ void IMAPfolderItem::contextMenuSelected(int id)
718 if (folder->getDisplayName().lower()!="inbox") { 695 if (folder->getDisplayName().lower()!="inbox") {
719 deleteFolder(); 696 return deleteFolder();
720 } 697 }
@@ -727,2 +704,3 @@ void IMAPfolderItem::contextMenuSelected(int id)
727 } 704 }
705 return false;
728} 706}
@@ -814,13 +792,17 @@ RECBODYP MHviewItem::fetchBody( const RecMailP &mail )
814 792
815QPopupMenu * MHviewItem::getContextMenu() 793QMap<int,QString> MHviewItem::serverMenu()
816{ 794{
817 QPopupMenu *m = new QPopupMenu(0); 795 QMap<int,QString> e;
818 if (m) 796 e[SERVER_MENU_REFRESH_FOLDER]=QObject::tr("Refresh folder list",contextName);
819 { 797 return e;
820 m->insertItem(QObject::tr("Refresh folder list",contextName),SERVER_MENU_REFRESH_FOLDER); 798}
821 m->insertItem(QObject::tr("Create new folder",contextName),FOLDER_MENU_NEW_SUBFOLDER); 799
822 m->insertItem(QObject::tr("Delete all mails",contextName),FOLDER_MENU_DELETE_ALL_MAILS); 800QMap<int,QString> MHviewItem::folderMenu()
823 m->insertItem(QObject::tr("Move/Copie all mails",contextName),FOLDER_MENU_MOVE_MAILS); 801{
824 } 802 QMap<int,QString> e;
825 return m; 803 e[FOLDER_MENU_REFRESH_HEADER]=QObject::tr("Refresh header list",contextName);
804 e[FOLDER_MENU_NEW_SUBFOLDER]=QObject::tr("Create new folder",contextName);
805 e[FOLDER_MENU_DELETE_ALL_MAILS]=QObject::tr("Delete all mails",contextName);
806 e[FOLDER_MENU_MOVE_MAILS]=QObject::tr("Move/Copie all mails",contextName);
807 return e;
826} 808}
@@ -852,3 +834,3 @@ QStringList MHviewItem::subFolders()
852 834
853void MHviewItem::contextMenuSelected(int which) 835bool MHviewItem::contextMenuSelected(int which)
854{ 836{
@@ -877,2 +859,3 @@ void MHviewItem::contextMenuSelected(int which)
877 } 859 }
860 return false;
878} 861}
@@ -940,3 +923,3 @@ RECBODYP MHfolderItem::fetchBody(const RecMailP&aMail)
940 923
941void MHfolderItem::deleteFolder() 924bool MHfolderItem::deleteFolder()
942{ 925{
@@ -960,18 +943,17 @@ void MHfolderItem::deleteFolder()
960 } 943 }
944 return true;
961 } 945 }
962 } 946 }
947 return false;
963} 948}
964 949
965QPopupMenu * MHfolderItem::getContextMenu() 950QMap<int,QString> MHfolderItem::folderMenu()
966{ 951{
967 QPopupMenu *m = new QPopupMenu(0); 952 QMap<int,QString> e;
968 if (m) 953 e[FOLDER_MENU_NEW_SUBFOLDER]=QObject::tr("Create new subfolder",contextName);
969 { 954 e[FOLDER_MENU_REFRESH_HEADER]=QObject::tr("Refresh header list",contextName);
970 m->insertItem(QObject::tr("Create new subfolder",contextName),FOLDER_MENU_NEW_SUBFOLDER); 955 e[FOLDER_MENU_MOVE_MAILS]=QObject::tr("Move/Copie all mails",contextName);
971 m->insertItem(QObject::tr("Refresh header list",contextName),FOLDER_MENU_REFRESH_HEADER); 956 e[FOLDER_MENU_DELETE_ALL_MAILS]=QObject::tr("Delete all mails",contextName);
972 m->insertItem(QObject::tr("Move/Copie all mails",contextName),FOLDER_MENU_MOVE_MAILS); 957 e[FOLDER_MENU_DELETE_FOLDER]=QObject::tr("Delete folder",contextName);
973 m->insertItem(QObject::tr("Delete all mails",contextName),FOLDER_MENU_DELETE_ALL_MAILS); 958 return e;
974 m->insertItem(QObject::tr("Delete folder",contextName),FOLDER_MENU_DELETE_FOLDER);
975 }
976 return m;
977} 959}
@@ -1006,3 +988,3 @@ void MHfolderItem::createFolder()
1006 988
1007void MHfolderItem::contextMenuSelected(int which) 989bool MHfolderItem::contextMenuSelected(int which)
1008{ 990{
@@ -1015,3 +997,3 @@ void MHfolderItem::contextMenuSelected(int which)
1015 case FOLDER_MENU_DELETE_FOLDER: 997 case FOLDER_MENU_DELETE_FOLDER:
1016 deleteFolder(); 998 return deleteFolder();
1017 break; 999 break;
@@ -1030,2 +1012,3 @@ void MHfolderItem::contextMenuSelected(int which)
1030 } 1012 }
1013 return false;
1031} 1014}
@@ -1152 +1135,30 @@ bool AccountViewItem::isDraftfolder()
1152} 1135}
1136
1137QMap<int,QString> AccountViewItem::serverMenu()
1138{
1139 return QMap<int,QString>();
1140}
1141
1142QMap<int,QString> AccountViewItem::folderMenu()
1143{
1144 return QMap<int,QString>();
1145}
1146
1147QPopupMenu * AccountViewItem::getContextMenu()
1148{
1149 QPopupMenu *m = new QPopupMenu(0);
1150 if (m)
1151 {
1152 QMap<int,QString> entries;
1153 entries = folderMenu();
1154 QMap<int,QString>::Iterator it;
1155 for (it=entries.begin();it!=entries.end();++it) {
1156 m->insertItem(it.data(),it.key());
1157 }
1158 entries = serverMenu();
1159 for (it=entries.begin();it!=entries.end();++it) {
1160 m->insertItem(it.data(),it.key());
1161 }
1162 }
1163 return m;
1164}
diff --git a/noncore/net/mail/accountitem.h b/noncore/net/mail/accountitem.h
index b2c50a1..6518899 100644
--- a/noncore/net/mail/accountitem.h
+++ b/noncore/net/mail/accountitem.h
@@ -3,5 +3,7 @@
3 3
4#include <opie2/osmartpointer.h>
5
4#include <qlistview.h> 6#include <qlistview.h>
5#include <qlist.h> 7#include <qlist.h>
6#include <opie2/osmartpointer.h> 8#include <qmap.h>
7 9
@@ -33,4 +35,4 @@ public:
33 virtual RECBODYP fetchBody(const Opie::Core::OSmartPointer<RecMail>&)=0; 35 virtual RECBODYP fetchBody(const Opie::Core::OSmartPointer<RecMail>&)=0;
34 virtual QPopupMenu * getContextMenu(){return 0;}; 36 virtual QPopupMenu * getContextMenu();
35 virtual void contextMenuSelected(int){} 37 virtual bool contextMenuSelected(int){return false;}
36 virtual AccountView*accountView(); 38 virtual AccountView*accountView();
@@ -40,5 +42,7 @@ public:
40 * 2 - folder 42 * 2 - folder
41 * 3 - beides 43 * 3 - both
42 */ 44 */
43 virtual int isServer()const=0; 45 virtual int isServer()const=0;
46 virtual QMap<int,QString> serverMenu();
47 virtual QMap<int,QString> folderMenu();
44 48
@@ -63,5 +67,5 @@ public:
63 AbstractMail *getWrapper(); 67 AbstractMail *getWrapper();
64 virtual QPopupMenu * getContextMenu(); 68 virtual bool contextMenuSelected(int);
65 virtual void contextMenuSelected(int);
66 virtual int isServer()const{return 1;} 69 virtual int isServer()const{return 1;}
70 virtual QMap<int,QString> serverMenu();
67 71
@@ -83,5 +87,5 @@ public:
83 virtual RECBODYP fetchBody(const Opie::Core::OSmartPointer<RecMail>&); 87 virtual RECBODYP fetchBody(const Opie::Core::OSmartPointer<RecMail>&);
84 virtual QPopupMenu * getContextMenu(); 88 virtual bool contextMenuSelected(int);
85 virtual void contextMenuSelected(int);
86 virtual int isServer()const{return 2;} 89 virtual int isServer()const{return 2;}
90 virtual QMap<int,QString> folderMenu();
87 91
@@ -102,5 +106,5 @@ public:
102 AbstractMail *getWrapper(); 106 AbstractMail *getWrapper();
103 virtual QPopupMenu * getContextMenu(); 107 virtual bool contextMenuSelected(int);
104 virtual void contextMenuSelected(int);
105 virtual int isServer()const{return 1;} 108 virtual int isServer()const{return 1;}
109 virtual QMap<int,QString> serverMenu();
106 110
@@ -123,6 +127,5 @@ public:
123 virtual RECBODYP fetchBody(const Opie::Core::OSmartPointer<RecMail>&); 127 virtual RECBODYP fetchBody(const Opie::Core::OSmartPointer<RecMail>&);
124 virtual QPopupMenu * getContextMenu(); 128 virtual bool contextMenuSelected(int);
125 virtual void contextMenuSelected(int);
126 virtual int isServer()const{return 2;} 129 virtual int isServer()const{return 2;}
127 130 virtual QMap<int,QString> folderMenu();
128protected: 131protected:
@@ -143,4 +146,3 @@ public:
143 AbstractMail *getWrapper(); 146 AbstractMail *getWrapper();
144 virtual QPopupMenu * getContextMenu(); 147 virtual bool contextMenuSelected(int);
145 virtual void contextMenuSelected(int);
146 const QStringList&subFolders(); 148 const QStringList&subFolders();
@@ -149,2 +151,3 @@ public:
149 bool offline(); 151 bool offline();
152 virtual QMap<int,QString> serverMenu();
150 153
@@ -166,9 +169,9 @@ public:
166 virtual RECBODYP fetchBody(const Opie::Core::OSmartPointer<RecMail>&); 169 virtual RECBODYP fetchBody(const Opie::Core::OSmartPointer<RecMail>&);
167 virtual QPopupMenu * getContextMenu(); 170 virtual bool contextMenuSelected(int);
168 virtual void contextMenuSelected(int);
169 virtual const QString& Delemiter()const; 171 virtual const QString& Delemiter()const;
170 virtual int isServer()const{return 2;} 172 virtual int isServer()const{return 2;}
173 virtual QMap<int,QString> folderMenu();
171protected: 174protected:
172 virtual void createNewFolder(); 175 virtual void createNewFolder();
173 virtual void deleteFolder(); 176 virtual bool deleteFolder();
174 virtual void downloadMails(); 177 virtual void downloadMails();
@@ -187,4 +190,3 @@ public:
187 AbstractMail *getWrapper(); 190 AbstractMail *getWrapper();
188 virtual QPopupMenu * getContextMenu(); 191 virtual bool contextMenuSelected(int);
189 virtual void contextMenuSelected(int);
190 QStringList subFolders(); 192 QStringList subFolders();
@@ -192,2 +194,4 @@ public:
192 virtual int isServer()const{return 3;} 194 virtual int isServer()const{return 3;}
195 virtual QMap<int,QString> serverMenu();
196 virtual QMap<int,QString> folderMenu();
193 197
@@ -210,4 +214,3 @@ public:
210 virtual RECBODYP fetchBody(const Opie::Core::OSmartPointer<RecMail>&); 214 virtual RECBODYP fetchBody(const Opie::Core::OSmartPointer<RecMail>&);
211 virtual QPopupMenu * getContextMenu(); 215 virtual bool contextMenuSelected(int);
212 virtual void contextMenuSelected(int);
213 virtual const Opie::Core::OSmartPointer<Folder>&getFolder()const; 216 virtual const Opie::Core::OSmartPointer<Folder>&getFolder()const;
@@ -215,2 +218,3 @@ public:
215 virtual int isServer()const{return 2;} 218 virtual int isServer()const{return 2;}
219 virtual QMap<int,QString> folderMenu();
216 220
@@ -219,3 +223,3 @@ protected:
219 virtual void createFolder(); 223 virtual void createFolder();
220 virtual void deleteFolder(); 224 virtual bool deleteFolder();
221 void initName(); 225 void initName();
diff --git a/noncore/net/mail/accountview.cpp b/noncore/net/mail/accountview.cpp
index faa42c3..1183704 100644
--- a/noncore/net/mail/accountview.cpp
+++ b/noncore/net/mail/accountview.cpp
@@ -43,3 +43,2 @@ void AccountView::slotSelectionChanged(QListViewItem*item)
43{ 43{
44 odebug << "AccountView: Selection changed" << oendl;
45 if (!item) { 44 if (!item) {
@@ -49,3 +48,2 @@ void AccountView::slotSelectionChanged(QListViewItem*item)
49 AccountViewItem *view = static_cast<AccountViewItem *>(item); 48 AccountViewItem *view = static_cast<AccountViewItem *>(item);
50
51 emit serverSelected(view->isServer()); 49 emit serverSelected(view->isServer());
@@ -53,2 +51,20 @@ void AccountView::slotSelectionChanged(QListViewItem*item)
53 51
52QMap<int,QString> AccountView::currentServerMenu()const
53{
54 QMap<int,QString> smap;
55 AccountViewItem *view = static_cast<AccountViewItem *>(currentItem());
56 if (!view)return smap;
57 smap = view->serverMenu();
58 return smap;
59}
60
61QMap<int,QString> AccountView::currentFolderMenu()const
62{
63 QMap<int,QString> fmap;
64 AccountViewItem *view = static_cast<AccountViewItem *>(currentItem());
65 if (!view)return fmap;
66 fmap = view->folderMenu();
67 return fmap;
68}
69
54void AccountView::slotContextMenu(int id) 70void AccountView::slotContextMenu(int id)
@@ -57,6 +73,9 @@ void AccountView::slotContextMenu(int id)
57 if (!view) return; 73 if (!view) return;
58 view->contextMenuSelected(id); 74 bool del = view->contextMenuSelected(id);
75 if (!del && view->isServer()!=2) {
76 emit refreshMenues(view->isServer());
77 }
59} 78}
60 79
61void AccountView::slotRightButton(int button, QListViewItem * item,const QPoint&,int) 80void AccountView::slotRightButton(int, QListViewItem * item,const QPoint&,int)
62{ 81{
@@ -73,3 +92,3 @@ void AccountView::slotRightButton(int button, QListViewItem * item,const QPoint&
73 92
74void AccountView::slotLeftButton(int button, QListViewItem * item,const QPoint&,int) 93void AccountView::slotLeftButton(int, QListViewItem *,const QPoint&,int)
75{ 94{
diff --git a/noncore/net/mail/accountview.h b/noncore/net/mail/accountview.h
index ae24dce..5c4b559 100644
--- a/noncore/net/mail/accountview.h
+++ b/noncore/net/mail/accountview.h
@@ -3,6 +3,7 @@
3 3
4#include <libmailwrapper/mailtypes.h>
5#include <opie2/osmartpointer.h>
4#include <qlistview.h> 6#include <qlistview.h>
5#include <qlist.h> 7#include <qlist.h>
6#include <opie2/osmartpointer.h> 8#include <qmap.h>
7#include <libmailwrapper/mailtypes.h>
8 9
@@ -26,2 +27,4 @@ public:
26 virtual bool currentisDraft(); 27 virtual bool currentisDraft();
28 QMap<int,QString> currentServerMenu()const;
29 QMap<int,QString> currentFolderMenu()const;
27 30
@@ -38,2 +41,3 @@ signals:
38 void serverSelected(int); 41 void serverSelected(int);
42 void refreshMenues(int);
39 43
diff --git a/noncore/net/mail/mainwindow.cpp b/noncore/net/mail/mainwindow.cpp
index 81c8fee..3689352 100644
--- a/noncore/net/mail/mainwindow.cpp
+++ b/noncore/net/mail/mainwindow.cpp
@@ -23,3 +23,2 @@ MainWindow::MainWindow( QWidget *parent, const char *name, WFlags flags )
23 toolBar = new QToolBar( this ); 23 toolBar = new QToolBar( this );
24
25 menuBar = new QMenuBar( toolBar ); 24 menuBar = new QMenuBar( toolBar );
@@ -32,4 +31,13 @@ MainWindow::MainWindow( QWidget *parent, const char *name, WFlags flags )
32 31
33 serverMenu = new QPopupMenu( menuBar ); 32 if (QApplication::desktop()->width()<330) {
34 m_ServerMenuId = menuBar->insertItem( tr( "Server" ), serverMenu ); 33 serverMenu = new QPopupMenu( mailMenu );
34 folderMenu = new QPopupMenu( mailMenu );
35 m_ServerMenuId = mailMenu->insertItem( tr( "Server" ), serverMenu );
36 m_FolderMenuId = mailMenu->insertItem( tr( "Folder" ), folderMenu );
37 } else {
38 serverMenu = new QPopupMenu( menuBar );
39 folderMenu = new QPopupMenu( menuBar );
40 m_FolderMenuId = menuBar->insertItem( tr( "Folder" ), folderMenu );
41 m_ServerMenuId = menuBar->insertItem( tr( "Server" ), serverMenu );
42 }
35 serverMenu->insertItem(tr("Disconnect"),SERVER_MENU_DISCONNECT); 43 serverMenu->insertItem(tr("Disconnect"),SERVER_MENU_DISCONNECT);
@@ -42,4 +50,2 @@ MainWindow::MainWindow( QWidget *parent, const char *name, WFlags flags )
42 50
43 folderMenu = new QPopupMenu( menuBar );
44 m_FolderMenuId = menuBar->insertItem( tr( "Folder" ), folderMenu );
45 folderMenu->insertItem(tr("Refresh headerlist"),FOLDER_MENU_REFRESH_HEADER); 51 folderMenu->insertItem(tr("Refresh headerlist"),FOLDER_MENU_REFRESH_HEADER);
@@ -49,3 +55,2 @@ MainWindow::MainWindow( QWidget *parent, const char *name, WFlags flags )
49 folderMenu->insertItem(tr("Move/Copie all mails"),FOLDER_MENU_MOVE_MAILS); 55 folderMenu->insertItem(tr("Move/Copie all mails"),FOLDER_MENU_MOVE_MAILS);
50
51 menuBar->setItemEnabled(m_ServerMenuId,false); 56 menuBar->setItemEnabled(m_ServerMenuId,false);
@@ -175,7 +180,5 @@ MainWindow::~MainWindow()
175 180
176void MainWindow::serverSelected(int m_isFolder) 181void MainWindow::serverSelected(int)
177{ 182{
178 mailView->clear(); 183 odebug << "slotShowFolders not reached" << oendl;
179 menuBar->setItemEnabled(m_ServerMenuId,m_isFolder&1);
180 menuBar->setItemEnabled(m_FolderMenuId,m_isFolder&2);
181} 184}
diff --git a/noncore/net/mail/mainwindow.h b/noncore/net/mail/mainwindow.h
index 409f160..b781d62 100644
--- a/noncore/net/mail/mainwindow.h
+++ b/noncore/net/mail/mainwindow.h
@@ -3,2 +3,7 @@
3 3
4#include "accountview.h"
5#include <libmailwrapper/mailtypes.h>
6
7#include <opie2/osmartpointer.h>
8
4#include <qmainwindow.h> 9#include <qmainwindow.h>
@@ -6,10 +11,5 @@
6#include <qaction.h> 11#include <qaction.h>
7
8#include <qtoolbar.h> 12#include <qtoolbar.h>
9#include <qmenubar.h> 13#include <qmenubar.h>
10 14#include <qmap.h>
11#include "accountview.h"
12
13#include <libmailwrapper/mailtypes.h>
14#include <opie2/osmartpointer.h>
15 15
diff --git a/noncore/net/mail/opiemail.cpp b/noncore/net/mail/opiemail.cpp
index 7c6d314..1bc81e4 100644
--- a/noncore/net/mail/opiemail.cpp
+++ b/noncore/net/mail/opiemail.cpp
@@ -110,2 +110,3 @@ OpieMail::OpieMail( QWidget *parent, const char *name, WFlags )
110 folderView->populate( settings->getAccounts() ); 110 folderView->populate( settings->getAccounts() );
111 connect(folderView,SIGNAL(refreshMenues(int)),this,SLOT(refreshMenu(int)));
111} 112}
@@ -388 +389,41 @@ void OpieMail::reEditMail()
388} 389}
390
391void OpieMail::refreshMenu(int m_isFolder)
392{
393 if (QApplication::desktop()->width()<330) {
394 mailMenu->setItemEnabled(m_ServerMenuId,m_isFolder&1);
395 mailMenu->setItemEnabled(m_FolderMenuId,m_isFolder&2);
396 } else {
397 menuBar->setItemEnabled(m_ServerMenuId,m_isFolder&1);
398 menuBar->setItemEnabled(m_FolderMenuId,m_isFolder&2);
399 }
400
401 QMap<int,QString>::ConstIterator it;
402 QMap<int,QString> server_entries=folderView->currentServerMenu();
403 QMap<int,QString> folder_entries=folderView->currentFolderMenu();
404
405 int id;
406 unsigned int i;
407 for (i=0; i<folderMenu->count();++i) {
408 id = folderMenu->idAt(i);
409 folderMenu->setItemEnabled(id,false);
410 }
411 for (it=folder_entries.begin();it!=folder_entries.end();++it) {
412 folderMenu->changeItem(it.key(),it.data());
413 folderMenu->setItemEnabled(it.key(),true);
414 }
415 for (i=0; i<serverMenu->count();++i) {
416 id = serverMenu->idAt(i);
417 serverMenu->setItemEnabled(id,false);
418 }
419 for (it=server_entries.begin();it!=server_entries.end();++it) {
420 serverMenu->changeItem(it.key(),it.data());
421 serverMenu->setItemEnabled(it.key(),true);
422 }
423}
424
425void OpieMail::serverSelected(int m_isFolder)
426{
427 mailView->clear();
428 refreshMenu(m_isFolder);
429}
diff --git a/noncore/net/mail/opiemail.h b/noncore/net/mail/opiemail.h
index c9d758d..75a0b2d 100644
--- a/noncore/net/mail/opiemail.h
+++ b/noncore/net/mail/opiemail.h
@@ -5,5 +5,7 @@
5#include <libmailwrapper/settings.h> 5#include <libmailwrapper/settings.h>
6#include <libmailwrapper/mailtypes.h>
6 7
7#include <opie2/osmartpointer.h> 8#include <opie2/osmartpointer.h>
8#include <libmailwrapper/mailtypes.h> 9
10#include <qmap.h>
9 11
@@ -23,3 +25,3 @@ public slots:
23 void setDocument(const QString&); 25 void setDocument(const QString&);
24 26
25protected slots: 27protected slots:
@@ -37,2 +39,4 @@ protected slots:
37 virtual void reEditMail(); 39 virtual void reEditMail();
40 virtual void serverSelected(int);
41 virtual void refreshMenu(int);
38 42