diff options
Diffstat (limited to 'indra')
| -rw-r--r-- | indra/llui/lluictrlfactory.cpp | 3 | ||||
| -rw-r--r-- | indra/llui/lluictrlfactory.h | 30 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/panel_preferences_general.xml | 28 | 
3 files changed, 41 insertions, 20 deletions
diff --git a/indra/llui/lluictrlfactory.cpp b/indra/llui/lluictrlfactory.cpp index 625d3c63e5..01715c2792 100644 --- a/indra/llui/lluictrlfactory.cpp +++ b/indra/llui/lluictrlfactory.cpp @@ -396,6 +396,7 @@ BOOL LLUICtrlFactory::getAttributeColor(LLXMLNodePtr node, const std::string& na  //static  void LLUICtrlFactory::setCtrlParent(LLView* view, LLView* parent, S32 tab_group)  { +	if (tab_group == S32_MAX) tab_group = parent->getLastTabGroup();  	parent->addChild(view, tab_group);  } @@ -454,4 +455,4 @@ dummy_widget_creator_func_t* LLUICtrlFactory::getDefaultWidgetFunc(const std::ty  const std::string* LLUICtrlFactory::getWidgetTag(const std::type_info* widget_type)  {  	return LLWidgetNameRegistry::instance().getValue(widget_type); -}
\ No newline at end of file +} diff --git a/indra/llui/lluictrlfactory.h b/indra/llui/lluictrlfactory.h index 6dab9521bb..422a926e49 100644 --- a/indra/llui/lluictrlfactory.h +++ b/indra/llui/lluictrlfactory.h @@ -196,12 +196,12 @@ public:  		}  		{  			LLFastTimer timer(FTM_INIT_FROM_PARAMS); -			widget->initFromParams(params); +		widget->initFromParams(params);  		}  		if (parent)  		{ -			S32 tab_group = params.tab_group.isProvided() ? params.tab_group() : parent->getLastTabGroup(); +			S32 tab_group = params.tab_group.isProvided() ? params.tab_group() : S32_MAX;  			setCtrlParent(widget, parent, tab_group);  		}  		return widget; @@ -220,7 +220,7 @@ public:  		return widget;  	} - +	  	LLView* createFromXML(LLXMLNodePtr node, LLView* parent, const std::string& filename, const widget_registry_t&, LLXMLNodePtr output_node );  	template<typename T> @@ -309,9 +309,29 @@ fail:  		// Apply layout transformations, usually munging rect  		T::setupParams(params, parent); -		T* widget = createWidget<T>(params, parent); +		if (!params.validateBlock()) +		{ +			llwarns << getInstance()->getCurFileName() << ": Invalid parameter block for " << typeid(T).name() << llendl; +		} +		T* widget; +		{ +			LLFastTimer timer(FTM_WIDGET_CONSTRUCTION); +			widget = new T(params);	 +		} +		{ +			LLFastTimer timer(FTM_INIT_FROM_PARAMS); +			widget->initFromParams(params); +		} + +		if (parent) +		{ +			S32 tab_group = params.tab_group.isProvided() ? params.tab_group() : -1; +			setCtrlParent(widget, parent, tab_group); +		} +		 +		typedef typename T::child_registry_t registry_t; -		createChildren(widget, node, typename T::child_registry_t::instance(), output_node); +		createChildren(widget, node, registry_t::instance(), output_node);  		if (widget && !widget->postBuild())  		{ 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 8c64bafccc..feed6cc10f 100644 --- a/indra/newview/skins/default/xui/en/panel_preferences_general.xml +++ b/indra/newview/skins/default/xui/en/panel_preferences_general.xml @@ -293,24 +293,24 @@       tool_tip="Click to open Color Picker"       top_pad="5"       width="32" /> -    <text -     type="string" -     length="1" -     follows="left|top" -     height="15" -     layout="topleft" -     left="30" -     name="title_afk_text" -     text_color="white" -     top_pad="-5" -     width="190"> -        Away timeout: -    </text> +  <text +      type="string" +      length="1" +      follows="left|top" +      height="15" +      layout="topleft" +      left="30" +      name="title_afk_text" +      text_color="white" +      top_pad="-5" +      width="190"> +    Away timeout: +  </text>    <combo_box              top_pad="-20"               height="20"              layout="topleft" -     control_name="AFKTimeout" +            control_name="AFKTimeout"              left="140"              label="Away Timeout:"               name="afk"  | 
