[haiku-commits] haiku: hrev46907 - build/jam/packages src/data/keyboard_layouts src/preferences/keymap

  • From: jscipione@xxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Sat, 22 Feb 2014 02:06:30 +0100 (CET)

hrev46907 adds 1 changeset to branch 'master'
old head: 4e152efced69329531ec708e0fda29394efdfa56
new head: 5e96d7d537fbec23bad4ae9b4c8e7b02e769f0c6
overview: http://cgit.haiku-os.org/haiku/log/?qt=range&q=5e96d7d+%5E4e152ef

----------------------------------------------------------------------------

5e96d7d: Localize keyboard layout names in Keymap preferences

                                     [ John Scipione <jscipione@xxxxxxxxx> ]

----------------------------------------------------------------------------

Revision:    hrev46907
Commit:      5e96d7d537fbec23bad4ae9b4c8e7b02e769f0c6
URL:         http://cgit.haiku-os.org/haiku/commit/?id=5e96d7d
Author:      John Scipione <jscipione@xxxxxxxxx>
Date:        Sat Feb 22 01:05:26 2014 UTC

----------------------------------------------------------------------------

6 files changed, 97 insertions(+), 93 deletions(-)
build/jam/packages/Haiku                | 49 ++----------------
build/jam/packages/HaikuBootstrap       | 49 ++----------------
src/data/Jamfile                        |  1 +
src/data/keyboard_layouts/Jamfile       | 79 +++++++++++++++++++++++++++++
src/preferences/keymap/Jamfile          |  4 ++
src/preferences/keymap/KeymapWindow.cpp |  8 +--

----------------------------------------------------------------------------

diff --git a/build/jam/packages/Haiku b/build/jam/packages/Haiku
index ccf6323..987f16a 100644
--- a/build/jam/packages/Haiku
+++ b/build/jam/packages/Haiku
@@ -191,54 +191,13 @@ for keymapAlias in $(HAIKU_KEYMAP_ALIASES) {
        AddSymlinkToPackage data Keymaps : $(aliasedTo:BSM) : 
$(keymapAlias:BSM) ;
 }
 
-# Copy keyboard layout files to the image one-by-one.
-local keyboardLayoutsDir
-       = [ FDirName $(HAIKU_TOP) data system data KeyboardLayouts ] ;
-local keyboardLayoutFiles =
-       "Generic 104-key"
-       "Generic 105-key International"
-       "Kinesis Advantage"
-       "Kinesis Ergo Elan International"
-       "TypeMatrix 2030" ;
-keyboardLayoutFiles = $(keyboardLayoutFiles:G=keyboard-layout) ;
-SEARCH on $(keyboardLayoutFiles) = $(keyboardLayoutsDir) ;
+# keyboard layouts
 AddFilesToPackage data KeyboardLayouts
-       : $(keyboardLayoutFiles) ;
-
-# Add Apple Aluminum keyboard layout files to the image in an Apple Aluminum
-# subdirectory. The subdirectory is turned into a submenu in the Layout menu
-# of the Keymap preference app.
-local appleAluminumDir
-       = [ FDirName $(HAIKU_TOP) data system data KeyboardLayouts
-               Apple\ Aluminum ] ;
-local appleAluminumFiles =
-       "Apple Aluminium Extended International"
-       "Apple Aluminium International"
-       "Apple Aluminum (US)"
-       "Apple Aluminum Extended (US)" ;
-appleAluminumFiles = $(appleAluminumFiles:G=keyboard-layout) ;
-SEARCH on $(appleAluminumFiles) = $(appleAluminumDir) ;
+       : $(HAIKU_KEYBOARD_LAYOUT_FILES) ;
 AddFilesToPackage data KeyboardLayouts Apple\ Aluminum
-       : $(appleAluminumFiles) ;
-
-# Add ThinkPad keyboard layout files to the image in a ThinkPad
-# subdirectory. The subdirectory is turned into a submenu in the Layout menu
-# of the Keymap preference app.
-local thinkpadDir
-       = [ FDirName $(HAIKU_TOP) data system data KeyboardLayouts ThinkPad ] ;
-local thinkPadFiles =
-       "ThinkPad (US)"
-       "ThinkPad International"
-       "ThinkPad T400s (US)"
-       "ThinkPad T400s International"
-       "ThinkPad X1 (US)"
-       "ThinkPad X1 International"
-       "ThinkPad X100e (US)"
-       "ThinkPad X100e International" ;
-thinkPadFiles = $(thinkPadFiles:G=keyboard-layout) ;
-SEARCH on $(thinkPadFiles) = $(thinkpadDir) ;
+       : $(HAIKU_APPLE_ALUMINUM_KEYBOARD_LAYOUT_FILES) ;
 AddFilesToPackage data KeyboardLayouts ThinkPad
-       : $(thinkPadFiles) ;
+       : $(HAIKU_THINKPAD_KEYBOARD_LAYOUT_FILES) ;
 
 # boot module links
 AddBootModuleSymlinksToPackage
diff --git a/build/jam/packages/HaikuBootstrap 
b/build/jam/packages/HaikuBootstrap
index a16e0a3..9986a60 100644
--- a/build/jam/packages/HaikuBootstrap
+++ b/build/jam/packages/HaikuBootstrap
@@ -156,54 +156,13 @@ for keymapAlias in $(HAIKU_KEYMAP_ALIASES) {
        AddSymlinkToPackage data Keymaps : $(aliasedTo:BSM) : 
$(keymapAlias:BSM) ;
 }
 
-# Copy keyboard layout files to the image one-by-one.
-local keyboardLayoutsDir
-       = [ FDirName $(HAIKU_TOP) data system data KeyboardLayouts ] ;
-local keyboardLayoutFiles =
-       "Generic 104-key"
-       "Generic 105-key International"
-       "Kinesis Advantage"
-       "Kinesis Ergo Elan International"
-       "TypeMatrix 2030" ;
-keyboardLayoutFiles = $(keyboardLayoutFiles:G=keyboard-layout) ;
-SEARCH on $(keyboardLayoutFiles) = $(keyboardLayoutsDir) ;
+# keyboard layouts
 AddFilesToPackage data KeyboardLayouts
-       : $(keyboardLayoutFiles) ;
-
-# Add Apple Aluminum keyboard layout files to the image in an Apple Aluminum
-# subdirectory. The subdirectory is turned into a submenu in the Layout menu
-# of the Keymap preference app.
-local appleAluminumDir
-       = [ FDirName $(HAIKU_TOP) data system data KeyboardLayouts
-               Apple\ Aluminum ] ;
-local appleAluminumFiles =
-       "Apple Aluminium Extended International"
-       "Apple Aluminium International"
-       "Apple Aluminum (US)"
-       "Apple Aluminum Extended (US)" ;
-appleAluminumFiles = $(appleAluminumFiles:G=keyboard-layout) ;
-SEARCH on $(appleAluminumFiles) = $(appleAluminumDir) ;
+       : $(HAIKU_KEYBOARD_LAYOUT_FILES) ;
 AddFilesToPackage data KeyboardLayouts Apple\ Aluminum
-       : $(appleAluminumFiles) ;
-
-# Add ThinkPad keyboard layout files to the image in a ThinkPad
-# subdirectory. The subdirectory is turned into a submenu in the Layout menu
-# of the Keymap preference app.
-local thinkpadDir
-       = [ FDirName $(HAIKU_TOP) data system data KeyboardLayouts ThinkPad ] ;
-local thinkPadFiles =
-       "ThinkPad (US)"
-       "ThinkPad International"
-       "ThinkPad T400s (US)"
-       "ThinkPad T400s International"
-       "ThinkPad X1 (US)"
-       "ThinkPad X1 International"
-       "ThinkPad X100e (US)"
-       "ThinkPad X100e International" ;
-thinkPadFiles = $(thinkPadFiles:G=keyboard-layout) ;
-SEARCH on $(thinkPadFiles) = $(thinkpadDir) ;
+       : $(HAIKU_APPLE_ALUMINUM_KEYBOARD_LAYOUT_FILES) ;
 AddFilesToPackage data KeyboardLayouts ThinkPad
-       : $(thinkPadFiles) ;
+       : $(HAIKU_THINKPAD_KEYBOARD_LAYOUT_FILES) ;
 
 # boot module links
 AddBootModuleSymlinksToPackage
diff --git a/src/data/Jamfile b/src/data/Jamfile
index 88b9651..cefdb5a 100644
--- a/src/data/Jamfile
+++ b/src/data/Jamfile
@@ -2,6 +2,7 @@ SubDir HAIKU_TOP src data ;
 
 HaikuSubInclude deskbar ;
 HaikuSubInclude etc ;
+HaikuSubInclude keyboard_layouts ;
 HaikuSubInclude keymaps ;
 HaikuSubInclude mime_db ;
 HaikuSubInclude settings ;
diff --git a/src/data/keyboard_layouts/Jamfile 
b/src/data/keyboard_layouts/Jamfile
new file mode 100644
index 0000000..6a4f057
--- /dev/null
+++ b/src/data/keyboard_layouts/Jamfile
@@ -0,0 +1,79 @@
+SubDir HAIKU_TOP src data keyboard_layouts ;
+
+SetSubDirSupportedPlatformsBeOSCompatible ;
+
+
+rule GenerateKeyboardLayoutLocalizationHeader
+{
+       local header = <keyboard-layout-locale>KeyboardLayoutNames.h ;
+       MakeLocateCommonPlatform $(header) ;
+       local jamfile = [ FGristFiles Jamfile ] ;
+       SEARCH on $(jamfile) = $(SUBDIR) ;
+       Depends $(header) : $(jamfile) ;
+       GenerateKeyboardLayoutLocalizationHeader1 $(header) ;
+       LocalClean clean : $(header) ;
+}
+
+actions GenerateKeyboardLayoutLocalizationHeader1
+{
+       $(RM) $(1)
+       for name in "$(HAIKU_KEYBOARD_LAYOUT_FILES)" ; do
+               echo "B_TRANSLATE_MARK_VOID(\"$name\")" >> $(1)
+       done
+       echo "B_TRANSLATE_MARK_VOID(\"Apple\ Aluminum\")" >> $(1)
+       for name in "$(HAIKU_APPLE_ALUMINUM_KEYBOARD_LAYOUT_FILES)" ; do
+               echo "B_TRANSLATE_MARK_VOID(\"$name\")" >> $(1)
+       done
+       echo "B_TRANSLATE_MARK_VOID(\"ThinkPad\")" >> $(1)
+       for name in "$(HAIKU_THINKPAD_KEYBOARD_LAYOUT_FILES)" ; do
+               echo "B_TRANSLATE_MARK_VOID(\"$name\")" >> $(1)
+       done
+}
+
+
+# Add keyboard layout files to the image.
+local keyboardLayoutsDir
+       = [ FDirName $(HAIKU_TOP) data system data KeyboardLayouts ] ;
+HAIKU_KEYBOARD_LAYOUT_FILES =
+       "Generic 104-key"
+       "Generic 105-key International"
+       "Kinesis Advantage"
+       "Kinesis Ergo Elan International"
+       "TypeMatrix 2030" ;
+HAIKU_KEYBOARD_LAYOUT_FILES = $(HAIKU_KEYBOARD_LAYOUT_FILES:G=keyboard-layout) 
;
+SEARCH on $(HAIKU_KEYBOARD_LAYOUT_FILES) = $(keyboardLayoutsDir) ;
+
+# Add Apple Aluminum keyboard layout files to the image in an Apple Aluminum
+# subdirectory. The subdirectory is turned into a submenu in the Layout menu
+# of the Keymap preference app.
+local appleAluminumDir
+       = [ FDirName $(HAIKU_TOP) data system data KeyboardLayouts
+               Apple\ Aluminum ] ;
+HAIKU_APPLE_ALUMINUM_KEYBOARD_LAYOUT_FILES =
+       "Apple Aluminium Extended International"
+       "Apple Aluminium International"
+       "Apple Aluminum (US)"
+       "Apple Aluminum Extended (US)" ;
+HAIKU_APPLE_ALUMINUM_KEYBOARD_LAYOUT_FILES =   
$(HAIKU_APPLE_ALUMINUM_KEYBOARD_LAYOUT_FILES:G=keyboard-layout) ;
+SEARCH on $(HAIKU_APPLE_ALUMINUM_KEYBOARD_LAYOUT_FILES) = $(appleAluminumDir) ;
+
+# Add ThinkPad keyboard layout files to the image in a ThinkPad
+# subdirectory. The subdirectory is turned into a submenu in the Layout menu
+# of the Keymap preference app.
+local thinkpadDir
+       = [ FDirName $(HAIKU_TOP) data system data KeyboardLayouts ThinkPad ] ;
+HAIKU_THINKPAD_KEYBOARD_LAYOUT_FILES =
+       "ThinkPad (US)"
+       "ThinkPad International"
+       "ThinkPad T400s (US)"
+       "ThinkPad T400s International"
+       "ThinkPad X1 (US)"
+       "ThinkPad X1 International"
+       "ThinkPad X100e (US)"
+       "ThinkPad X100e International" ;
+HAIKU_THINKPAD_KEYBOARD_LAYOUT_FILES
+       = $(HAIKU_THINKPAD_KEYBOARD_LAYOUT_FILES:G=keyboard-layout) ;
+SEARCH on $(HAIKU_THINKPAD_KEYBOARD_LAYOUT_FILES) = $(thinkpadDir) ;
+
+
+GenerateKeyboardLayoutLocalizationHeader ;
diff --git a/src/preferences/keymap/Jamfile b/src/preferences/keymap/Jamfile
index b856cbf..10a294f 100644
--- a/src/preferences/keymap/Jamfile
+++ b/src/preferences/keymap/Jamfile
@@ -1,12 +1,16 @@
 SubDir HAIKU_TOP src preferences keymap ;
 
 UseHeaders [ FDirName $(HAIKU_COMMON_PLATFORM_OBJECT_DIR) data keymaps ] ;
+UseHeaders [ FDirName $(HAIKU_COMMON_PLATFORM_OBJECT_DIR) data
+       keyboard_layouts ] ;
 
 SetSubDirSupportedPlatformsBeOSCompatible ;
 
 UsePrivateHeaders interface shared ;
 
 Includes [ FGristFiles KeymapWindow.cpp ] : <keymap-locale>KeymapNames.h ;
+Includes [ FGristFiles KeymapWindow.cpp ]
+       : <keyboard-layout-locale>KeyboardLayoutNames.h ;
 
 Preference Keymap :
        KeyboardLayout.cpp
diff --git a/src/preferences/keymap/KeymapWindow.cpp 
b/src/preferences/keymap/KeymapWindow.cpp
index af1b152..4b8b9ac 100644
--- a/src/preferences/keymap/KeymapWindow.cpp
+++ b/src/preferences/keymap/KeymapWindow.cpp
@@ -616,7 +616,8 @@ KeymapWindow::_AddKeyboardLayouts(BMenu* menu)
                if (find_directory(dataDirectories[i], &path) != B_OK)
                        continue;
 
-               path.Append("KeyboardLayouts");
+               if (path.Append("KeyboardLayouts") != B_OK)
+                       continue;
 
                BDirectory directory;
                if (directory.SetTo(path.Path()) == B_OK)
@@ -641,7 +642,7 @@ KeymapWindow::_AddKeyboardLayoutMenu(BMenu* menu, 
BDirectory directory)
                BDirectory subdirectory;
                subdirectory.SetTo(&ref);
                if (subdirectory.InitCheck() == B_OK) {
-                       BMenu* submenu = new BMenu(ref.name);
+                       BMenu* submenu = new 
BMenu(B_TRANSLATE_NOCOLLECT(ref.name));
 
                        _AddKeyboardLayoutMenu(submenu, subdirectory);
                        menu->AddItem(submenu);
@@ -649,7 +650,8 @@ KeymapWindow::_AddKeyboardLayoutMenu(BMenu* menu, 
BDirectory directory)
                        BMessage* message = new BMessage(kChangeKeyboardLayout);
 
                        message->AddRef("ref", &ref);
-                       menu->AddItem(new BMenuItem(ref.name, message));
+                       menu->AddItem(new 
BMenuItem(B_TRANSLATE_NOCOLLECT(ref.name),
+                               message));
                }
        }
 }


Other related posts:

  • » [haiku-commits] haiku: hrev46907 - build/jam/packages src/data/keyboard_layouts src/preferences/keymap - jscipione