[haiku-commits] haiku: hrev45266 - src/apps/terminal

  • From: zharik@xxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Sun, 10 Feb 2013 17:53:22 +0100 (CET)

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;
 }
 


Other related posts:

  • » [haiku-commits] haiku: hrev45266 - src/apps/terminal - zharik