Folder identities not used when composer opened from Kontact's new mail action.

svn path=/trunk/kdepim/; revision=405867
wilder-work
Paul Sprakes 21 years ago
parent 63081f9e1d
commit 3ca71dc064
  1. 8
      kmailIface.h
  2. 47
      kmkernel.cpp
  3. 9
      kmkernel.h

@ -112,7 +112,13 @@ k_dcop_signals:
k_dcop_hidden:
/** DCOP call which is used by the Kontact plugin to create a new message. */
virtual DCOPRef newMessage() = 0;
virtual DCOPRef newMessage(const QString &to,
const QString &cc,
const QString& bcc,
bool hidden,
bool useFolderId,
const KURL &messageFile,
const KURL &attachURL) = 0;
virtual bool showMail( Q_UINT32 serialNumber, QString messageId ) = 0;
/**

@ -537,25 +537,41 @@ DCOPRef KMKernel::openComposer(const QString &to, const QString &cc,
return DCOPRef(cWin);
}
DCOPRef KMKernel::newMessage()
DCOPRef KMKernel::newMessage(const QString &to,
const QString &cc,
const QString &bcc,
bool hidden,
bool useFolderId,
const KURL &messageFile,
const KURL &attachURL)
{
KMFolder *folder = 0;
KMMainWidget *widget = getKMMainWidget();
if ( widget && widget->folderTree() )
folder = widget->folderTree()->currentFolder();
// the following code is basically the same as in KMMainWidget::slotCompose()
KMComposeWin *win;
KMMessage *msg = new KMMessage;
if ( folder ) {
msg->initHeader( folder->identity() );
win = new KMComposeWin( msg, folder->identity() );
if ( useFolderId ) {
//create message with required folder identity
KMFolder *folder = currentFolder();
uint id = folder ? folder->identity() : 0;
msg->initHeader( id );
win = new KMComposeWin( msg, id );
} else {
msg->initHeader();
win = new KMComposeWin( msg );
}
win->show();
msg->setCharset("utf-8");
//set basic headers
if (!to.isEmpty()) msg->setTo(to);
if (!cc.isEmpty()) msg->setCc(cc);
if (!bcc.isEmpty()) msg->setBcc(bcc);
//Add the attachment if we have one
if(!attachURL.isEmpty() && attachURL.isValid()) {
win->addAttach(attachURL);
}
//only show window when required
if(!hidden) {
win->show();
}
return DCOPRef( win );
}
@ -2054,4 +2070,13 @@ QValueList< QGuardedPtr<KMFolder> > KMKernel::allFolders()
return folders;
}
KMFolder *KMKernel::currentFolder() {
KMMainWidget *widget = getKMMainWidget();
KMFolder *folder = 0;
if ( widget && widget->folderTree() ) {
folder = widget->folderTree()->currentFolder();
}
return folder;
}
#include "kmkernel.moc"

@ -127,7 +127,13 @@ public:
const QString &body,bool hidden);
/** DCOP call used by the Kontact plugin to create a new message. */
DCOPRef newMessage();
DCOPRef newMessage(const QString &to,
const QString &cc,
const QString &bcc,
bool hidden,
bool useFolderId,
const KURL &messageFile,
const KURL &attachURL);
int sendCertificate( const QString& to, const QByteArray& certData );
@ -332,6 +338,7 @@ signals:
private:
void openReader( bool onlyCheck );
KMFolder *currentFolder();
KMFolder *the_inboxFolder;
KMFolder *the_outboxFolder;

Loading…
Cancel
Save