[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kmail-devel
Subject:    RMB patch for Folder Pane
From:       Seth Chaiklin <seth () psy ! au ! dk>
Date:       2001-03-30 18:26:19
[Download RAW message or body]

Enjoy....

--=20
seth@psy.au.dk
seth@schutz.psy.au.dk
["Local+IMAPFolderRMB.patch" (text/x-c++)]

--- kmfoldertree.cpp.orig	Fri Mar 30 14:17:05 2001
+++ kmfoldertree.cpp	Fri Mar 30 15:06:14 2001
@@ -25,6 +25,7 @@
 #include "kmfolder.h"
 #include "kmfoldertree.h"
 #include "kmfolderdia.h"
+#include "kmkernel.h"
 #include "kmcomposewin.h"
 #include "kmacctmgr.h"
 #include "kmaccount.h"
@@ -724,34 +725,47 @@
 
   QPopupMenu *folderMenu = new QPopupMenu;
   KMFolderTreeItem* fti = static_cast<KMFolderTreeItem*>(lvi);
-  if (!fti || !fti->folder || fti->folder->isDir())
-    return;
 
-  int m1 = folderMenu->insertItem(i18n("&Create Child Folder..."), this,
-				   SLOT(addChildFolder()));
-  int m2 = folderMenu->insertItem(i18n("&Modify..."), topLevelWidget(),
-				  SLOT(slotModifyFolder()));
+  if (!fti )
+    return;
+  // ignore IMAP root folders
+  if (fti && fti->folder && fti->folder->account() && fti->folder->isDir())
+     return;
+  if ((!fti->folder || fti->folder->isDir()))
+     {
+      folderMenu->insertItem(i18n("&Create Child Folder..."), this,
+                             SLOT(addChildFolder()));
+      folderMenu-> insertItem(i18n("Compact All &Folders"),  
+                     kernel->folderMgr(), SLOT(compactAll()));
+     }
+  else {
+  if ((fti->folder == kernel->outboxFolder()) && (fti->folder->count()) )
+      folderMenu->insertItem(i18n("Send Queued"), topLevelWidget(), 
+                                   SLOT(slotSendQueued()));
+  if (!fti->folder->isSystemFolder()) 
+     {
+     if (!fti->folder->account())  // protect from imap folders 
+         folderMenu->insertItem(i18n("&Create Child Folder..."), this,
+                                       SLOT(addChildFolder()));
+         folderMenu->insertItem(i18n("&Modify..."), topLevelWidget(),
+                                      SLOT(slotModifyFolder()));
+     }
   folderMenu->insertItem(i18n("C&ompact"), topLevelWidget(),
-			 SLOT(slotCompactFolder()));
-  folderMenu->insertSeparator();
-  folderMenu->insertItem(i18n("&Empty"), topLevelWidget(),
-			 SLOT(slotEmptyFolder()));
-  int m3 = folderMenu->insertItem(i18n("&Remove"), topLevelWidget(),
-				  SLOT(slotRemoveFolder()));
-  folderMenu->insertSeparator();
-
-  int m4 = folderMenu->insertItem(i18n("&Post to mailing-list"),
-                                  topLevelWidget(),
-				  SLOT(slotCompose()));
-
-  if (fti->folder->account() || fti->folder->isSystemFolder()) {
-    folderMenu->setItemEnabled(m1,false);
-    folderMenu->setItemEnabled(m3,false);
+                         SLOT(slotCompactFolder()));
+  { 
+     folderMenu->insertSeparator();
+     folderMenu->insertItem(i18n("&Empty"), topLevelWidget(),
+                            SLOT(slotEmptyFolder()));
+  if ( (!fti->folder->isSystemFolder()) && (!fti->folder->account())) 
+        folderMenu->insertItem(i18n("&Remove"), topLevelWidget(),
+                                     SLOT(slotRemoveFolder()));
+     }
+  if (fti->folder->isMailingList()) {
+     folderMenu->insertSeparator();
+     folderMenu->insertItem(i18n("&Post to mailing-list"),
+                                 topLevelWidget(), SLOT(slotCompose()));
+     }
   }
-  if (fti->folder->isSystemFolder())
-    folderMenu->setItemEnabled(m2,false);
-  if (!fti->folder->isMailingList())
-    folderMenu->setItemEnabled(m4,false);
 
   folderMenu->exec (p, 0);
   triggerUpdate();
@@ -809,6 +823,11 @@
       setCurrentItem( qlvi );
     }
   }
+     // update if added to root Folder
+  if (!fti->folder || fti->folder->isDir()) {
+     doFolderListChanged();
+     reload();
+  }
 }
 
 //-----------------------------------------------------------------------------

_______________________________________________
Kmail Developers mailing list
Kmail@master.kde.org
http://master.kde.org/mailman/listinfo/kmail


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic