[haiku-commits] r41266 - haiku/trunk/src/apps/mail

  • From: philippe.houdoin@xxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Tue, 19 Apr 2011 11:38:38 +0200 (CEST)

Author: phoudoin
Date: 2011-04-19 11:38:37 +0200 (Tue, 19 Apr 2011)
New Revision: 41266
Changeset: https://dev.haiku-os.org/changeset/41266
Ticket: https://dev.haiku-os.org/ticket/4789

Modified:
   haiku/trunk/src/apps/mail/Header.cpp
   haiku/trunk/src/apps/mail/MailWindow.cpp
Log:
Patch by Sean "jalopeura" Healy: save and restore account and encoding of draft 
mails. 
This fix #4789. Thanks.


Modified: haiku/trunk/src/apps/mail/Header.cpp
===================================================================
--- haiku/trunk/src/apps/mail/Header.cpp        2011-04-18 23:44:20 UTC (rev 
41265)
+++ haiku/trunk/src/apps/mail/Header.cpp        2011-04-19 09:38:37 UTC (rev 
41266)
@@ -640,6 +640,13 @@
                        int32 account;
                        if (msg->FindInt32("id",(int32 *)&account) >= B_OK)
                                fAccountID = account;
+                       
+                       BMessage message(FIELD_CHANGED);
+                       // field doesn't matter; no special processing for this 
field
+                       // it's just to turn on the save button
+                       message.AddInt32("bitmask", 0);
+                       Window()->PostMessage(&message, Window());
+                       
                        break;
                }
 
@@ -654,6 +661,13 @@
                        message.what = CHARSET_CHOICE_MADE;
                        message.AddInt32 ("charset", fCharacterSetUserSees);
                        Window()->PostMessage (&message, Window());
+                       
+                       BMessage message2(FIELD_CHANGED);
+                       // field doesn't matter; no special processing for this 
field
+                       // it's just to turn on the save button
+                       message2.AddInt32("bitmask", 0);
+                       Window()->PostMessage(&message2, Window());
+                       
                        break;
                }
        }

Modified: haiku/trunk/src/apps/mail/MailWindow.cpp
===================================================================
--- haiku/trunk/src/apps/mail/MailWindow.cpp    2011-04-18 23:44:20 UTC (rev 
41265)
+++ haiku/trunk/src/apps/mail/MailWindow.cpp    2011-04-19 09:38:37 UTC (rev 
41266)
@@ -2545,6 +2545,18 @@
                WriteAttrString(&draft, B_MAIL_ATTR_CC, 
fHeaderView->fCc->Text());
        if (fHeaderView->fBcc != NULL)
                WriteAttrString(&draft, B_MAIL_ATTR_BCC, 
fHeaderView->fBcc->Text());
+       
+       // Add account
+       //BMenuItem* accountItem = fHeaderView->fAccountMenu->FindMarked();
+       //WriteAttrString(&draft, B_MAIL_ATTR_ACCOUNT, accountItem->Label());
+       WriteAttrString(&draft, B_MAIL_ATTR_ACCOUNT,
+               fHeaderView->fAccountMenu->FindMarked()->Label());
+       
+       // Add encoding
+       //BMenuItem* encodingItem = fHeaderView->fEncodingMenu->FindMarked();
+       //WriteAttrString(&draft, "MAIL:encoding", encodingItem->Label());
+       WriteAttrString(&draft, "MAIL:encoding",
+               fHeaderView->fEncodingMenu->FindMarked()->Label());
 
        // Add the draft attribute for indexing
        uint32 draftAttr = true;
@@ -2785,7 +2797,21 @@
                        fHeaderView->fCc->SetText(string.String());
                if (node.ReadAttrString(B_MAIL_ATTR_BCC, &string) == B_OK)
                        fHeaderView->fBcc->SetText(string.String());
-
+               
+               // Restore account
+               if (node.ReadAttrString(B_MAIL_ATTR_ACCOUNT, &string) == B_OK) {
+                       BMenuItem* accountItem = 
fHeaderView->fAccountMenu->FindItem(string.String());
+                       if (accountItem != NULL)
+                               accountItem->SetMarked(true);
+               }
+               
+               // Restore encoding
+               if (node.ReadAttrString("MAIL:encoding", &string) == B_OK) {
+                       BMenuItem* encodingItem = 
fHeaderView->fEncodingMenu->FindItem(string.String());
+                       if (encodingItem != NULL)
+                               encodingItem->SetMarked(true);
+               }
+               
                // Restore attachments
                if (node.ReadAttrString("MAIL:attachments", &string) == B_OK) {
                        BMessage msg(REFS_RECEIVED);


Other related posts: