Fix show menu even if we show just an attachment

wilder-work
Montel Laurent 13 years ago
parent 7407e950e9
commit f422a2c75d
  1. 83
      kmreadermainwin.cpp

@ -451,11 +451,12 @@ void KMReaderMainWin::showMessagePopup(const Akonadi::Item&msg ,const KUrl&url,c
bool urlMenuAdded = false;
bool copyAdded = false;
const bool messageHasPayload = msg.hasPayload<KMime::Message::Ptr>();
if ( !url.isEmpty() ) {
if ( url.protocol() == QLatin1String( "mailto" ) ) {
// popup on a mailto URL
menu->addAction( mReaderWin->mailToComposeAction() );
if ( msg.hasPayload<KMime::Message::Ptr>() ) {
if ( messageHasPayload ) {
menu->addAction( mReaderWin->mailToReplyAction() );
menu->addAction( mReaderWin->mailToForwardAction() );
menu->addSeparator();
@ -492,8 +493,10 @@ void KMReaderMainWin::showMessagePopup(const Akonadi::Item&msg ,const KUrl&url,c
if ( urlMenuAdded ) {
menu->addSeparator();
}
menu->addAction( mMsgActions->replyMenu() );
menu->addSeparator();
if(messageHasPayload) {
menu->addAction( mMsgActions->replyMenu() );
menu->addSeparator();
}
if( !copyAdded )
menu->addAction( mReaderWin->copyAction() );
menu->addAction( mReaderWin->selectAllAction() );
@ -505,49 +508,47 @@ void KMReaderMainWin::showMessagePopup(const Akonadi::Item&msg ,const KUrl&url,c
menu->addAction( mReaderWin->speakTextAction());
} else if ( !urlMenuAdded ) {
// popup somewhere else (i.e., not a URL) on the message
if (!msg.hasPayload<KMime::Message::Ptr>() ) {
// no message
delete menu;
return;
}
bool replyForwardMenu = false;
Akonadi::Collection col = parentCollection();
if ( col.isValid() ) {
if ( ! ( CommonKernel->folderIsSentMailFolder( col ) ||
CommonKernel->folderIsDrafts( col ) ||
CommonKernel->folderIsTemplates( col ) ) ) {
if (messageHasPayload) {
bool replyForwardMenu = false;
Akonadi::Collection col = parentCollection();
if ( col.isValid() ) {
if ( ! ( CommonKernel->folderIsSentMailFolder( col ) ||
CommonKernel->folderIsDrafts( col ) ||
CommonKernel->folderIsTemplates( col ) ) ) {
replyForwardMenu = true;
}
} else if ( messageHasPayload ) {
replyForwardMenu = true;
}
} else if ( msg.hasPayload<KMime::Message::Ptr>() ) {
replyForwardMenu = true;
}
if ( replyForwardMenu ) {
// add the reply and forward actions only if we are not in a sent-mail,
// templates or drafts folder
menu->addAction( mMsgActions->replyMenu() );
menu->addAction( mMsgActions->forwardMenu() );
menu->addSeparator();
}
menu->addAction( copyActionMenu(menu) );
if ( replyForwardMenu ) {
// add the reply and forward actions only if we are not in a sent-mail,
// templates or drafts folder
menu->addAction( mMsgActions->replyMenu() );
menu->addAction( mMsgActions->forwardMenu() );
menu->addSeparator();
}
menu->addAction( copyActionMenu(menu) );
menu->addSeparator();
if(!imageUrl.isEmpty()) {
menu->addSeparator();
menu->addAction( mReaderWin->copyImageLocation());
menu->addAction( mReaderWin->downloadImageToDiskAction());
menu->addSeparator();
}
if(!imageUrl.isEmpty()) {
menu->addSeparator();
menu->addAction( mReaderWin->copyImageLocation());
menu->addAction( mReaderWin->downloadImageToDiskAction());
menu->addSeparator();
}
menu->addAction( mReaderWin->viewSourceAction() );
menu->addAction( mReaderWin->toggleFixFontAction() );
menu->addAction( mReaderWin->toggleMimePartTreeAction() );
menu->addSeparator();
menu->addAction( mMsgActions->printAction() );
menu->addAction( mReaderWin->saveAsAction() );
menu->addAction( mSaveAtmAction );
if ( msg.isValid() ) {
menu->addSeparator();
menu->addAction( mMsgActions->createTodoAction() );
menu->addAction( mReaderWin->viewSourceAction() );
menu->addAction( mReaderWin->toggleFixFontAction() );
menu->addAction( mReaderWin->toggleMimePartTreeAction() );
menu->addAction( mReaderWin->saveAsAction() );
menu->addAction( mSaveAtmAction );
if ( msg.isValid() ) {
menu->addSeparator();
menu->addAction( mMsgActions->createTodoAction() );
}
} else {
menu->addAction( mReaderWin->toggleFixFontAction() );
menu->addAction( mReaderWin->toggleMimePartTreeAction() );
}
}
KAcceleratorManager::manage(menu);

Loading…
Cancel
Save