svn path=/branches/work/akonadi-ports/kdepim/; revision=1042263
wilder-work
Laurent Montel 17 years ago
parent 09c8a837be
commit 04784eab86
  1. 49
      kmcommands.cpp
  2. 2
      kmcommands.h
  3. 33
      kmmainwidget.cpp
  4. 2
      tests/CMakeLists.txt
  5. 13
      util.cpp
  6. 5
      util.h

@ -211,19 +211,6 @@ KMCommand::~KMCommand()
{
}
KMime::Message *KMCommand::message( const Akonadi::Item & item )
{
if ( !item.hasPayload<KMime::Message::Ptr>() ) {
kWarning() << "Payload is not a MessagePtr!";
return 0;
}
KMime::Message *msg = new KMime::Message;
msg->setContent( item.payloadData() );
msg->parse();
return msg;
}
KMCommand::Result KMCommand::result() const
{
if ( mResult == Undefined ) {
@ -529,7 +516,7 @@ KMCommand::Result KMMailtoReplyCommand::execute()
if ( !item.isValid() /*TODO Port || !msg->codec() */) { //TODO Reuse codec() from libmessageviewer/nodehelper
return Failed;
}
KMime::Message *msg = message( item );
KMime::Message *msg = KMail::Util::message( item );
KMime::Message *rmsg = KMail::MessageHelper::createReply( msg, KMail::ReplyNone, mSelection );
rmsg->to()->fromUnicodeString( MessageViewer::StringUtil::decodeMailtoUrl( mUrl.path() ), "utf-8" ); //TODO Check the UTF-8
@ -560,7 +547,7 @@ KMCommand::Result KMMailtoForwardCommand::execute()
if ( !item.isValid() /*|| !msg->codec() Port to KMime::message*/) {
return Failed;
}
KMime::Message *msg = message( item );
KMime::Message *msg = KMail::Util::message( item );
KMime::Message *fmsg = KMail::MessageHelper::createForward( msg );
fmsg->to()->fromUnicodeString( MessageViewer::StringUtil::decodeMailtoUrl( mUrl.path() ), "utf-8" ); //TODO check the utf-8
@ -706,7 +693,7 @@ KMCommand::Result KMEditMsgCommand::execute()
!kmkernel->folderIsTemplates( item.parentCollection() ) ) ) {
return Failed;
}
KMime::Message *msg = message( item );
KMime::Message *msg = KMail::Util::message( item );
#if 0
// Remember the old parent, we need it a bit further down to be able
// to put the unchanged messsage back in the original folder if the nth
@ -1118,7 +1105,7 @@ KMCommand::Result KMReplyToCommand::execute()
if ( !item.isValid() ) {
return Failed;
}
KMime::Message *msg = message( item );
KMime::Message *msg = KMail::Util::message( item );
KMail::MessageHelper::MessageReply reply = KMail::MessageHelper::createReply2( msg, KMail::ReplySmart, mSelection );
KMail::Composer * win = KMail::makeComposer( reply.msg, replyContext( reply ), 0, mSelection );
#if 0 //Port to kmime::message
@ -1148,7 +1135,7 @@ KMCommand::Result KMNoQuoteReplyToCommand::execute()
if ( !item.isValid() ) {
return Failed;
}
KMime::Message *msg = message( item );
KMime::Message *msg = KMail::Util::message( item );
KMail::MessageHelper::MessageReply reply = KMail::MessageHelper::createReply2( msg, KMail::ReplySmart, "", true);
KMail::Composer *win = KMail::makeComposer( reply.msg, replyContext( reply ) );
#if 0 //Port to akonadi
@ -1177,7 +1164,7 @@ KMCommand::Result KMReplyListCommand::execute()
if ( !item.isValid() ) {
return Failed;
}
KMime::Message *msg = message( item );
KMime::Message *msg = KMail::Util::message( item );
KMail::MessageHelper::MessageReply reply = KMail::MessageHelper::createReply2( msg, KMail::ReplyList, mSelection );
KMail::Composer * win = KMail::makeComposer( reply.msg, replyContext( reply ),
0, mSelection );
@ -1208,7 +1195,7 @@ KMCommand::Result KMReplyToAllCommand::execute()
return Failed;
}
KMime::Message *msg = message( item );
KMime::Message *msg = KMail::Util::message( item );
KMail::MessageHelper::MessageReply reply = KMail::MessageHelper::createReply2( msg, KMail::ReplyAll, mSelection );
KMail::Composer * win = KMail::makeComposer( reply.msg, replyContext( reply ), 0,
mSelection );
@ -1238,7 +1225,7 @@ KMCommand::Result KMReplyAuthorCommand::execute()
if ( !item.isValid() ) {
return Failed;
}
KMime::Message *msg = message( item );
KMime::Message *msg = KMail::Util::message( item );
KMail::MessageHelper::MessageReply reply = KMail::MessageHelper::createReply2( msg, KMail::ReplyAuthor, mSelection );
KMail::Composer * win = KMail::makeComposer( reply.msg, replyContext( reply ), 0,
mSelection );
@ -1395,7 +1382,7 @@ KMCommand::Result KMForwardCommand::execute()
if ( !item.isValid() /*|| !item->codec() Port it*/ )
return Failed;
KMime::Message *msg = message( item );
KMime::Message *msg = KMail::Util::message( item );
KCursorSaver busy(KBusyPtr::busy());
KMime::Message *fwdMsg = KMail::MessageHelper::createForward(msg);
@ -1441,7 +1428,7 @@ KMCommand::Result KMForwardAttachedCommand::execute()
}
else if (msgList.count() == 1) {
Akonadi::Item item = msgList.first();
KMime::Message *msg = message( item );
KMime::Message *msg = KMail::Util::message( item );
KMail::MessageHelper::initFromMessage(fwdMsg, msg);
fwdMsg->subject()->fromUnicodeString( KMail::MessageHelper::forwardSubject(msg),"utf-8" );
delete msg;
@ -1453,7 +1440,7 @@ KMCommand::Result KMForwardAttachedCommand::execute()
// iterate through all the messages to be forwarded
Akonadi::Item itemMsg;
foreach ( itemMsg, msgList ) {
KMime::Message *msg = message( itemMsg );
KMime::Message *msg = KMail::Util::message( itemMsg );
// remove headers that shouldn't be forwarded
KMail::MessageHelper::removePrivateHeaderFields(msg);
msg->removeHeader("BCC");
@ -1502,7 +1489,7 @@ KMCommand::Result KMRedirectCommand::execute()
if ( dlg->exec() == QDialog::Rejected || !dlg ) {
return Failed;
}
KMime::Message *msg = message( item );
KMime::Message *msg = KMail::Util::message( item );
KMime::Message *newMsg = KMail::MessageHelper::createRedirect( msg, dlg->to() );
KMFilterAction::sendMDN( msg, KMime::MDN::Dispatched );
@ -1533,7 +1520,7 @@ KMCommand::Result KMCustomReplyToCommand::execute()
if ( !item.isValid() /*|| !msg->codec()*/ /*TODO port it */ ) {
return Failed;
}
KMime::Message *msg = message( item );
KMime::Message *msg = KMail::Util::message( item );
KMail::MessageHelper::MessageReply reply = KMail::MessageHelper::createReply2( msg, KMail::ReplySmart, mSelection,
false, true, false, mTemplate );
KMail::Composer * win = KMail::makeComposer( reply.msg, replyContext( reply ), 0,
@ -1566,7 +1553,7 @@ KMCommand::Result KMCustomReplyAllToCommand::execute()
if ( !item.isValid() /*|| !msg->codec() Port to kmime*/ ) {
return Failed;
}
KMime::Message *msg = message( item );
KMime::Message *msg = KMail::Util::message( item );
KMail::MessageHelper::MessageReply reply = KMail::MessageHelper::createReply2( msg, KMail::ReplyAll, mSelection,
false, true, false, mTemplate );
KMail::Composer * win = KMail::makeComposer( reply.msg, replyContext( reply ), 0,
@ -1649,7 +1636,7 @@ KMCommand::Result KMCustomForwardCommand::execute()
if ( !item.isValid() /*|| !msg->codec() Port to akonadi*/ ) {
return Failed;
}
KMime::Message *msg = message( item );
KMime::Message *msg = KMail::Util::message( item );
KCursorSaver busy( KBusyPtr::busy() );
KMime::Message *fwdMsg = KMail::MessageHelper::createForward( msg, mTemplate );
@ -2014,7 +2001,7 @@ KMCommand::Result KMMailingListFilterCommand::execute()
if ( !item.isValid() ) {
return Failed;
}
KMime::Message *msg = message( item );
KMime::Message *msg = KMail::Util::message( item );
if ( !MailingList::name( msg, name, value ).isEmpty() ) {
kmkernel->filterMgr()->createFilter( name, value );
delete msg;
@ -2818,7 +2805,7 @@ KMCommand::Result KMResendMessageCommand::execute()
if ( !item.isValid() /*|| !msg->codec()*/ ) {
return Failed;
}
KMime::Message *msg = message( item );
KMime::Message *msg = KMail::Util::message( item );
#if 0
newMsg->setCharset( msg->codec()->name() );
#endif
@ -3282,7 +3269,7 @@ KMCommand::Result CreateTodoCommand::execute()
if ( !item.isValid() /*|| !msg->codec()*/ ) {
return Failed;
}
KMime::Message *msg = message( item );
KMime::Message *msg = KMail::Util::message( item );
KMail::KorgHelper::ensureRunning();
QString txt = i18n("From: %1\nTo: %2\nSubject: %3", msg->from()->asUnicodeString(),

@ -91,8 +91,6 @@ protected:
// Returns the parent widget
QWidget *parentWidget() const;
KMime::Message *message(const Akonadi::Item & );
bool deletesItself() const { return mDeletesItself; }
/** Specify whether the subclass takes care of the deletion of the object.
By default the base class will delete the object.

@ -133,6 +133,8 @@ using KMail::TemplateParser;
#include "actionscheduler.h"
#include "accountwizard.h"
#include "expirypropertiesdialog.h"
#include <akonadi/itemfetchjob.h>
#include "util.h"
#if !defined(NDEBUG)
#include "sievedebugdialog.h"
@ -1362,24 +1364,29 @@ void KMMainWidget::slotShowNewFromTemplate()
if ( !mTemplateFolder.isValid() ) {
mTemplateFolder = kmkernel->templatesCollectionFolder();
}
if ( !mTemplateFolder.isValid() ) return;
if ( !mTemplateFolder.isValid() )
return;
mTemplateMenu->menu()->clear();
#if 0
for ( int idx = 0; idx<mTemplateFolder->count(); ++idx ) {
KMime::Message *mb = mTemplateFolder->getMsgBase( idx );
Akonadi::ItemFetchJob *job = new Akonadi::ItemFetchJob( mTemplateFolder );
Akonadi::Item::List items;
if ( job->exec() ) {
items = job->items();
}
for ( int idx = 0; idx < items.count(); ++idx ) {
KMime::Message *msg = KMail::Util::message( items.at( idx ) );
QString subj = mb->subject()->asUnicodeString();
QString subj = msg->subject()->asUnicodeString();
if ( subj.isEmpty() )
subj = i18n("No Subject");
QAction *templateAction = mTemplateMenu->menu()->addAction(
KStringHandler::rsqueeze( subj.replace( '&', "&&" ) ) );
templateAction->setData( idx );
QVariant var;
var.setValue( items.at( idx ) );
templateAction->setData( var );
}
#else
kDebug() << "AKONADI PORT: Disabled code in " << Q_FUNC_INFO;
#endif
// If there are no templates available, add a menu entry which informs
// the user about this.
if ( mTemplateMenu->menu()->actions().isEmpty() ) {
@ -1395,11 +1402,8 @@ void KMMainWidget::slotNewFromTemplate( QAction *action )
{
if ( !mTemplateFolder.isValid() )
return;
#if 0
newFromTemplate( mTemplateFolder->getMsg( action->data().toInt() ) );
#else
kDebug() << "AKONADI PORT: Disabled code in " << Q_FUNC_INFO;
#endif
Akonadi::Item item = action->data().value<Akonadi::Item>();
newFromTemplate( item );
}
@ -1641,6 +1645,7 @@ void KMMainWidget::slotMarkAllAsRead()
if (!mCurrentFolder)
return;
mCurrentFolder->markUnreadAsRead();
updateMessageActions();
}
//-----------------------------------------------------------------------------

@ -1,5 +1,5 @@
set( EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR} )
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${KDE4_ENABLE_EXCEPTIONS}")
include_directories(
${CMAKE_SOURCE_DIR}/mimelib
${CMAKE_SOURCE_DIR}/kmail

@ -189,3 +189,16 @@ bool KMail::Util::RecursionPreventer::isRecursive() const
return mCounter > 1;
}
KMime::Message *KMail::Util::message( const Akonadi::Item & item )
{
if ( !item.hasPayload<KMime::Message::Ptr>() ) {
kWarning() << "Payload is not a MessagePtr!";
return 0;
}
KMime::Message *msg = new KMime::Message;
msg->setContent( item.payloadData() );
msg->parse();
return msg;
}

@ -45,7 +45,8 @@
#include <kio/netaccess.h>
#include <kmessagebox.h>
#include <klocale.h>
#include <akonadi/item.h>
#include <kmime/kmime_message.h>
class DwString;
class KUrl;
@ -114,6 +115,8 @@ namespace Util {
*/
bool validateAddresses( QWidget *parent, const QString &addresses );
KMime::Message *message( const Akonadi::Item & item );
/**
* A LaterDeleter is intended to be used with the RAII ( Resource

Loading…
Cancel
Save