Added text input filters for "To:", "CC:", and "BCC:" fields that filter an eventual

leading "mailto:" from any insertions (like from a clipboard pasting).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18742 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Axel Dörfler
2006-09-04 21:07:46 +00:00
parent 309c11a716
commit 3b57441c75
+19 -1
View File
@@ -102,6 +102,20 @@ struct CompareBStrings {
}; };
const char*
mail_to_filter(const char* text, int32& length, const text_run_array*& runs)
{
if (!strncmp(text, "mailto:", 7)) {
text += 7;
length -= 7;
if (runs != NULL)
runs = NULL;
}
return text;
}
// #pragma mark - THeaderView // #pragma mark - THeaderView
@@ -232,6 +246,7 @@ THeaderView::THeaderView(BRect rect, BRect windowRect, bool incoming,
y += FIELD_HEIGHT; y += FIELD_HEIGHT;
fTo = new TTextControl(r, string, new BMessage(TO_FIELD), fIncoming, resending, fTo = new TTextControl(r, string, new BMessage(TO_FIELD), fIncoming, resending,
B_FOLLOW_LEFT_RIGHT); B_FOLLOW_LEFT_RIGHT);
fTo->SetFilter(mail_to_filter);
if (!fIncoming || resending) { if (!fIncoming || resending) {
fTo->SetChoiceList(&fEmailList); fTo->SetChoiceList(&fEmailList);
@@ -283,7 +298,8 @@ THeaderView::THeaderView(BRect rect, BRect windowRect, bool incoming,
name << ": " << msg->FindString("real_name") name << ": " << msg->FindString("real_name")
<< " <" << msg->FindString("reply_to") << ">"; << " <" << msg->FindString("reply_to") << ">";
} }
BMenuItem *item = new BMenuItem(name.String(),msg = new BMessage(kMsgFrom)); BMenuItem *item = new BMenuItem(name.String(),
msg = new BMessage(kMsgFrom));
msg->AddInt32("id", chain->ID()); msg->AddInt32("id", chain->ID());
@@ -359,6 +375,7 @@ THeaderView::THeaderView(BRect rect, BRect windowRect, bool incoming,
if (!fIncoming) { if (!fIncoming) {
r.Set(x - 11, y, CC_FIELD_H + CC_FIELD_WIDTH, y + CC_FIELD_HEIGHT); r.Set(x - 11, y, CC_FIELD_H + CC_FIELD_WIDTH, y + CC_FIELD_HEIGHT);
fCc = new TTextControl(r, "", new BMessage(CC_FIELD), fIncoming, false); fCc = new TTextControl(r, "", new BMessage(CC_FIELD), fIncoming, false);
fCc->SetFilter(mail_to_filter);
fCc->SetChoiceList(&fEmailList); fCc->SetChoiceList(&fEmailList);
fCc->SetAutoComplete(true); fCc->SetAutoComplete(true);
AddChild(fCc); AddChild(fCc);
@@ -380,6 +397,7 @@ THeaderView::THeaderView(BRect rect, BRect windowRect, bool incoming,
y += FIELD_HEIGHT; y += FIELD_HEIGHT;
fBcc = new TTextControl(r, "", new BMessage(BCC_FIELD), fBcc = new TTextControl(r, "", new BMessage(BCC_FIELD),
fIncoming, false, B_FOLLOW_LEFT_RIGHT); fIncoming, false, B_FOLLOW_LEFT_RIGHT);
fBcc->SetFilter(mail_to_filter);
fBcc->SetChoiceList(&fEmailList); fBcc->SetChoiceList(&fEmailList);
fBcc->SetAutoComplete(true); fBcc->SetAutoComplete(true);
AddChild(fBcc); AddChild(fBcc);