diff options
| author | andreykproductengine <akleshchev@productengine.com> | 2016-11-28 18:48:37 +0200 | 
|---|---|---|
| committer | andreykproductengine <akleshchev@productengine.com> | 2016-11-28 18:48:37 +0200 | 
| commit | e3b232a0eca28c3ba99ff0d470f0b0b98d44efeb (patch) | |
| tree | de9ca562af095a83809c61d469c091187a73cf99 /indra | |
| parent | a75bc0e002ebd56e5302af146c218076215e7ded (diff) | |
MAINT-5456 Button tooltips in Appearance floater should now be localisable
Diffstat (limited to 'indra')
| -rw-r--r-- | indra/llui/lluictrlfactory.cpp | 26 | 
1 files changed, 19 insertions, 7 deletions
| diff --git a/indra/llui/lluictrlfactory.cpp b/indra/llui/lluictrlfactory.cpp index 4cc7da1267..fdefae01b1 100644 --- a/indra/llui/lluictrlfactory.cpp +++ b/indra/llui/lluictrlfactory.cpp @@ -92,15 +92,27 @@ void LLUICtrlFactory::loadWidgetTemplate(const std::string& widget_tag, LLInitPa  {  	std::string filename = gDirUtilp->add("widgets", widget_tag + ".xml");  	LLXMLNodePtr root_node; +	std::vector<std::string> search_paths = +		gDirUtilp->findSkinnedFilenames(LLDir::XUI, filename); -	// Here we're looking for the "en" version, the default-language version -	// of the file, rather than the localized version. -	std::string full_filename = gDirUtilp->findSkinnedFilenameBaseLang(LLDir::XUI, filename); -	if (!full_filename.empty()) +	if (search_paths.empty())  	{ -		LLUICtrlFactory::instance().pushFileName(full_filename); -		LLSimpleXUIParser parser; -		parser.readXUI(full_filename, block); +		return; +	} + +	// "en" version, the default-language version of the file. +	std::string base_filename = search_paths.front(); +	if (!base_filename.empty()) +	{ +		LLUICtrlFactory::instance().pushFileName(base_filename); + +		if (!LLXMLNode::getLayeredXMLNode(root_node, search_paths)) +		{ +			LL_WARNS() << "Couldn't parse widget from: " << base_filename << LL_ENDL; +			return; +		} +		LLXUIParser parser; +		parser.readXUI(root_node, block, base_filename);  		LLUICtrlFactory::instance().popFileName();  	}  } | 
