diff options
| author | Oz Linden <oz@lindenlab.com> | 2010-11-19 15:40:42 -0500 | 
|---|---|---|
| committer | Oz Linden <oz@lindenlab.com> | 2010-11-19 15:40:42 -0500 | 
| commit | 7f48809a74cde8b78894178fe2e284e7213a805a (patch) | |
| tree | 51d37e2dee5b083c6aafb09d5a41b7055e966ab9 | |
| parent | 7aa12f01171cab4dd69aaa0fd1062f434b9b47d6 (diff) | |
| parent | 1139584b026db86fd20364d0eb21b6e2351f8fb1 (diff) | |
merge fix for STORM-189
| -rw-r--r-- | .hgtags | 1 | ||||
| -rw-r--r-- | BuildParams | 2 | ||||
| -rw-r--r-- | doc/contributions.txt | 1 | ||||
| -rw-r--r-- | indra/newview/llfloaterpreference.cpp | 81 | ||||
| -rw-r--r-- | indra/newview/llfloaterpreference.h | 11 | ||||
| -rw-r--r-- | indra/newview/llimview.cpp | 10 | ||||
| -rw-r--r-- | indra/newview/llpanelmaininventory.cpp | 47 | ||||
| -rw-r--r-- | indra/newview/llpanelmaininventory.h | 1 | ||||
| -rw-r--r-- | indra/newview/llviewermenu.cpp | 10 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/menu_inventory_gear_default.xml | 25 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/menu_viewer.xml | 20 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/panel_preferences_move.xml | 9 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/fr/menu_inspect_avatar_gear.xml | 2 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/fr/panel_main_inventory.xml | 2 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/fr/strings.xml | 2 | 
15 files changed, 178 insertions, 46 deletions
| @@ -35,3 +35,4 @@ b0cd7e150009809a0b5b0a9d5785cd4bb230413a 2.2.0-beta3  a3c12342b1af0951b8aa3b828aacef17fcea8178 2.3.0-beta1  db0fe9bb65187f365e58a717dd23d0f4754a9c1d 2.3.0-beta2  6ad3d6fa35a4e320e9ce442fce2bf9c7fc852556 2.3.0-beta3 +6ad3d6fa35a4e320e9ce442fce2bf9c7fc852556 2.3.0-release diff --git a/BuildParams b/BuildParams index 8bd72d2ce8..abeaebae98 100644 --- a/BuildParams +++ b/BuildParams @@ -51,7 +51,7 @@ viewer-release.viewer_channel = "Second Life Release"  viewer-release.login_channel = "Second Life Release"  viewer-release.build_debug_release_separately = true  viewer-release.build_viewer_update_version_manager = true - +viewer-release.release-viewer.jira = DRTVWR-13  # ========================================  # aimee diff --git a/doc/contributions.txt b/doc/contributions.txt index eabbbe87b5..b255ca98cd 100644 --- a/doc/contributions.txt +++ b/doc/contributions.txt @@ -769,6 +769,7 @@ WolfPup Lowenhar  	STORM-143  	STORM-535  	STORM-544 +	STORM-654  	VWR-20741  	VWR-20933  Zai Lynch diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp index c105f023c7..ac940f4f77 100644 --- a/indra/newview/llfloaterpreference.cpp +++ b/indra/newview/llfloaterpreference.cpp @@ -282,7 +282,8 @@ std::string LLFloaterPreference::sSkin = "";  LLFloaterPreference::LLFloaterPreference(const LLSD& key)  	: LLFloater(key),  	mGotPersonalInfo(false), -	mOriginalIMViaEmail(false) +	mOriginalIMViaEmail(false), +	mDoubleClickActionDirty(false)  {  	//Build Floater is now Called from 	LLFloaterReg::add("preferences", "floater_preferences.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterPreference>); @@ -320,6 +321,8 @@ LLFloaterPreference::LLFloaterPreference(const LLSD& key)  	mCommitCallbackRegistrar.add("Pref.getUIColor",				boost::bind(&LLFloaterPreference::getUIColor, this ,_1, _2));  	mCommitCallbackRegistrar.add("Pref.MaturitySettings",		boost::bind(&LLFloaterPreference::onChangeMaturity, this));  	mCommitCallbackRegistrar.add("Pref.BlockList",				boost::bind(&LLFloaterPreference::onClickBlockList, this)); +	mCommitCallbackRegistrar.add("Pref.CommitDoubleClickChekbox",	boost::bind(&LLFloaterPreference::onDoubleClickCheckBox, this, _1)); +	mCommitCallbackRegistrar.add("Pref.CommitRadioDoubleClick",	boost::bind(&LLFloaterPreference::onDoubleClickRadio, this));  	sSkin = gSavedSettings.getString("SkinCurrent"); @@ -342,6 +345,8 @@ BOOL LLFloaterPreference::postBuild()  	if (!tabcontainer->selectTab(gSavedSettings.getS32("LastPrefTab")))  		tabcontainer->selectFirstTab(); +	updateDoubleClickControls(); +  	getChild<LLUICtrl>("cache_location")->setEnabled(FALSE); // make it read-only but selectable (STORM-227)  	std::string cache_location = gDirUtilp->getExpandedFilename(LL_PATH_CACHE, "");  	setCacheLocation(cache_location); @@ -475,6 +480,12 @@ void LLFloaterPreference::apply()  			gAgent.sendAgentUpdateUserInfo(new_im_via_email,mDirectoryVisibility);  		}  	} + +	if (mDoubleClickActionDirty) +	{ +		updateDoubleClickSettings(); +		mDoubleClickActionDirty = false; +	}  }  void LLFloaterPreference::cancel() @@ -501,6 +512,12 @@ void LLFloaterPreference::cancel()  	// reverts any changes to current skin  	gSavedSettings.setString("SkinCurrent", sSkin); + +	if (mDoubleClickActionDirty) +	{ +		updateDoubleClickControls(); +		mDoubleClickActionDirty = false; +	}  }  void LLFloaterPreference::onOpen(const LLSD& key) @@ -1318,6 +1335,68 @@ void LLFloaterPreference::onClickBlockList()  	}  } +void LLFloaterPreference::onDoubleClickCheckBox(LLUICtrl* ctrl) +{ +	if (!ctrl) return; +	mDoubleClickActionDirty = true; +	LLRadioGroup* radio_double_click_action = getChild<LLRadioGroup>("double_click_action"); +	if (!radio_double_click_action) return; +	// select default value("teleport") in radio-group. +	radio_double_click_action->setSelectedIndex(0); +	// set radio-group enabled depending on state of checkbox +	radio_double_click_action->setEnabled(ctrl->getValue()); +} + +void LLFloaterPreference::onDoubleClickRadio() +{ +	mDoubleClickActionDirty = true; +} + +void LLFloaterPreference::updateDoubleClickSettings() +{ +	LLCheckBoxCtrl* double_click_action_cb = getChild<LLCheckBoxCtrl>("double_click_chkbox"); +	if (!double_click_action_cb) return; +	bool enable = double_click_action_cb->getValue().asBoolean(); + +	LLRadioGroup* radio_double_click_action = getChild<LLRadioGroup>("double_click_action"); +	if (!radio_double_click_action) return; +	 +	// enable double click radio-group depending on state of checkbox +	radio_double_click_action->setEnabled(enable); +	 +	if (!enable) +	{ +		// set double click action settings values to false if checkbox was unchecked +		gSavedSettings.setBOOL("DoubleClickAutoPilot", false); +		gSavedSettings.setBOOL("DoubleClickTeleport", false); +	} +	else +	{ +		std::string selected = radio_double_click_action->getValue().asString(); +		bool teleport_selected = selected == "radio_teleport"; +		// set double click action settings values depending on chosen radio-button +		gSavedSettings.setBOOL( "DoubleClickTeleport", teleport_selected ); +		gSavedSettings.setBOOL( "DoubleClickAutoPilot", !teleport_selected ); +	} +} + +void LLFloaterPreference::updateDoubleClickControls() +{ +	// check is one of double-click actions settings enabled +	bool double_click_action_enabled = gSavedSettings.getBOOL("DoubleClickAutoPilot") || gSavedSettings.getBOOL("DoubleClickTeleport"); +	LLCheckBoxCtrl* double_click_action_cb = getChild<LLCheckBoxCtrl>("double_click_chkbox"); +	if (double_click_action_cb) +	{ +		// check checkbox if one of double-click actions settings enabled, uncheck otherwise +		double_click_action_cb->setValue(double_click_action_enabled); +	} +	LLRadioGroup* double_click_action_radio = getChild<LLRadioGroup>("double_click_action"); +	if (!double_click_action_radio) return; +	// set radio-group enabled if one of double-click actions settings enabled +	double_click_action_radio->setEnabled(double_click_action_enabled); +	// select button in radio-group depending on setting +	double_click_action_radio->setSelectedIndex(gSavedSettings.getBOOL("DoubleClickAutoPilot")); +}  void LLFloaterPreference::applyUIColor(LLUICtrl* ctrl, const LLSD& param)  { diff --git a/indra/newview/llfloaterpreference.h b/indra/newview/llfloaterpreference.h index e99731b92e..46f50d9a4d 100644 --- a/indra/newview/llfloaterpreference.h +++ b/indra/newview/llfloaterpreference.h @@ -95,6 +95,14 @@ protected:  	void setHardwareDefaults();  	// callback for when client turns on shaders  	void onVertexShaderEnable(); +	// callback for changing double click action checkbox +	void onDoubleClickCheckBox(LLUICtrl* ctrl); +	// callback for selecting double click action radio-button +	void onDoubleClickRadio(); +	// updates double-click action settings depending on controls from preferences +	void updateDoubleClickSettings(); +	// updates double-click action controls depending on values from settings.xml +	void updateDoubleClickControls();  	// This function squirrels away the current values of the controls so that  	// cancel() can restore them.	 @@ -145,6 +153,9 @@ public:  	static void refreshSkin(void* data);  private:  	static std::string sSkin; +	// set true if state of double-click action checkbox or radio-group was changed by user +	// (reset back to false on apply or cancel) +	bool mDoubleClickActionDirty;  	bool mGotPersonalInfo;  	bool mOriginalIMViaEmail; diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp index cc48226052..3578c98622 100644 --- a/indra/newview/llimview.cpp +++ b/indra/newview/llimview.cpp @@ -537,7 +537,15 @@ bool LLIMModel::LLIMSession::isOtherParticipantAvaline()  void LLIMModel::LLIMSession::onAvatarNameCache(const LLUUID& avatar_id, const LLAvatarName& av_name)  { -	mHistoryFileName = av_name.mUsername; +	if (av_name.mUsername.empty()) +	{ +		// display names is off, use mDisplayName which will be the legacy name +		mHistoryFileName = LLCacheName::buildUsername(av_name.mDisplayName); +	} +	else +	{   +		mHistoryFileName = av_name.mUsername; +	}  }  void LLIMModel::LLIMSession::buildHistoryFileName() diff --git a/indra/newview/llpanelmaininventory.cpp b/indra/newview/llpanelmaininventory.cpp index 904e3dabcc..17433a557b 100644 --- a/indra/newview/llpanelmaininventory.cpp +++ b/indra/newview/llpanelmaininventory.cpp @@ -329,15 +329,23 @@ void LLPanelMainInventory::setSortBy(const LLSD& userdata)  	if (sort_field == "name")  	{  		U32 order = getActivePanel()->getSortOrder(); -		getActivePanel()->setSortOrder( order & ~LLInventoryFilter::SO_DATE ); -			 +		order &= ~LLInventoryFilter::SO_DATE; + +		getActivePanel()->setSortOrder( order ); + +		gSavedSettings.setU32("InventorySortOrder", order); +  		gSavedSettings.setBOOL("Inventory.SortByName", TRUE );  		gSavedSettings.setBOOL("Inventory.SortByDate", FALSE );  	}  	else if (sort_field == "date")  	{  		U32 order = getActivePanel()->getSortOrder(); -		getActivePanel()->setSortOrder( order | LLInventoryFilter::SO_DATE ); +		order |= LLInventoryFilter::SO_DATE; + +		getActivePanel()->setSortOrder( order ); + +		gSavedSettings.setU32("InventorySortOrder", order);  		gSavedSettings.setBOOL("Inventory.SortByName", FALSE );  		gSavedSettings.setBOOL("Inventory.SortByDate", TRUE ); @@ -375,6 +383,8 @@ void LLPanelMainInventory::setSortBy(const LLSD& userdata)  			gSavedSettings.setBOOL("Inventory.SystemFoldersToTop", TRUE );  		}  		getActivePanel()->setSortOrder( order ); + +		gSavedSettings.setU32("InventorySortOrder", order);  	}  } @@ -915,6 +925,7 @@ void LLPanelMainInventory::initListCommandsHandlers()  			));  	mCommitCallbackRegistrar.add("Inventory.GearDefault.Custom.Action", boost::bind(&LLPanelMainInventory::onCustomAction, this, _2)); +	mEnableCallbackRegistrar.add("Inventory.GearDefault.Check", boost::bind(&LLPanelMainInventory::isActionChecked, this, _2));  	mEnableCallbackRegistrar.add("Inventory.GearDefault.Enable", boost::bind(&LLPanelMainInventory::isActionEnabled, this, _2));  	mMenuGearDefault = LLUICtrlFactory::getInstance()->createFromFile<LLToggleableMenu>("menu_inventory_gear_default.xml", gMenuHolder, LLViewerMenuHolderGL::child_registry_t::instance());  	mGearMenuButton->setMenu(mMenuGearDefault); @@ -1000,6 +1011,11 @@ void LLPanelMainInventory::onCustomAction(const LLSD& userdata)  		const LLSD arg = "date";  		setSortBy(arg);  	} +	if (command_name == "sort_system_folders_to_top") +	{ +		const LLSD arg = "systemfolderstotop"; +		setSortBy(arg); +	}  	if (command_name == "show_filters")  	{  		toggleFindOptions(); @@ -1173,6 +1189,31 @@ BOOL LLPanelMainInventory::isActionEnabled(const LLSD& userdata)  	return TRUE;  } +BOOL LLPanelMainInventory::isActionChecked(const LLSD& userdata) +{ +	const std::string command_name = userdata.asString(); + +	if (command_name == "sort_by_name") +	{ +		U32 order = getActivePanel()->getSortOrder(); +		return ~order & LLInventoryFilter::SO_DATE; +	} + +	if (command_name == "sort_by_recent") +	{ +		U32 order = getActivePanel()->getSortOrder(); +		return order & LLInventoryFilter::SO_DATE; +	} + +	if (command_name == "sort_system_folders_to_top") +	{ +		U32 order = getActivePanel()->getSortOrder(); +		return order & LLInventoryFilter::SO_SYSTEM_FOLDERS_TO_TOP; +	} + +	return FALSE; +} +  bool LLPanelMainInventory::handleDragAndDropToTrash(BOOL drop, EDragAndDropType cargo_type, EAcceptance* accept)  {  	*accept = ACCEPT_NO; diff --git a/indra/newview/llpanelmaininventory.h b/indra/newview/llpanelmaininventory.h index d136e2d32e..c2b78ff9ea 100644 --- a/indra/newview/llpanelmaininventory.h +++ b/indra/newview/llpanelmaininventory.h @@ -136,6 +136,7 @@ protected:  	void onTrashButtonClick();  	void onClipboardAction(const LLSD& userdata);  	BOOL isActionEnabled(const LLSD& command_name); +	BOOL isActionChecked(const LLSD& userdata);  	void onCustomAction(const LLSD& command_name);  	bool handleDragAndDropToTrash(BOOL drop, EDragAndDropType cargo_type, EAcceptance* accept);  	/** diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index 2874a6ec79..54fe34e738 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -6500,16 +6500,6 @@ class LLToggleControl : public view_listener_t  		std::string control_name = userdata.asString();  		BOOL checked = gSavedSettings.getBOOL( control_name );  		gSavedSettings.setBOOL( control_name, !checked ); - -        // Doubleclick actions - there can be only one -        if ((control_name == "DoubleClickAutoPilot") && !checked) -        { -			gSavedSettings.setBOOL( "DoubleClickTeleport", FALSE ); -        } -        else if ((control_name == "DoubleClickTeleport") && !checked) -        { -			gSavedSettings.setBOOL( "DoubleClickAutoPilot", FALSE ); -        }  		return true;  	}  }; diff --git a/indra/newview/skins/default/xui/en/menu_inventory_gear_default.xml b/indra/newview/skins/default/xui/en/menu_inventory_gear_default.xml index 679d5bc82e..7fa4cd840a 100644 --- a/indra/newview/skins/default/xui/en/menu_inventory_gear_default.xml +++ b/indra/newview/skins/default/xui/en/menu_inventory_gear_default.xml @@ -16,22 +16,39 @@      </menu_item_call>      <menu_item_separator       layout="topleft" /> -    <menu_item_call +    <menu_item_check       label="Sort by Name"       layout="topleft"       name="sort_by_name">          <on_click           function="Inventory.GearDefault.Custom.Action"           parameter="sort_by_name" /> -    </menu_item_call> -    <menu_item_call +        <on_check +         function="Inventory.GearDefault.Check" +         parameter="sort_by_name" /> +    </menu_item_check> +    <menu_item_check       label="Sort by Most Recent"       layout="topleft"       name="sort_by_recent">          <on_click           function="Inventory.GearDefault.Custom.Action"           parameter="sort_by_recent" /> -    </menu_item_call> +        <on_check +         function="Inventory.GearDefault.Check" +         parameter="sort_by_recent" />          +    </menu_item_check> +    <menu_item_check +     label="Sort System Folders to Top" +     layout="topleft" +     name="sort_system_folders_to_top"> +        <on_click +         function="Inventory.GearDefault.Custom.Action" +         parameter="sort_system_folders_to_top" /> +        <on_check +         function="Inventory.GearDefault.Check" +         parameter="sort_system_folders_to_top" /> +    </menu_item_check>      <menu_item_separator       layout="topleft" />      <menu_item_call diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml index 9fcf952bf0..f74b6ba7b5 100644 --- a/indra/newview/skins/default/xui/en/menu_viewer.xml +++ b/indra/newview/skins/default/xui/en/menu_viewer.xml @@ -2661,26 +2661,6 @@                   function="Advanced.PrintTextureMemoryStats" />              </menu_item_call>              <menu_item_check -             label="Double-ClickAuto-Pilot" -             name="Double-ClickAuto-Pilot"> -                <menu_item_check.on_check -                 function="CheckControl" -                 parameter="DoubleClickAutoPilot" /> -                <menu_item_check.on_click -                 function="ToggleControl" -                 parameter="DoubleClickAutoPilot" /> -            </menu_item_check> -            <menu_item_check -             label="Double-Click Teleport" -             name="DoubleClick Teleport"> -                <menu_item_check.on_check -                 function="CheckControl" -                 parameter="DoubleClickTeleport" /> -                <menu_item_check.on_click -                 function="ToggleControl" -                 parameter="DoubleClickTeleport" /> -            </menu_item_check> -            <menu_item_check               label="Region Debug Console"               name="Region Debug Console"               shortcut="control|shift|`" diff --git a/indra/newview/skins/default/xui/en/panel_preferences_move.xml b/indra/newview/skins/default/xui/en/panel_preferences_move.xml index c893a92e7c..d2fc6ea09a 100644 --- a/indra/newview/skins/default/xui/en/panel_preferences_move.xml +++ b/indra/newview/skins/default/xui/en/panel_preferences_move.xml @@ -177,7 +177,10 @@     left_delta="0"     name="double_click_chkbox"     width="237" -   top_pad="0"/> +   top_pad="0"> +   <check_box.commit_callback +    function="Pref.CommitDoubleClickChekbox"/> +  </check_box>    <radio_group       height="20"       layout="topleft" @@ -191,7 +194,6 @@       left="0"       name="radio_teleport"       top_delta="20" -     value="0"       width="100" />      <radio_item       height="16" @@ -200,8 +202,9 @@       layout="topleft"       name="radio_autopilot"       top_delta="0" -     value="1"       width="75" /> +    <radio_group.commit_callback +	     function="Pref.CommitRadioDoubleClick"/>    </radio_group>    <button     height="23" diff --git a/indra/newview/skins/default/xui/fr/menu_inspect_avatar_gear.xml b/indra/newview/skins/default/xui/fr/menu_inspect_avatar_gear.xml index 8bda133a0b..17254ff325 100644 --- a/indra/newview/skins/default/xui/fr/menu_inspect_avatar_gear.xml +++ b/indra/newview/skins/default/xui/fr/menu_inspect_avatar_gear.xml @@ -3,7 +3,7 @@  	<menu_item_call label="Voir le profil" name="view_profile"/>  	<menu_item_call label="Devenir amis" name="add_friend"/>  	<menu_item_call label="IM" name="im"/> -	<menu_item_call label="Appeler" name="call"/> +	<menu_item_call label="Appel" name="call"/>  	<menu_item_call label="Téléporter" name="teleport"/>  	<menu_item_call label="Inviter dans le groupe" name="invite_to_group"/>  	<menu_item_call label="Ignorer" name="block"/> diff --git a/indra/newview/skins/default/xui/fr/panel_main_inventory.xml b/indra/newview/skins/default/xui/fr/panel_main_inventory.xml index e4c35d60fe..3e7225d8ac 100644 --- a/indra/newview/skins/default/xui/fr/panel_main_inventory.xml +++ b/indra/newview/skins/default/xui/fr/panel_main_inventory.xml @@ -1,7 +1,7 @@  <?xml version="1.0" encoding="utf-8" standalone="yes"?>  <panel label="Choses" name="main inventory panel">  	<panel.string name="ItemcountFetching"> -		Récupération de [ITEM_COUNT] articles... [FILTER] +		Récupération : [ITEM_COUNT] articles... [FILTER]  	</panel.string>  	<panel.string name="ItemcountCompleted">  		[ITEM_COUNT] articles [FILTER] diff --git a/indra/newview/skins/default/xui/fr/strings.xml b/indra/newview/skins/default/xui/fr/strings.xml index d6c701dc90..8b958119eb 100644 --- a/indra/newview/skins/default/xui/fr/strings.xml +++ b/indra/newview/skins/default/xui/fr/strings.xml @@ -1089,7 +1089,7 @@  	<string name="Textures" value=" Textures,"/>  	<string name="Snapshots" value=" Photos,"/>  	<string name="No Filters" value="Non "/> -	<string name="Since Logoff" value=" - Depuis la déconnexion"/> +	<string name="Since Logoff" value=" depuis la déconnexion"/>  	<string name="InvFolder My Inventory">  		Mon inventaire  	</string> | 
