diff options
| -rw-r--r-- | .hgtags | 14 | ||||
| -rw-r--r-- | BuildParams | 1 | ||||
| -rwxr-xr-x | build.sh | 3 | ||||
| -rw-r--r-- | indra/newview/app_settings/settings.xml | 22 | ||||
| -rw-r--r-- | indra/newview/llfolderview.cpp | 63 | ||||
| -rw-r--r-- | indra/newview/llfolderview.h | 3 | ||||
| -rw-r--r-- | indra/newview/llinspectavatar.cpp | 88 | ||||
| -rw-r--r-- | indra/newview/llinventoryfilter.cpp | 18 | ||||
| -rw-r--r-- | indra/newview/llinventorypanel.cpp | 73 | ||||
| -rw-r--r-- | indra/newview/llinventorypanel.h | 3 | ||||
| -rw-r--r-- | indra/newview/llviewermedia.cpp | 21 | ||||
| -rw-r--r-- | indra/newview/llwearableitemslist.cpp | 3 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/da/panel_people.xml | 18 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/floater_web_content.xml | 16 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/menu_inspect_avatar_gear.xml | 20 | ||||
| -rw-r--r-- | indra/newview/tests/llcapabilitylistener_test.cpp | 2 | 
16 files changed, 273 insertions, 95 deletions
| @@ -51,3 +51,17 @@ a82e5b1e22c7f90e3c7977d146b80588f004ed0d 2.5.0-start  345b17e7cf630db77e840b4fe3451bd476d750a3 2.5.0-beta1  345b17e7cf630db77e840b4fe3451bd476d750a3 76f586a8e22b  0000000000000000000000000000000000000000 76f586a8e22b +54d772d8687c69b1d773f6ce14bbc7bdc9d6c05f 2.5.0-beta2 +7076e22f9f43f479a4ea75eac447a36364bead5a DRTVWR-5_2.2.0-beta1 +9822eb3e25f7fe0c28ffd8aba45c507caa383cbc DRTVWR-3_2.2.0-beta2 +b0cd7e150009809a0b5b0a9d5785cd4bb230413a DRTVWR-7_2.2.0-beta3 +1415e6538d54fd5d568ee88343424d57c6803c2c DRTVWR-8_2.2.0-release +a3c12342b1af0951b8aa3b828aacef17fcea8178 DRTVWR-14_2.3.0-beta1 +db0fe9bb65187f365e58a717dd23d0f4754a9c1d DRTVWR-17_2.3.0-beta2 +6ad3d6fa35a4e320e9ce442fce2bf9c7fc852556 DRTVWR-20_2.3.0-beta3 +6ad3d6fa35a4e320e9ce442fce2bf9c7fc852556 DRTVWR-13_2.3.0-release +3bc1f50a72e117f4d4ad8d555f0c785ea8cc201e DRTVWR-26_2.4.0-beta1 +25bd6007e3d2fc15db9326ed4b18a24a5969a46a DRTVWR-27_2.4.0-beta2 +1ed382c6a08ba3850b6ce9061bc551ddece0ea07 DRTVWR-25_2.4.0-release +345b17e7cf630db77e840b4fe3451bd476d750a3 DRTVWR-32_2.5.0-beta1 +54d772d8687c69b1d773f6ce14bbc7bdc9d6c05f DRTVWR-33_2.5.0-beta2 diff --git a/BuildParams b/BuildParams index 0a4271f7a8..8e036ab56b 100644 --- a/BuildParams +++ b/BuildParams @@ -26,6 +26,7 @@ viewer-development.show_changes_since = last_sprint  # Build Settings  viewer-development_coverity.coverity_product = viewer +viewer-development_coverity.run_tests = false  viewer-development.build_debug_release_separately = true  # Notifications - to configure email notices, add a setting like this: @@ -66,7 +66,8 @@ pre_build()      -DRELEASE_CRASH_REPORTING:BOOL=ON \      -DLOCALIZESETUP:BOOL=ON \      -DPACKAGE:BOOL=ON \ -    -DCMAKE_VERBOSE_MAKEFILE:BOOL=TRUE +    -DCMAKE_VERBOSE_MAKEFILE:BOOL=TRUE \ +    -DLL_TESTS:BOOL="$run_tests"    end_section "Pre$variant"  } diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 72d83ad024..6630d8f400 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -697,28 +697,6 @@        <key>Value</key>        <integer>0</integer>      </map> -    <key>BrowserUseDefaultCAFile</key> -    <map> -      <key>Comment</key> -      <string>Tell the built-in web browser to use the CA.pem file shipped with the client.</string> -      <key>Persist</key> -      <integer>1</integer> -      <key>Type</key> -      <string>Boolean</string> -      <key>Value</key> -      <integer>1</integer> -    </map> -    <key>BrowserCAFilePath</key> -    <map> -      <key>Comment</key> -      <string>Tell the built-in web browser the path to an alternative CA.pem file (only used if BrowserUseDefaultCAFile is false).</string> -      <key>Persist</key> -      <integer>1</integer> -      <key>Type</key> -      <string>String</string> -      <key>Value</key> -      <string></string> -    </map>        <key>BlockAvatarAppearanceMessages</key>          <map>          <key>Comment</key> diff --git a/indra/newview/llfolderview.cpp b/indra/newview/llfolderview.cpp index 62ba746a02..b3b1ce5743 100644 --- a/indra/newview/llfolderview.cpp +++ b/indra/newview/llfolderview.cpp @@ -1854,31 +1854,9 @@ BOOL LLFolderView::handleRightMouseDown( S32 x, S32 y, MASK mask )  	{  		if (mCallbackRegistrar)  			mCallbackRegistrar->pushScope(); -		//menu->empty(); -		const LLView::child_list_t *list = menu->getChildList(); -		LLView::child_list_t::const_iterator menu_itor; -		for (menu_itor = list->begin(); menu_itor != list->end(); ++menu_itor) -		{ -			(*menu_itor)->setVisible(FALSE); -			(*menu_itor)->pushVisible(TRUE); -			(*menu_itor)->setEnabled(TRUE); -		} -		 -		// Successively filter out invalid options - -		U32 flags = FIRST_SELECTED_ITEM; -		for (selected_items_t::iterator item_itor = mSelectedItems.begin();  -			 item_itor != mSelectedItems.end();  -			 ++item_itor) -		{ -			LLFolderViewItem* selected_item = (*item_itor); -			selected_item->buildContextMenu(*menu, flags); -			flags = 0x0; -		} +		updateMenuOptions(menu); -		addNoOptions(menu); -  		menu->updateParent(LLMenuGL::sMenuContainer);  		LLMenuGL::showPopup(this, menu, x, y);  		if (mCallbackRegistrar) @@ -2365,6 +2343,45 @@ void LLFolderView::updateRenamerPosition()  	}  } +// Update visibility and availability (i.e. enabled/disabled) of context menu items. +void LLFolderView::updateMenuOptions(LLMenuGL* menu) +{ +	const LLView::child_list_t *list = menu->getChildList(); + +	LLView::child_list_t::const_iterator menu_itor; +	for (menu_itor = list->begin(); menu_itor != list->end(); ++menu_itor) +	{ +		(*menu_itor)->setVisible(FALSE); +		(*menu_itor)->pushVisible(TRUE); +		(*menu_itor)->setEnabled(TRUE); +	} + +	// Successively filter out invalid options + +	U32 flags = FIRST_SELECTED_ITEM; +	for (selected_items_t::iterator item_itor = mSelectedItems.begin(); +			item_itor != mSelectedItems.end(); +			++item_itor) +	{ +		LLFolderViewItem* selected_item = (*item_itor); +		selected_item->buildContextMenu(*menu, flags); +		flags = 0x0; +	} + +	addNoOptions(menu); +} + +// Refresh the context menu (that is already shown). +void LLFolderView::updateMenu() +{ +	LLMenuGL* menu = (LLMenuGL*)mPopupMenuHandle.get(); +	if (menu && menu->getVisible()) +	{ +		updateMenuOptions(menu); +		menu->needsArrange(); // update menu height if needed +	} +} +  bool LLFolderView::selectFirstItem()  {  	for (folders_t::iterator iter = mFolders.begin(); diff --git a/indra/newview/llfolderview.h b/indra/newview/llfolderview.h index afaac86b04..210ba9eb3c 100644 --- a/indra/newview/llfolderview.h +++ b/indra/newview/llfolderview.h @@ -269,7 +269,10 @@ public:  	virtual S32	notify(const LLSD& info) ;  	bool useLabelSuffix() { return mUseLabelSuffix; } +	void updateMenu(); +  private: +	void updateMenuOptions(LLMenuGL* menu);  	void updateRenamerPosition();  protected: diff --git a/indra/newview/llinspectavatar.cpp b/indra/newview/llinspectavatar.cpp index 91ede6d221..17d0b0ffbb 100644 --- a/indra/newview/llinspectavatar.cpp +++ b/indra/newview/llinspectavatar.cpp @@ -47,6 +47,7 @@  #include "llvoiceclient.h"  #include "llviewerobjectlist.h"  #include "lltransientfloatermgr.h" +#include "llnotificationsutil.h"  // Linden libraries  #include "llfloater.h" @@ -126,16 +127,20 @@ private:  	void onClickReport();  	void onClickFreeze();  	void onClickEject(); +	void onClickKick(); +	void onClickCSR();  	void onClickZoomIn();    	void onClickFindOnMap();  	bool onVisibleFindOnMap(); -	bool onVisibleFreezeEject(); +	bool onVisibleEject(); +	bool onVisibleFreeze();  	bool onVisibleZoomIn();  	void onClickMuteVolume();  	void onVolumeChange(const LLSD& data);  	bool enableMute();  	bool enableUnmute();  	bool enableTeleportOffer(); +	bool godModeEnabled();  	// Is used to determine if "Add friend" option should be enabled in gear menu  	bool isNotFriend(); @@ -214,20 +219,21 @@ LLInspectAvatar::LLInspectAvatar(const LLSD& sd)  	mCommitCallbackRegistrar.add("InspectAvatar.Pay",	boost::bind(&LLInspectAvatar::onClickPay, this));	  	mCommitCallbackRegistrar.add("InspectAvatar.Share",	boost::bind(&LLInspectAvatar::onClickShare, this));  	mCommitCallbackRegistrar.add("InspectAvatar.ToggleMute",	boost::bind(&LLInspectAvatar::onToggleMute, this));	 -	mCommitCallbackRegistrar.add("InspectAvatar.Freeze", -		boost::bind(&LLInspectAvatar::onClickFreeze, this));	 -	mCommitCallbackRegistrar.add("InspectAvatar.Eject", -		boost::bind(&LLInspectAvatar::onClickEject, this));	 +	mCommitCallbackRegistrar.add("InspectAvatar.Freeze", boost::bind(&LLInspectAvatar::onClickFreeze, this));	 +	mCommitCallbackRegistrar.add("InspectAvatar.Eject", boost::bind(&LLInspectAvatar::onClickEject, this));	 +	mCommitCallbackRegistrar.add("InspectAvatar.Kick", boost::bind(&LLInspectAvatar::onClickKick, this));	 +	mCommitCallbackRegistrar.add("InspectAvatar.CSR", boost::bind(&LLInspectAvatar::onClickCSR, this));	  	mCommitCallbackRegistrar.add("InspectAvatar.Report",	boost::bind(&LLInspectAvatar::onClickReport, this));	  	mCommitCallbackRegistrar.add("InspectAvatar.FindOnMap",	boost::bind(&LLInspectAvatar::onClickFindOnMap, this));	  	mCommitCallbackRegistrar.add("InspectAvatar.ZoomIn", boost::bind(&LLInspectAvatar::onClickZoomIn, this));  	mCommitCallbackRegistrar.add("InspectAvatar.DisableVoice", boost::bind(&LLInspectAvatar::toggleSelectedVoice, this, false));  	mCommitCallbackRegistrar.add("InspectAvatar.EnableVoice", boost::bind(&LLInspectAvatar::toggleSelectedVoice, this, true)); + +	mEnableCallbackRegistrar.add("InspectAvatar.EnableGod",	boost::bind(&LLInspectAvatar::godModeEnabled, this));	  	mEnableCallbackRegistrar.add("InspectAvatar.VisibleFindOnMap",	boost::bind(&LLInspectAvatar::onVisibleFindOnMap, this));	 -	mEnableCallbackRegistrar.add("InspectAvatar.VisibleFreezeEject",	 -		boost::bind(&LLInspectAvatar::onVisibleFreezeEject, this));	 -	mEnableCallbackRegistrar.add("InspectAvatar.VisibleZoomIn",  -		boost::bind(&LLInspectAvatar::onVisibleZoomIn, this)); +	mEnableCallbackRegistrar.add("InspectAvatar.VisibleEject",	boost::bind(&LLInspectAvatar::onVisibleEject, this));	 +	mEnableCallbackRegistrar.add("InspectAvatar.VisibleFreeze",	boost::bind(&LLInspectAvatar::onVisibleFreeze, this));	 +	mEnableCallbackRegistrar.add("InspectAvatar.VisibleZoomIn", boost::bind(&LLInspectAvatar::onVisibleZoomIn, this));  	mEnableCallbackRegistrar.add("InspectAvatar.Gear.Enable", boost::bind(&LLInspectAvatar::isNotFriend, this));  	mEnableCallbackRegistrar.add("InspectAvatar.Gear.EnableCall", boost::bind(&LLAvatarActions::canCall));  	mEnableCallbackRegistrar.add("InspectAvatar.Gear.EnableTeleportOffer", boost::bind(&LLInspectAvatar::enableTeleportOffer, this)); @@ -656,11 +662,18 @@ bool LLInspectAvatar::onVisibleFindOnMap()  	return gAgent.isGodlike() || is_agent_mappable(mAvatarID);  } -bool LLInspectAvatar::onVisibleFreezeEject() +bool LLInspectAvatar::onVisibleEject()  {  	return enable_freeze_eject( LLSD(mAvatarID) );  } +bool LLInspectAvatar::onVisibleFreeze() +{ +	// either user is a god and can do long distance freeze +	// or check for target proximity and permissions +	return gAgent.isGodlike() || enable_freeze_eject(LLSD(mAvatarID)); +} +  bool LLInspectAvatar::onVisibleZoomIn()  {  	return gObjectList.findObject(mAvatarID); @@ -704,7 +717,7 @@ void LLInspectAvatar::onClickShare()  void LLInspectAvatar::onToggleMute()  { -	LLMute mute(mAvatarID, mAvatarName.getLegacyName(), LLMute::AGENT); +	LLMute mute(mAvatarID, mAvatarName.mDisplayName, LLMute::AGENT);  	if (LLMuteList::getInstance()->isMuted(mute.mID, mute.mName))  	{ @@ -725,9 +738,41 @@ void LLInspectAvatar::onClickReport()  	closeFloater();  } +bool godlike_freeze(const LLSD& notification, const LLSD& response) +{ +	LLUUID avatar_id = notification["payload"]["avatar_id"].asUUID(); +	S32 option = LLNotificationsUtil::getSelectedOption(notification, response); + +	switch (option) +	{ +	case 0: +		LLAvatarActions::freeze(avatar_id); +		break; +	case 1: +		LLAvatarActions::unfreeze(avatar_id); +		break; +	default: +		break; +	} + +	return false; +} +  void LLInspectAvatar::onClickFreeze()  { -	handle_avatar_freeze( LLSD(mAvatarID) ); +	if (gAgent.isGodlike()) +	{ +		// use godlike freeze-at-a-distance, with confirmation +		LLNotificationsUtil::add("FreezeAvatar", +			LLSD(), +			LLSD().with("avatar_id", mAvatarID), +			godlike_freeze); +	} +	else +	{ +		// use default "local" version of freezing that requires avatar to be in range +		handle_avatar_freeze( LLSD(mAvatarID) ); +	}  	closeFloater();  } @@ -737,6 +782,20 @@ void LLInspectAvatar::onClickEject()  	closeFloater();  } +void LLInspectAvatar::onClickKick() +{ +	LLAvatarActions::kick(mAvatarID); +	closeFloater(); +} + +void LLInspectAvatar::onClickCSR() +{ +	std::string name; +	gCacheName->getFullName(mAvatarID, name); +	LLAvatarActions::csr(mAvatarID, name); +	closeFloater(); +} +  void LLInspectAvatar::onClickZoomIn()   {  	handle_zoom_to_object(mAvatarID); @@ -785,6 +844,11 @@ bool LLInspectAvatar::enableTeleportOffer()  	return LLAvatarActions::canOfferTeleport(mAvatarID);  } +bool LLInspectAvatar::godModeEnabled() +{ +	return gAgent.isGodlike(); +} +  //////////////////////////////////////////////////////////////////////////////  // LLInspectAvatarUtil  ////////////////////////////////////////////////////////////////////////////// diff --git a/indra/newview/llinventoryfilter.cpp b/indra/newview/llinventoryfilter.cpp index ef4774a06d..e22363c2f6 100644 --- a/indra/newview/llinventoryfilter.cpp +++ b/indra/newview/llinventoryfilter.cpp @@ -393,18 +393,22 @@ void LLInventoryFilter::setFilterUUID(const LLUUID& object_id)  void LLInventoryFilter::setFilterSubString(const std::string& string)  { -	if (mFilterSubString != string) +	std::string filter_sub_string_new = string; +	mFilterSubStringOrig = string; +	LLStringUtil::trimHead(filter_sub_string_new); +	LLStringUtil::toUpper(filter_sub_string_new); + +	if (mFilterSubString != filter_sub_string_new)  	{  		// hitting BACKSPACE, for example -		const BOOL less_restrictive = mFilterSubString.size() >= string.size() && !mFilterSubString.substr(0, string.size()).compare(string); +		const BOOL less_restrictive = mFilterSubString.size() >= filter_sub_string_new.size() +			&& !mFilterSubString.substr(0, filter_sub_string_new.size()).compare(filter_sub_string_new);  		// appending new characters -		const BOOL more_restrictive = mFilterSubString.size() < string.size() && !string.substr(0, mFilterSubString.size()).compare(mFilterSubString); +		const BOOL more_restrictive = mFilterSubString.size() < filter_sub_string_new.size() +			&& !filter_sub_string_new.substr(0, mFilterSubString.size()).compare(mFilterSubString); -		mFilterSubStringOrig = string; -		LLStringUtil::trimHead(mFilterSubStringOrig); -		mFilterSubString = mFilterSubStringOrig; -		LLStringUtil::toUpper(mFilterSubString); +		mFilterSubString = filter_sub_string_new;  		if (less_restrictive)  		{  			setModified(FILTER_LESS_RESTRICTIVE); diff --git a/indra/newview/llinventorypanel.cpp b/indra/newview/llinventorypanel.cpp index 5a9d1524f3..1dcb91ad4d 100644 --- a/indra/newview/llinventorypanel.cpp +++ b/indra/newview/llinventorypanel.cpp @@ -60,6 +60,7 @@ static const LLInventoryFVBridgeBuilder INVENTORY_BRIDGE_BUILDER;  //  // Bridge to support knowing when the inventory has changed.  //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +  class LLInventoryPanelObserver : public LLInventoryObserver  {  public: @@ -73,9 +74,57 @@ protected:  	LLInventoryPanel* mIP;  }; +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// Class LLInvPanelComplObserver +// +// Calls specified callback when all specified items become complete. +// +// Usage: +// observer = new LLInvPanelComplObserver(boost::bind(onComplete)); +// inventory->addObserver(observer); +// observer->reset(); // (optional) +// observer->watchItem(incomplete_item1_id); +// observer->watchItem(incomplete_item2_id); +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +class LLInvPanelComplObserver : public LLInventoryCompletionObserver +{ +public: +	typedef boost::function<void()> callback_t; + +	LLInvPanelComplObserver(callback_t cb) +	:	mCallback(cb) +	{ +	} + +	void reset(); + +private: +	/*virtual*/ void done(); + +	/// Called when all the items are complete. +	callback_t	mCallback; +}; + +void LLInvPanelComplObserver::reset() +{ +	mIncomplete.clear(); +	mComplete.clear(); +} + +void LLInvPanelComplObserver::done() +{ +	mCallback(); +} + +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// Class LLInventoryPanel +//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +  LLInventoryPanel::LLInventoryPanel(const LLInventoryPanel::Params& p) :	  	LLPanel(p),  	mInventoryObserver(NULL), +	mCompletionObserver(NULL),  	mFolderRoot(NULL),  	mScroller(NULL),  	mSortOrderSetting(p.sort_order_setting), @@ -152,6 +201,9 @@ void LLInventoryPanel::initFromParams(const LLInventoryPanel::Params& params)  	mInventoryObserver = new LLInventoryPanelObserver(this);  	mInventory->addObserver(mInventoryObserver); +	mCompletionObserver = new LLInvPanelComplObserver(boost::bind(&LLInventoryPanel::onItemsCompletion, this)); +	mInventory->addObserver(mCompletionObserver); +  	// Build view of inventory if we need default full hierarchy and inventory ready,  	// otherwise wait for idle callback.  	if (mBuildDefaultHierarchy && mInventory->isInventoryUsable() && !mViewsInitialized) @@ -189,7 +241,10 @@ LLInventoryPanel::~LLInventoryPanel()  	// LLView destructor will take care of the sub-views.  	mInventory->removeObserver(mInventoryObserver); +	mInventory->removeObserver(mCompletionObserver);  	delete mInventoryObserver; +	delete mCompletionObserver; +  	mScroller = NULL;  } @@ -654,6 +709,11 @@ void LLInventoryPanel::openStartFolderOrMyInventory()  	}  } +void LLInventoryPanel::onItemsCompletion() +{ +	if (mFolderRoot) mFolderRoot->updateMenu(); +} +  void LLInventoryPanel::openSelected()  {  	LLFolderViewItem* folder_item = mFolderRoot->getCurSelectedItem(); @@ -757,6 +817,19 @@ void LLInventoryPanel::clearSelection()  void LLInventoryPanel::onSelectionChange(const std::deque<LLFolderViewItem*>& items, BOOL user_action)  { +	// Schedule updating the folder view context menu when all selected items become complete (STORM-373). +	mCompletionObserver->reset(); +	for (std::deque<LLFolderViewItem*>::const_iterator it = items.begin(); it != items.end(); ++it) +	{ +		LLUUID id = (*it)->getListener()->getUUID(); +		LLViewerInventoryItem* inv_item = mInventory->getItem(id); + +		if (inv_item && !inv_item->isFinished()) +		{ +			mCompletionObserver->watchItem(id); +		} +	} +  	LLFolderView* fv = getRootFolder();  	if (fv->needsAutoRename()) // auto-selecting a new user-created asset and preparing to rename  	{ diff --git a/indra/newview/llinventorypanel.h b/indra/newview/llinventorypanel.h index 6545fc0d5e..9da9f7d8ba 100644 --- a/indra/newview/llinventorypanel.h +++ b/indra/newview/llinventorypanel.h @@ -52,6 +52,7 @@ class LLIconCtrl;  class LLSaveFolderState;  class LLFilterEditor;  class LLTabContainer; +class LLInvPanelComplObserver;  class LLInventoryPanel : public LLPanel  { @@ -167,9 +168,11 @@ public:  protected:  	void openStartFolderOrMyInventory(); // open the first level of inventory +	void onItemsCompletion();			// called when selected items are complete  	LLInventoryModel*			mInventory;  	LLInventoryObserver*		mInventoryObserver; +	LLInvPanelComplObserver*	mCompletionObserver;  	BOOL 						mAllowMultiSelect;  	BOOL 						mShowItemLinkOverlays; // Shows link graphic over inventory item icons diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp index ed18d67b62..f16d8814dd 100644 --- a/indra/newview/llviewermedia.cpp +++ b/indra/newview/llviewermedia.cpp @@ -1832,16 +1832,17 @@ bool LLViewerMediaImpl::initializePlugin(const std::string& media_type)  			media_source->ignore_ssl_cert_errors(true);  		} -		// start by assuming the default CA file will be used -		std::string ca_path = gDirUtilp->getExpandedFilename( LL_PATH_APP_SETTINGS, "lindenlab.pem" ); -	 -		// default turned off so pick up the user specified path -		if( ! gSavedSettings.getBOOL("BrowserUseDefaultCAFile")) -		{ -			ca_path = gSavedSettings.getString("BrowserCAFilePath"); -		} -		// set the path to the CA.pem file -		media_source->addCertificateFilePath( ca_path ); +		// NOTE: Removed as per STORM-927 - SSL handshake failed - setting local self-signed certs like this  +		//       seems to screw things up big time. For now, devs will need to add these certs locally and Qt will pick them up. +//		// start by assuming the default CA file will be used +//		std::string ca_path = gDirUtilp->getExpandedFilename( LL_PATH_APP_SETTINGS, "lindenlab.pem" ); +//		// default turned off so pick up the user specified path +//		if( ! gSavedSettings.getBOOL("BrowserUseDefaultCAFile")) +//		{ +//			ca_path = gSavedSettings.getString("BrowserCAFilePath"); +//		} +//		// set the path to the CA.pem file +//		media_source->addCertificateFilePath( ca_path );  		media_source->proxy_setup(gSavedSettings.getBOOL("BrowserProxyEnabled"), gSavedSettings.getString("BrowserProxyAddress"), gSavedSettings.getS32("BrowserProxyPort")); diff --git a/indra/newview/llwearableitemslist.cpp b/indra/newview/llwearableitemslist.cpp index a49dc1b59d..66a6ab5e94 100644 --- a/indra/newview/llwearableitemslist.cpp +++ b/indra/newview/llwearableitemslist.cpp @@ -287,6 +287,9 @@ BOOL LLPanelBodyPartsListItem::postBuild()  	addWidgetToRightSide("btn_lock");  	addWidgetToRightSide("btn_edit_panel"); +	setWidgetsVisible(false); +	reshapeWidgets(); +  	return TRUE;  } diff --git a/indra/newview/skins/default/xui/da/panel_people.xml b/indra/newview/skins/default/xui/da/panel_people.xml index 599686d360..b85a33279a 100644 --- a/indra/newview/skins/default/xui/da/panel_people.xml +++ b/indra/newview/skins/default/xui/da/panel_people.xml @@ -1,23 +1,23 @@  <?xml version="1.0" encoding="utf-8" standalone="yes"?>  <!-- Side tray panel -->  <panel label="Personer" name="people_panel"> -	<string name="no_recent_people" value="Ingen tidligere personer. Leder du efter nogen at være sammen med? Prøv [secondlife:///app/search/people Search] eller [secondlife:///app/worldmap World Map]."/> -	<string name="no_filtered_recent_people" value="Fandt du ikke det du søgte? Prøv [secondlife:///app/search/people/[SEARCH_TERM] Search]."/> -	<string name="no_one_near" value="Ingen i nærheden. Leder du efter nogen at være sammen med? Prøv [secondlife:///app/search/people Search] eller [secondlife:///app/worldmap World Map]."/> -	<string name="no_one_filtered_near" value="Fandt du ikke det du søgte? Prøv [secondlife:///app/search/people/[SEARCH_TERM] Search]."/> +	<string name="no_recent_people" value="Ingen tidligere personer. Leder du efter nogen at være sammen med? Prøv [secondlife:///app/search/people Søg] eller [secondlife:///app/worldmap Verdenskort]."/> +	<string name="no_filtered_recent_people" value="Fandt du ikke det du søgte? Prøv [secondlife:///app/search/people/[SEARCH_TERM] Søg]."/> +	<string name="no_one_near" value="Ingen i nærheden. Leder du efter nogen at være sammen med? Prøv [secondlife:///app/search/people Søg] eller [secondlife:///app/worldmap Verdenskort]."/> +	<string name="no_one_filtered_near" value="Fandt du ikke det du søgte? Prøv [secondlife:///app/search/people/[SEARCH_TERM] Søg]."/>  	<string name="no_friends_online" value="Ingen venner online"/>  	<string name="no_friends" value="Ingen venner"/>  	<string name="no_friends_msg"> -		Find venner via [secondlife:///app/search/people Search] eller højre-klik på en beboer og tilføj dem som venner. -Leder du efter nogen at være sammen med? Prøv [secondlife:///app/worldmap World Map]. +		Find venner via [secondlife:///app/search/people Søg] eller højre-klik på en beboer og tilføj dem som venner. +Leder du efter nogen at være sammen med? Prøv [secondlife:///app/worldmap Verdenskort].  	</string>  	<string name="no_filtered_friends_msg"> -		Fandt du ikke det du søgte? Prøv [secondlife:///app/search/people/[SEARCH_TERM] Search]. +		Fandt du ikke det du søgte? Prøv [secondlife:///app/search/people/[SEARCH_TERM] Søg].  	</string>  	<string name="people_filter_label" value="Filtrér personer"/>  	<string name="groups_filter_label" value="Filtrér grupper"/> -	<string name="no_filtered_groups_msg" value="Fandt du ikke det du søgte? Prøv [secondlife:///app/search/groups/[SEARCH_TERM] Search]."/> -	<string name="no_groups_msg" value="Leder du efter grupper at være med i? Prøv [secondlife:///app/search/groups Search]."/> +	<string name="no_filtered_groups_msg" value="Fandt du ikke det du søgte? Prøv [secondlife:///app/search/groups/[SEARCH_TERM] Søg]."/> +	<string name="no_groups_msg" value="Leder du efter grupper at være med i? Prøv [secondlife:///app/search/groups Søg]."/>  	<filter_editor label="Filtrér" name="filter_input"/>  	<tab_container name="tabs">  		<panel label="TÆT PÅ" name="nearby_panel"> diff --git a/indra/newview/skins/default/xui/en/floater_web_content.xml b/indra/newview/skins/default/xui/en/floater_web_content.xml index 6ec063cd26..e04a72cbc0 100644 --- a/indra/newview/skins/default/xui/en/floater_web_content.xml +++ b/indra/newview/skins/default/xui/en/floater_web_content.xml @@ -12,7 +12,7 @@    auto_tile="true"    title=""    initial_mime_type="text/html" -  width="735"> +  width="780">    <layout_stack      bottom="775"      follows="left|right|top|bottom" @@ -21,7 +21,7 @@      name="stack1"      orientation="vertical"      top="20" -    width="725"> +    width="770">      <layout_panel        auto_resize="false"        default_tab_group="1" @@ -32,7 +32,7 @@        name="nav_controls"        top="400"        user_resize="false" -      width="725"> +      width="770">        <button          image_overlay="Arrow_Left_Off"  		    image_disabled="PushButton_Disabled" @@ -115,7 +115,7 @@          combo_editor.select_on_focus="true"          tool_tip="Enter URL here"          top_delta="0" -        width="627"> +        width="672">          <combo_box.commit_callback            function="WebContent.EnterAddress" />        </combo_box> @@ -125,7 +125,7 @@          follows="top|right"          image_name="Lock2"          layout="topleft" -        left_delta="575" +        left_delta="620"          top_delta="2"          visible="false"           tool_tip="Secured Browsing" @@ -142,7 +142,7 @@          height="22"          layout="topleft"          name="popexternal" -        right="725" +        right="770"          top_delta="-2"          width="22">          <button.commit_callback @@ -156,7 +156,7 @@        name="external_controls"        top_delta="0"        user_resize="false" -      width="540"> +      width="585">        <web_browser          bottom="-22"          follows="all" @@ -175,7 +175,7 @@          parse_urls="false"          text_color="0.4 0.4 0.4 1"          top_pad="5" -        width="520"/> +        width="495"/>        <progress_bar          color_bar="0.3 1.0 0.3 1"          follows="bottom|right" diff --git a/indra/newview/skins/default/xui/en/menu_inspect_avatar_gear.xml b/indra/newview/skins/default/xui/en/menu_inspect_avatar_gear.xml index 58d58a6ca9..76b188220d 100644 --- a/indra/newview/skins/default/xui/en/menu_inspect_avatar_gear.xml +++ b/indra/newview/skins/default/xui/en/menu_inspect_avatar_gear.xml @@ -78,7 +78,7 @@      <menu_item_call.on_click       function="InspectAvatar.Freeze"/>      <menu_item_call.on_visible -     function="InspectAvatar.VisibleFreezeEject"/> +     function="InspectAvatar.VisibleFreeze"/>    </menu_item_call>    <menu_item_call     label="Eject" @@ -86,7 +86,23 @@      <menu_item_call.on_click       function="InspectAvatar.Eject"/>      <menu_item_call.on_visible -     function="InspectAvatar.VisibleFreezeEject"/> +     function="InspectAvatar.VisibleEject"/> +  </menu_item_call> +  <menu_item_call +   label="Kick" +   name="kick"> +    <menu_item_call.on_click +     function="InspectAvatar.Kick"/> +    <menu_item_call.on_visible +     function="InspectAvatar.EnableGod"/> +  </menu_item_call> +  <menu_item_call +  label="CSR" +  name="csr"> +    <menu_item_call.on_click +     function="InspectAvatar.CSR" /> +    <menu_item_call.on_visible +     function="InspectAvatar.EnableGod" />    </menu_item_call>    <menu_item_call     label="Debug Textures" diff --git a/indra/newview/tests/llcapabilitylistener_test.cpp b/indra/newview/tests/llcapabilitylistener_test.cpp index 9da851ffc4..d691bb6c44 100644 --- a/indra/newview/tests/llcapabilitylistener_test.cpp +++ b/indra/newview/tests/llcapabilitylistener_test.cpp @@ -72,7 +72,7 @@ struct TestCapabilityProvider: public LLCapabilityProvider      {          mCaps[cap] = url;      } -    LLHost getHost() const { return mHost; } +    const LLHost& getHost() const { return mHost; }      std::string getDescription() const { return "TestCapabilityProvider"; }      LLHost mHost; | 
