Add Cc: text field to mails shown when it's not empty.

Patch by Sean Healy 'jalopeura'. Fixes #2446.
This commit is contained in:
Matt Madia 2013-03-27 18:32:33 -04:00
parent 2c74d7a458
commit 5a6b854033
1 changed files with 39 additions and 1 deletions

View File

@ -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