SF.net SVN: mahogany: [7186] trunk/M

[email protected]
Newsgroups gmane.mail.mahogany.cvs
Message-ID <[email protected]>
Revision: 7186
          http://svn.sourceforge.net/mahogany/?rev=7186&view=rev
Author:   vadz
Date:     2006-12-25 07:53:48 -0800 (Mon, 25 Dec 2006)

Log Message:
-----------
added partsToOmit parameter to CreateFromMsg() to allow stripping some MIME parts

Modified Paths:
--------------
    trunk/M/include/SendMessage.h
    trunk/M/include/SendMessageCC.h
    trunk/M/src/mail/SendMessageCC.cpp

Modified: trunk/M/include/SendMessage.h
===================================================================
--- trunk/M/include/SendMessage.h	2006-12-25 15:51:29 UTC (rev 7185)
+++ trunk/M/include/SendMessage.h	2006-12-25 15:53:48 UTC (rev 7186)
@@ -89,12 +89,17 @@
 
       @param profile pointer to the profile to use (must be non NULL)
       @param message the original message (can't be NULL)
+      @param protocol which protocol to use for sending
       @param frame the parent window for dialogs, may be NULL
+      @param partsToOmit if non NULL, contains the indices of the MIME parts of
+                         the message (consistent with Message::GetMimePart()
+                         interpretation) to not copy to the new one
     */
    static SendMessage *CreateFromMsg(Profile *profile,
                                      const Message *message,
                                      Protocol protocol = Prot_Default,
-                                     wxFrame *frame = NULL);
+                                     wxFrame *frame = NULL,
+                                     const wxArrayInt *partsToOmit = NULL);
 
    //@}
 

Modified: trunk/M/include/SendMessageCC.h
===================================================================
--- trunk/M/include/SendMessageCC.h	2006-12-25 15:51:29 UTC (rev 7185)
+++ trunk/M/include/SendMessageCC.h	2006-12-25 15:53:48 UTC (rev 7186)
@@ -118,8 +118,7 @@
    SendMessageCC(Profile *profile,
                  Protocol protocol,
                  wxFrame *frame,
-                 const Message *message = NULL,
-                 bool resend = false);
+                 const Message *message = NULL);
 
    /// init the fields for a new message
    void InitNew();
@@ -128,7 +127,7 @@
    void InitResent(const Message *message);
 
    /// init the header and contents from an existing message
-   void InitFromMsg(const Message *message);
+   void InitFromMsg(const Message *message, const wxArrayInt *partsToOmit);
 
    /// common part of InitNew() and InitFromMsg()
    void InitBody();

Modified: trunk/M/src/mail/SendMessageCC.cpp
===================================================================
--- trunk/M/src/mail/SendMessageCC.cpp	2006-12-25 15:51:29 UTC (rev 7185)
+++ trunk/M/src/mail/SendMessageCC.cpp	2006-12-25 15:53:48 UTC (rev 7186)
@@ -217,7 +217,12 @@
                           const Message *message,
                           wxFrame *frame)
 {
-   return new SendMessageCC(profile, Prot_Default, frame, message, true);
+   CHECK( message, NULL, _T("no Message in SendMessage::CreateResent()") );
+
+   SendMessageCC *msg = new SendMessageCC(profile, Prot_Default, frame, message);
+   if ( msg )
+      msg->InitResent(message);
+   return msg;
 }
 
 /* static */
@@ -225,11 +230,15 @@
 SendMessage::CreateFromMsg(Profile *profile,
                            const Message *message,
                            Protocol protocol,
-                           wxFrame *frame)
+                           wxFrame *frame,
+                           const wxArrayInt *partsToOmit)
 {
    CHECK( message, NULL, _T("no Message in SendMessage::CreateFromMsg()") );
 
-   return new SendMessageCC(profile, protocol, frame, message, false);
+   SendMessageCC *msg = new SendMessageCC(profile, protocol, frame, message);
+   if ( msg )
+      msg->InitFromMsg(message, partsToOmit);
+   return msg;
 }
 
 SendMessage::~SendMessage()
@@ -243,8 +252,7 @@
 SendMessageCC::SendMessageCC(Profile *profile,
                              Protocol protocol,
                              wxFrame *frame,
-                             const Message *message,
-                             bool resend)
+                             const Message *message)
 {
    m_frame = frame;
    m_encHeaders = wxFONTENCODING_SYSTEM;
@@ -363,18 +371,10 @@
    if ( READ_CONFIG(profile,MP_USEOUTGOINGFOLDER) )
       m_FccList.push_back(new String(READ_CONFIG_TEXT(profile,MP_OUTGOINGFOLDER)));
 
-   // finally, special init for resent messages
-   // -----------------------------------------
-
-   if ( message )
+   // initialize the message body, unless it's going to be done by our caller
+   // for resent/cloned messages
+   if ( !message )
    {
-      if ( resend )
-         InitResent(message);
-      else
-         InitFromMsg(message);
-   }
-   else
-   {
       InitNew();
    }
 }
@@ -492,7 +492,7 @@
 }
 
 void
-SendMessageCC::InitFromMsg(const Message *message)
+SendMessageCC::InitFromMsg(const Message *message, const wxArrayInt *partsToOmit)
 {
    // the headers must be already encoded in the existing message, don't encode
    // them twice
@@ -569,6 +569,9 @@
    const int count = message->CountParts();
    for(int i = 0; i < count; i++)
    {
+      if ( partsToOmit && partsToOmit->Index(i) != wxNOT_FOUND )
+         continue;
+
       unsigned long len;
       const void *data = message->GetPartContent(i, &len);
       String dispType;


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.