Firstbootprompt: Localize keymap list
Fixes #15522 Change-Id: I8909f70c0f7abe1fa23ea7c145220b95a3e06395 Reviewed-on: https://review.haiku-os.org/c/haiku/+/1718 Reviewed-by: Niels Sascha Reedijk <[email protected]>
This commit is contained in:
committed by
Niels Sascha Reedijk
parent
4b918abdb0
commit
c3fcf05777
@@ -38,6 +38,7 @@
|
|||||||
|
|
||||||
#include "BootPrompt.h"
|
#include "BootPrompt.h"
|
||||||
#include "Keymap.h"
|
#include "Keymap.h"
|
||||||
|
#include "KeymapNames.h"
|
||||||
|
|
||||||
|
|
||||||
using BPrivate::MutableLocaleRoster;
|
using BPrivate::MutableLocaleRoster;
|
||||||
@@ -255,6 +256,7 @@ BootPromptWindow::MessageReceived(BMessage* message)
|
|||||||
MutableLocaleRoster::Default()->SetPreferredLanguages(
|
MutableLocaleRoster::Default()->SetPreferredLanguages(
|
||||||
&preferredLanguages);
|
&preferredLanguages);
|
||||||
_InitCatalog(true);
|
_InitCatalog(true);
|
||||||
|
_UpdateKeymapsMenu();
|
||||||
|
|
||||||
// Select default keymap by language
|
// Select default keymap by language
|
||||||
BLanguage language(item->Language());
|
BLanguage language(item->Language());
|
||||||
@@ -403,6 +405,28 @@ BootPromptWindow::_PopulateLanguages()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
BootPromptWindow::_UpdateKeymapsMenu()
|
||||||
|
{
|
||||||
|
BMenu *menu = fKeymapsMenuField->Menu();
|
||||||
|
BMenuItem* item;
|
||||||
|
BList itemsList;
|
||||||
|
|
||||||
|
// Recreate keymapmenu items list, since BMenu could not sort its items.
|
||||||
|
while ((item = menu->ItemAt(0)) != NULL) {
|
||||||
|
BMessage* message = item->Message();
|
||||||
|
entry_ref ref;
|
||||||
|
message->FindRef("ref", &ref);
|
||||||
|
item-> SetLabel(B_TRANSLATE_NOCOLLECT_ALL((ref.name),
|
||||||
|
"KeymapNames", NULL));
|
||||||
|
itemsList.AddItem(item);
|
||||||
|
menu->RemoveItem(0);
|
||||||
|
}
|
||||||
|
itemsList.SortItems(compare_void_menu_items);
|
||||||
|
fKeymapsMenuField->Menu()->AddList(&itemsList, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
BootPromptWindow::_PopulateKeymaps()
|
BootPromptWindow::_PopulateKeymaps()
|
||||||
{
|
{
|
||||||
@@ -434,7 +458,9 @@ BootPromptWindow::_PopulateKeymaps()
|
|||||||
while (directory.GetNextRef(&ref) == B_OK) {
|
while (directory.GetNextRef(&ref) == B_OK) {
|
||||||
BMessage* message = new BMessage(MSG_KEYMAP_SELECTED);
|
BMessage* message = new BMessage(MSG_KEYMAP_SELECTED);
|
||||||
message->AddRef("ref", &ref);
|
message->AddRef("ref", &ref);
|
||||||
BMenuItem* item = new BMenuItem(ref.name, message);
|
BMenuItem* item =
|
||||||
|
new BMenuItem(B_TRANSLATE_NOCOLLECT_ALL((ref.name),
|
||||||
|
"KeymapNames", NULL), message);
|
||||||
itemsList.AddItem(item);
|
itemsList.AddItem(item);
|
||||||
if (currentName == ref.name)
|
if (currentName == ref.name)
|
||||||
item->SetMarked(true);
|
item->SetMarked(true);
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ public:
|
|||||||
private:
|
private:
|
||||||
void _InitCatalog(bool saveSettings);
|
void _InitCatalog(bool saveSettings);
|
||||||
void _UpdateStrings();
|
void _UpdateStrings();
|
||||||
|
void _UpdateKeymapsMenu();
|
||||||
void _PopulateLanguages();
|
void _PopulateLanguages();
|
||||||
void _PopulateKeymaps();
|
void _PopulateKeymaps();
|
||||||
void _ActivateKeymap(const BMessage* message) const;
|
void _ActivateKeymap(const BMessage* message) const;
|
||||||
|
|||||||
@@ -1,7 +1,10 @@
|
|||||||
SubDir HAIKU_TOP src apps firstbootprompt ;
|
SubDir HAIKU_TOP src apps firstbootprompt ;
|
||||||
|
|
||||||
|
UseHeaders [ FDirName $(HAIKU_COMMON_PLATFORM_OBJECT_DIR) data keymaps ] ;
|
||||||
UsePrivateHeaders app interface locale shared ;
|
UsePrivateHeaders app interface locale shared ;
|
||||||
|
|
||||||
|
Includes [ FGristFiles BootPromptWindow.cpp ] : <keymap-locale>KeymapNames.h ;
|
||||||
|
|
||||||
SEARCH_SOURCE += [ FDirName $(HAIKU_TOP) src preferences keymap ] ;
|
SEARCH_SOURCE += [ FDirName $(HAIKU_TOP) src preferences keymap ] ;
|
||||||
|
|
||||||
Application FirstBootPrompt :
|
Application FirstBootPrompt :
|
||||||
|
|||||||
Reference in New Issue
Block a user