From 5a6b854033916abf2f924f11d6ce8d52c14153bd Mon Sep 17 00:00:00 2001 From: Matt Madia Date: Wed, 27 Mar 2013 18:32:33 -0400 Subject: [PATCH] Add Cc: text field to mails shown when it's not empty. Patch by Sean Healy 'jalopeura'. Fixes #2446. --- src/apps/mail/Header.cpp | 40 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/src/apps/mail/Header.cpp b/src/apps/mail/Header.cpp index b386d1bbc9..60530c83b7 100644 --- a/src/apps/mail/Header.cpp +++ b/src/apps/mail/Header.cpp @@ -391,6 +391,19 @@ THeaderView::THeaderView(BRect rect, BRect windowRect, bool incoming, } y += controlHeight; } + + if (fIncoming) { + --y; + r.Set(SEPARATOR_MARGIN, y, + windowRect.Width() - SEPARATOR_MARGIN, y + menuFieldHeight); + y += controlHeight; + fCc = new TTextControl(r, B_TRANSLATE("Cc:"), + NULL, fIncoming, false, B_FOLLOW_LEFT_RIGHT); + fCc->SetEnabled(false); + fCc->SetDivider(x - 12 - SEPARATOR_MARGIN); + fCc->SetAlignment(B_ALIGN_RIGHT, B_ALIGN_LEFT); + AddChild(fCc); + } --y; r.Set(SEPARATOR_MARGIN, y, @@ -723,8 +736,10 @@ THeaderView::LoadMessage(BEmailMessage *mail) if (fBcc != NULL) fBcc->SetEnabled(false); - if (fCc != NULL) + if (fCc != NULL) { fCc->SetEnabled(false); + fCc->SetText(mail->CC()); + } if (fAccount != NULL) fAccount->SetEnabled(false); @@ -734,6 +749,29 @@ THeaderView::LoadMessage(BEmailMessage *mail) fSubject->SetEnabled(false); fTo->SetEnabled(false); + + // show/hide CC field + bool haveText = false; + if (mail->CC() != NULL && strlen(mail->CC()) > 0) { + haveText = true; + } + bool isHidden = fCc->IsHidden(this); // hidden relative to parent + if (haveText && isHidden) { + float diff = fAccountTo->Frame().top - fTo->Frame().top; + fSubject->MoveBy(0, diff); + fDate->MoveBy(0, diff); + fDateLabel->MoveBy(0, diff); + fCc->Show(); + this->ResizeBy(0, diff); + } + else if (!haveText && !isHidden) { + float diff = fAccountTo->Frame().top - fTo->Frame().top; + fSubject->MoveBy(0, - diff); + fDate->MoveBy(0, - diff); + fDateLabel->MoveBy(0, - diff); + fCc->Hide(); + this->ResizeBy(0, - diff); + } } // Set Subject: & From: fields