diff options
Diffstat (limited to 'indra/newview')
| -rw-r--r-- | indra/newview/CMakeLists.txt | 2 | ||||
| -rw-r--r-- | indra/newview/app_settings/settings.xml | 46 | ||||
| -rw-r--r-- | indra/newview/llfloatertools.cpp | 17 | ||||
| -rw-r--r-- | indra/newview/llfloatertools.h | 3 | ||||
| -rw-r--r-- | indra/newview/llpaneloutfitsinventory.cpp | 16 | ||||
| -rw-r--r-- | indra/newview/llpaneloutfitsinventory.h | 3 | ||||
| -rw-r--r-- | indra/newview/llpanelpicks.cpp | 85 | ||||
| -rw-r--r-- | indra/newview/llpanelpicks.h | 7 | ||||
| -rw-r--r-- | indra/newview/llpanelprofile.cpp | 28 | ||||
| -rw-r--r-- | indra/newview/llviewercontrol.cpp | 23 | ||||
| -rw-r--r-- | indra/newview/llvoavatarself.cpp | 37 | ||||
| -rw-r--r-- | indra/newview/llvoavatarself.h | 2 | ||||
| -rw-r--r-- | indra/newview/llvovolume.cpp | 35 | ||||
| -rw-r--r-- | indra/newview/llwearable.cpp | 2 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/panel_outfits_inventory.xml | 9 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/sidepanel_appearance.xml | 2 | ||||
| -rwxr-xr-x | indra/newview/viewer_manifest.py | 1 | 
17 files changed, 193 insertions, 125 deletions
| diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index 492d70a956..293faa7b70 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -1780,6 +1780,7 @@ if (WINDOWS)      qtnetworkd4.dll      qtopengld4.dll      qtwebkitd4.dll +    qtxmlpatternsd4.dll      ssleay32.dll      )    copy_if_different( @@ -1799,6 +1800,7 @@ if (WINDOWS)      qtnetwork4.dll      qtopengl4.dll      qtwebkit4.dll +    qtxmlpatterns4.dll          ssleay32.dll      )    copy_if_different( diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index ff569ecffa..6fa839235a 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -5471,6 +5471,17 @@        <key>Value</key>  	  <integer>13</integer>      </map> +	<key>PrimMediaMasterEnabled</key> +	<map> +	  <key>Comment</key> +      <string>Whether or not Media on a Prim is enabled.</string> +      <key>Persist</key> +      <integer>1</integer> +      <key>Type</key> +      <string>Boolean</string> +      <key>Value</key> +      <integer>1</integer> +    </map>  	<key>PrimMediaControlsUseHoverControlSet</key>  	<map>  	  <key>Comment</key> @@ -5823,17 +5834,6 @@        <key>Value</key>        <integer>35</integer>      </map> -    <key>RenderAvatarInvisible</key> -    <map> -      <key>Comment</key> -      <string>Set your avatar as Invisible</string> -      <key>Persist</key> -      <integer>0</integer> -      <key>Type</key> -      <string>Boolean</string> -      <key>Value</key> -      <integer>0</integer> -    </map>      <key>RenderAvatarVP</key>      <map>        <key>Comment</key> @@ -7781,6 +7781,17 @@        <key>Value</key>        <integer>0</integer>      </map> +    <key>ShowDebugAppearanceEditor</key> +    <map> +      <key>Comment</key> +      <string>Show debugging appearance editor</string> +      <key>Persist</key> +      <integer>1</integer> +      <key>Type</key> +      <string>Boolean</string> +      <key>Value</key> +      <integer>0</integer> +    </map>      <key>ShowEmptyFoldersWhenSearching</key>      <map>        <key>Comment</key> @@ -7879,7 +7890,18 @@        <string>Boolean</string>        <key>Value</key>        <integer>1</integer>    -    </map>     +    </map> +    <key>ShowObjectRenderingCost</key>                 +    <map> +      <key>Comment</key> +      <string>Show the object rendering cost  in  build tools</string> +      <key>Persist</key> +      <integer>1</integer> +      <key>Type</key> +      <string>Boolean</string> +      <key>Value</key> +      <integer>1</integer>    +    </map>              <key>ShowNavbarFavoritesPanel</key>          <map>        <key>Comment</key> diff --git a/indra/newview/llfloatertools.cpp b/indra/newview/llfloatertools.cpp index 7fb71d4d4f..babef5b63d 100644 --- a/indra/newview/llfloatertools.cpp +++ b/indra/newview/llfloatertools.cpp @@ -93,7 +93,7 @@  // Globals  LLFloaterTools *gFloaterTools = NULL; - +bool LLFloaterTools::sShowObjectCost = true;  const std::string PANEL_NAMES[LLFloaterTools::PANEL_COUNT] =  { @@ -286,6 +286,8 @@ BOOL	LLFloaterTools::postBuild()  	mStatusText["grab"] = getString("status_grab");  	mStatusText["place"] = getString("status_place");  	mStatusText["selectland"] = getString("status_selectland"); + +	sShowObjectCost = gSavedSettings.getBOOL("ShowObjectRenderingCost");  	return TRUE;  } @@ -425,16 +427,19 @@ void LLFloaterTools::refresh()  	childSetTextArg("prim_count", "[COUNT]", prim_count_string);  	// calculate selection rendering cost -	std::string prim_cost_string; -	LLResMgr::getInstance()->getIntegerString(prim_cost_string, calcRenderCost()); -	childSetTextArg("RenderingCost", "[COUNT]", prim_cost_string); +	if (sShowObjectCost) +	{ +		std::string prim_cost_string; +		LLResMgr::getInstance()->getIntegerString(prim_cost_string, calcRenderCost()); +		childSetTextArg("RenderingCost", "[COUNT]", prim_cost_string); +	}  	// disable the object and prim counts if nothing selected  	bool have_selection = ! LLSelectMgr::getInstance()->getSelection()->isEmpty();  	childSetEnabled("obj_count", have_selection);  	childSetEnabled("prim_count", have_selection); -	childSetEnabled("RenderingCost", have_selection); +	childSetEnabled("RenderingCost", have_selection && sShowObjectCost);  	// Refresh child tabs  	mPanelPermissions->refresh(); @@ -566,7 +571,7 @@ void LLFloaterTools::updatePopup(LLCoordGL center, MASK mask)  	mBtnEdit	->setToggleState( edit_visible );  	mRadioGroupEdit->setVisible( edit_visible );  	bool linked_parts = gSavedSettings.getBOOL("EditLinkedParts"); -	childSetVisible("RenderingCost", !linked_parts && (edit_visible || focus_visible || move_visible)); +	childSetVisible("RenderingCost", !linked_parts && (edit_visible || focus_visible || move_visible) && sShowObjectCost);  	if (mCheckSelectIndividual)  	{ diff --git a/indra/newview/llfloatertools.h b/indra/newview/llfloatertools.h index 05a88a31d3..85aeb9f523 100644 --- a/indra/newview/llfloatertools.h +++ b/indra/newview/llfloatertools.h @@ -196,6 +196,9 @@ private:  protected:  	LLSD				mMediaSettings; + +public: +	static bool		sShowObjectCost;  }; diff --git a/indra/newview/llpaneloutfitsinventory.cpp b/indra/newview/llpaneloutfitsinventory.cpp index f73c1363f6..59cd01f920 100644 --- a/indra/newview/llpaneloutfitsinventory.cpp +++ b/indra/newview/llpaneloutfitsinventory.cpp @@ -56,7 +56,10 @@  #include "llmenugl.h"  #include "llviewermenu.h" +#include "llviewercontrol.h" +  static LLRegisterPanelClassWrapper<LLPanelOutfitsInventory> t_inventory("panel_outfits_inventory"); +bool LLPanelOutfitsInventory::sShowDebugEditor = false;  LLPanelOutfitsInventory::LLPanelOutfitsInventory() :  	mActivePanel(NULL), @@ -74,7 +77,7 @@ LLPanelOutfitsInventory::~LLPanelOutfitsInventory()  // virtual  BOOL LLPanelOutfitsInventory::postBuild()  { -	 +	sShowDebugEditor = gSavedSettings.getBOOL("ShowDebugAppearanceEditor");  	initTabPanels();  	initListCommandsHandlers();  	return TRUE; @@ -86,6 +89,11 @@ void LLPanelOutfitsInventory::updateVerbs()  	{  		mParent->updateVerbs();  	} + +	if (mListCommands) +	{ +		mListCommands->childSetVisible("look_edit_btn",sShowDebugEditor); +	}  }  void LLPanelOutfitsInventory::setParent(LLSidepanelAppearance* parent) @@ -178,7 +186,6 @@ void LLPanelOutfitsInventory::onSelectionChange(const std::deque<LLFolderViewIte  void LLPanelOutfitsInventory::onSelectorButtonClicked()  { -	/*  	  LLFolderViewItem* cur_item = getRootFolder()->getCurSelectedItem();  	  LLFolderViewEventListener* listenerp = cur_item->getListener(); @@ -190,7 +197,6 @@ void LLPanelOutfitsInventory::onSelectorButtonClicked()  	  LLSideTray::getInstance()->showPanel("sidepanel_appearance", key);  	  }  -	*/  }  LLFolderViewEventListener *LLPanelOutfitsInventory::getCorrectListenerForAction() @@ -236,7 +242,9 @@ void LLPanelOutfitsInventory::initListCommandsHandlers()  	mListCommands->childSetAction("trash_btn", boost::bind(&LLPanelOutfitsInventory::onTrashButtonClick, this));  	mListCommands->childSetAction("add_btn", boost::bind(&LLPanelOutfitsInventory::onAddButtonClick, this));  	mListCommands->childSetAction("wear_btn", boost::bind(&LLPanelOutfitsInventory::onWearButtonClick, this)); -	 + +	mListCommands->childSetAction("look_edit_btn", boost::bind(&LLPanelOutfitsInventory::onSelectorButtonClicked, this)); +  	LLDragAndDropButton* trash_btn = mListCommands->getChild<LLDragAndDropButton>("trash_btn");  	trash_btn->setDragAndDropHandler(boost::bind(&LLPanelOutfitsInventory::handleDragAndDropToTrash, this  				   ,       _4 // BOOL drop diff --git a/indra/newview/llpaneloutfitsinventory.h b/indra/newview/llpaneloutfitsinventory.h index b4babc853d..1e084750a0 100644 --- a/indra/newview/llpaneloutfitsinventory.h +++ b/indra/newview/llpaneloutfitsinventory.h @@ -120,6 +120,9 @@ private:  	LLMenuGL*					mMenuAdd;  	// List Commands                                                              //  	//////////////////////////////////////////////////////////////////////////////// +	/// +public: +	static bool sShowDebugEditor;  };  #endif //LL_LLPANELOUTFITSINVENTORY_H diff --git a/indra/newview/llpanelpicks.cpp b/indra/newview/llpanelpicks.cpp index 498782fb44..0a13180c73 100644 --- a/indra/newview/llpanelpicks.cpp +++ b/indra/newview/llpanelpicks.cpp @@ -57,7 +57,6 @@  #include "llpanelprofile.h"  #include "llpanelpick.h"  #include "llpanelclassified.h" -#include "llpanelprofileview.h"  #include "llsidetray.h"  static const std::string XML_BTN_NEW = "new_btn"; @@ -88,6 +87,14 @@ public:  	bool handle(const LLSD& params, const LLSD& query_map, LLMediaCtrl* web)  	{ +		// handle app/classified/create urls first +		if (params.size() == 1 && params[0].asString() == "create") +		{ +			createClassified(); +			return true; +		} + +		// then handle the general app/classified/{UUID}/{CMD} urls  		if (params.size() < 2)  		{  			return false; @@ -114,6 +121,31 @@ public:  		return false;  	} +	void createClassified() +	{ +		// open the new classified panel on the Me > Picks sidetray +		LLSD params; +		params["id"] = gAgent.getID(); +		params["open_tab_name"] = "panel_picks"; +		params["show_tab_panel"] = "create_classified"; +		LLSideTray::getInstance()->showPanel("panel_me", params); +	} + +	void openClassified(LLAvatarClassifiedInfo* c_info) +	{ +		// open the classified info panel on the Me > Picks sidetray +		LLSD params; +		params["id"] = c_info->creator_id; +		params["open_tab_name"] = "panel_picks"; +		params["show_tab_panel"] = "classified_details"; +		params["classified_id"] = c_info->classified_id; +		params["classified_avatar_id"] = c_info->creator_id; +		params["classified_snapshot_id"] = c_info->snapshot_id; +		params["classified_name"] = c_info->name; +		params["classified_desc"] = c_info->description; +		LLSideTray::getInstance()->showPanel("panel_profile_view", params); +	} +  	/*virtual*/ void processProperties(void* data, EAvatarProcessorType type)  	{  		if (APT_CLASSIFIED_INFO != type) @@ -128,22 +160,8 @@ public:  			return;  		} -		// open the people profile page for the classified's owner -		LLSD params; -		params["id"] = c_info->creator_id; -		params["classified"] = c_info->classified_id; -		params["open_tab_name"] = "panel_profile"; -		LLPanelProfileView *profile = dynamic_cast<LLPanelProfileView*>(LLSideTray::getInstance()->showPanel("panel_profile_view", params)); - -		// then open the classified panel on this user's profile panel -		if (profile) -		{ -			LLPanelPicks* panel_picks = profile->getChild<LLPanelPicks>("panel_picks"); -			if (panel_picks) -			{ -				panel_picks->openClassifiedInfo(c_info); -			} -		} +		// open the detail side tray for this classified +		openClassified(c_info);  		// remove our observer now that we're done  		mClassifiedIds.erase(c_info->classified_id); @@ -693,33 +711,24 @@ void LLPanelPicks::openClassifiedInfo()  	LLClassifiedItem* c_item = getSelectedClassifiedItem(); -	createClassifiedInfoPanel(); - -	LLSD params; - 	params["classified_id"] = c_item->getClassifiedId(); - 	params["avatar_id"] = c_item->getAvatarId(); - 	params["snapshot_id"] = c_item->getSnapshotId(); - 	params["name"] = c_item->getClassifiedName(); - 	params["desc"] = c_item->getDescription(); - -	getProfilePanel()->openPanel(mPanelClassifiedInfo, params); +	openClassifiedInfo(c_item->getClassifiedId(), c_item->getAvatarId(), +					   c_item->getSnapshotId(), c_item->getClassifiedName(), +					   c_item->getDescription());  } -void LLPanelPicks::openClassifiedInfo(LLAvatarClassifiedInfo *c_info) +void LLPanelPicks::openClassifiedInfo(const LLUUID &classified_id,  +									  const LLUUID &avatar_id, +									  const LLUUID &snapshot_id, +									  const std::string &name, const std::string &desc)  { -	if (! c_info) -	{ -		return; -	} -  	createClassifiedInfoPanel();  	LLSD params; -	params["classified_id"] = c_info->classified_id; -	params["avatar_id"] = c_info->creator_id; -	params["snapshot_id"] = c_info->snapshot_id; -	params["name"] = c_info->name; -	params["desc"] = c_info->description; +	params["classified_id"] = classified_id; +	params["avatar_id"] = avatar_id; +	params["snapshot_id"] = snapshot_id; +	params["name"] = name; +	params["desc"] = desc;  	getProfilePanel()->openPanel(mPanelClassifiedInfo, params);  } diff --git a/indra/newview/llpanelpicks.h b/indra/newview/llpanelpicks.h index 893a0c53a3..0ebf9e26dd 100644 --- a/indra/newview/llpanelpicks.h +++ b/indra/newview/llpanelpicks.h @@ -86,9 +86,6 @@ public:  	// parent panels failed to work (picks related code was in my profile panel)  	void setProfilePanel(LLPanelProfile* profile_panel); -	// display the info panel for the given classified -	void openClassifiedInfo(LLAvatarClassifiedInfo *c_info); -  protected:  	/*virtual*/void updateButtons(); @@ -120,6 +117,10 @@ private:  	void openPickInfo();  	void openClassifiedInfo(); +	void openClassifiedInfo(const LLUUID &classified_id, const LLUUID &avatar_id, +							const LLUUID &snapshot_id, const std::string &name, +							const std::string &desc); +	friend class LLPanelProfile;  	void showAccordion(const std::string& name, bool show); diff --git a/indra/newview/llpanelprofile.cpp b/indra/newview/llpanelprofile.cpp index 3274820174..c73ade53c8 100644 --- a/indra/newview/llpanelprofile.cpp +++ b/indra/newview/llpanelprofile.cpp @@ -144,6 +144,7 @@ BOOL LLPanelProfile::postBuild()  void LLPanelProfile::onOpen(const LLSD& key)  { +	// open the desired panel  	if (key.has("open_tab_name"))  	{  		getTabContainer()[PANEL_PICKS]->onClosePanel(); @@ -155,6 +156,33 @@ void LLPanelProfile::onOpen(const LLSD& key)  	{  		getTabCtrl()->getCurrentPanel()->onOpen(getAvatarId());  	} + +	// support commands to open further pieces of UI +	if (key.has("show_tab_panel")) +	{ +		std::string panel = key["show_tab_panel"].asString(); +		if (panel == "create_classified") +		{ +			LLPanelPicks* picks = dynamic_cast<LLPanelPicks *>(getTabContainer()[PANEL_PICKS]); +			if (picks) +			{ +				picks->createNewClassified(); +			} +		} +		else if (panel == "classified_details") +		{ +			LLUUID classified_id = key["classified_id"].asUUID(); +			LLUUID avatar_id     = key["classified_avatar_id"].asUUID(); +			LLUUID snapshot_id   = key["classified_snapshot_id"].asUUID(); +			std::string name     = key["classified_name"].asString(); +			std::string desc     = key["classified_desc"].asString(); +			LLPanelPicks* picks = dynamic_cast<LLPanelPicks *>(getTabContainer()[PANEL_PICKS]); +			if (picks) +			{ +				picks->openClassifiedInfo(classified_id, avatar_id, snapshot_id, name, desc); +			} +		} +	}  }  //*TODO redo panel toggling diff --git a/indra/newview/llviewercontrol.cpp b/indra/newview/llviewercontrol.cpp index f3db0ab170..57434bd1e4 100644 --- a/indra/newview/llviewercontrol.cpp +++ b/indra/newview/llviewercontrol.cpp @@ -72,6 +72,8 @@  #include "llrender.h"  #include "llbottomtray.h"  #include "llnavigationbar.h" +#include "llfloatertools.h" +#include "llpaneloutfitsinventory.h"  #ifdef TOGGLE_HACKED_GODLIKE_VIEWER  BOOL 				gHackGodmode = FALSE; @@ -119,12 +121,6 @@ static bool handleSetShaderChanged(const LLSD& newvalue)  	return true;  } -static bool handleSetSelfInvisible( const LLSD& newvalue) -{ -	LLVOAvatarSelf::onChangeSelfInvisible( newvalue.asBoolean() ); -	return true; -} -  static bool handleReleaseGLBufferChanged(const LLSD& newvalue)  {  	if (gPipeline.isInit()) @@ -525,6 +521,18 @@ bool toggle_show_favorites_panel(const LLSD& newvalue)  	return true;  } +bool toggle_show_appearance_editor(const LLSD& newvalue) +{ +	LLPanelOutfitsInventory::sShowDebugEditor = newvalue.asBoolean(); +	return true; +} + +bool toggle_show_object_render_cost(const LLSD& newvalue) +{ +	LLFloaterTools::sShowObjectCost = newvalue.asBoolean(); +	return true; +} +  ////////////////////////////////////////////////////////////////////////////  void settings_setup_listeners() @@ -545,7 +553,6 @@ void settings_setup_listeners()  	gSavedSettings.getControl("WindLightUseAtmosShaders")->getSignal()->connect(boost::bind(&handleSetShaderChanged, _2));  	gSavedSettings.getControl("RenderGammaFull")->getSignal()->connect(boost::bind(&handleSetShaderChanged, _2));  	gSavedSettings.getControl("RenderAvatarMaxVisible")->getSignal()->connect(boost::bind(&handleAvatarMaxVisibleChanged, _2)); -	gSavedSettings.getControl("RenderAvatarInvisible")->getSignal()->connect(boost::bind(&handleSetSelfInvisible, _2));  	gSavedSettings.getControl("RenderVolumeLODFactor")->getSignal()->connect(boost::bind(&handleVolumeLODChanged, _2));  	gSavedSettings.getControl("RenderAvatarLODFactor")->getSignal()->connect(boost::bind(&handleAvatarLODChanged, _2));  	gSavedSettings.getControl("RenderTerrainLODFactor")->getSignal()->connect(boost::bind(&handleTerrainLODChanged, _2)); @@ -668,6 +675,8 @@ void settings_setup_listeners()  	gSavedSettings.getControl("ShowSnapshotButton")->getSignal()->connect(boost::bind(&toggle_show_snapshot_button, _2));  	gSavedSettings.getControl("ShowNavbarNavigationPanel")->getSignal()->connect(boost::bind(&toggle_show_navigation_panel, _2));  	gSavedSettings.getControl("ShowNavbarFavoritesPanel")->getSignal()->connect(boost::bind(&toggle_show_favorites_panel, _2)); +	gSavedSettings.getControl("ShowDebugAppearanceEditor")->getSignal()->connect(boost::bind(&toggle_show_appearance_editor, _2)); +	gSavedSettings.getControl("ShowObjectRenderingCost")->getSignal()->connect(boost::bind(&toggle_show_object_render_cost, _2));  }  #if TEST_CACHED_CONTROL diff --git a/indra/newview/llvoavatarself.cpp b/indra/newview/llvoavatarself.cpp index b4c45c23d4..ecd6b05ded 100644 --- a/indra/newview/llvoavatarself.cpp +++ b/indra/newview/llvoavatarself.cpp @@ -2021,43 +2021,6 @@ void LLVOAvatarSelf::onCustomizeEnd()  	}  } -// static -void LLVOAvatarSelf::onChangeSelfInvisible(BOOL newvalue) -{ -	LLVOAvatarSelf *avatarp = gAgent.getAvatarObject(); -	if (avatarp) -	{ -		if (newvalue) -		{ -			// we have just requested to set the avatar's baked textures to invisible -			avatarp->setInvisible(TRUE); -		} -		else -		{ -			avatarp->setInvisible(FALSE); -		} -	} -} - -void LLVOAvatarSelf::setInvisible(BOOL newvalue) -{ -	if (newvalue) -	{ -		setCompositeUpdatesEnabled(FALSE); -		for (U32 i = 0; i < mBakedTextureDatas.size(); i++ ) -		{ -			setNewBakedTexture(mBakedTextureDatas[i].mTextureIndex, IMG_INVISIBLE); -		} -		gAgent.sendAgentSetAppearance(); -	} -	else -	{ -		setCompositeUpdatesEnabled(TRUE); -		invalidateAll(); -		gAgent.sendAgentSetAppearance(); -	} -} -  // HACK: this will null out the avatar's local texture IDs before the TE message is sent  //       to ensure local texture IDs are not sent to other clients in the area.  //       this is a short-term solution. The long term solution will be to not set the texture diff --git a/indra/newview/llvoavatarself.h b/indra/newview/llvoavatarself.h index c7bd4eaadc..dc70996f0b 100644 --- a/indra/newview/llvoavatarself.h +++ b/indra/newview/llvoavatarself.h @@ -308,8 +308,6 @@ public:  	// Visibility  	//--------------------------------------------------------------------  public: -	static void		onChangeSelfInvisible(BOOL newvalue); -	void			setInvisible(BOOL newvalue);  	bool			sendAppearanceMessage(LLMessageSystem *mesgsys) const;  /**                    Appearance diff --git a/indra/newview/llvovolume.cpp b/indra/newview/llvovolume.cpp index d24edacd13..f98aa361e0 100644 --- a/indra/newview/llvovolume.cpp +++ b/indra/newview/llvovolume.cpp @@ -204,8 +204,8 @@ void LLVOVolume::markDead()  	if (!mDead)  	{  		LLMediaDataClientObject::ptr_t obj = new LLMediaDataClientObjectImpl(const_cast<LLVOVolume*>(this), false); -		sObjectMediaClient->removeFromQueue(obj); -		sObjectMediaNavigateClient->removeFromQueue(obj); +		if (sObjectMediaClient) sObjectMediaClient->removeFromQueue(obj); +		if (sObjectMediaNavigateClient) sObjectMediaNavigateClient->removeFromQueue(obj);  		// Detach all media impls from this object  		for(U32 i = 0 ; i < mMediaImplList.size() ; i++) @@ -222,15 +222,18 @@ void LLVOVolume::markDead()  void LLVOVolume::initClass()  {  	// gSavedSettings better be around -	const F32 queue_timer_delay = gSavedSettings.getF32("PrimMediaRequestQueueDelay"); -	const F32 retry_timer_delay = gSavedSettings.getF32("PrimMediaRetryTimerDelay"); -	const U32 max_retries = gSavedSettings.getU32("PrimMediaMaxRetries"); -	const U32 max_sorted_queue_size = gSavedSettings.getU32("PrimMediaMaxSortedQueueSize"); -	const U32 max_round_robin_queue_size = gSavedSettings.getU32("PrimMediaMaxRoundRobinQueueSize"); -    sObjectMediaClient = new LLObjectMediaDataClient(queue_timer_delay, retry_timer_delay, max_retries,  -													 max_sorted_queue_size, max_round_robin_queue_size); -    sObjectMediaNavigateClient = new LLObjectMediaNavigateClient(queue_timer_delay, retry_timer_delay,  -																 max_retries, max_sorted_queue_size, max_round_robin_queue_size); +	if (gSavedSettings.getBOOL("PrimMediaMasterEnabled")) +	{ +		const F32 queue_timer_delay = gSavedSettings.getF32("PrimMediaRequestQueueDelay"); +		const F32 retry_timer_delay = gSavedSettings.getF32("PrimMediaRetryTimerDelay"); +		const U32 max_retries = gSavedSettings.getU32("PrimMediaMaxRetries"); +		const U32 max_sorted_queue_size = gSavedSettings.getU32("PrimMediaMaxSortedQueueSize"); +		const U32 max_round_robin_queue_size = gSavedSettings.getU32("PrimMediaMaxRoundRobinQueueSize"); +		sObjectMediaClient = new LLObjectMediaDataClient(queue_timer_delay, retry_timer_delay, max_retries,  +														 max_sorted_queue_size, max_round_robin_queue_size); +		sObjectMediaNavigateClient = new LLObjectMediaNavigateClient(queue_timer_delay, retry_timer_delay,  +																	 max_retries, max_sorted_queue_size, max_round_robin_queue_size); +	}  }  // static @@ -1719,14 +1722,15 @@ LLVector3 LLVOVolume::getApproximateFaceNormal(U8 face_id)  void LLVOVolume::requestMediaDataUpdate(bool isNew)  { -    sObjectMediaClient->fetchMedia(new LLMediaDataClientObjectImpl(this, isNew)); +    if (sObjectMediaClient) +		sObjectMediaClient->fetchMedia(new LLMediaDataClientObjectImpl(this, isNew));  }  bool LLVOVolume::isMediaDataBeingFetched() const  {  	// I know what I'm doing by const_casting this away: this is just   	// a wrapper class that is only going to do a lookup. -	return sObjectMediaClient->isInQueue(new LLMediaDataClientObjectImpl(const_cast<LLVOVolume*>(this), false)); +	return (sObjectMediaClient) ? sObjectMediaClient->isInQueue(new LLMediaDataClientObjectImpl(const_cast<LLVOVolume*>(this), false)) : false;  }  void LLVOVolume::cleanUpMediaImpls() @@ -1925,7 +1929,7 @@ void LLVOVolume::mediaNavigated(LLViewerMediaImpl *impl, LLPluginClassMedia* plu  		// "bounce back" to the current URL from the media entry  		mediaNavigateBounceBack(face_index);  	} -	else +	else if (sObjectMediaNavigateClient)  	{  		llinfos << "broadcasting navigate with URI " << new_location << llendl; @@ -1994,7 +1998,8 @@ void LLVOVolume::mediaEvent(LLViewerMediaImpl *impl, LLPluginClassMedia* plugin,  void LLVOVolume::sendMediaDataUpdate()  { -    sObjectMediaClient->updateMedia(new LLMediaDataClientObjectImpl(this, false)); +    if (sObjectMediaClient) +		sObjectMediaClient->updateMedia(new LLMediaDataClientObjectImpl(this, false));  }  void LLVOVolume::removeMediaImpl(S32 texture_index) diff --git a/indra/newview/llwearable.cpp b/indra/newview/llwearable.cpp index 0405b9d28b..b789bd3650 100644 --- a/indra/newview/llwearable.cpp +++ b/indra/newview/llwearable.cpp @@ -356,7 +356,7 @@ BOOL LLWearable::importFile( LLFILE* file )  	if( num_parameters != mVisualParamIndexMap.size() )  	{ -		llwarns << "Wearable parameter mismatch. Reading in " << num_parameters << " from file, but created " << mVisualParamIndexMap.size() << " from avatar parameters. " << llendl; +		llwarns << "Wearable parameter mismatch. Reading in " << num_parameters << " from file, but created " << mVisualParamIndexMap.size() << " from avatar parameters. type: " <<  mType << llendl;  	}  	// parameters diff --git a/indra/newview/skins/default/xui/en/panel_outfits_inventory.xml b/indra/newview/skins/default/xui/en/panel_outfits_inventory.xml index ab73f135b9..2f176f011b 100644 --- a/indra/newview/skins/default/xui/en/panel_outfits_inventory.xml +++ b/indra/newview/skins/default/xui/en/panel_outfits_inventory.xml @@ -100,5 +100,14 @@  		right="-5"  		top_pad="0"  		width="90" /> +      <button +       follows="bottom|left"  +       height="23"  +       label="edit look" +       layout="topleft" +       left_pad="-200" +       name="look_edit_btn" +       visible="false" +       width="90" />  	 </panel>  </panel> diff --git a/indra/newview/skins/default/xui/en/sidepanel_appearance.xml b/indra/newview/skins/default/xui/en/sidepanel_appearance.xml index 27f19d44fa..7f4b4aef82 100644 --- a/indra/newview/skins/default/xui/en/sidepanel_appearance.xml +++ b/indra/newview/skins/default/xui/en/sidepanel_appearance.xml @@ -107,6 +107,7 @@ left="0"     layout="topleft"     left="0"     name="panel_look_info" +   top="35"     visible="false" />     <panel     class="panel_edit_wearable" @@ -115,6 +116,7 @@ left="0"     layout="topleft"     left="0"     name="panel_edit_wearable" +   top="35"     visible="false" />  </panel> diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index 32fdd41be2..d6d6aa48d1 100755 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -324,6 +324,7 @@ class WindowsManifest(ViewerManifest):              self.path("qtnetwork4.dll")              self.path("qtopengl4.dll")              self.path("qtwebkit4.dll") +            self.path("qtxmlpatterns4.dll")              self.path("ssleay32.dll")              self.end_prefix() | 
