diff options
20 files changed, 131 insertions, 7 deletions
| diff --git a/indra/llui/llfloater.cpp b/indra/llui/llfloater.cpp index 8d2783db20..47ca4899df 100644 --- a/indra/llui/llfloater.cpp +++ b/indra/llui/llfloater.cpp @@ -1443,7 +1443,18 @@ void LLFloater::onClickHelp( LLFloater* self )  {  	if (self && LLUI::sHelpImpl)  	{ -		LLUI::sHelpImpl->showTopic(self->getHelpTopic()); +		// get the help topic for this floater +		std::string help_topic = self->getHelpTopic(); + +		// but use a more specific help topic for the currently +		// displayed tab inside of this floater, if present +		LLPanel *curtab = self->childGetVisibleTabWithHelp(); +		if (curtab) +		{ +			help_topic = curtab->getHelpTopic(); +		} + +		LLUI::sHelpImpl->showTopic(help_topic);  	}  } diff --git a/indra/llui/llpanel.cpp b/indra/llui/llpanel.cpp index 69ff3dddc3..742427525b 100644 --- a/indra/llui/llpanel.cpp +++ b/indra/llui/llpanel.cpp @@ -810,6 +810,47 @@ LLPanel *LLPanel::childGetVisibleTab(const std::string& id) const  	return NULL;  } +static LLPanel *childGetVisibleTabWithHelp(LLView *parent) +{ +	LLView *child; + +	// look through immediate children first for an active tab with help +	for (child = parent->getFirstChild(); child; child = parent->findNextSibling(child)) +	{ +		LLTabContainer *tab = dynamic_cast<LLTabContainer *>(child); +		if (tab && tab->getVisible()) +		{ +			LLPanel *curTabPanel = tab->getCurrentPanel(); +			if (curTabPanel && !curTabPanel->getHelpTopic().empty()) +			{ +				return curTabPanel; +			} +		} +	} + +	// then try a bit harder and recurse through all children +	for (child = parent->getFirstChild(); child; child = parent->findNextSibling(child)) +	{ +		if (child->getVisible()) +		{ +			LLPanel* tab = ::childGetVisibleTabWithHelp(child); +			if (tab) +			{ +				return tab; +			} +		} +	} + +	// couldn't find any active tabs with a help topic string +	return NULL; +} + +LLPanel *LLPanel::childGetVisibleTabWithHelp() +{ +	// find a visible tab with a help topic (to determine help context) +	return ::childGetVisibleTabWithHelp(this); +} +  void LLPanel::childSetPrevalidate(const std::string& id, BOOL (*func)(const LLWString &) )  {  	LLLineEditor* child = findChild<LLLineEditor>(id); diff --git a/indra/llui/llpanel.h b/indra/llui/llpanel.h index 0594762333..e8db68ffbb 100644 --- a/indra/llui/llpanel.h +++ b/indra/llui/llpanel.h @@ -208,6 +208,7 @@ public:  	// LLTabContainer  	void childShowTab(const std::string& id, const std::string& tabname, bool visible = true);  	LLPanel *childGetVisibleTab(const std::string& id) const; +	LLPanel *childGetVisibleTabWithHelp();  	// LLTextBox/LLTextEditor/LLLineEditor  	void childSetText(const std::string& id, const LLStringExplicit& text) { childSetValue(id, LLSD(text)); } diff --git a/indra/llui/lluictrl.cpp b/indra/llui/lluictrl.cpp index 5b72f87a78..84b1c92097 100644 --- a/indra/llui/lluictrl.cpp +++ b/indra/llui/lluictrl.cpp @@ -795,16 +795,29 @@ bool LLUICtrl::findHelpTopic(std::string& help_topic_out)  	LLUICtrl* ctrl = this;  	// search back through the control's parents for a panel -	// with a help_topic string defined +	// or tab with a help_topic string defined  	while (ctrl)  	{  		LLPanel *panel = dynamic_cast<LLPanel *>(ctrl); -		if (panel && !panel->getHelpTopic().empty()) + +		if (panel)  		{ -			help_topic_out = panel->getHelpTopic(); -			return true; // success +			// does the panel have an active tab with a help topic? +			LLPanel *tab = panel->childGetVisibleTabWithHelp(); +			if (tab) +			{ +				help_topic_out = tab->getHelpTopic(); +				return true; // success (tab) +			} + +			// otherwise, does the panel have a help topic itself? +			if (!panel->getHelpTopic().empty()) +			{ +				help_topic_out = panel->getHelpTopic(); +				return true; // success (panel) +			}		  		} -		 +  		ctrl = ctrl->getParentUICtrl();  	} diff --git a/indra/newview/skins/default/xui/en/floater_about.xml b/indra/newview/skins/default/xui/en/floater_about.xml index dc6af79db5..4d7433233a 100644 --- a/indra/newview/skins/default/xui/en/floater_about.xml +++ b/indra/newview/skins/default/xui/en/floater_about.xml @@ -78,6 +78,7 @@      <panel        border="true"         label="Support" +      help_topic="about_support_tab"        name="support_panel">        <text_editor          allow_html="true"  @@ -103,6 +104,7 @@      <panel        border="true"         label="Credits"  +      help_topic="about_credits_tab"        name="credits_panel">        <text_editor         enabled="false"  @@ -134,6 +136,7 @@ It is a rare mind indeed that can render the hitherto non-existent blindingly ob      <panel        border="true"        label="Licenses" +      help_topic="about_licenses_tab"        name="licenses_panel">        <text_editor         enabled="false" diff --git a/indra/newview/skins/default/xui/en/floater_about_land.xml b/indra/newview/skins/default/xui/en/floater_about_land.xml index 524495d83d..1f366f6c52 100644 --- a/indra/newview/skins/default/xui/en/floater_about_land.xml +++ b/indra/newview/skins/default/xui/en/floater_about_land.xml @@ -40,6 +40,7 @@           label="General"           layout="topleft"           left="1" +         help_topic="land_general_tab"           name="land_general_panel"           top="-31"           width="458"> @@ -535,6 +536,7 @@ Go to World menu > About Land or select another parcel to show its details.           label="Covenant"           layout="topleft"           left_delta="-1" +         help_topic="land_covenant_tab"           name="land_covenant_panel"           top_delta="-47"           width="458"> @@ -801,6 +803,7 @@ Go to World menu > About Land or select another parcel to show its details.           label="Objects"           layout="topleft"           left_delta="0" +         help_topic="land_objects_tab"           name="land_objects_panel"           top_delta="-47"           width="458"> @@ -1166,6 +1169,7 @@ Go to World menu > About Land or select another parcel to show its details.           label="Options"           layout="topleft"           left_delta="0" +         help_topic="land_options_tab"           name="land_options_panel"           top_delta="31"           width="458"> @@ -1603,6 +1607,7 @@ Only large parcels can be listed in search.           label="Media"           layout="topleft"           left_delta="0" +         help_topic="land_media_tab"           name="land_media_panel"           top_delta="1"           width="458"> @@ -1865,6 +1870,7 @@ Texture:           label="Audio"           layout="topleft"           left_delta="0" +         help_topic="land_audio_tab"           name="land_audio_panel"           top_delta="1"           width="458"> @@ -1968,6 +1974,7 @@ Texture:           label="Access"           layout="topleft"           left_delta="0" +         help_topic="land_access_tab"           name="land_access_panel"           top_delta="31"           width="458"> diff --git a/indra/newview/skins/default/xui/en/floater_avatar_picker.xml b/indra/newview/skins/default/xui/en/floater_avatar_picker.xml index e1f8011cbe..0542d4509e 100644 --- a/indra/newview/skins/default/xui/en/floater_avatar_picker.xml +++ b/indra/newview/skins/default/xui/en/floater_avatar_picker.xml @@ -40,6 +40,7 @@           label="Search"           layout="topleft"           left="6" +         help_topic="avatarpicker_search_tab"           name="SearchPanel"           top="150"           width="132"> @@ -91,6 +92,7 @@           label="Near Me"           layout="topleft"           left="6" +         help_topic="avatarpicker_near_me_tab"           name="NearMePanel"           top="150"           width="132"> diff --git a/indra/newview/skins/default/xui/en/floater_god_tools.xml b/indra/newview/skins/default/xui/en/floater_god_tools.xml index 615c35e6c3..53d05f3c61 100644 --- a/indra/newview/skins/default/xui/en/floater_god_tools.xml +++ b/indra/newview/skins/default/xui/en/floater_god_tools.xml @@ -23,6 +23,7 @@           layout="topleft"           left="1"           mouse_opaque="false" +         help_topic="godtools_grid_tab"           name="grid"           top="16"           width="398"> @@ -61,6 +62,7 @@           layout="topleft"           left_delta="0"           mouse_opaque="false" +         help_topic="godtools_region_tab"           name="region"           top_delta="0"           width="398"> @@ -483,6 +485,7 @@           layout="topleft"           left_delta="0"           mouse_opaque="false" +         help_topic="godtools_objects_tab"           name="objects"           top_delta="0"           width="398"> @@ -690,6 +693,7 @@           label="Request"           layout="topleft"           left_delta="0" +         help_topic="godtools_request_tab"           name="request"           top_delta="0"           width="398"> diff --git a/indra/newview/skins/default/xui/en/floater_my_friends.xml b/indra/newview/skins/default/xui/en/floater_my_friends.xml index a9a18f44c4..0ca4fc825a 100644 --- a/indra/newview/skins/default/xui/en/floater_my_friends.xml +++ b/indra/newview/skins/default/xui/en/floater_my_friends.xml @@ -28,6 +28,7 @@           label="Friends"           layout="topleft"           left="0" +         help_topic="my_friends_friends_tab"           name="friends_panel"           width="370" />          <panel @@ -36,6 +37,7 @@           label="Groups"           layout="topleft"           left="0" +         help_topic="my_friends_groups_tab"           name="groups_panel"           width="370" />      </tab_container> diff --git a/indra/newview/skins/default/xui/en/floater_post_process.xml b/indra/newview/skins/default/xui/en/floater_post_process.xml index aaf7aecd6b..571f4149f0 100644 --- a/indra/newview/skins/default/xui/en/floater_post_process.xml +++ b/indra/newview/skins/default/xui/en/floater_post_process.xml @@ -23,6 +23,7 @@           layout="topleft"           left="1"           mouse_opaque="false" +         help_topic="post_process_color_filter_tab"           name="wmiColorFilterPanel"           top="0"           width="398"> @@ -184,6 +185,7 @@           layout="topleft"           left_delta="0"           mouse_opaque="false" +         help_topic="post_process_night_vision_tab"           name="wmiNightVisionPanel"           top_delta="-236"           width="398"> @@ -279,6 +281,7 @@           label="Bloom"           layout="topleft"           left_delta="0" +         help_topic="post_process_bloom_tab"           name="wmiBloomPanel"           top_delta="-236"           width="398"> @@ -374,6 +377,7 @@           layout="topleft"           left_delta="0"           mouse_opaque="false" +         help_topic="post_process_extras_tab"           name="Extras"           top_delta="-236"           width="398"> diff --git a/indra/newview/skins/default/xui/en/floater_preferences.xml b/indra/newview/skins/default/xui/en/floater_preferences.xml index d655c268b2..cf9e3a82fc 100644 --- a/indra/newview/skins/default/xui/en/floater_preferences.xml +++ b/indra/newview/skins/default/xui/en/floater_preferences.xml @@ -52,54 +52,63 @@           filename="panel_preferences_general.xml"           label="General"           layout="topleft" +         help_topic="preferences_general_tab"           name="general" />          <panel  		 class="panel_preference"           filename="panel_preferences_graphics1.xml"           label="Graphics"           layout="topleft" +         help_topic="preferences_display_tab"           name="display" />          <panel  		 class="panel_preference"           filename="panel_preferences_im.xml"           label="Privacy"           layout="topleft" +         help_topic="preferences_im_tab"           name="im" />          <panel  		 class="panel_preference"           filename="panel_preferences_audio.xml"           label="Sound"           layout="topleft" +         help_topic="preferences_audio_tab"           name="audio" />          <panel  		 class="panel_preference"           filename="panel_preferences_chat.xml"           label="Chat"           layout="topleft" +         help_topic="preferences_chat_tab"           name="chat" />          <panel  		 class="panel_preference"           filename="panel_preferences_popups.xml"           label="Alerts"           layout="topleft" +         help_topic="preferences_msgs_tab"           name="msgs" />          <panel  		 class="panel_preference"           filename="panel_preferences_input.xml"           label="Setup"           layout="topleft" +         help_topic="preferences_input_tab"           name="input" />          <panel  		 class="panel_preference"           filename="panel_preferences_advanced.xml"           label="Advanced"           layout="topleft" +         help_topic="preferences_advanced1_tab"           name="advanced1" />          <panel  		 class="panel_preference"           filename="panel_preferences_advanced2.xml"           label="Move or Kill"           layout="topleft" +         help_topic="preferences_advanced2_tab"           name="advanced2" />      </tab_container> diff --git a/indra/newview/skins/default/xui/en/floater_tools.xml b/indra/newview/skins/default/xui/en/floater_tools.xml index 8df0d759ce..d3ceb67ceb 100644 --- a/indra/newview/skins/default/xui/en/floater_tools.xml +++ b/indra/newview/skins/default/xui/en/floater_tools.xml @@ -761,6 +761,7 @@           label="General"           layout="topleft"           mouse_opaque="false" +         help_topic="toolbox_general_tab"           name="General"           top="16">              <panel.string @@ -1211,7 +1212,7 @@               width="50">                  F:              </text> -   </panel> +        </panel>        </panel>        <panel           border="false" @@ -1221,6 +1222,7 @@           layout="topleft"           left_delta="0"           mouse_opaque="false" +         help_topic="toolbox_object_tab"           name="Object"           top="16"           width="280"> @@ -2009,6 +2011,7 @@           layout="topleft"           left_delta="0"           mouse_opaque="false" +         help_topic="toolbox_features_tab"           name="Features"           top_delta="0"           width="280"> @@ -2246,6 +2249,7 @@           layout="topleft"           left_delta="0"           mouse_opaque="false" +         help_topic="toolbox_texture_tab"           name="Texture"           top_delta="0"           width="280"> @@ -2751,6 +2755,7 @@           layout="topleft"           left_delta="0"           mouse_opaque="false" +         help_topic="toolbox_contents_tab"           name="Contents"           top_delta="0"           width="280"> diff --git a/indra/newview/skins/default/xui/en/floater_water.xml b/indra/newview/skins/default/xui/en/floater_water.xml index febfd1929e..6206ea29c2 100644 --- a/indra/newview/skins/default/xui/en/floater_water.xml +++ b/indra/newview/skins/default/xui/en/floater_water.xml @@ -75,6 +75,7 @@           layout="topleft"           left="1"           mouse_opaque="false" +         help_topic="water_settings_tab"           name="Settings"           top="60"           width="698"> @@ -465,6 +466,7 @@           layout="topleft"           left_delta="0"           mouse_opaque="false" +         help_topic="water_waves_tab"           name="Waves"           top_delta="44"           width="698"> diff --git a/indra/newview/skins/default/xui/en/floater_windlight_options.xml b/indra/newview/skins/default/xui/en/floater_windlight_options.xml index 872bd704d5..2b3bc5f11a 100644 --- a/indra/newview/skins/default/xui/en/floater_windlight_options.xml +++ b/indra/newview/skins/default/xui/en/floater_windlight_options.xml @@ -84,6 +84,7 @@           layout="topleft"           left="1"           mouse_opaque="false" +         help_topic="windlight_atmosphere_tab"           name="Atmosphere"           top="60"           width="698"> @@ -519,6 +520,7 @@           label="Lighting"           layout="topleft"           left_delta="0" +         help_topic="windlight_lighting_tab"           name="Lighting"           top_delta="4"           width="698"> @@ -978,6 +980,7 @@           layout="topleft"           left_delta="0"           mouse_opaque="false" +         help_topic="windlight_clouds_tab"           name="Clouds"           top_delta="4"           width="698"> diff --git a/indra/newview/skins/default/xui/en/floater_world_map.xml b/indra/newview/skins/default/xui/en/floater_world_map.xml index 4386c0c5ee..8f88366842 100644 --- a/indra/newview/skins/default/xui/en/floater_world_map.xml +++ b/indra/newview/skins/default/xui/en/floater_world_map.xml @@ -30,6 +30,7 @@           label="Objects"           layout="topleft"           left="1" +         help_topic="worldmap_objects_tab"           name="objects_mapview"           top="19"           width="540" /> @@ -40,6 +41,7 @@           label="Terrain"           layout="topleft"           left_delta="0" +         help_topic="worldmap_terrain_tab"           name="terrain_mapview"           top_delta="3"           width="540" /> diff --git a/indra/newview/skins/default/xui/en/panel_group_land_money.xml b/indra/newview/skins/default/xui/en/panel_group_land_money.xml index 999aa814b1..d61fcf529a 100644 --- a/indra/newview/skins/default/xui/en/panel_group_land_money.xml +++ b/indra/newview/skins/default/xui/en/panel_group_land_money.xml @@ -259,6 +259,7 @@           label="Planning"           layout="topleft"           left="1" +         help_topic="group_money_planning_tab"           name="group_money_planning_tab"           top="5"           width="265"> @@ -284,6 +285,7 @@           label="Details"           layout="topleft"           left_delta="0" +         help_topic="group_money_details_tab"           name="group_money_details_tab"           top_delta="0"           width="265"> @@ -329,6 +331,7 @@           label="Sales"           layout="topleft"           left_delta="0" +         help_topic="group_money_sales_tab"           name="group_money_sales_tab"           top_delta="-1"           width="265"> diff --git a/indra/newview/skins/default/xui/en/panel_group_roles.xml b/indra/newview/skins/default/xui/en/panel_group_roles.xml index 6435951157..bf861af4f2 100644 --- a/indra/newview/skins/default/xui/en/panel_group_roles.xml +++ b/indra/newview/skins/default/xui/en/panel_group_roles.xml @@ -174,6 +174,7 @@           label="Members"           layout="topleft"           left="1" +         help_topic="roles_members_tab"           name="members_sub_tab"           tool_tip="Members"           top="17" @@ -283,6 +284,7 @@ clicking on their names.           label="Roles"           layout="topleft"           left_delta="0" +         help_topic="roles_roles_tab"           name="roles_sub_tab"           class="panel_group_roles_subtab"           top="17" @@ -400,6 +402,7 @@ including the Everyone and Owner Roles.           label="Abilities"           layout="topleft"           left_delta="0" +         help_topic="roles_actions_tab"           name="actions_sub_tab"           class="panel_group_actions_subtab"           top="17" diff --git a/indra/newview/skins/default/xui/en/panel_people.xml b/indra/newview/skins/default/xui/en/panel_people.xml index 786c39c5e9..b51d53a1b4 100644 --- a/indra/newview/skins/default/xui/en/panel_people.xml +++ b/indra/newview/skins/default/xui/en/panel_people.xml @@ -60,6 +60,7 @@ color="DkGray"           label="Nearby"           layout="topleft"           left="0" +         help_topic="people_nearby_tab"           name="nearby_panel"           top="0"           width="313"> @@ -109,6 +110,7 @@ color="DkGray"           top="0"           label="Friends"           layout="topleft" +         help_topic="people_friends_tab"           name="friends_panel"           width="313">              <accordion @@ -214,6 +216,7 @@ color="DkGray"           label="Groups"           top="0"           layout="topleft" +         help_topic="people_groups_tab"           name="groups_panel"           width="313">              <group_list @@ -301,6 +304,7 @@ color="DkGray"           height="390"           label="Recent"           layout="topleft" +         help_topic="people_recent_tab"           name="recent_panel"           width="313">              <avatar_list diff --git a/indra/newview/skins/default/xui/en/panel_places.xml b/indra/newview/skins/default/xui/en/panel_places.xml index 1761c80a39..1ea6e1149d 100644 --- a/indra/newview/skins/default/xui/en/panel_places.xml +++ b/indra/newview/skins/default/xui/en/panel_places.xml @@ -41,6 +41,7 @@       height="326"       layout="topleft"       left="0" +     help_topic="places_info_tab"       name="panel_place_info"       top="30"       visible="false" /> @@ -48,6 +49,7 @@       height="25"       layout="topleft"       left="0" +     help_topic="places_button_tab"       name="button_panel"       top_pad="10"       width="313"> diff --git a/indra/newview/skins/default/xui/en/panel_profile_view.xml b/indra/newview/skins/default/xui/en/panel_profile_view.xml index cf9ac3a94b..8a48574440 100644 --- a/indra/newview/skins/default/xui/en/panel_profile_view.xml +++ b/indra/newview/skins/default/xui/en/panel_profile_view.xml @@ -63,18 +63,21 @@           filename="panel_profile.xml"           label="Profile"           layout="topleft" +         help_topic="profile_profile_tab"           name="panel_profile" />          <panel           class="panel_picks"           filename="panel_picks.xml"           label="Picks"           layout="topleft" +         help_topic="profile_picks_tab"           name="panel_picks" />          <panel           class="panel_notes"           filename="panel_notes.xml"           label="Notes & Privacy"           layout="topleft" +         help_topic="profile_notes_tab"           name="panel_notes" />      </tab_container>  </panel> | 
