summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
authorAlexanderP ProductEngine <apaschenko@productengine.com>2013-02-13 20:44:38 +0200
committerAlexanderP ProductEngine <apaschenko@productengine.com>2013-02-13 20:44:38 +0200
commitc7cac7896ee4ccdd71dad432f1314b85987e78cf (patch)
tree14c66365d351d3bc9a74ea84471bfec2b4ba36d6 /indra
parenta536cf5f4b3a850ebcab566b814c39ed9da03ceb (diff)
CHUI-739 Fixed! FUI toolbars not displayed when switching between CHUI and release viewer : parsing declare values of Enums
Diffstat (limited to 'indra')
-rw-r--r--indra/llcommon/llinitparam.h26
-rw-r--r--indra/newview/lltoolbarview.cpp8
2 files changed, 26 insertions, 8 deletions
diff --git a/indra/llcommon/llinitparam.h b/indra/llcommon/llinitparam.h
index 75c87c4bdb..695403e3f4 100644
--- a/indra/llcommon/llinitparam.h
+++ b/indra/llcommon/llinitparam.h
@@ -439,7 +439,7 @@ namespace LLInitParam
{}
void operator ()(const std::string& name)
- {
+ {
*this = name;
}
@@ -516,14 +516,30 @@ namespace LLInitParam
{
static bool read(T& param, Parser* parser)
{
- // read all enums as ints
+ std::string value_string;
+ //TypeValues<T>::value_t v;
+
+ // trying to get the declare value
+ parser_read_func_map_t::iterator string_func = parser->mParserReadFuncs->find(&typeid(std::string));
+ if (string_func != parser->mParserReadFuncs->end())
+ {
+ if (string_func->second(*parser, (void*)&value_string))
+ {
+ if (TypeValues<T>::getValueFromName(value_string, param))
+ {
+ return true;
+ }
+ }
+ }
+
+ // read enums as ints if it not declared as string
parser_read_func_map_t::iterator found_it = parser->mParserReadFuncs->find(&typeid(S32));
if (found_it != parser->mParserReadFuncs->end())
{
- S32 value;
- if (found_it->second(*parser, (void*)&value))
+ S32 value_S32;
+ if (found_it->second(*parser, (void*)&value_S32))
{
- param = (T)value;
+ param = (T)value_S32;
return true;
}
}
diff --git a/indra/newview/lltoolbarview.cpp b/indra/newview/lltoolbarview.cpp
index de07ad510b..b2318f9158 100644
--- a/indra/newview/lltoolbarview.cpp
+++ b/indra/newview/lltoolbarview.cpp
@@ -241,8 +241,9 @@ bool LLToolBarView::loadToolbars(bool force_default)
LLXUIParser parser;
if (!err)
{
- parser.readXUI(root, toolbar_set, toolbar_file);
+ parser.readXUI(root, toolbar_set, toolbar_file);
}
+
if (!err && !toolbar_set.validateBlock())
{
llwarns << "Unable to validate toolbars from file: " << toolbar_file << llendl;
@@ -254,8 +255,9 @@ bool LLToolBarView::loadToolbars(bool force_default)
if (force_default)
{
llerrs << "Unable to load toolbars from default file : " << toolbar_file << llendl;
- return false;
- }
+ return false;
+ }
+
// Try to load the default toolbars
return loadToolbars(true);
}