author | alwin <alwin> | 2005-03-12 22:14:03 (UTC) |
---|---|---|
committer | alwin <alwin> | 2005-03-12 22:14:03 (UTC) |
commit | 3cb4c3983ee738f3221ecb4cb154ea1252d69d64 (patch) (unidiff) | |
tree | 13357c046fd618b10546ad6d21992826eab3ad01 | |
parent | 9dddeb81d7db5da718f3f467bb1511b7e72b9caa (diff) | |
download | opie-3cb4c3983ee738f3221ecb4cb154ea1252d69d64.zip opie-3cb4c3983ee738f3221ecb4cb154ea1252d69d64.tar.gz opie-3cb4c3983ee738f3221ecb4cb154ea1252d69d64.tar.bz2 |
rework of the structure of the main menues, them depends now on state of current selected folder/server
on small screens some "Folder" and "Server" menu will get submenus of the menu-item "Mail" cause lack of space on screen - have no other idea.
-rw-r--r-- | noncore/net/mail/accountitem.cpp | 232 | ||||
-rw-r--r-- | noncore/net/mail/accountitem.h | 50 | ||||
-rw-r--r-- | noncore/net/mail/accountview.cpp | 29 | ||||
-rw-r--r-- | noncore/net/mail/accountview.h | 8 | ||||
-rw-r--r-- | noncore/net/mail/mainwindow.cpp | 19 | ||||
-rw-r--r-- | noncore/net/mail/mainwindow.h | 12 | ||||
-rw-r--r-- | noncore/net/mail/opiemail.cpp | 41 | ||||
-rw-r--r-- | noncore/net/mail/opiemail.h | 6 |
8 files changed, 242 insertions, 155 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 | |||
@@ -83,22 +83,16 @@ RECBODYP POP3viewItem::fetchBody( const RecMailP &mail ) | |||
83 | return wrapper->fetchBody( mail ); | 83 | return wrapper->fetchBody( mail ); |
84 | } | 84 | } |
85 | 85 | ||
86 | QPopupMenu * POP3viewItem::getContextMenu() | 86 | QMap<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 | } |
103 | 97 | ||
104 | void POP3viewItem::disconnect() | 98 | void POP3viewItem::disconnect() |
@@ -125,7 +119,7 @@ void POP3viewItem::setOnOffline() | |||
125 | refresh(); | 119 | refresh(); |
126 | } | 120 | } |
127 | 121 | ||
128 | void POP3viewItem::contextMenuSelected(int which) | 122 | bool POP3viewItem::contextMenuSelected(int which) |
129 | { | 123 | { |
130 | switch (which) | 124 | switch (which) |
131 | { | 125 | { |
@@ -136,6 +130,7 @@ void POP3viewItem::contextMenuSelected(int which) | |||
136 | setOnOffline(); | 130 | setOnOffline(); |
137 | break; | 131 | break; |
138 | } | 132 | } |
133 | return false; | ||
139 | } | 134 | } |
140 | 135 | ||
141 | POP3folderItem::~POP3folderItem() | 136 | POP3folderItem::~POP3folderItem() |
@@ -167,16 +162,13 @@ RECBODYP POP3folderItem::fetchBody(const RecMailP&aMail) | |||
167 | return pop3->getWrapper()->fetchBody(aMail); | 162 | return pop3->getWrapper()->fetchBody(aMail); |
168 | } | 163 | } |
169 | 164 | ||
170 | QPopupMenu * POP3folderItem::getContextMenu() | 165 | QMap<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 | } |
181 | 173 | ||
182 | void POP3folderItem::downloadMails() | 174 | void POP3folderItem::downloadMails() |
@@ -186,7 +178,7 @@ void POP3folderItem::downloadMails() | |||
186 | bl->downloadMails(folder,pop3->getWrapper()); | 178 | bl->downloadMails(folder,pop3->getWrapper()); |
187 | } | 179 | } |
188 | 180 | ||
189 | void POP3folderItem::contextMenuSelected(int which) | 181 | bool POP3folderItem::contextMenuSelected(int which) |
190 | { | 182 | { |
191 | AccountView * view = (AccountView*)listView(); | 183 | AccountView * view = (AccountView*)listView(); |
192 | switch (which) | 184 | switch (which) |
@@ -205,6 +197,7 @@ void POP3folderItem::contextMenuSelected(int which) | |||
205 | default: | 197 | default: |
206 | break; | 198 | break; |
207 | } | 199 | } |
200 | return false; | ||
208 | } | 201 | } |
209 | 202 | ||
210 | /** | 203 | /** |
@@ -274,23 +267,18 @@ RECBODYP NNTPviewItem::fetchBody( const RecMailP &mail ) | |||
274 | return wrapper->fetchBody( mail ); | 267 | return wrapper->fetchBody( mail ); |
275 | } | 268 | } |
276 | 269 | ||
277 | QPopupMenu * NNTPviewItem::getContextMenu() | 270 | QMap<int,QString> NNTPviewItem::serverMenu() |
278 | { | ||
279 | QPopupMenu *m = new QPopupMenu(0); | ||
280 | if (m) | ||
281 | { | 271 | { |
272 | QMap<int,QString> _entries; | ||
282 | if (!account->getOffline()) | 273 | if (!account->getOffline()) |
283 | { | 274 | { |
284 | m->insertItem(QObject::tr("Disconnect",contextName),SERVER_MENU_DISCONNECT); | 275 | _entries[SERVER_MENU_DISCONNECT]=QObject::tr("Disconnect",contextName); |
285 | m->insertItem(QObject::tr("Set offline",contextName),SERVER_MENU_OFFLINE); | 276 | _entries[SERVER_MENU_OFFLINE]=QObject::tr("Set offline",contextName); |
286 | m->insertItem(QObject::tr("(Un-)Subscribe groups",contextName),SERVER_MENU_SUBSCRIBE); | 277 | _entries[SERVER_MENU_SUBSCRIBE]=QObject::tr("(Un-)Subscribe groups",contextName); |
287 | } | 278 | } else { |
288 | else | 279 | _entries[SERVER_MENU_OFFLINE]=QObject::tr("Set online",contextName); |
289 | { | ||
290 | m->insertItem(QObject::tr("Set online",contextName),SERVER_MENU_OFFLINE); | ||
291 | } | ||
292 | } | 280 | } |
293 | return m; | 281 | return _entries; |
294 | } | 282 | } |
295 | 283 | ||
296 | void NNTPviewItem::subscribeGroups() | 284 | void NNTPviewItem::subscribeGroups() |
@@ -326,7 +314,7 @@ void NNTPviewItem::setOnOffline() | |||
326 | refresh(); | 314 | refresh(); |
327 | } | 315 | } |
328 | 316 | ||
329 | void NNTPviewItem::contextMenuSelected(int which) | 317 | bool NNTPviewItem::contextMenuSelected(int which) |
330 | { | 318 | { |
331 | switch (which) | 319 | switch (which) |
332 | { | 320 | { |
@@ -340,6 +328,7 @@ void NNTPviewItem::contextMenuSelected(int which) | |||
340 | subscribeGroups(); | 328 | subscribeGroups(); |
341 | break; | 329 | break; |
342 | } | 330 | } |
331 | return false; | ||
343 | } | 332 | } |
344 | 333 | ||
345 | NNTPfolderItem::~NNTPfolderItem() | 334 | NNTPfolderItem::~NNTPfolderItem() |
@@ -371,15 +360,12 @@ RECBODYP NNTPfolderItem::fetchBody(const RecMailP&aMail) | |||
371 | return nntp->getWrapper()->fetchBody(aMail); | 360 | return nntp->getWrapper()->fetchBody(aMail); |
372 | } | 361 | } |
373 | 362 | ||
374 | QPopupMenu * NNTPfolderItem::getContextMenu() | 363 | QMap<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 | } |
384 | 370 | ||
385 | void NNTPfolderItem::downloadMails() | 371 | void NNTPfolderItem::downloadMails() |
@@ -389,7 +375,7 @@ void NNTPfolderItem::downloadMails() | |||
389 | bl->downloadMails(folder,nntp->getWrapper()); | 375 | bl->downloadMails(folder,nntp->getWrapper()); |
390 | } | 376 | } |
391 | 377 | ||
392 | void NNTPfolderItem::contextMenuSelected(int which) | 378 | bool NNTPfolderItem::contextMenuSelected(int which) |
393 | { | 379 | { |
394 | AccountView * view = (AccountView*)listView(); | 380 | AccountView * view = (AccountView*)listView(); |
395 | switch (which) | 381 | switch (which) |
@@ -405,6 +391,7 @@ void NNTPfolderItem::contextMenuSelected(int which) | |||
405 | default: | 391 | default: |
406 | break; | 392 | break; |
407 | } | 393 | } |
394 | return false; | ||
408 | } | 395 | } |
409 | 396 | ||
410 | /** | 397 | /** |
@@ -491,25 +478,18 @@ void IMAPviewItem::refreshFolders(bool force) | |||
491 | delete folders; | 478 | delete folders; |
492 | } | 479 | } |
493 | 480 | ||
494 | QPopupMenu * IMAPviewItem::getContextMenu() | 481 | QMap<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 | } |
514 | 494 | ||
515 | void IMAPviewItem::createNewFolder() | 495 | void IMAPviewItem::createNewFolder() |
@@ -532,7 +512,7 @@ void IMAPviewItem::createNewFolder() | |||
532 | } | 512 | } |
533 | } | 513 | } |
534 | 514 | ||
535 | void IMAPviewItem::contextMenuSelected(int id) | 515 | bool IMAPviewItem::contextMenuSelected(int id) |
536 | { | 516 | { |
537 | odebug << "Id selected: " << id << "" << oendl; | 517 | odebug << "Id selected: " << id << "" << oendl; |
538 | switch (id) | 518 | switch (id) |
@@ -561,6 +541,7 @@ void IMAPviewItem::contextMenuSelected(int id) | |||
561 | default: | 541 | default: |
562 | break; | 542 | break; |
563 | } | 543 | } |
544 | return false; | ||
564 | } | 545 | } |
565 | 546 | ||
566 | RECBODYP IMAPviewItem::fetchBody(const RecMailP&) | 547 | RECBODYP IMAPviewItem::fetchBody(const RecMailP&) |
@@ -628,27 +609,21 @@ RECBODYP IMAPfolderItem::fetchBody(const RecMailP&aMail) | |||
628 | return imap->getWrapper()->fetchBody(aMail); | 609 | return imap->getWrapper()->fetchBody(aMail); |
629 | } | 610 | } |
630 | 611 | ||
631 | QPopupMenu * IMAPfolderItem::getContextMenu() | 612 | QMap<int,QString> IMAPfolderItem::folderMenu() |
632 | { | ||
633 | QPopupMenu *m = new QPopupMenu(0); | ||
634 | if (m) | ||
635 | { | ||
636 | if (folder->may_select()) | ||
637 | { | 613 | { |
638 | m->insertItem(QObject::tr("Refresh header list",contextName),FOLDER_MENU_REFRESH_HEADER); | 614 | QMap<int,QString> e; |
639 | m->insertItem(QObject::tr("Move/Copy all mails",contextName),FOLDER_MENU_MOVE_MAILS); | 615 | if (folder->may_select()) { |
640 | m->insertItem(QObject::tr("Delete all mails",contextName),FOLDER_MENU_DELETE_ALL_MAILS); | 616 | e[FOLDER_MENU_REFRESH_HEADER]=QObject::tr("Refresh header list",contextName); |
617 | e[FOLDER_MENU_MOVE_MAILS]=QObject::tr("Move/Copy all mails",contextName); | ||
618 | e[FOLDER_MENU_DELETE_ALL_MAILS]=QObject::tr("Delete all mails",contextName); | ||
641 | } | 619 | } |
642 | if (folder->no_inferior()==false) | 620 | if (folder->no_inferior()==false) { |
643 | { | 621 | e[FOLDER_MENU_NEW_SUBFOLDER]=QObject::tr("Create new subfolder",contextName); |
644 | m->insertItem(QObject::tr("Create new subfolder",contextName),FOLDER_MENU_NEW_SUBFOLDER); | ||
645 | } | 622 | } |
646 | if (folder->getDisplayName().lower()!="inbox") | 623 | if (folder->getDisplayName().lower()!="inbox") { |
647 | { | 624 | e[FOLDER_MENU_DELETE_FOLDER]=QObject::tr("Delete folder",contextName); |
648 | m->insertItem(QObject::tr("Delete folder",contextName),FOLDER_MENU_DELETE_FOLDER); | ||
649 | } | 625 | } |
650 | } | 626 | return e; |
651 | return m; | ||
652 | } | 627 | } |
653 | 628 | ||
654 | void IMAPfolderItem::createNewFolder() | 629 | void IMAPfolderItem::createNewFolder() |
@@ -666,7 +641,7 @@ void IMAPfolderItem::createNewFolder() | |||
666 | } | 641 | } |
667 | } | 642 | } |
668 | 643 | ||
669 | void IMAPfolderItem::deleteFolder() | 644 | bool IMAPfolderItem::deleteFolder() |
670 | { | 645 | { |
671 | int yesno = QMessageBox::warning(0,QObject::tr("Delete folder",contextName), | 646 | int yesno = QMessageBox::warning(0,QObject::tr("Delete folder",contextName), |
672 | QObject::tr("<center>Realy delete folder <br><b>%1</b><br>and all if it content?</center>",contextName).arg(folder->getDisplayName()), | 647 | QObject::tr("<center>Realy delete folder <br><b>%1</b><br>and all if it content?</center>",contextName).arg(folder->getDisplayName()), |
@@ -686,8 +661,10 @@ void IMAPfolderItem::deleteFolder() | |||
686 | { | 661 | { |
687 | v->setSelected(box,true); | 662 | v->setSelected(box,true); |
688 | } | 663 | } |
664 | return true; | ||
689 | } | 665 | } |
690 | } | 666 | } |
667 | return false; | ||
691 | } | 668 | } |
692 | 669 | ||
693 | void IMAPfolderItem::downloadMails() | 670 | void IMAPfolderItem::downloadMails() |
@@ -697,7 +674,7 @@ void IMAPfolderItem::downloadMails() | |||
697 | bl->downloadMails(folder,imap->getWrapper()); | 674 | bl->downloadMails(folder,imap->getWrapper()); |
698 | } | 675 | } |
699 | 676 | ||
700 | void IMAPfolderItem::contextMenuSelected(int id) | 677 | bool IMAPfolderItem::contextMenuSelected(int id) |
701 | { | 678 | { |
702 | odebug << "Selected id: " << id << "" << oendl; | 679 | odebug << "Selected id: " << id << "" << oendl; |
703 | AccountView * view = (AccountView*)listView(); | 680 | AccountView * view = (AccountView*)listView(); |
@@ -716,7 +693,7 @@ void IMAPfolderItem::contextMenuSelected(int id) | |||
716 | break; | 693 | break; |
717 | case FOLDER_MENU_DELETE_FOLDER: | 694 | case FOLDER_MENU_DELETE_FOLDER: |
718 | if (folder->getDisplayName().lower()!="inbox") { | 695 | if (folder->getDisplayName().lower()!="inbox") { |
719 | deleteFolder(); | 696 | return deleteFolder(); |
720 | } | 697 | } |
721 | break; | 698 | break; |
722 | case FOLDER_MENU_MOVE_MAILS: | 699 | case FOLDER_MENU_MOVE_MAILS: |
@@ -725,6 +702,7 @@ void IMAPfolderItem::contextMenuSelected(int id) | |||
725 | default: | 702 | default: |
726 | break; | 703 | break; |
727 | } | 704 | } |
705 | return false; | ||
728 | } | 706 | } |
729 | 707 | ||
730 | /** | 708 | /** |
@@ -812,17 +790,21 @@ RECBODYP MHviewItem::fetchBody( const RecMailP &mail ) | |||
812 | return wrapper->fetchBody( mail ); | 790 | return wrapper->fetchBody( mail ); |
813 | } | 791 | } |
814 | 792 | ||
815 | QPopupMenu * MHviewItem::getContextMenu() | 793 | QMap<int,QString> MHviewItem::serverMenu() |
816 | { | ||
817 | QPopupMenu *m = new QPopupMenu(0); | ||
818 | if (m) | ||
819 | { | 794 | { |
820 | m->insertItem(QObject::tr("Refresh folder list",contextName),SERVER_MENU_REFRESH_FOLDER); | 795 | QMap<int,QString> e; |
821 | m->insertItem(QObject::tr("Create new folder",contextName),FOLDER_MENU_NEW_SUBFOLDER); | 796 | e[SERVER_MENU_REFRESH_FOLDER]=QObject::tr("Refresh folder list",contextName); |
822 | m->insertItem(QObject::tr("Delete all mails",contextName),FOLDER_MENU_DELETE_ALL_MAILS); | 797 | return e; |
823 | m->insertItem(QObject::tr("Move/Copie all mails",contextName),FOLDER_MENU_MOVE_MAILS); | ||
824 | } | 798 | } |
825 | return m; | 799 | |
800 | QMap<int,QString> MHviewItem::folderMenu() | ||
801 | { | ||
802 | QMap<int,QString> e; | ||
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 | } |
827 | 809 | ||
828 | void MHviewItem::createFolder() | 810 | void MHviewItem::createFolder() |
@@ -850,7 +832,7 @@ QStringList MHviewItem::subFolders() | |||
850 | return currentFolders; | 832 | return currentFolders; |
851 | } | 833 | } |
852 | 834 | ||
853 | void MHviewItem::contextMenuSelected(int which) | 835 | bool MHviewItem::contextMenuSelected(int which) |
854 | { | 836 | { |
855 | AccountView*view = 0; | 837 | AccountView*view = 0; |
856 | 838 | ||
@@ -875,6 +857,7 @@ void MHviewItem::contextMenuSelected(int which) | |||
875 | default: | 857 | default: |
876 | break; | 858 | break; |
877 | } | 859 | } |
860 | return false; | ||
878 | } | 861 | } |
879 | 862 | ||
880 | MHfolderItem::~MHfolderItem() | 863 | MHfolderItem::~MHfolderItem() |
@@ -938,7 +921,7 @@ RECBODYP MHfolderItem::fetchBody(const RecMailP&aMail) | |||
938 | return mbox->getWrapper()->fetchBody(aMail); | 921 | return mbox->getWrapper()->fetchBody(aMail); |
939 | } | 922 | } |
940 | 923 | ||
941 | void MHfolderItem::deleteFolder() | 924 | bool MHfolderItem::deleteFolder() |
942 | { | 925 | { |
943 | int yesno = QMessageBox::warning(0,QObject::tr("Delete folder",contextName), | 926 | int yesno = QMessageBox::warning(0,QObject::tr("Delete folder",contextName), |
944 | QObject::tr("<center>Realy delete folder <br><b>%1</b><br>and all if it content?</center>",contextName).arg(folder->getDisplayName()), | 927 | QObject::tr("<center>Realy delete folder <br><b>%1</b><br>and all if it content?</center>",contextName).arg(folder->getDisplayName()), |
@@ -958,22 +941,21 @@ void MHfolderItem::deleteFolder() | |||
958 | { | 941 | { |
959 | v->setSelected(box,true); | 942 | v->setSelected(box,true); |
960 | } | 943 | } |
944 | return true; | ||
961 | } | 945 | } |
962 | } | 946 | } |
947 | return false; | ||
963 | } | 948 | } |
964 | 949 | ||
965 | QPopupMenu * MHfolderItem::getContextMenu() | 950 | QMap<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 | } |
978 | 960 | ||
979 | void MHfolderItem::downloadMails() | 961 | void MHfolderItem::downloadMails() |
@@ -1004,7 +986,7 @@ void MHfolderItem::createFolder() | |||
1004 | } | 986 | } |
1005 | } | 987 | } |
1006 | 988 | ||
1007 | void MHfolderItem::contextMenuSelected(int which) | 989 | bool MHfolderItem::contextMenuSelected(int which) |
1008 | { | 990 | { |
1009 | AccountView*view = 0; | 991 | AccountView*view = 0; |
1010 | switch(which) | 992 | switch(which) |
@@ -1013,7 +995,7 @@ void MHfolderItem::contextMenuSelected(int which) | |||
1013 | deleteAllMail(mbox->getWrapper(),folder); | 995 | deleteAllMail(mbox->getWrapper(),folder); |
1014 | break; | 996 | break; |
1015 | case FOLDER_MENU_DELETE_FOLDER: | 997 | case FOLDER_MENU_DELETE_FOLDER: |
1016 | deleteFolder(); | 998 | return deleteFolder(); |
1017 | break; | 999 | break; |
1018 | case FOLDER_MENU_MOVE_MAILS: | 1000 | case FOLDER_MENU_MOVE_MAILS: |
1019 | downloadMails(); | 1001 | downloadMails(); |
@@ -1028,6 +1010,7 @@ void MHfolderItem::contextMenuSelected(int which) | |||
1028 | default: | 1010 | default: |
1029 | break; | 1011 | break; |
1030 | } | 1012 | } |
1013 | return false; | ||
1031 | } | 1014 | } |
1032 | 1015 | ||
1033 | bool MHfolderItem::isDraftfolder() | 1016 | bool MHfolderItem::isDraftfolder() |
@@ -1150,3 +1133,32 @@ bool AccountViewItem::isDraftfolder() | |||
1150 | { | 1133 | { |
1151 | return false; | 1134 | return false; |
1152 | } | 1135 | } |
1136 | |||
1137 | QMap<int,QString> AccountViewItem::serverMenu() | ||
1138 | { | ||
1139 | return QMap<int,QString>(); | ||
1140 | } | ||
1141 | |||
1142 | QMap<int,QString> AccountViewItem::folderMenu() | ||
1143 | { | ||
1144 | return QMap<int,QString>(); | ||
1145 | } | ||
1146 | |||
1147 | QPopupMenu * 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 | |||
@@ -1,9 +1,11 @@ | |||
1 | #ifndef __ACCOUNT_ITEM | 1 | #ifndef __ACCOUNT_ITEM |
2 | #define __ACCOUNT_ITEM | 2 | #define __ACCOUNT_ITEM |
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 | ||
8 | class POP3wrapper; | 10 | class POP3wrapper; |
9 | class RecMail; | 11 | class RecMail; |
@@ -31,16 +33,18 @@ public: | |||
31 | virtual ~AccountViewItem(); | 33 | virtual ~AccountViewItem(); |
32 | virtual void refresh(QValueList<Opie::Core::OSmartPointer<RecMail> >&)=0; | 34 | virtual void refresh(QValueList<Opie::Core::OSmartPointer<RecMail> >&)=0; |
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(); |
37 | virtual bool matchName(const QString&name)const; | 39 | virtual bool matchName(const QString&name)const; |
38 | virtual bool isDraftfolder(); | 40 | virtual bool isDraftfolder(); |
39 | /* 1 - server | 41 | /* 1 - server |
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 | ||
45 | protected: | 49 | protected: |
46 | AccountViewItem*findSubItem(const QString&path,AccountViewItem*start=0); | 50 | AccountViewItem*findSubItem(const QString&path,AccountViewItem*start=0); |
@@ -61,9 +65,9 @@ public: | |||
61 | virtual void refresh(QValueList<Opie::Core::OSmartPointer<RecMail> >&target ); | 65 | virtual void refresh(QValueList<Opie::Core::OSmartPointer<RecMail> >&target ); |
62 | virtual RECBODYP fetchBody( const Opie::Core::OSmartPointer<RecMail> &mail ); | 66 | virtual RECBODYP fetchBody( const Opie::Core::OSmartPointer<RecMail> &mail ); |
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 | ||
68 | protected: | 72 | protected: |
69 | POP3account *account; | 73 | POP3account *account; |
@@ -81,9 +85,9 @@ public: | |||
81 | virtual ~POP3folderItem(); | 85 | virtual ~POP3folderItem(); |
82 | virtual void refresh(QValueList<Opie::Core::OSmartPointer<RecMail> >&); | 86 | virtual void refresh(QValueList<Opie::Core::OSmartPointer<RecMail> >&); |
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 | ||
88 | protected: | 92 | protected: |
89 | void downloadMails(); | 93 | void downloadMails(); |
@@ -100,9 +104,9 @@ public: | |||
100 | virtual void refresh(QValueList<Opie::Core::OSmartPointer<RecMail> >&target ); | 104 | virtual void refresh(QValueList<Opie::Core::OSmartPointer<RecMail> >&target ); |
101 | virtual RECBODYP fetchBody( const Opie::Core::OSmartPointer<RecMail> &mail ); | 105 | virtual RECBODYP fetchBody( const Opie::Core::OSmartPointer<RecMail> &mail ); |
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 | ||
107 | protected: | 111 | protected: |
108 | NNTPaccount *account; | 112 | NNTPaccount *account; |
@@ -121,10 +125,9 @@ public: | |||
121 | virtual ~NNTPfolderItem(); | 125 | virtual ~NNTPfolderItem(); |
122 | virtual void refresh(QValueList<Opie::Core::OSmartPointer<RecMail> >&); | 126 | virtual void refresh(QValueList<Opie::Core::OSmartPointer<RecMail> >&); |
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(); | |
128 | protected: | 131 | protected: |
129 | void downloadMails(); | 132 | void downloadMails(); |
130 | NNTPviewItem *nntp; | 133 | NNTPviewItem *nntp; |
@@ -141,12 +144,12 @@ public: | |||
141 | virtual void refresh(QValueList<Opie::Core::OSmartPointer<RecMail> >&); | 144 | virtual void refresh(QValueList<Opie::Core::OSmartPointer<RecMail> >&); |
142 | virtual RECBODYP fetchBody(const Opie::Core::OSmartPointer<RecMail>&); | 145 | virtual RECBODYP fetchBody(const Opie::Core::OSmartPointer<RecMail>&); |
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(); |
147 | virtual void refreshFolders(bool force=false); | 149 | virtual void refreshFolders(bool force=false); |
148 | virtual int isServer()const{return 1;} | 150 | virtual int isServer()const{return 1;} |
149 | bool offline(); | 151 | bool offline(); |
152 | virtual QMap<int,QString> serverMenu(); | ||
150 | 153 | ||
151 | protected: | 154 | protected: |
152 | virtual void createNewFolder(); | 155 | virtual void createNewFolder(); |
@@ -164,13 +167,13 @@ public: | |||
164 | virtual ~IMAPfolderItem(); | 167 | virtual ~IMAPfolderItem(); |
165 | virtual void refresh(QValueList<Opie::Core::OSmartPointer<RecMail> >&); | 168 | virtual void refresh(QValueList<Opie::Core::OSmartPointer<RecMail> >&); |
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(); | ||
171 | protected: | 174 | protected: |
172 | virtual void createNewFolder(); | 175 | virtual void createNewFolder(); |
173 | virtual void deleteFolder(); | 176 | virtual bool deleteFolder(); |
174 | virtual void downloadMails(); | 177 | virtual void downloadMails(); |
175 | IMAPviewItem *imap; | 178 | IMAPviewItem *imap; |
176 | }; | 179 | }; |
@@ -185,11 +188,12 @@ public: | |||
185 | virtual void refresh(QValueList<Opie::Core::OSmartPointer<RecMail> >&target ); | 188 | virtual void refresh(QValueList<Opie::Core::OSmartPointer<RecMail> >&target ); |
186 | virtual RECBODYP fetchBody( const Opie::Core::OSmartPointer<RecMail> &mail ); | 189 | virtual RECBODYP fetchBody( const Opie::Core::OSmartPointer<RecMail> &mail ); |
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(); |
191 | virtual void refresh(bool force=false); | 193 | virtual void refresh(bool force=false); |
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 | ||
194 | protected: | 198 | protected: |
195 | void downloadMails(); | 199 | void downloadMails(); |
@@ -208,16 +212,16 @@ public: | |||
208 | virtual ~MHfolderItem(); | 212 | virtual ~MHfolderItem(); |
209 | virtual void refresh(QValueList<Opie::Core::OSmartPointer<RecMail> >&); | 213 | virtual void refresh(QValueList<Opie::Core::OSmartPointer<RecMail> >&); |
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; |
214 | virtual bool isDraftfolder(); | 217 | virtual bool isDraftfolder(); |
215 | virtual int isServer()const{return 2;} | 218 | virtual int isServer()const{return 2;} |
219 | virtual QMap<int,QString> folderMenu(); | ||
216 | 220 | ||
217 | protected: | 221 | protected: |
218 | void downloadMails(); | 222 | void downloadMails(); |
219 | virtual void createFolder(); | 223 | virtual void createFolder(); |
220 | virtual void deleteFolder(); | 224 | virtual bool deleteFolder(); |
221 | void initName(); | 225 | void initName(); |
222 | MHviewItem *mbox; | 226 | MHviewItem *mbox; |
223 | }; | 227 | }; |
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 | |||
@@ -41,24 +41,43 @@ AccountView::~AccountView() | |||
41 | 41 | ||
42 | void AccountView::slotSelectionChanged(QListViewItem*item) | 42 | void AccountView::slotSelectionChanged(QListViewItem*item) |
43 | { | 43 | { |
44 | odebug << "AccountView: Selection changed" << oendl; | ||
45 | if (!item) { | 44 | if (!item) { |
46 | emit serverSelected(0); | 45 | emit serverSelected(0); |
47 | return; | 46 | return; |
48 | } | 47 | } |
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()); |
52 | } | 50 | } |
53 | 51 | ||
52 | QMap<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 | |||
61 | QMap<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 | |||
54 | void AccountView::slotContextMenu(int id) | 70 | void AccountView::slotContextMenu(int id) |
55 | { | 71 | { |
56 | AccountViewItem *view = static_cast<AccountViewItem *>(currentItem()); | 72 | AccountViewItem *view = static_cast<AccountViewItem *>(currentItem()); |
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 | ||
61 | void AccountView::slotRightButton(int button, QListViewItem * item,const QPoint&,int) | 80 | void AccountView::slotRightButton(int, QListViewItem * item,const QPoint&,int) |
62 | { | 81 | { |
63 | m_rightPressed = true; | 82 | m_rightPressed = true; |
64 | if (!item) return; | 83 | if (!item) return; |
@@ -71,7 +90,7 @@ void AccountView::slotRightButton(int button, QListViewItem * item,const QPoint& | |||
71 | delete m; | 90 | delete m; |
72 | } | 91 | } |
73 | 92 | ||
74 | void AccountView::slotLeftButton(int button, QListViewItem * item,const QPoint&,int) | 93 | void AccountView::slotLeftButton(int, QListViewItem *,const QPoint&,int) |
75 | { | 94 | { |
76 | m_rightPressed = false; | 95 | m_rightPressed = false; |
77 | } | 96 | } |
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 | |||
@@ -1,10 +1,11 @@ | |||
1 | #ifndef ACCOUNTVIEW_H | 1 | #ifndef ACCOUNTVIEW_H |
2 | #define ACCOUNTVIEW_H | 2 | #define ACCOUNTVIEW_H |
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 | ||
9 | class Selectstore; | 10 | class Selectstore; |
10 | class Folder; | 11 | class Folder; |
@@ -24,6 +25,8 @@ public: | |||
24 | virtual RecBodyP fetchBody(const Opie::Core::OSmartPointer<RecMail>&aMail); | 25 | virtual RecBodyP fetchBody(const Opie::Core::OSmartPointer<RecMail>&aMail); |
25 | virtual void downloadMails(const Opie::Core::OSmartPointer<Folder>&fromFolder,AbstractMail*fromWrapper); | 26 | virtual void downloadMails(const Opie::Core::OSmartPointer<Folder>&fromFolder,AbstractMail*fromWrapper); |
26 | virtual bool currentisDraft(); | 27 | virtual bool currentisDraft(); |
28 | QMap<int,QString> currentServerMenu()const; | ||
29 | QMap<int,QString> currentFolderMenu()const; | ||
27 | 30 | ||
28 | public slots: | 31 | public slots: |
29 | virtual void refreshAll(); | 32 | virtual void refreshAll(); |
@@ -36,6 +39,7 @@ public slots: | |||
36 | signals: | 39 | signals: |
37 | void refreshMailview(const QValueList<RecMailP>& ); | 40 | void refreshMailview(const QValueList<RecMailP>& ); |
38 | void serverSelected(int); | 41 | void serverSelected(int); |
42 | void refreshMenues(int); | ||
39 | 43 | ||
40 | protected: | 44 | protected: |
41 | QListViewItem* m_currentItem; | 45 | QListViewItem* m_currentItem; |
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 | |||
@@ -21,7 +21,6 @@ MainWindow::MainWindow( QWidget *parent, const char *name, WFlags flags ) | |||
21 | setToolBarsMovable( false ); | 21 | setToolBarsMovable( false ); |
22 | 22 | ||
23 | toolBar = new QToolBar( this ); | 23 | toolBar = new QToolBar( this ); |
24 | |||
25 | menuBar = new QMenuBar( toolBar ); | 24 | menuBar = new QMenuBar( toolBar ); |
26 | 25 | ||
27 | mailMenu = new QPopupMenu( menuBar ); | 26 | mailMenu = new QPopupMenu( menuBar ); |
@@ -30,8 +29,17 @@ MainWindow::MainWindow( QWidget *parent, const char *name, WFlags flags ) | |||
30 | settingsMenu = new QPopupMenu( menuBar ); | 29 | settingsMenu = new QPopupMenu( menuBar ); |
31 | menuBar->insertItem( tr( "Settings" ), settingsMenu ); | 30 | menuBar->insertItem( tr( "Settings" ), settingsMenu ); |
32 | 31 | ||
32 | if (QApplication::desktop()->width()<330) { | ||
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 { | ||
33 | serverMenu = new QPopupMenu( menuBar ); | 38 | serverMenu = new QPopupMenu( menuBar ); |
39 | folderMenu = new QPopupMenu( menuBar ); | ||
40 | m_FolderMenuId = menuBar->insertItem( tr( "Folder" ), folderMenu ); | ||
34 | m_ServerMenuId = menuBar->insertItem( tr( "Server" ), serverMenu ); | 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); |
36 | serverMenu->insertItem(tr("Set on/offline"),SERVER_MENU_OFFLINE); | 44 | serverMenu->insertItem(tr("Set on/offline"),SERVER_MENU_OFFLINE); |
37 | serverMenu->insertSeparator(); | 45 | serverMenu->insertSeparator(); |
@@ -40,14 +48,11 @@ MainWindow::MainWindow( QWidget *parent, const char *name, WFlags flags ) | |||
40 | serverMenu->insertSeparator(); | 48 | serverMenu->insertSeparator(); |
41 | serverMenu->insertItem(tr("(Un-)Subscribe groups"),SERVER_MENU_SUBSCRIBE); | 49 | serverMenu->insertItem(tr("(Un-)Subscribe groups"),SERVER_MENU_SUBSCRIBE); |
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); |
46 | folderMenu->insertItem(tr("Delete all mails"),FOLDER_MENU_DELETE_ALL_MAILS); | 52 | folderMenu->insertItem(tr("Delete all mails"),FOLDER_MENU_DELETE_ALL_MAILS); |
47 | folderMenu->insertItem(tr("New subfolder"),FOLDER_MENU_NEW_SUBFOLDER); | 53 | folderMenu->insertItem(tr("New subfolder"),FOLDER_MENU_NEW_SUBFOLDER); |
48 | folderMenu->insertItem(tr("Delete folder"),FOLDER_MENU_DELETE_FOLDER); | 54 | folderMenu->insertItem(tr("Delete folder"),FOLDER_MENU_DELETE_FOLDER); |
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); |
52 | menuBar->setItemEnabled(m_FolderMenuId,false); | 57 | menuBar->setItemEnabled(m_FolderMenuId,false); |
53 | 58 | ||
@@ -173,11 +178,9 @@ MainWindow::~MainWindow() | |||
173 | { | 178 | { |
174 | } | 179 | } |
175 | 180 | ||
176 | void MainWindow::serverSelected(int m_isFolder) | 181 | void 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 | } |
182 | 185 | ||
183 | void MainWindow::systemMessage( const QCString& msg, const QByteArray& data ) | 186 | void MainWindow::systemMessage( const QCString& msg, const QByteArray& data ) |
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 | |||
@@ -1,17 +1,17 @@ | |||
1 | #ifndef MAINWINDOW_H | 1 | #ifndef MAINWINDOW_H |
2 | #define MAINWINDOW_H | 2 | #define MAINWINDOW_H |
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> |
5 | #include <qlistview.h> | 10 | #include <qlistview.h> |
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 | ||
16 | class RecMail; | 16 | class RecMail; |
17 | class QCopChannel; | 17 | class QCopChannel; |
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 | |||
@@ -108,6 +108,7 @@ OpieMail::OpieMail( QWidget *parent, const char *name, WFlags ) | |||
108 | setup_signalblocking(); | 108 | setup_signalblocking(); |
109 | settings = new Settings(); | 109 | settings = new Settings(); |
110 | folderView->populate( settings->getAccounts() ); | 110 | folderView->populate( settings->getAccounts() ); |
111 | connect(folderView,SIGNAL(refreshMenues(int)),this,SLOT(refreshMenu(int))); | ||
111 | } | 112 | } |
112 | 113 | ||
113 | OpieMail::~OpieMail() | 114 | OpieMail::~OpieMail() |
@@ -386,3 +387,43 @@ void OpieMail::reEditMail() | |||
386 | compose.slotAdjustColumns(); | 387 | compose.slotAdjustColumns(); |
387 | QPEApplication::execDialog( &compose ); | 388 | QPEApplication::execDialog( &compose ); |
388 | } | 389 | } |
390 | |||
391 | void 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 | |||
425 | void 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 | |||
@@ -3,9 +3,11 @@ | |||
3 | 3 | ||
4 | #include "mainwindow.h" | 4 | #include "mainwindow.h" |
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 | ||
10 | class OpieMail : public MainWindow | 12 | class OpieMail : public MainWindow |
11 | { | 13 | { |
@@ -35,6 +37,8 @@ protected slots: | |||
35 | virtual void mailLeftClicked( int, QListViewItem *,const QPoint&,int ); | 37 | virtual void mailLeftClicked( int, QListViewItem *,const QPoint&,int ); |
36 | virtual void slotMoveCopyMail(); | 38 | virtual void slotMoveCopyMail(); |
37 | virtual void reEditMail(); | 39 | virtual void reEditMail(); |
40 | virtual void serverSelected(int); | ||
41 | virtual void refreshMenu(int); | ||
38 | 42 | ||
39 | protected: | 43 | protected: |
40 | void setup_signalblocking(); | 44 | void setup_signalblocking(); |