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

List:       kde-commits
Subject:    kdepim
From:       Paul Sprakes <kdecvs () sprakes ! co ! uk>
Date:       2005-04-16 10:32:15
Message-ID: 20050416103215.BAAA33CA () office ! kde ! org
[Download RAW message or body]

CVS commit by sprakes: 

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


  M +7 -1      kmail/kmailIface.h   1.39
  M +36 -11    kmail/kmkernel.cpp   1.332
  M +8 -1      kmail/kmkernel.h   1.135
  M +3 -3      kontact/plugins/kmail/kmail_plugin.cpp   1.50


--- kdepim/kmail/kmailIface.h  #1.38:1.39
@@ -113,5 +113,11 @@ 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;

--- kdepim/kmail/kmkernel.cpp  #1.331:1.332
@@ -538,23 +538,39 @@ DCOPRef KMKernel::openComposer(const QSt
 }
 
-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 );
 }
@@ -2055,3 +2071,12 @@ QValueList< QGuardedPtr<KMFolder> > KMKe
 }
 
+KMFolder *KMKernel::currentFolder() {
+  KMMainWidget *widget = getKMMainWidget();
+  KMFolder *folder = 0;
+  if ( widget && widget->folderTree() ) {
+    folder = widget->folderTree()->currentFolder();
+  }
+  return folder;        
+}
+
 #include "kmkernel.moc"

--- kdepim/kmail/kmkernel.h  #1.134:1.135
@@ -128,5 +128,11 @@ public:
 
   /** 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 );
@@ -333,4 +339,5 @@ signals:
 private:
   void openReader( bool onlyCheck );
+  KMFolder *currentFolder();
 
   KMFolder *the_inboxFolder;

--- kdepim/kontact/plugins/kmail/kmail_plugin.cpp  #1.49:1.50
@@ -105,7 +105,7 @@ void KMailPlugin::openComposer( const KU
   if ( mStub ) {
     if ( attach.isValid() )
-      mStub->openComposer( "", "", "", "", "", false, KURL(), attach );
+      mStub->newMessage( "", "", "", false, true, KURL(), attach );
     else
-      mStub->newMessage();
+      mStub->newMessage( "", "", "", false, true, KURL(), KURL() );
   }
 }
@@ -116,5 +116,5 @@ void KMailPlugin::openComposer( const QS
   Q_ASSERT( mStub );
   if ( mStub ) {
-      mStub->openComposer( to, "", "", "", "", 0 );
+    mStub->newMessage( to, "", "", false, true, KURL(), KURL() );
   }
 }


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

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