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

List:       kmail-devel
Subject:    Re: [PATCH] Use folder identity when composing from kontact/dcop
From:       Paul Sprakes <paul () sprakes ! co ! uk>
Date:       2005-04-15 9:08:48
Message-ID: 200504151008.49554.paul () sprakes ! co ! uk
[Download RAW message or body]

> Is this one OK to commit?

Anyone?

["kmail-kontact_folder-ident.patch" (text/x-diff)]

Index: kmail/kmailIface.h
===================================================================
RCS file: /home/kde/kdepim/kmail/kmailIface.h,v
retrieving revision 1.38
diff -U3 -r1.38 kmailIface.h
--- kmail/kmailIface.h	31 Jan 2005 23:13:47 -0000	1.38
+++ kmail/kmailIface.h	12 Apr 2005 11:15:07 -0000
@@ -112,7 +112,13 @@
 
 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;
   /**
Index: kmail/kmkernel.cpp
===================================================================
RCS file: /home/kde/kdepim/kmail/kmkernel.cpp,v
retrieving revision 1.331
diff -U3 -r1.331 kmkernel.cpp
--- kmail/kmkernel.cpp	5 Apr 2005 18:15:03 -0000	1.331
+++ kmail/kmkernel.cpp	12 Apr 2005 11:15:09 -0000
@@ -537,25 +537,41 @@
   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 @@
   return folders;
 }
 
+KMFolder *KMKernel::currentFolder() {
+  KMMainWidget *widget = getKMMainWidget();
+  KMFolder *folder = 0;
+  if ( widget && widget->folderTree() ) {
+    folder = widget->folderTree()->currentFolder();
+  }
+  return folder;	
+}
+
 #include "kmkernel.moc"
Index: kmail/kmkernel.h
===================================================================
RCS file: /home/kde/kdepim/kmail/kmkernel.h,v
retrieving revision 1.134
diff -U3 -r1.134 kmkernel.h
--- kmail/kmkernel.h	5 Apr 2005 20:38:21 -0000	1.134
+++ kmail/kmkernel.h	12 Apr 2005 11:15:10 -0000
@@ -127,7 +127,13 @@
                        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 @@
 
 private:
   void openReader( bool onlyCheck );
+  KMFolder *currentFolder();
 
   KMFolder *the_inboxFolder;
   KMFolder *the_outboxFolder;
Index: kontact/plugins/kmail/kmail_plugin.cpp
===================================================================
RCS file: /home/kde/kdepim/kontact/plugins/kmail/kmail_plugin.cpp,v
retrieving revision 1.49
diff -U3 -r1.49 kmail_plugin.cpp
--- kontact/plugins/kmail/kmail_plugin.cpp	25 Mar 2005 21:23:59 -0000	1.49
+++ kontact/plugins/kmail/kmail_plugin.cpp	12 Apr 2005 11:15:12 -0000
@@ -104,9 +104,9 @@
   Q_ASSERT( mStub );
   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() );
   }
 }
 
@@ -115,7 +115,7 @@
   (void) part(); // ensure part is loaded
   Q_ASSERT( mStub );
   if ( mStub ) {
-      mStub->openComposer( to, "", "", "", "", 0 );
+    mStub->newMessage( to, "", "", false, true, KURL(), KURL() );
   }
 }
 


_______________________________________________
KMail developers mailing list
KMail-devel@kde.org
https://mail.kde.org/mailman/listinfo/kmail-devel


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

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