hrev45266 adds 1 changeset to branch 'master' old head: 1baa2211739cd5b4d45a56868aedd57dedbe782c new head: 344de4ccd12eb0fe63d7d3c8aece5138fe1909bd overview: http://cgit.haiku-os.org/haiku/log/?qt=range&q=344de4c+%5E1baa221 ---------------------------------------------------------------------------- 344de4c: Fix Terminal localization issues in Custom color scheme * Localized Label of the colors menu entry was used as the key during loading corresponding color value from the preferences file. It was obviously observed only on non-English locales; * Fixes #7209 #8256. [ Siarzhuk Zharski <zharik@xxxxxx> ] ---------------------------------------------------------------------------- Revision: hrev45266 Commit: 344de4ccd12eb0fe63d7d3c8aece5138fe1909bd URL: http://cgit.haiku-os.org/haiku/commit/?id=344de4c Author: Siarzhuk Zharski <zharik@xxxxxx> Date: Sun Feb 10 12:19:27 2013 UTC Ticket: https://dev.haiku-os.org/ticket/7209 Ticket: https://dev.haiku-os.org/ticket/8256 ---------------------------------------------------------------------------- 1 file changed, 23 insertions(+), 19 deletions(-) src/apps/terminal/AppearPrefView.cpp | 42 +++++++++++++++++--------------- ---------------------------------------------------------------------------- diff --git a/src/apps/terminal/AppearPrefView.cpp b/src/apps/terminal/AppearPrefView.cpp index 3c3d23b..fa58dae 100644 --- a/src/apps/terminal/AppearPrefView.cpp +++ b/src/apps/terminal/AppearPrefView.cpp @@ -73,12 +73,12 @@ AppearancePrefView::AppearancePrefView(const char* name, fTerminalMessenger(messenger) { const char* kColorTable[] = { - B_TRANSLATE("Text"), - B_TRANSLATE("Background"), - B_TRANSLATE("Cursor"), - B_TRANSLATE("Text under cursor"), - B_TRANSLATE("Selected text"), - B_TRANSLATE("Selected background"), + B_TRANSLATE_MARK("Text"), + B_TRANSLATE_MARK("Background"), + B_TRANSLATE_MARK("Cursor"), + B_TRANSLATE_MARK("Text under cursor"), + B_TRANSLATE_MARK("Selected text"), + B_TRANSLATE_MARK("Selected background"), NULL }; @@ -272,11 +272,14 @@ AppearancePrefView::MessageReceived(BMessage* msg) case MSG_COLOR_CHANGED: { - rgb_color oldColor = PrefHandler::Default()->getRGB( - fColorField->Menu()->FindMarked()->Label()); + const BMessage* itemMessage + = fColorField->Menu()->FindMarked()->Message(); + const char* label = NULL; + if (itemMessage->FindString("label", &label) != B_OK) + break; + rgb_color oldColor = PrefHandler::Default()->getRGB(label); if (oldColor != fColorControl->ValueAsColor()) { - PrefHandler::Default()->setRGB( - fColorField->Menu()->FindMarked()->Label(), + PrefHandler::Default()->setRGB(label, fColorControl->ValueAsColor()); modified = true; } @@ -300,9 +303,12 @@ AppearancePrefView::MessageReceived(BMessage* msg) } case MSG_COLOR_FIELD_CHANGED: - fColorControl->SetValue(PrefHandler::Default()->getRGB( - fColorField->Menu()->FindMarked()->Label())); + { + const char* label = NULL; + if (msg->FindString("label", &label) == B_OK) + fColorControl->SetValue(PrefHandler::Default()->getRGB(label)); break; + } case MSG_BLINK_CURSOR_CHANGED: if (PrefHandler::Default()->getBool(PREF_BLINK_CURSOR) @@ -514,23 +520,21 @@ AppearancePrefView::_MakeMenu(uint32 msg, const char** items, { BPopUpMenu* menu = new BPopUpMenu(""); - int32 i = 0; while (*items) { if (strcmp((*items), "") == 0) menu->AddSeparatorItem(); else { BMessage* message = new BMessage(msg); - menu->AddItem(new BMenuItem((*items), message)); + message->AddString("label", *items); + BMenuItem* item = new BMenuItem(B_TRANSLATE(*items), message); + menu->AddItem(item); + if (strcmp(*items, defaultItemName) == 0) + item->SetMarked(true); } items++; - i++; } - BMenuItem* defaultItem = menu->FindItem(defaultItemName); - if (defaultItem) - defaultItem->SetMarked(true); - return menu; }