Fix actions when message is encapsuled (when action doesn't need to access to server => trash/annotate is disable for encapsuled message)

CCMAIL: faure@kde.org
wilder-work
Montel Laurent 15 years ago
parent 3400ebc459
commit 5041bda16e
  1. 23
      kmreadermainwin.cpp
  2. 2
      kmreaderwin.cpp
  3. 23
      messageactions.cpp

@ -148,6 +148,11 @@ void KMReaderMainWin::showMessage( const QString & encoding, const Akonadi::Item
void KMReaderMainWin::showMessage( const QString& encoding, KMime::Message::Ptr message )
{
Akonadi::Item item( "message/rfc822" );
item.setPayload( message );
mMsg = item;
mMsgActions->setCurrentMessage( item );
mReaderWin->setOverrideEncoding( encoding );
mReaderWin->setMessage( message );
if ( message )
@ -180,8 +185,7 @@ void KMReaderMainWin::slotTrashMsg()
//-----------------------------------------------------------------------------
void KMReaderMainWin::slotForwardInlineMsg()
{
if ( !mReaderWin->message().isValid() ) return;
if ( !mReaderWin->message().hasPayload<KMime::Message::Ptr>() ) return;
KMCommand *command = 0;
if ( mReaderWin->message().parentCollection().isValid() ) {
QSharedPointer<FolderCollection> fd = FolderCollection::forCollection( mReaderWin->message().parentCollection(), false );
@ -201,8 +205,7 @@ void KMReaderMainWin::slotForwardInlineMsg()
//-----------------------------------------------------------------------------
void KMReaderMainWin::slotForwardAttachedMsg()
{
if ( !mReaderWin->message().isValid() )
return;
if ( !mReaderWin->message().hasPayload<KMime::Message::Ptr>() ) return;
KMCommand *command = 0;
if ( mReaderWin->message().parentCollection().isValid() ) {
QSharedPointer<FolderCollection> fd = FolderCollection::forCollection( mReaderWin->message().parentCollection(), false );
@ -223,8 +226,7 @@ void KMReaderMainWin::slotForwardAttachedMsg()
//-----------------------------------------------------------------------------
void KMReaderMainWin::slotRedirectMsg()
{
if( !mReaderWin->message().isValid() )
return;
if ( !mReaderWin->message().hasPayload<KMime::Message::Ptr>() ) return;
KMCommand *command = new KMRedirectCommand( this, mReaderWin->message() );
connect( command, SIGNAL(completed(KMCommand*)),
this, SLOT(slotReplyOrForwardFinished()) );
@ -234,8 +236,7 @@ void KMReaderMainWin::slotRedirectMsg()
//-----------------------------------------------------------------------------
void KMReaderMainWin::slotCustomReplyToMsg( const QString &tmpl )
{
if( !mReaderWin->message().isValid() )
return;
if ( !mReaderWin->message().hasPayload<KMime::Message::Ptr>() ) return;
KMCommand *command = new KMCustomReplyCommand( this,
mReaderWin->message(),
mReaderWin->copyText(),
@ -248,8 +249,7 @@ void KMReaderMainWin::slotCustomReplyToMsg( const QString &tmpl )
//-----------------------------------------------------------------------------
void KMReaderMainWin::slotCustomReplyAllToMsg( const QString &tmpl )
{
if( !mReaderWin->message().isValid() )
return;
if ( !mReaderWin->message().hasPayload<KMime::Message::Ptr>() ) return;
KMCommand *command = new KMCustomReplyCommand( this,
mReaderWin->message(),
mReaderWin->copyText(),
@ -263,8 +263,7 @@ void KMReaderMainWin::slotCustomReplyAllToMsg( const QString &tmpl )
//-----------------------------------------------------------------------------
void KMReaderMainWin::slotCustomForwardMsg( const QString &tmpl)
{
if( !mReaderWin->message().isValid() )
return;
if ( !mReaderWin->message().hasPayload<KMime::Message::Ptr>() ) return;
KMCommand *command = new KMCustomForwardCommand( this,
mReaderWin->message(),
0, tmpl );

@ -583,7 +583,7 @@ void KMReaderWin::slotShowReader( KMime::Content* msgPart, bool htmlMail, const
void KMReaderWin::slotShowMessage( KMime::Message::Ptr message, const QString& encoding )
{
KMReaderMainWin *win = new KMReaderMainWin();
KMReaderMainWin *win = new KMReaderMainWin();
win->showMessage( encoding, message );
win->show();
}

@ -258,6 +258,7 @@ void MessageActions::setSelectedVisibleItems( const Akonadi::Item::List &items )
void MessageActions::updateActions()
{
const bool hasPayload = mCurrentItem.hasPayload<KMime::Message::Ptr>();
bool singleMsg = mCurrentItem.isValid();
Akonadi::Collection parent;
if ( singleMsg ) //=> valid
@ -270,13 +271,13 @@ void MessageActions::updateActions()
const bool multiVisible = mVisibleItems.count() > 0 || mCurrentItem.isValid();
mCreateTodoAction->setEnabled( singleMsg && mKorganizerIsOnSystem);
mReplyActionMenu->setEnabled( singleMsg );
mReplyAction->setEnabled( singleMsg );
mNoQuoteReplyAction->setEnabled( singleMsg );
mReplyAuthorAction->setEnabled( singleMsg );
mReplyAllAction->setEnabled( singleMsg );
mReplyListAction->setEnabled( singleMsg );
mNoQuoteReplyAction->setEnabled( singleMsg );
mReplyActionMenu->setEnabled( /*singleMsg*/hasPayload );
mReplyAction->setEnabled( hasPayload );
mNoQuoteReplyAction->setEnabled( hasPayload );
mReplyAuthorAction->setEnabled( hasPayload );
mReplyAllAction->setEnabled( hasPayload );
mReplyListAction->setEnabled( hasPayload );
mNoQuoteReplyAction->setEnabled( hasPayload );
mAnnotateAction->setEnabled( singleMsg );
mAsynNepomukRetriever->requestResource( mCurrentItem.url(), QVector<QUrl>() << Nepomuk::Resource::descriptionUri() << Nepomuk::Resource::annotationUri() );
@ -366,8 +367,8 @@ void MessageActions::updateMailingListActions( const Akonadi::Item& messageItem
void MessageActions::replyCommand(MessageComposer::ReplyStrategy strategy)
{
if ( !mCurrentItem.isValid() )
return;
if ( !mCurrentItem.hasPayload<KMime::Message::Ptr>() ) return;
const QString text = mMessageView ? mMessageView->copyText() : QString();
KMCommand *command = new KMReplyCommand( mParent, mCurrentItem, strategy, text );
connect( command, SIGNAL(completed(KMCommand*)),
@ -451,7 +452,7 @@ void MessageActions::slotReplyAllToMsg()
void MessageActions::slotNoQuoteReplyToMsg()
{
if ( !mCurrentItem.isValid() )
if ( !mCurrentItem.hasPayload<KMime::Message::Ptr>() )
return;
KMCommand *command = new KMNoQuoteReplyToCommand( mParent, mCurrentItem );
command->start();
@ -531,7 +532,7 @@ void MessageActions::addMailingListAction( const QString &item, const KUrl &url
void MessageActions::editCurrentMessage()
{
if ( !mCurrentItem.isValid() )
if ( !mCurrentItem.hasPayload<KMime::Message::Ptr>() )
return;
KMCommand *command = 0;
Akonadi::Collection col = mCurrentItem.parentCollection();

Loading…
Cancel
Save