* Applied patch by kaliber to fix bug #935; the result of FindItem() was not checked.

* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20740 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Axel Dörfler
2007-04-17 16:52:28 +00:00
parent 0a140b4eb0
commit 9afc31142a
+23 -30
View File
@@ -304,10 +304,9 @@ TPrefsWindow::TPrefsWindow(BRect rect, BFont *font, int32 *level, bool *wrap,
TPrefsWindow::~TPrefsWindow() TPrefsWindow::~TPrefsWindow()
{ {
BMessage msg(WINDOW_CLOSED);
prefs_window = Frame().LeftTop(); prefs_window = Frame().LeftTop();
BMessage msg(WINDOW_CLOSED);
msg.AddInt32("kind", PREFS_WINDOW); msg.AddInt32("kind", PREFS_WINDOW);
be_app->PostMessage(&msg); be_app->PostMessage(&msg);
} }
@@ -331,8 +330,7 @@ TPrefsWindow::MessageReceived(BMessage *msg)
BMenuItem *item; BMenuItem *item;
BMessage message; BMessage message;
switch (msg->what) switch (msg->what) {
{
case P_OK: case P_OK:
if (strcmp(fReplyPreamble->Text(), *fNewPreamble)) if (strcmp(fReplyPreamble->Text(), *fNewPreamble))
{ {
@@ -356,19 +354,19 @@ TPrefsWindow::MessageReceived(BMessage *msg)
|| old_size != new_size) || old_size != new_size)
{ {
fNewFont->SetFamilyAndStyle(old_family, old_style); fNewFont->SetFamilyAndStyle(old_family, old_style);
if (revert) if (revert) {
{
sprintf(label, "%s %s", old_family, old_style); sprintf(label, "%s %s", old_family, old_style);
item = fFontMenu->FindItem(label); item = fFontMenu->FindItem(label);
item->SetMarked(true); if (item != NULL)
item->SetMarked(true);
} }
fNewFont->SetSize(old_size); fNewFont->SetSize(old_size);
if (revert) if (revert) {
{
sprintf(label, "%ld", old_size); sprintf(label, "%ld", old_size);
item = fSizeMenu->FindItem(label); item = fSizeMenu->FindItem(label);
item->SetMarked(true); if (item != NULL)
item->SetMarked(true);
} }
message.what = M_FONT; message.what = M_FONT;
be_app->PostMessage(&message); be_app->PostMessage(&message);
@@ -376,8 +374,7 @@ TPrefsWindow::MessageReceived(BMessage *msg)
*fNewWrap = fWrap; *fNewWrap = fWrap;
*fNewAttachAttributes = fAttachAttributes; *fNewAttachAttributes = fAttachAttributes;
if (strcmp(fSignature, *fNewSignature)) if (strcmp(fSignature, *fNewSignature)) {
{
free(*fNewSignature); free(*fNewSignature);
*fNewSignature = (char *)malloc(strlen(fSignature) + 1); *fNewSignature = (char *)malloc(strlen(fSignature) + 1);
strcpy(*fNewSignature, fSignature); strcpy(*fNewSignature, fSignature);
@@ -390,17 +387,15 @@ TPrefsWindow::MessageReceived(BMessage *msg)
be_app->PostMessage(PREFS_CHANGED); be_app->PostMessage(PREFS_CHANGED);
if (revert) if (revert) {
{ for (int i = fAccountMenu->CountItems();i-- > 0;) {
for (int i = fAccountMenu->CountItems();i-- > 0;)
{
if (BMenuItem *item = fAccountMenu->ItemAt(i)) if (BMenuItem *item = fAccountMenu->ItemAt(i))
if (item->Message()->FindInt32("id") == *(int32 *)&fAccount) if (item->Message()->FindInt32("id") == *(int32 *)&fAccount)
item->SetMarked(true); item->SetMarked(true);
} }
strcpy(label,fReplyTo == ACCOUNT_USE_DEFAULT ? REPLYTO_USE_DEFAULT_TEXT strcpy(label,fReplyTo == ACCOUNT_USE_DEFAULT
: REPLYTO_FROM_MAIL_TEXT); ? REPLYTO_USE_DEFAULT_TEXT : REPLYTO_FROM_MAIL_TEXT);
if ((item = fReplyToMenu->FindItem(label)) != NULL) if ((item = fReplyToMenu->FindItem(label)) != NULL)
item->SetMarked(true); item->SetMarked(true);
@@ -408,7 +403,8 @@ TPrefsWindow::MessageReceived(BMessage *msg)
if ((item = fWrapMenu->FindItem(label)) != NULL) if ((item = fWrapMenu->FindItem(label)) != NULL)
item->SetMarked(true); item->SetMarked(true);
strcpy(label, fAttachAttributes ? ATTRIBUTE_ON_TEXT : ATTRIBUTE_OFF_TEXT); strcpy(label, fAttachAttributes
? ATTRIBUTE_ON_TEXT : ATTRIBUTE_OFF_TEXT);
if ((item = fAttachAttributesMenu->FindItem(label)) != NULL) if ((item = fAttachAttributesMenu->FindItem(label)) != NULL)
item->SetMarked(true); item->SetMarked(true);
@@ -426,12 +422,12 @@ TPrefsWindow::MessageReceived(BMessage *msg)
uint32 index = 0; uint32 index = 0;
while ((item = fEncodingMenu->ItemAt(index++)) != NULL) { while ((item = fEncodingMenu->ItemAt(index++)) != NULL) {
BMessage * message = item->Message(); BMessage * message = item->Message();
if (message == NULL) { if (message == NULL)
continue; continue;
}
int32 encoding; int32 encoding;
if ((message->FindInt32("encoding", &encoding) == B_OK) && if (message->FindInt32("encoding", &encoding) == B_OK
((uint32)encoding == *fNewEncoding)) { && (uint32)encoding == *fNewEncoding) {
item->SetMarked(true); item->SetMarked(true);
break; break;
} }
@@ -444,8 +440,7 @@ TPrefsWindow::MessageReceived(BMessage *msg)
strcpy(label, fSpellCheckStartOn ? "On" : "Off"); strcpy(label, fSpellCheckStartOn ? "On" : "Off");
if ((item = fSpellCheckStartOnMenu->FindItem(label)) != NULL) if ((item = fSpellCheckStartOnMenu->FindItem(label)) != NULL)
item->SetMarked(true); item->SetMarked(true);
} } else
else
Quit(); Quit();
break; break;
@@ -453,8 +448,7 @@ TPrefsWindow::MessageReceived(BMessage *msg)
family = NULL; family = NULL;
style = NULL; style = NULL;
int32 family_menu_index; int32 family_menu_index;
if (msg->FindString("font", &family) == B_OK) if (msg->FindString("font", &family) == B_OK) {
{
msg->FindString("style", &style); msg->FindString("style", &style);
fNewFont->SetFamilyAndStyle(family, style); fNewFont->SetFamilyAndStyle(family, style);
message.what = M_FONT; message.what = M_FONT;
@@ -469,8 +463,7 @@ TPrefsWindow::MessageReceived(BMessage *msg)
case P_SIZE: case P_SIZE:
old_size = (int32) fNewFont->Size(); old_size = (int32) fNewFont->Size();
msg->FindInt32("size", &new_size); msg->FindInt32("size", &new_size);
if (old_size != new_size) if (old_size != new_size) {
{
fNewFont->SetSize(new_size); fNewFont->SetSize(new_size);
message.what = M_FONT; message.what = M_FONT;
be_app->PostMessage(&message); be_app->PostMessage(&message);