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

List:       kde-pim
Subject:    [Kde-pim]
From:       Thomas Zander <zander () kde ! org>
Date:       2005-06-10 18:17:25
Message-ID: 200506102017.38766.zander () kde ! org
[Download RAW message or body]

[Attachment #2 (multipart/signed)]


In implenting 76395 I removed some entries that don't make sense based on 
the folder the mail is in.

Quick example is that reply is removed (but forward is kept) in the sent 
mail folder.

What I was not so sure about is why the delete and the move to trash actions 
are currently both in the menu; so I ask you this:
is it ok (as the attached patch does) to only show the move to trash for 
most folders.
Except for the trash folder, where the delete actions are shown.

Comments with cc, please.
-- 
Thomas Zander

[Attachment #5 (application/pgp-signature)]
["bug76395.diff" (text/x-diff)]

Index: kmheaders.cpp
===================================================================
--- kmheaders.cpp	(revision 424067)
+++ kmheaders.cpp	(working copy)
@@ -2244,7 +2244,8 @@
      mOwner->editAction()->plug(menu);
   else {
      // show most used actions
-     mOwner->replyMenu()->plug(menu);
+     if( !mFolder->isSent() )
+       mOwner->replyMenu()->plug(menu);
      mOwner->forwardMenu()->plug(menu);
      if(mOwner->sendAgainAction()->isEnabled()) {
        mOwner->sendAgainAction()->plug(menu);
@@ -2288,11 +2289,14 @@
   mOwner->saveAttachmentsAction()->plug(menu);
   mOwner->printAction()->plug(menu);
   menu->insertSeparator();
-  mOwner->trashAction()->plug(menu);
-  mOwner->deleteAction()->plug(menu);
-  if ( mOwner->trashThreadAction()->isEnabled() ) {
-    mOwner->trashThreadAction()->plug(menu);
-    mOwner->deleteThreadAction()->plug(menu);
+  if ( mFolder->isTrash() ) {
+    mOwner->deleteAction()->plug(menu);
+    if ( mOwner->trashThreadAction()->isEnabled() )
+      mOwner->deleteThreadAction()->plug(menu);
+  } else {
+    mOwner->trashAction()->plug(menu);
+    if ( mOwner->trashThreadAction()->isEnabled() )
+      mOwner->trashThreadAction()->plug(menu);
   }
   KAcceleratorManager::manage(menu);
   kmkernel->setContextMenuShown( true );
Index: kmreadermainwin.cpp
===================================================================
--- kmreadermainwin.cpp	(revision 424069)
+++ kmreadermainwin.cpp	(working copy)
@@ -350,11 +350,12 @@
       return;
     }
 
-    mReplyActionMenu->plug( menu );
-    mForwardActionMenu->plug( menu );
+    if( !aMsg.parent()->isSent() && !aMsg.parent()->isDrafts() ) {
+      mReplyActionMenu->plug( menu );
+      mForwardActionMenu->plug( menu );
+      menu->insertSeparator();
+    }
 
-    menu->insertSeparator();
-
     QPopupMenu* copyMenu = new QPopupMenu(menu);
     KMMainWidget* mainwin = kmkernel->getKMMainWidget();
     if ( mainwin )
Index: kmkernel.cpp
===================================================================
--- kmkernel.cpp	(revision 424068)
+++ kmkernel.cpp	(working copy)
@@ -1834,9 +1834,17 @@
 bool KMKernel::folderIsDraftOrOutbox(const KMFolder * folder)
 {
   assert( folder );
-  if ( folder == the_outboxFolder || folder == the_draftsFolder )
+  if ( folder == the_outboxFolder )
     return true;
+  return folderIsDrafts( folder );
+}
 
+bool KMKernel::folderIsDrafts(const KMFolder * folder)
+{
+  assert( folder );
+  if ( folder == the_draftsFolder )
+    return true;
+
   QString idString = folder->idString();
   if ( idString.isEmpty() ) return false;
 
Index: kmmainwidget.cpp
===================================================================
--- kmmainwidget.cpp	(revision 424069)
+++ kmmainwidget.cpp	(working copy)
@@ -2120,6 +2120,7 @@
       mMsgView->mailToComposeAction()->plug( menu );
       mMsgView->mailToReplyAction()->plug( menu );
       mMsgView->mailToForwardAction()->plug( menu );
+
       menu->insertSeparator();
       mMsgView->addAddrBookAction()->plug( menu );
       mMsgView->openAddrBookAction()->plug( menu );
@@ -2151,6 +2152,9 @@
   if(mMsgView && !mMsgView->copyText().isEmpty()) {
     if ( urlMenuAdded )
       menu->insertSeparator();
+    mReplyActionMenu->plug(menu);
+    menu->insertSeparator();
+
     mMsgView->copyAction()->plug( menu );
     mMsgView->selectAllAction()->plug( menu );
   } else  if ( !urlMenuAdded )
@@ -2163,12 +2167,12 @@
       return;
     }
 
-    bool out_folder = kmkernel->folderIsDraftOrOutbox(mFolder);
-    if ( out_folder ) {
+    if ( mFolder->isDrafts() || mFolder->isOutbox() ) {
       mEditAction->plug(menu);
     }
     else {
-      mReplyActionMenu->plug(menu);
+      if( !mFolder->isSent() )
+        mReplyActionMenu->plug(menu);
       mForwardActionMenu->plug(menu);
     }
     menu->insertSeparator();
@@ -2191,8 +2195,10 @@
     mSaveAttachmentsAction->plug( menu );
 
     menu->insertSeparator();
-    mTrashAction->plug( menu );
-    mDeleteAction->plug( menu );
+    if( mFolder->isTrash() )
+      mDeleteAction->plug( menu );
+    else
+      mTrashAction->plug( menu );
   }
   KAcceleratorManager::manage(menu);
   menu->exec(aPoint, 0);
Index: kmfolder.h
===================================================================
--- kmfolder.h	(revision 424069)
+++ kmfolder.h	(working copy)
@@ -79,6 +79,22 @@
             KMFolderType aFolderType );
   ~KMFolder();
 
+  bool isMainInbox() {
+    return this == KMKernel::self()->inboxFolder();
+  }
+  bool isOutbox() {
+    return this == KMKernel::self()->outboxFolder();
+  }
+  bool isSent() {
+    return KMKernel::self()->folderIsSentMailFolder( this );
+  }
+  bool isTrash() {
+    return KMKernel::self()->folderIsTrash( this );
+  }
+  bool isDrafts() {
+    return KMKernel::self()->folderIsDrafts( this );
+  }
+
   /** This is used by the storage to read the folder specific configuration */
   void readConfig( KConfig* config );
 
Index: kmkernel.h
===================================================================
--- kmkernel.h	(revision 424067)
+++ kmkernel.h	(working copy)
@@ -190,6 +190,7 @@
   void byteArrayToRemoteFile(const QByteArray&, const KURL&,
 			     bool overwrite = FALSE);
   bool folderIsDraftOrOutbox(const KMFolder *);
+  bool folderIsDrafts(const KMFolder *);
   bool folderIsTrash(KMFolder *);
   /**
    * Returns true if the folder is one of the sent-mail folders.


_______________________________________________
kde-pim mailing list
kde-pim@kde.org
https://mail.kde.org/mailman/listinfo/kde-pim
kde-pim home page at http://pim.kde.org/

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

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