summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indra/llui/llcombobox.cpp36
-rw-r--r--indra/newview/CMakeLists.txt1
-rw-r--r--indra/newview/llfloaterpreference.cpp81
-rw-r--r--indra/newview/llfloaterpreference.h1
-rw-r--r--indra/newview/skins/default/default_languages.xml39
-rw-r--r--indra/newview/skins/default/xui/da/panel_preferences_general.xml1
-rw-r--r--indra/newview/skins/default/xui/de/panel_preferences_general.xml1
-rw-r--r--indra/newview/skins/default/xui/en/panel_preferences_general.xml5
-rw-r--r--indra/newview/skins/default/xui/es/panel_preferences_general.xml1
-rw-r--r--indra/newview/skins/default/xui/fr/panel_preferences_general.xml1
-rw-r--r--indra/newview/skins/default/xui/it/panel_preferences_general.xml1
-rw-r--r--indra/newview/skins/default/xui/ja/panel_preferences_general.xml1
-rw-r--r--indra/newview/skins/default/xui/pl/panel_preferences_general.xml1
-rw-r--r--indra/newview/skins/default/xui/pt/panel_preferences_general.xml1
-rw-r--r--indra/newview/skins/default/xui/ru/panel_preferences_general.xml1
-rw-r--r--indra/newview/skins/default/xui/tr/panel_preferences_general.xml1
-rw-r--r--indra/newview/skins/default/xui/zh/panel_preferences_general.xml1
17 files changed, 154 insertions, 20 deletions
diff --git a/indra/llui/llcombobox.cpp b/indra/llui/llcombobox.cpp
index 00a933a0bb..b2ad38bddf 100644
--- a/indra/llui/llcombobox.cpp
+++ b/indra/llui/llcombobox.cpp
@@ -243,7 +243,14 @@ LLScrollListItem* LLComboBox::add(const std::string& name, EAddPosition pos, BOO
item->setEnabled(enabled);
if (!mAllowTextEntry && mLabel.empty())
{
- selectFirstItem();
+ if (mControlVariable)
+ {
+ setValue(mControlVariable->getValue()); // selects the appropriate item
+ }
+ else
+ {
+ selectFirstItem();
+ }
}
return item;
}
@@ -255,7 +262,14 @@ LLScrollListItem* LLComboBox::add(const std::string& name, const LLUUID& id, EAd
item->setEnabled(enabled);
if (!mAllowTextEntry && mLabel.empty())
{
- selectFirstItem();
+ if (mControlVariable)
+ {
+ setValue(mControlVariable->getValue()); // selects the appropriate item
+ }
+ else
+ {
+ selectFirstItem();
+ }
}
return item;
}
@@ -268,7 +282,14 @@ LLScrollListItem* LLComboBox::add(const std::string& name, void* userdata, EAddP
item->setUserdata( userdata );
if (!mAllowTextEntry && mLabel.empty())
{
- selectFirstItem();
+ if (mControlVariable)
+ {
+ setValue(mControlVariable->getValue()); // selects the appropriate item
+ }
+ else
+ {
+ selectFirstItem();
+ }
}
return item;
}
@@ -280,7 +301,14 @@ LLScrollListItem* LLComboBox::add(const std::string& name, LLSD value, EAddPosit
item->setEnabled(enabled);
if (!mAllowTextEntry && mLabel.empty())
{
- selectFirstItem();
+ if (mControlVariable)
+ {
+ setValue(mControlVariable->getValue()); // selects the appropriate item
+ }
+ else
+ {
+ selectFirstItem();
+ }
}
return item;
}
diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt
index a8019ee168..60c27665bf 100644
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -1587,6 +1587,7 @@ endif (WINDOWS)
# from within the IDE.
set(viewer_XUI_FILES
skins/default/colors.xml
+ skins/default/default_languages.xml
skins/default/textures/textures.xml
)
file(GLOB DEFAULT_XUI_FILE_GLOB_LIST
diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp
index c3dea73c05..a3821ef21a 100644
--- a/indra/newview/llfloaterpreference.cpp
+++ b/indra/newview/llfloaterpreference.cpp
@@ -138,6 +138,25 @@ static const F32 MIN_ARC_LOG = log(MIN_ARC_LIMIT);
static const F32 MAX_ARC_LOG = log(MAX_ARC_LIMIT);
static const F32 ARC_LIMIT_MAP_SCALE = (MAX_ARC_LOG - MIN_ARC_LOG) / (MAX_INDIRECT_ARC_LIMIT - MIN_INDIRECT_ARC_LIMIT);
+struct LabelDef : public LLInitParam::Block<LabelDef>
+{
+ Mandatory<std::string> name;
+ Mandatory<std::string> value;
+
+ LabelDef()
+ : name("name"),
+ value("value")
+ {}
+};
+
+struct LabelTable : public LLInitParam::Block<LabelTable>
+{
+ Multiple<LabelDef> labels;
+ LabelTable()
+ : labels("label")
+ {}
+};
+
class LLVoiceSetKeyDialog : public LLModalDialog
{
public:
@@ -514,6 +533,29 @@ BOOL LLFloaterPreference::postBuild()
mFilterEdit = getChild<LLSearchEditor>("search_prefs_edit");
mFilterEdit->setKeystrokeCallback(boost::bind(&LLFloaterPreference::onUpdateFilterTerm, this, false));
+ // Load and assign label for 'default language'
+ std::string user_filename = gDirUtilp->getExpandedFilename(LL_PATH_DEFAULT_SKIN, "default_languages.xml");
+ std::map<std::string, std::string> labels;
+ if (loadFromFilename(user_filename, labels))
+ {
+ std::string system_lang = gSavedSettings.getString("SystemLanguage");
+ std::map<std::string, std::string>::iterator iter = labels.find(system_lang);
+ if (iter != labels.end())
+ {
+ getChild<LLComboBox>("language_combobox")->add(iter->second, LLSD("default"), ADD_TOP, true);
+ }
+ else
+ {
+ LL_WARNS() << "Language \"" << system_lang << "\" is not in default_languages.xml" << LL_ENDL;
+ getChild<LLComboBox>("language_combobox")->add("System default", LLSD("default"), ADD_TOP, true);
+ }
+ }
+ else
+ {
+ LL_WARNS() << "Failed to load labels from " << user_filename << ". Using default." << LL_ENDL;
+ getChild<LLComboBox>("language_combobox")->add("System default", LLSD("default"), ADD_TOP, true);
+ }
+
return TRUE;
}
@@ -1979,6 +2021,45 @@ void LLFloaterPreference::updateMaxComplexity()
getChild<LLTextBox>("IndirectMaxComplexityText"));
}
+bool LLFloaterPreference::loadFromFilename(const std::string& filename, std::map<std::string, std::string> &label_map)
+{
+ LLXMLNodePtr root;
+
+ if (!LLXMLNode::parseFile(filename, root, NULL))
+ {
+ LL_WARNS() << "Unable to parse file " << filename << LL_ENDL;
+ return false;
+ }
+
+ if (!root->hasName("labels"))
+ {
+ LL_WARNS() << filename << " is not a valid definition file" << LL_ENDL;
+ return false;
+ }
+
+ LabelTable params;
+ LLXUIParser parser;
+ parser.readXUI(root, params, filename);
+
+ if (params.validateBlock())
+ {
+ for (LLInitParam::ParamIterator<LabelDef>::const_iterator it = params.labels.begin();
+ it != params.labels.end();
+ ++it)
+ {
+ LabelDef label_entry = *it;
+ label_map[label_entry.name] = label_entry.value;
+ }
+ }
+ else
+ {
+ LL_WARNS() << filename << " failed to load" << LL_ENDL;
+ return false;
+ }
+
+ return true;
+}
+
void LLFloaterPreferenceGraphicsAdvanced::updateMaxComplexity()
{
// Called when the IndirectMaxComplexity control changes
diff --git a/indra/newview/llfloaterpreference.h b/indra/newview/llfloaterpreference.h
index d609c42ebe..1b8229ada6 100644
--- a/indra/newview/llfloaterpreference.h
+++ b/indra/newview/llfloaterpreference.h
@@ -198,6 +198,7 @@ private:
void onDeleteTranscriptsResponse(const LLSD& notification, const LLSD& response);
void updateDeleteTranscriptsButton();
void updateMaxComplexity();
+ static bool loadFromFilename(const std::string& filename, std::map<std::string, std::string> &label_map);
static std::string sSkin;
notifications_map mNotificationOptions;
diff --git a/indra/newview/skins/default/default_languages.xml b/indra/newview/skins/default/default_languages.xml
new file mode 100644
index 0000000000..357930e1c5
--- /dev/null
+++ b/indra/newview/skins/default/default_languages.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<labels>
+ <label
+ name="en"
+ value="System default" />
+ <label
+ name="it"
+ value="Default di sistema" />
+ <label
+ name="ja"
+ value="システムデフォルト" />
+ <label
+ name="pl"
+ value="Domyślny" />
+ <label
+ name="pt"
+ value="Padrão" />
+ <label
+ name="ru"
+ value="Язык системы" />
+ <label
+ name="tr"
+ value="Sistem varsayılanı" />
+ <label
+ name="zh"
+ value="系統預設" />
+ <label
+ name="da"
+ value="System standard" />
+ <label
+ name="de"
+ value="Systemvorgabe" />
+ <label
+ name="es"
+ value="Predeterminado del sistema" />
+ <label
+ name="fr"
+ value="Choix par défaut" />
+</labels>
diff --git a/indra/newview/skins/default/xui/da/panel_preferences_general.xml b/indra/newview/skins/default/xui/da/panel_preferences_general.xml
index 5702d48e97..624c6634cc 100644
--- a/indra/newview/skins/default/xui/da/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/da/panel_preferences_general.xml
@@ -4,7 +4,6 @@
Sprog:
</text>
<combo_box name="language_combobox">
- <combo_box.item label="System standard" name="System Default Language"/>
<combo_box.item label="English (Engelsk)" name="English"/>
<combo_box.item label="Dansk - Beta" name="Danish"/>
<combo_box.item label="Deutsch (Tysk) - Beta" name="Deutsch(German)"/>
diff --git a/indra/newview/skins/default/xui/de/panel_preferences_general.xml b/indra/newview/skins/default/xui/de/panel_preferences_general.xml
index 201998f220..c4705d7283 100644
--- a/indra/newview/skins/default/xui/de/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/de/panel_preferences_general.xml
@@ -4,7 +4,6 @@
Sprache:
</text>
<combo_box name="language_combobox">
- <combo_box.item label="Systemvorgabe" name="System Default Language"/>
<combo_box.item label="English (Englisch)" name="English"/>
<combo_box.item label="Dansk (Dänisch) - Beta" name="Danish"/>
<combo_box.item label="Deutsch - Beta" name="Deutsch(German)"/>
diff --git a/indra/newview/skins/default/xui/en/panel_preferences_general.xml b/indra/newview/skins/default/xui/en/panel_preferences_general.xml
index 9da044ab64..335d7caa51 100644
--- a/indra/newview/skins/default/xui/en/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/en/panel_preferences_general.xml
@@ -32,11 +32,6 @@
width="200">
<combo_box.item
enabled="true"
- label="System default"
- name="System Default Language"
- value="default" />
- <combo_box.item
- enabled="true"
label="English"
name="English"
value="en" />
diff --git a/indra/newview/skins/default/xui/es/panel_preferences_general.xml b/indra/newview/skins/default/xui/es/panel_preferences_general.xml
index 7d3c33a781..d2246630d8 100644
--- a/indra/newview/skins/default/xui/es/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/es/panel_preferences_general.xml
@@ -4,7 +4,6 @@
Idioma:
</text>
<combo_box name="language_combobox">
- <combo_box.item label="Predeterminado del sistema" name="System Default Language"/>
<combo_box.item label="English (Inglés)" name="English"/>
<combo_box.item label="Dansk (danés) - Beta" name="Danish"/>
<combo_box.item label="Deutsch (Alemán) - Beta" name="Deutsch(German)"/>
diff --git a/indra/newview/skins/default/xui/fr/panel_preferences_general.xml b/indra/newview/skins/default/xui/fr/panel_preferences_general.xml
index 11b1bd9b87..b75567a40f 100644
--- a/indra/newview/skins/default/xui/fr/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/fr/panel_preferences_general.xml
@@ -4,7 +4,6 @@
Langue :
</text>
<combo_box name="language_combobox">
- <combo_box.item label="Choix par défaut" name="System Default Language"/>
<combo_box.item label="English (Anglais)" name="English"/>
<combo_box.item label="Dansk (Danois) - Bêta" name="Danish"/>
<combo_box.item label="Deutsch (Allemand) - Bêta" name="Deutsch(German)"/>
diff --git a/indra/newview/skins/default/xui/it/panel_preferences_general.xml b/indra/newview/skins/default/xui/it/panel_preferences_general.xml
index ef999d03c0..49edc0aa12 100644
--- a/indra/newview/skins/default/xui/it/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/it/panel_preferences_general.xml
@@ -4,7 +4,6 @@
Lingua:
</text>
<combo_box name="language_combobox">
- <combo_box.item label="Default di sistema" name="System Default Language"/>
<combo_box.item label="English" name="English"/>
<combo_box.item label="Dansk (Danese) - Beta" name="Danish"/>
<combo_box.item label="Deutsch (Tedesco) - Beta" name="Deutsch(German)"/>
diff --git a/indra/newview/skins/default/xui/ja/panel_preferences_general.xml b/indra/newview/skins/default/xui/ja/panel_preferences_general.xml
index e2b74354fa..378cf8652e 100644
--- a/indra/newview/skins/default/xui/ja/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/ja/panel_preferences_general.xml
@@ -4,7 +4,6 @@
言語:
</text>
<combo_box name="language_combobox">
- <combo_box.item label="システムデフォルト" name="System Default Language"/>
<combo_box.item label="English (英語)" name="English"/>
<combo_box.item label="Dansk (デンマーク語) - ベータ" name="Danish"/>
<combo_box.item label="Deutsch (ドイツ語) – ベータ" name="Deutsch(German)"/>
diff --git a/indra/newview/skins/default/xui/pl/panel_preferences_general.xml b/indra/newview/skins/default/xui/pl/panel_preferences_general.xml
index 082dc0687e..55df13e7ac 100644
--- a/indra/newview/skins/default/xui/pl/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/pl/panel_preferences_general.xml
@@ -4,7 +4,6 @@
Język:
</text>
<combo_box name="language_combobox">
- <combo_box.item label="Domyślny" name="System Default Language" />
<combo_box.item label="English (Angielski)" name="English" />
<combo_box.item label="Dansk (Duński) - Beta" name="Danish" />
<combo_box.item label="Deutsch (Niemiecki) - Beta" name="Deutsch(German)" />
diff --git a/indra/newview/skins/default/xui/pt/panel_preferences_general.xml b/indra/newview/skins/default/xui/pt/panel_preferences_general.xml
index 68fbd049b1..915d695605 100644
--- a/indra/newview/skins/default/xui/pt/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/pt/panel_preferences_general.xml
@@ -4,7 +4,6 @@
Idioma:
</text>
<combo_box name="language_combobox">
- <combo_box.item label="Padrão" name="System Default Language"/>
<combo_box.item label="English (Inglês)" name="English"/>
<combo_box.item label="Dansk (Dinamarquês) - Beta" name="Danish"/>
<combo_box.item label="Deutsch (Alemão) - Beta" name="Deutsch(German)"/>
diff --git a/indra/newview/skins/default/xui/ru/panel_preferences_general.xml b/indra/newview/skins/default/xui/ru/panel_preferences_general.xml
index b15d0e3abf..918b042dd7 100644
--- a/indra/newview/skins/default/xui/ru/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/ru/panel_preferences_general.xml
@@ -4,7 +4,6 @@
Язык:
</text>
<combo_box name="language_combobox">
- <combo_box.item label="Язык системы" name="System Default Language"/>
<combo_box.item label="English - Английский" name="English"/>
<combo_box.item label="Dansk – датский (бета-версия)" name="Danish"/>
<combo_box.item label="Deutsch – немецкий (бета-версия)" name="Deutsch(German)"/>
diff --git a/indra/newview/skins/default/xui/tr/panel_preferences_general.xml b/indra/newview/skins/default/xui/tr/panel_preferences_general.xml
index 2c05e8a47a..cec7a67f2f 100644
--- a/indra/newview/skins/default/xui/tr/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/tr/panel_preferences_general.xml
@@ -4,7 +4,6 @@
Dil:
</text>
<combo_box name="language_combobox">
- <combo_box.item label="Sistem varsayılanı" name="System Default Language"/>
<combo_box.item label="English (İngilizce)" name="English"/>
<combo_box.item label="Dansk (Danca) - Beta" name="Danish"/>
<combo_box.item label="Deutsch (Almanca) - Beta" name="Deutsch(German)"/>
diff --git a/indra/newview/skins/default/xui/zh/panel_preferences_general.xml b/indra/newview/skins/default/xui/zh/panel_preferences_general.xml
index 20335d82ae..87c38e4346 100644
--- a/indra/newview/skins/default/xui/zh/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/zh/panel_preferences_general.xml
@@ -4,7 +4,6 @@
語言:
</text>
<combo_box name="language_combobox">
- <combo_box.item label="系統預設" name="System Default Language"/>
<combo_box.item label="英語" name="English"/>
<combo_box.item label="Dansk(丹麥語)- 試用版" name="Danish"/>
<combo_box.item label="Deutsch(德語)- 試用版" name="Deutsch(German)"/>