diff options
Diffstat (limited to 'indra/newview')
21 files changed, 199 insertions, 695 deletions
| diff --git a/indra/newview/VIEWER_VERSION.txt b/indra/newview/VIEWER_VERSION.txt index d13e837c8e..43beb4001b 100644 --- a/indra/newview/VIEWER_VERSION.txt +++ b/indra/newview/VIEWER_VERSION.txt @@ -1 +1 @@ -4.0.6 +4.0.7 diff --git a/indra/newview/app_settings/shaders/class1/deferred/diffuseV.glsl b/indra/newview/app_settings/shaders/class1/deferred/diffuseV.glsl index 7e83389f6e..3c026796c8 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/diffuseV.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/diffuseV.glsl @@ -26,13 +26,6 @@  uniform mat3 normal_matrix;  uniform mat4 texture_matrix0;  uniform mat4 modelview_projection_matrix; -uniform bool invert_tex_y = false; -const mat4 invTexM = mat4( -  1, 0, 0, 0, -  0,-1, 0, 0, -  0, 0, 1, 0, -  0, 0, 0, 1 -);   ATTRIBUTE vec3 position;  ATTRIBUTE vec4 diffuse_color; @@ -51,10 +44,6 @@ void main()  	//transform vertex  	gl_Position = modelview_projection_matrix * vec4(position.xyz, 1.0);   	vary_texcoord0 = (texture_matrix0 * vec4(texcoord0,0,1)).xy; -  if(invert_tex_y)  -	{ -		vary_texcoord0 = vec2(invTexM * vec4(vary_texcoord0,0,1)).xy; -	}  	passTextureIndex();  	vary_normal = normalize(normal_matrix * normal); diff --git a/indra/newview/app_settings/shaders/class1/deferred/fullbrightV.glsl b/indra/newview/app_settings/shaders/class1/deferred/fullbrightV.glsl index 2595712882..8e899e3e0f 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/fullbrightV.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/fullbrightV.glsl @@ -26,13 +26,6 @@  uniform mat4 texture_matrix0;  uniform mat4 modelview_matrix;  uniform mat4 modelview_projection_matrix; -uniform bool invert_tex_y = false; -const mat4 invTexM = mat4( -  1, 0, 0, 0, -  0,-1, 0, 0, -  0, 0, 1, 0, -  0, 0, 0, 1 -);  ATTRIBUTE vec3 position; @@ -69,10 +62,6 @@ void main()  #endif  	vary_texcoord0 = (texture_matrix0 * vec4(texcoord0,0,1)).xy; -  if(invert_tex_y)  -	{ -		vary_texcoord0 = vec2(invTexM * vec4(vary_texcoord0,0,1)).xy; -	}  	calcAtmospherics(pos.xyz); diff --git a/indra/newview/app_settings/shaders/class1/objects/fullbrightV.glsl b/indra/newview/app_settings/shaders/class1/objects/fullbrightV.glsl index a8efcd9857..fc20d3270e 100644 --- a/indra/newview/app_settings/shaders/class1/objects/fullbrightV.glsl +++ b/indra/newview/app_settings/shaders/class1/objects/fullbrightV.glsl @@ -26,14 +26,6 @@  uniform mat4 texture_matrix0;  uniform mat4 modelview_matrix;  uniform mat4 modelview_projection_matrix; - -uniform bool invert_tex_y = false; -const mat4 invTexM = mat4( -  1, 0, 0, 0, -  0,-1, 0, 0, -  0, 0, 1, 0, -  0, 0, 0, 1 -);  ATTRIBUTE vec3 position;  void passTextureIndex(); @@ -57,11 +49,6 @@ void main()  	vec4 pos = (modelview_matrix * vert);  	gl_Position = modelview_projection_matrix*vec4(position.xyz, 1.0);  	vary_texcoord0 = (texture_matrix0 * vec4(texcoord0,0,1)).xy; -   -  if(invert_tex_y)  -	{ -		vary_texcoord0 = vec2(invTexM * vec4(vary_texcoord0,0,1)).xy; -	}  	calcAtmospherics(pos.xyz); diff --git a/indra/newview/app_settings/shaders/class1/objects/simpleV.glsl b/indra/newview/app_settings/shaders/class1/objects/simpleV.glsl index c744dc1397..37a20383e2 100644 --- a/indra/newview/app_settings/shaders/class1/objects/simpleV.glsl +++ b/indra/newview/app_settings/shaders/class1/objects/simpleV.glsl @@ -27,13 +27,6 @@ uniform mat3 normal_matrix;  uniform mat4 texture_matrix0;  uniform mat4 modelview_matrix;  uniform mat4 modelview_projection_matrix; -uniform bool invert_tex_y = false; -const mat4 invTexM = mat4( -  1, 0, 0, 0, -  0,-1, 0, 0, -  0, 0, 1, 0, -  0, 0, 0, 1 -);   ATTRIBUTE vec3 position;  void passTextureIndex(); @@ -58,10 +51,7 @@ void main()  	gl_Position = modelview_projection_matrix*vec4(position.xyz, 1.0);  	vary_texcoord0 = (texture_matrix0 * vec4(texcoord0, 0, 1)).xy; -	if(invert_tex_y)  -	{ -		vary_texcoord0 = vec2(invTexM * vec4(vary_texcoord0,0,1)).xy; -	} +	  	vec3 norm = normalize(normal_matrix * normal); diff --git a/indra/newview/lldrawpool.cpp b/indra/newview/lldrawpool.cpp index a6cf917cbd..f74164aea6 100644 --- a/indra/newview/lldrawpool.cpp +++ b/indra/newview/lldrawpool.cpp @@ -473,10 +473,6 @@ void LLRenderPass::pushBatch(LLDrawInfo& params, U32 mask, BOOL texture, BOOL ba  				if (params.mTextureList[i].notNull())  				{  					gGL.getTexUnit(i)->bind(params.mTextureList[i], TRUE); -					if (LLViewerTexture::MEDIA_TEXTURE == params.mTextureList[i]->getType()) -					{ -						gGL.setInverseTexCoordByY(true); -					}  				}  			}  		} @@ -486,54 +482,13 @@ void LLRenderPass::pushBatch(LLDrawInfo& params, U32 mask, BOOL texture, BOOL ba  			{  				params.mTexture->addTextureStats(params.mVSize);  				gGL.getTexUnit(0)->bind(params.mTexture, TRUE) ; - -				if (!gPipeline.mVertexShadersEnabled) -				{ -					if (LLViewerTexture::MEDIA_TEXTURE == params.mTexture->getType() && !params.mTextureMatrix) -					{ -						static const float fIdntInvY[] = { -							1, 0, 0, 0, -							0, -1, 0, 0, -							0, 0, 1, 0, -							0, 0, 0, 1 -						}; - -						gGL.getTexUnit(0)->activate(); -						gGL.matrixMode(LLRender::MM_TEXTURE); -						gGL.loadMatrix((GLfloat*)fIdntInvY); -						gPipeline.mTextureMatrixOps++; - -						tex_setup = true; -					} -				} -				else -				{ -					gGL.setInverseTexCoordByY(LLViewerTexture::MEDIA_TEXTURE == params.mTexture->getType()); -				} -  				if (params.mTextureMatrix)  				{  					tex_setup = true;  					gGL.getTexUnit(0)->activate();  					gGL.matrixMode(LLRender::MM_TEXTURE);  					gGL.loadMatrix((GLfloat*) params.mTextureMatrix->mMatrix); - -					if (LLViewerTexture::MEDIA_TEXTURE == params.mTexture->getType() && !gPipeline.mVertexShadersEnabled) -					{ -						static const float fIdntInvY[] = { -							1, 0, 0, 0, -							0, -1, 0, 0, -							0, 0, 1, 0, -							0, 0, 0, 1 -						}; - -						gGL.multMatrix(fIdntInvY); -						gPipeline.mMatrixOpCount++; -					} -  					gPipeline.mTextureMatrixOps++; - -					tex_setup = true;  				}  			}  			else diff --git a/indra/newview/llfloaterwebcontent.cpp b/indra/newview/llfloaterwebcontent.cpp index c039b3b8f4..adb3322759 100644 --- a/indra/newview/llfloaterwebcontent.cpp +++ b/indra/newview/llfloaterwebcontent.cpp @@ -82,7 +82,7 @@ LLFloaterWebContent::LLFloaterWebContent( const Params& params )  	mCommitCallbackRegistrar.add( "WebContent.Stop", boost::bind( &LLFloaterWebContent::onClickStop, this ));  	mCommitCallbackRegistrar.add( "WebContent.EnterAddress", boost::bind( &LLFloaterWebContent::onEnterAddress, this ));  	mCommitCallbackRegistrar.add( "WebContent.PopExternal", boost::bind(&LLFloaterWebContent::onPopExternal, this)); -	mCommitCallbackRegistrar.add( "WebContent.TestVideo", boost::bind(&LLFloaterWebContent::onTestVideo, this, _2)); +	mCommitCallbackRegistrar.add( "WebContent.TestURL", boost::bind(&LLFloaterWebContent::onTestURL, this, _2));  }  BOOL LLFloaterWebContent::postBuild() @@ -111,6 +111,9 @@ BOOL LLFloaterWebContent::postBuild()  	// initialize the URL history using the system URL History manager  	initializeURLHistory(); +	// if "Develop" Menu open, sety a flag and change things to be more useful for devs +	mDevelopMode = gSavedSettings.getBOOL("QAMode"); +  	return TRUE;  } @@ -196,8 +199,6 @@ void LLFloaterWebContent::geometryChanged(S32 x, S32 y, S32 width, S32 height)  						width + getRect().getWidth() - browser_rect.getWidth(),   						height + getRect().getHeight() - browser_rect.getHeight()); -	LL_DEBUGS() << "geometry change: " << geom << LL_ENDL; -	  	LLRect new_rect;  	getParent()->screenRectToLocal(geom, &new_rect);  	setShape(new_rect);	 @@ -206,8 +207,6 @@ void LLFloaterWebContent::geometryChanged(S32 x, S32 y, S32 width, S32 height)  // static  void LLFloaterWebContent::preCreate(LLFloaterWebContent::Params& p)  { -	LL_DEBUGS() << "url = " << p.url() << ", target = " << p.target() << ", uuid = " << p.id() << LL_ENDL; -  	if (!p.id.isProvided())  	{  		p.id = LLUUID::generateNewID().asString(); @@ -225,12 +224,6 @@ void LLFloaterWebContent::preCreate(LLFloaterWebContent::Params& p)  		// and close the least recently opened one if this will put us over the limit.  		LLFloaterReg::const_instance_list_t &instances = LLFloaterReg::getFloaterList(p.window_class); -		LL_DEBUGS() << "total instance count is " << instances.size() << LL_ENDL; - -		for(LLFloaterReg::const_instance_list_t::const_iterator iter = instances.begin(); iter != instances.end(); iter++) -		{ -			LL_DEBUGS() << "    " << (*iter)->getKey()["target"] << LL_ENDL; -		}	  		if(instances.size() >= (size_t)browser_window_limit)  		{ @@ -242,7 +235,6 @@ void LLFloaterWebContent::preCreate(LLFloaterWebContent::Params& p)  void LLFloaterWebContent::open_media(const Params& p)  { -	// Specifying a mime type of text/html here causes the plugin system to skip the MIME type probe and just open a browser plugin.  	LLViewerMedia::proxyWindowOpened(p.target(), p.id());  	mWebBrowser->setHomePageUrl(p.url);  	mWebBrowser->setTarget(p.target); @@ -252,6 +244,10 @@ void LLFloaterWebContent::open_media(const Params& p)  	getChild<LLLayoutPanel>("status_bar")->setVisible(p.show_chrome);  	getChild<LLLayoutPanel>("nav_controls")->setVisible(p.show_chrome); + +	// turn additional debug controls on but only for Develop mode (Develop menu open) +	getChild<LLLayoutPanel>("debug_controls")->setVisible(mDevelopMode); +  	bool address_entry_enabled = p.allow_address_entry && !p.trusted_content;      mAllowNavigation = p.allow_back_forward_navigation;  	getChildView("address")->setEnabled(address_entry_enabled); @@ -516,7 +512,7 @@ void LLFloaterWebContent::onPopExternal()  	};  } -void LLFloaterWebContent::onTestVideo(std::string url) +void LLFloaterWebContent::onTestURL(std::string url)  {  	LLStringUtil::trim(url);  	if (url.length() > 0) diff --git a/indra/newview/llfloaterwebcontent.h b/indra/newview/llfloaterwebcontent.h index 519b575b38..1157d0aab8 100644 --- a/indra/newview/llfloaterwebcontent.h +++ b/indra/newview/llfloaterwebcontent.h @@ -92,7 +92,7 @@ protected:  	void onClickStop();  	void onEnterAddress();  	void onPopExternal(); -	void onTestVideo(std::string url); +	void onTestURL(std::string url);  	static void preCreate(Params& p);  	void open_media(const Params& ); @@ -114,6 +114,7 @@ protected:  	std::string		mUUID;  	bool			mShowPageTitle;      bool            mAllowNavigation; +	bool			mDevelopMode;  };  #endif  // LL_LLFLOATERWEBCONTENT_H diff --git a/indra/newview/llinventorymodel.cpp b/indra/newview/llinventorymodel.cpp index cada2d7cf2..9a33e210ff 100644 --- a/indra/newview/llinventorymodel.cpp +++ b/indra/newview/llinventorymodel.cpp @@ -2726,24 +2726,13 @@ void LLInventoryModel::registerCallbacks(LLMessageSystem* msg)  	msg->setHandlerFuncFast(_PREHASH_RemoveInventoryObjects,  							processRemoveInventoryObjects,  							NULL);	 -	//msg->setHandlerFuncFast(_PREHASH_ExchangeCallingCard, -	//						processExchangeCallingcard, -	//						NULL); -	//msg->setHandlerFuncFast(_PREHASH_AddCallingCard, -	//					processAddCallingcard, -	//					NULL); -	//msg->setHandlerFuncFast(_PREHASH_DeclineCallingCard, -	//					processDeclineCallingcard, -	//					NULL);  	msg->setHandlerFuncFast(_PREHASH_SaveAssetIntoInventory,  						processSaveAssetIntoInventory,  						NULL);  	msg->setHandlerFuncFast(_PREHASH_BulkUpdateInventory,  							processBulkUpdateInventory,  							NULL); -	msg->setHandlerFunc("InventoryDescendents", processInventoryDescendents);  	msg->setHandlerFunc("MoveInventoryItem", processMoveInventoryItem); -	msg->setHandlerFunc("FetchInventoryReply", processFetchInventoryReply);  } @@ -2763,14 +2752,6 @@ void LLInventoryModel::processUpdateCreateInventoryItem(LLMessageSystem* msg, vo  } -// static -void LLInventoryModel::processFetchInventoryReply(LLMessageSystem* msg, void**) -{ -	// no accounting -	gInventory.messageUpdateCore(msg, false); -} - -  bool LLInventoryModel::messageUpdateCore(LLMessageSystem* msg, bool account, U32 mask)  {  	//make sure our added inventory observer is active @@ -3213,85 +3194,6 @@ void LLInventoryModel::processBulkUpdateInventory(LLMessageSystem* msg, void**)  		InventoryCallbackInfo cbinfo = (*inv_it);  		gInventoryCallbacks.fire(cbinfo.mCallback, cbinfo.mInvID);  	} - -	//gInventory.validate(); - -	// Don't show the inventory.  We used to call showAgentInventory here. -	//LLFloaterInventory* view = LLFloaterInventory::getActiveInventory(); -	//if(view) -	//{ -	//	const BOOL take_keyboard_focus = FALSE; -	//	view->setSelection(category.getUUID(), take_keyboard_focus ); -	//	LLView* focus_view = gFocusMgr.getKeyboardFocus(); -	//	LLFocusMgr::FocusLostCallback callback = gFocusMgr.getFocusCallback(); -	//	// HACK to open inventory offers that are accepted.  This information -	//	// really needs to flow through the instant messages and inventory -	//	// transfer/update messages. -	//	if (LLFloaterInventory::sOpenNextNewItem) -	//	{ -	//		view->openSelected(); -	//		LLFloaterInventory::sOpenNextNewItem = FALSE; -	//	} -	// -	//	// restore keyboard focus -	//	gFocusMgr.setKeyboardFocus(focus_view); -	//} -} - -// static -void LLInventoryModel::processInventoryDescendents(LLMessageSystem* msg,void**) -{ -	LLUUID agent_id; -	msg->getUUIDFast(_PREHASH_AgentData, _PREHASH_AgentID, agent_id); -	if(agent_id != gAgent.getID()) -	{ -		LL_WARNS() << "Got a UpdateInventoryItem for the wrong agent." << LL_ENDL; -		return; -	} -	LLUUID parent_id; -	msg->getUUID("AgentData", "FolderID", parent_id); -	LLUUID owner_id; -	msg->getUUID("AgentData", "OwnerID", owner_id); -	S32 version; -	msg->getS32("AgentData", "Version", version); -	S32 descendents; -	msg->getS32("AgentData", "Descendents", descendents); - -	S32 i; -	S32 count = msg->getNumberOfBlocksFast(_PREHASH_FolderData); -	LLPointer<LLViewerInventoryCategory> tcategory = new LLViewerInventoryCategory(owner_id); -	for(i = 0; i < count; ++i) -	{ -		tcategory->unpackMessage(msg, _PREHASH_FolderData, i); -		gInventory.updateCategory(tcategory); -	} - -	count = msg->getNumberOfBlocksFast(_PREHASH_ItemData); -	LLPointer<LLViewerInventoryItem> titem = new LLViewerInventoryItem; -	for(i = 0; i < count; ++i) -	{ -		titem->unpackMessage(msg, _PREHASH_ItemData, i); -		// If the item has already been added (e.g. from link prefetch), then it doesn't need to be re-added. -		if (gInventory.getItem(titem->getUUID())) -		{ -			LL_DEBUGS("Inventory") << "Skipping prefetched item [ Name: " << titem->getName() -								   << " | Type: " << titem->getActualType() << " | ItemUUID: " << titem->getUUID() << " ] " << LL_ENDL; -			continue; -		} -		gInventory.updateItem(titem); -	} - -	// set version and descendentcount according to message. -	LLViewerInventoryCategory* cat = gInventory.getCategory(parent_id); -	if(cat) -	{ -		cat->setVersion(version); -		cat->setDescendentCount(descendents); -		// Get this UUID on the changed list so that whatever's listening for it -		// will get triggered. -		gInventory.addChangedMask(LLInventoryObserver::INTERNAL, cat->getUUID()); -	} -	gInventory.notifyObservers();  }  // static @@ -3578,30 +3480,6 @@ void LLInventoryModel::updateItemsOrder(LLInventoryModel::item_array_t& items, c  	}  } -//* @param[in] items vector of items in order to be saved. -/* -void LLInventoryModel::saveItemsOrder(const LLInventoryModel::item_array_t& items) -{ -	int sortField = 0; - -	// current order is saved by setting incremental values (1, 2, 3, ...) for the sort field -	for (item_array_t::const_iterator i = items.begin(); i != items.end(); ++i) -	{ -		LLViewerInventoryItem* item = *i; - -		item->setSortField(++sortField); -		item->setComplete(TRUE); -		item->updateServer(FALSE); - -		updateItem(item); - -		// Tell the parent folder to refresh its sort order. -		addChangedMask(LLInventoryObserver::SORT, item->getParentUUID()); -	} - -	notifyObservers(); -} -*/  // See also LLInventorySort where landmarks in the Favorites folder are sorted.  class LLViewerInventoryItemSort  { @@ -3612,37 +3490,6 @@ public:  	}  }; -/** - * Sorts passed items by LLViewerInventoryItem sort field. - * - * @param[in, out] items - array of items, not sorted. - */ -//static void rearrange_item_order_by_sort_field(LLInventoryModel::item_array_t& items) -//{ -//	static LLViewerInventoryItemSort sort_functor; -//	std::sort(items.begin(), items.end(), sort_functor); -//} - -// * @param source_item_id - LLUUID of the source item to be moved into new position -// * @param target_item_id - LLUUID of the target item before which source item should be placed. -/* -void LLInventoryModel::rearrangeFavoriteLandmarks(const LLUUID& source_item_id, const LLUUID& target_item_id) -{ -	LLInventoryModel::cat_array_t cats; -	LLInventoryModel::item_array_t items; -	LLIsType is_type(LLAssetType::AT_LANDMARK); -	LLUUID favorites_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_FAVORITE); -	gInventory.collectDescendentsIf(favorites_id, cats, items, LLInventoryModel::EXCLUDE_TRASH, is_type); - -	// ensure items are sorted properly before changing order. EXT-3498 -	rearrange_item_order_by_sort_field(items); - -	// update order -	updateItemsOrder(items, source_item_id, target_item_id); - -	saveItemsOrder(items); -} -*/  //----------------------------------------------------------------------------  // *NOTE: DEBUG functionality diff --git a/indra/newview/llinventorymodel.h b/indra/newview/llinventorymodel.h index 3004eaf7c1..826d1f880d 100644 --- a/indra/newview/llinventorymodel.h +++ b/indra/newview/llinventorymodel.h @@ -630,9 +630,7 @@ public:  	static void processRemoveInventoryObjects(LLMessageSystem* msg, void**);  	static void processSaveAssetIntoInventory(LLMessageSystem* msg, void**);  	static void processBulkUpdateInventory(LLMessageSystem* msg, void**); -	static void processInventoryDescendents(LLMessageSystem* msg, void**);  	static void processMoveInventoryItem(LLMessageSystem* msg, void**); -	static void processFetchInventoryReply(LLMessageSystem* msg, void**);  protected:  	bool messageUpdateCore(LLMessageSystem* msg, bool do_accounting, U32 mask = 0x0); diff --git a/indra/newview/llinventoryobserver.cpp b/indra/newview/llinventoryobserver.cpp index 72ec092ed4..ce8705b7ac 100644 --- a/indra/newview/llinventoryobserver.cpp +++ b/indra/newview/llinventoryobserver.cpp @@ -241,33 +241,11 @@ void fetch_items_from_llsd(const LLSD& items_llsd)  			gInventory.requestPost(true, url, body[i], handler, (i ? "Library Item" : "Inventory Item"));  			continue;  		} +        else +        { +            LL_WARNS("INVENTORY") << "Failed to get capability." << LL_ENDL; +        } -		LLMessageSystem* msg = gMessageSystem; -		BOOL start_new_message = TRUE; -		for (S32 j=0; j<body[i]["items"].size(); j++) -		{ -			LLSD item_entry = body[i]["items"][j]; -			if (start_new_message) -			{ -				start_new_message = FALSE; -				msg->newMessageFast(_PREHASH_FetchInventory); -				msg->nextBlockFast(_PREHASH_AgentData); -				msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID()); -				msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID()); -			} -			msg->nextBlockFast(_PREHASH_InventoryData); -			msg->addUUIDFast(_PREHASH_OwnerID, item_entry["owner_id"].asUUID()); -			msg->addUUIDFast(_PREHASH_ItemID, item_entry["item_id"].asUUID()); -			if (msg->isSendFull(NULL)) -			{ -				start_new_message = TRUE; -				gAgent.sendReliableMessage(); -			} -		} -		if (!start_new_message) -		{ -			gAgent.sendReliableMessage(); -		}  	}  } diff --git a/indra/newview/llmediactrl.cpp b/indra/newview/llmediactrl.cpp index 08c927483f..9cf3249983 100644 --- a/indra/newview/llmediactrl.cpp +++ b/indra/newview/llmediactrl.cpp @@ -911,7 +911,7 @@ void LLMediaCtrl::convertInputCoords(S32& x, S32& y)  	}  	x = ll_round((F32)x * LLUI::getScaleFactor().mV[VX]); -	if (  coords_opengl ) +	if ( ! coords_opengl )  	{  		y = ll_round((F32)(y) * LLUI::getScaleFactor().mV[VY]);  	} diff --git a/indra/newview/llpanelprimmediacontrols.cpp b/indra/newview/llpanelprimmediacontrols.cpp index 763657ebad..0bcd8a9e63 100644 --- a/indra/newview/llpanelprimmediacontrols.cpp +++ b/indra/newview/llpanelprimmediacontrols.cpp @@ -95,7 +95,8 @@ LLPanelPrimMediaControls::LLPanelPrimMediaControls() :  	mVolumeSliderVisible(0),  	mWindowShade(NULL),  	mHideImmediately(false), -    mSecureURL(false) +    mSecureURL(false), +	mMediaPlaySliderCtrlMouseDownValue(0.0)  {  	mCommitCallbackRegistrar.add("MediaCtrl.Close",		boost::bind(&LLPanelPrimMediaControls::onClickClose, this));  	mCommitCallbackRegistrar.add("MediaCtrl.Back",		boost::bind(&LLPanelPrimMediaControls::onClickBack, this)); @@ -109,7 +110,8 @@ LLPanelPrimMediaControls::LLPanelPrimMediaControls() :  	mCommitCallbackRegistrar.add("MediaCtrl.Open",		boost::bind(&LLPanelPrimMediaControls::onClickOpen, this));  	mCommitCallbackRegistrar.add("MediaCtrl.Zoom",		boost::bind(&LLPanelPrimMediaControls::onClickZoom, this));  	mCommitCallbackRegistrar.add("MediaCtrl.CommitURL",	boost::bind(&LLPanelPrimMediaControls::onCommitURL, this)); -	mCommitCallbackRegistrar.add("MediaCtrl.JumpProgress",		boost::bind(&LLPanelPrimMediaControls::onCommitSlider, this)); +	mCommitCallbackRegistrar.add("MediaCtrl.MouseDown", boost::bind(&LLPanelPrimMediaControls::onMediaPlaySliderCtrlMouseDown, this)); +	mCommitCallbackRegistrar.add("MediaCtrl.MouseUp", boost::bind(&LLPanelPrimMediaControls::onMediaPlaySliderCtrlMouseUp, this));  	mCommitCallbackRegistrar.add("MediaCtrl.CommitVolumeUp",	boost::bind(&LLPanelPrimMediaControls::onCommitVolumeUp, this));  	mCommitCallbackRegistrar.add("MediaCtrl.CommitVolumeDown",	boost::bind(&LLPanelPrimMediaControls::onCommitVolumeDown, this));  	mCommitCallbackRegistrar.add("MediaCtrl.Volume",	boost::bind(&LLPanelPrimMediaControls::onCommitVolumeSlider, this)); @@ -1246,26 +1248,38 @@ void LLPanelPrimMediaControls::setCurrentURL()  #endif	// USE_COMBO_BOX_FOR_MEDIA_URL  } -void LLPanelPrimMediaControls::onCommitSlider() + +void LLPanelPrimMediaControls::onMediaPlaySliderCtrlMouseDown()  { -	focusOnTarget(); +	mMediaPlaySliderCtrlMouseDownValue = mMediaPlaySliderCtrl->getValue().asReal(); -	LLViewerMediaImpl* media_impl = getTargetMediaImpl(); -	if (media_impl)  +	mUpdateSlider = false; +} + +void LLPanelPrimMediaControls::onMediaPlaySliderCtrlMouseUp() +{ +	F64 cur_value = mMediaPlaySliderCtrl->getValue().asReal(); + +	if (mMediaPlaySliderCtrlMouseDownValue != cur_value)  	{ -		// get slider value -		F64 slider_value = mMediaPlaySliderCtrl->getValue().asReal(); -		if(slider_value <= 0.0) -		{	 -			media_impl->stop(); -		} -		else  +		focusOnTarget(); + +		LLViewerMediaImpl* media_impl = getTargetMediaImpl(); +		if (media_impl)  		{ -			media_impl->seek(slider_value*mMovieDuration); -			//mUpdateSlider= false; +			if (cur_value <= 0.0) +			{ +				media_impl->stop(); +			} +			else +			{ +				media_impl->seek(cur_value * mMovieDuration); +			}  		} + +		mUpdateSlider = true;  	} -}		 +}  void LLPanelPrimMediaControls::onCommitVolumeUp()  { diff --git a/indra/newview/llpanelprimmediacontrols.h b/indra/newview/llpanelprimmediacontrols.h index 6d2eb3430e..21d5236074 100644 --- a/indra/newview/llpanelprimmediacontrols.h +++ b/indra/newview/llpanelprimmediacontrols.h @@ -107,8 +107,10 @@ private:  	void updateZoom();  	void setCurrentURL(); -	void onCommitSlider(); -	 + +	void onMediaPlaySliderCtrlMouseDown(); +	void onMediaPlaySliderCtrlMouseUp(); +  	void onCommitVolumeUp();  	void onCommitVolumeDown();  	void onCommitVolumeSlider(); @@ -219,6 +221,8 @@ private:  	S32 mVolumeSliderVisible;  	LLNotificationPtr mActiveNotification; + +	F64 mMediaPlaySliderCtrlMouseDownValue;  };  #endif // LL_PANELPRIMMEDIACONTROLS_H diff --git a/indra/newview/lltooldraganddrop.cpp b/indra/newview/lltooldraganddrop.cpp index 98586e3b3d..27c4c90857 100644 --- a/indra/newview/lltooldraganddrop.cpp +++ b/indra/newview/lltooldraganddrop.cpp @@ -223,66 +223,6 @@ void LLCategoryDropObserver::done()  	}  	delete this;  } -/* Doesn't seem to be used anymore. -class LLCategoryDropDescendentsObserver : public LLInventoryFetchDescendentsObserver -{ -public: -	LLCategoryDropDescendentsObserver( -		const LLUUID& obj_id, LLToolDragAndDrop::ESource src) : -		mObjectID(obj_id), -		mSource(src) -	{} -	~LLCategoryDropDescendentsObserver() {} -	virtual void done(); - -protected: -	LLUUID mObjectID; -	LLToolDragAndDrop::ESource mSource; -}; - -void LLCategoryDropDescendentsObserver::done() -{ - -	gInventory.removeObserver(this); -	uuid_vec_t::iterator it = mComplete.begin(); -	uuid_vec_t::iterator end = mComplete.end(); -	LLViewerInventoryCategory::cat_array_t cats; -	LLViewerInventoryItem::item_array_t items; -	for(; it != end; ++it) -	{ -		gInventory.collectDescendents( -			(*it), -			cats, -			items, -			LLInventoryModel::EXCLUDE_TRASH); -	} - -	S32 count = items.size(); -	if (count) -	{ -		std::set<LLUUID> unique_ids; -		for(S32 i = 0; i < count; ++i) -		{ -			unique_ids.insert(items.get(i)->getUUID()); -		} -		uuid_vec_t ids; -		std::back_insert_iterator<uuid_vec_t> copier(ids); -		std::copy(unique_ids.begin(), unique_ids.end(), copier); -		LLCategoryDropObserver* dropper; -		dropper = new LLCategoryDropObserver(ids, mObjectID, mSource); -		dropper->startFetch(); -		if (dropper->isDone()) -		{ -			dropper->done(); -		} -		else -		{ -			gInventory.addObserver(dropper); -		} -	} -	delete this; -} -*/  S32 LLToolDragAndDrop::sOperationId = 0; diff --git a/indra/newview/llviewerinventory.cpp b/indra/newview/llviewerinventory.cpp index 0ee873d7a1..d0813544f8 100644 --- a/indra/newview/llviewerinventory.cpp +++ b/indra/newview/llviewerinventory.cpp @@ -384,16 +384,26 @@ void LLViewerInventoryItem::updateServer(BOOL is_new) const  	LLInventoryModel::LLCategoryUpdate up(mParentUUID, is_new ? 1 : 0);  	gInventory.accountForUpdate(up); -	LLMessageSystem* msg = gMessageSystem; -	msg->newMessageFast(_PREHASH_UpdateInventoryItem); -	msg->nextBlockFast(_PREHASH_AgentData); -	msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID()); -	msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID()); -	msg->addUUIDFast(_PREHASH_TransactionID, mTransactionID); -	msg->nextBlockFast(_PREHASH_InventoryData); -	msg->addU32Fast(_PREHASH_CallbackID, 0); -	packMessage(msg); -	gAgent.sendReliableMessage(); +    LLSD updates = asLLSD(); +    // Replace asset_id and/or shadow_id with transaction_id (hash_id) +    if (updates.has("asset_id")) +    { +        updates.erase("asset_id"); +        if(getTransactionID().notNull()) +        { +            updates["hash_id"] = getTransactionID(); +        } +    } +    if (updates.has("shadow_id")) +    { +        updates.erase("shadow_id"); +        if(getTransactionID().notNull()) +        { +            updates["hash_id"] = getTransactionID(); +        } +    } +    AISAPI::completion_t cr = boost::bind(&doInventoryCb, (LLPointer<LLInventoryCallback>)NULL, _1); +    AISAPI::UpdateItem(getUUID(), updates, cr);  }  void LLViewerInventoryItem::fetchFromServer(void) const @@ -636,17 +646,9 @@ void LLViewerInventoryCategory::updateServer(BOOL is_new) const  		return;  	} -	LLInventoryModel::LLCategoryUpdate up(mParentUUID, is_new ? 1 : 0); -	gInventory.accountForUpdate(up); - -	LLMessageSystem* msg = gMessageSystem; -	msg->newMessageFast(_PREHASH_UpdateInventoryFolder); -	msg->nextBlockFast(_PREHASH_AgentData); -	msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID()); -	msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID()); -	msg->nextBlockFast(_PREHASH_FolderData); -	packMessage(msg); -	gAgent.sendReliableMessage(); +    LLSD new_llsd = asLLSD(); +    AISAPI::completion_t cr = boost::bind(&doInventoryCb, (LLPointer<LLInventoryCallback>)NULL, _1); +    AISAPI::UpdateCategory(getUUID(), new_llsd, cr);  }  S32 LLViewerInventoryCategory::getVersion() const @@ -669,18 +671,6 @@ bool LLViewerInventoryCategory::fetch()  		mDescendentsRequested.reset();  		mDescendentsRequested.setTimerExpirySec(FETCH_TIMER_EXPIRY); -		// bitfield -		// 1 = by date -		// 2 = folders by date -		// Need to mask off anything but the first bit. -		// This comes from LLInventoryFilter from llfolderview.h -		U32 sort_order = gSavedSettings.getU32(LLInventoryPanel::DEFAULT_SORT_ORDER) & 0x1; - -		// *NOTE: For bug EXT-2879, originally commented out -		// gAgent.getRegion()->getCapability in order to use the old -		// message-based system.  This has been uncommented now that -		// AIS folks are aware of the issue and have a fix in process. -		// see ticket for details.  		std::string url;  		if (gAgent.getRegion()) @@ -695,24 +685,6 @@ bool LLViewerInventoryCategory::fetch()  		{  			LLInventoryModelBackgroundFetch::instance().start(mUUID, false);			  		} -		else -		{	//Deprecated, but if we don't have a capability, use the old system. -			LL_INFOS(LOG_INV) << "FetchInventoryDescendents2 capability not found.  Using deprecated UDP message." << LL_ENDL; -			 -			LLMessageSystem* msg = gMessageSystem; -			msg->newMessage("FetchInventoryDescendents"); -			msg->nextBlock("AgentData"); -			msg->addUUID("AgentID", gAgent.getID()); -			msg->addUUID("SessionID", gAgent.getSessionID()); -			msg->nextBlock("InventoryData"); -			msg->addUUID("FolderID", mUUID); -			msg->addUUID("OwnerID", mOwnerID); - -			msg->addS32("SortOrder", sort_order); -			msg->addBOOL("FetchFolders", FALSE); -			msg->addBOOL("FetchItems", TRUE); -			gAgent.sendReliableMessage(); -		}  		return true;  	}  	return false; @@ -905,17 +877,16 @@ void LLViewerInventoryCategory::changeType(LLFolderType::EType new_folder_type)  	const LLUUID &parent_id = getParentUUID();  	const std::string &name = getName(); -	LLMessageSystem* msg = gMessageSystem; -	msg->newMessageFast(_PREHASH_UpdateInventoryFolder); -	msg->nextBlockFast(_PREHASH_AgentData); -	msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID()); -	msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID()); -	msg->nextBlockFast(_PREHASH_FolderData); -	msg->addUUIDFast(_PREHASH_FolderID, folder_id); -	msg->addUUIDFast(_PREHASH_ParentID, parent_id); -	msg->addS8Fast(_PREHASH_Type, new_folder_type); -	msg->addStringFast(_PREHASH_Name, name); -	gAgent.sendReliableMessage(); +    LLPointer<LLViewerInventoryCategory> new_cat = new LLViewerInventoryCategory(folder_id, +                                                                                 parent_id, +                                                                                 new_folder_type, +                                                                                 name, +                                                                                 gAgent.getID()); +         +         +    LLSD new_llsd = new_cat->asLLSD(); +    AISAPI::completion_t cr = boost::bind(&doInventoryCb, (LLPointer<LLInventoryCallback>) NULL, _1); +    AISAPI::UpdateCategory(folder_id, new_llsd, cr);  	setPreferredType(new_folder_type);  	gInventory.addChangedMask(LLInventoryObserver::LABEL, folder_id); @@ -1289,40 +1260,10 @@ void link_inventory_array(const LLUUID& category,  						   << " UUID:" << category << " ] " << LL_ENDL;  #endif  	} - -    if (AISAPI::isAvailable()) -	{ -		LLSD new_inventory = LLSD::emptyMap(); -		new_inventory["links"] = links; -        AISAPI::completion_t cr = (cb) ? boost::bind(&doInventoryCb, cb, _1) : AISAPI::completion_t(); -        AISAPI::CreateInventory(category, new_inventory, cr); -	} -    else -	{ -		LLMessageSystem* msg = gMessageSystem; -		for (LLSD::array_iterator iter = links.beginArray(); iter != links.endArray(); ++iter ) -		{ -			msg->newMessageFast(_PREHASH_LinkInventoryItem); -			msg->nextBlock(_PREHASH_AgentData); -			{ -				msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID()); -				msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID()); -			} -			msg->nextBlock(_PREHASH_InventoryBlock); -			{ -				LLSD link = (*iter); -				msg->addU32Fast(_PREHASH_CallbackID, gInventoryCallbacks.registerCB(cb)); -				msg->addUUIDFast(_PREHASH_FolderID, category); -				msg->addUUIDFast(_PREHASH_TransactionID, LLUUID::null); -				msg->addUUIDFast(_PREHASH_OldItemID, link["linked_id"].asUUID()); -				msg->addS8Fast(_PREHASH_Type, link["type"].asInteger()); -				msg->addS8Fast(_PREHASH_InvType, link["inv_type"].asInteger()); -				msg->addStringFast(_PREHASH_Name, link["name"].asString()); -				msg->addStringFast(_PREHASH_Description, link["desc"].asString()); -			} -			gAgent.sendReliableMessage(); -		} -	} +    LLSD new_inventory = LLSD::emptyMap(); +    new_inventory["links"] = links; +    AISAPI::completion_t cr = boost::bind(&doInventoryCb, cb, _1); +    AISAPI::CreateInventory(category, new_inventory, cr);  }  void move_inventory_item( @@ -1354,49 +1295,21 @@ void update_inventory_item(  	LLPointer<LLInventoryCallback> cb)  {  	const LLUUID& item_id = update_item->getUUID(); -    if (AISAPI::isAvailable()) -	{ -		LLSD updates = update_item->asLLSD(); -		// Replace asset_id and/or shadow_id with transaction_id (hash_id) -		if (updates.has("asset_id")) -		{ -			updates.erase("asset_id"); -			updates["hash_id"] = update_item->getTransactionID(); -		} -		if (updates.has("shadow_id")) -		{ -			updates.erase("shadow_id"); -			updates["hash_id"] = update_item->getTransactionID(); -		} -        AISAPI::completion_t cr = (cb) ? boost::bind(&doInventoryCb, cb, _1) : AISAPI::completion_t(); -        AISAPI::UpdateItem(item_id, updates, cr); -	} -    else -	{ -		LLPointer<LLViewerInventoryItem> obj = gInventory.getItem(item_id); -		LL_DEBUGS(LOG_INV) << "item_id: [" << item_id << "] name " << (update_item ? update_item->getName() : "(NOT FOUND)") << LL_ENDL; -		if(obj) -		{ -			LLMessageSystem* msg = gMessageSystem; -			msg->newMessageFast(_PREHASH_UpdateInventoryItem); -			msg->nextBlockFast(_PREHASH_AgentData); -			msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID()); -			msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID()); -			msg->addUUIDFast(_PREHASH_TransactionID, update_item->getTransactionID()); -			msg->nextBlockFast(_PREHASH_InventoryData); -			msg->addU32Fast(_PREHASH_CallbackID, 0); -			update_item->packMessage(msg); -			gAgent.sendReliableMessage(); - -			LLInventoryModel::LLCategoryUpdate up(update_item->getParentUUID(), 0); -			gInventory.accountForUpdate(up); -			gInventory.updateItem(update_item); -			if (cb) -			{ -				cb->fire(item_id); -			} -		} -	} +   +    LLSD updates = update_item->asLLSD(); +    // Replace asset_id and/or shadow_id with transaction_id (hash_id) +    if (updates.has("asset_id")) +    { +        updates.erase("asset_id"); +        updates["hash_id"] = update_item->getTransactionID(); +    } +    if (updates.has("shadow_id")) +    { +        updates.erase("shadow_id"); +        updates["hash_id"] = update_item->getTransactionID(); +    } +    AISAPI::completion_t cr = boost::bind(&doInventoryCb, cb, _1); +    AISAPI::UpdateItem(item_id, updates, cr);  }  // Note this only supports updating an existing item. Goes through AISv3 @@ -1407,41 +1320,8 @@ void update_inventory_item(  	const LLSD& updates,  	LLPointer<LLInventoryCallback> cb)  { -    if (AISAPI::isAvailable()) -	{ -        AISAPI::completion_t cr = (cb) ? boost::bind(&doInventoryCb, cb, _1) : AISAPI::completion_t(); -        AISAPI::UpdateItem(item_id, updates, cr); -	} -    else -	{ -		LLPointer<LLViewerInventoryItem> obj = gInventory.getItem(item_id); -		LL_DEBUGS(LOG_INV) << "item_id: [" << item_id << "] name " << (obj ? obj->getName() : "(NOT FOUND)") << LL_ENDL; -		if(obj) -		{ -			LLPointer<LLViewerInventoryItem> new_item(new LLViewerInventoryItem); -			new_item->copyViewerItem(obj); -			new_item->fromLLSD(updates,false); - -			LLMessageSystem* msg = gMessageSystem; -			msg->newMessageFast(_PREHASH_UpdateInventoryItem); -			msg->nextBlockFast(_PREHASH_AgentData); -			msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID()); -			msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID()); -			msg->addUUIDFast(_PREHASH_TransactionID, new_item->getTransactionID()); -			msg->nextBlockFast(_PREHASH_InventoryData); -			msg->addU32Fast(_PREHASH_CallbackID, 0); -			new_item->packMessage(msg); -			gAgent.sendReliableMessage(); - -			LLInventoryModel::LLCategoryUpdate up(new_item->getParentUUID(), 0); -			gInventory.accountForUpdate(up); -			gInventory.updateItem(new_item); -			if (cb) -			{ -				cb->fire(item_id); -			} -		} -	} +    AISAPI::completion_t cr = boost::bind(&doInventoryCb, cb, _1); +    AISAPI::UpdateItem(item_id, updates, cr);  }  void update_inventory_category( @@ -1461,32 +1341,9 @@ void update_inventory_category(  		LLPointer<LLViewerInventoryCategory> new_cat = new LLViewerInventoryCategory(obj);  		new_cat->fromLLSD(updates); -		// FIXME - restore this once the back-end work has been done. -        if (AISAPI::isAvailable()) -		{ -			LLSD new_llsd = new_cat->asLLSD(); -            AISAPI::completion_t cr = (cb) ? boost::bind(&doInventoryCb, cb, _1) : AISAPI::completion_t(); -            AISAPI::UpdateCategory(cat_id, new_llsd, cr); -		} -		else // no cap -		{ -			LLMessageSystem* msg = gMessageSystem; -			msg->newMessageFast(_PREHASH_UpdateInventoryFolder); -			msg->nextBlockFast(_PREHASH_AgentData); -			msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID()); -			msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID()); -			msg->nextBlockFast(_PREHASH_FolderData); -			new_cat->packMessage(msg); -			gAgent.sendReliableMessage(); - -			LLInventoryModel::LLCategoryUpdate up(new_cat->getParentUUID(), 0); -			gInventory.accountForUpdate(up); -			gInventory.updateCategory(new_cat); -			if (cb) -			{ -				cb->fire(cat_id); -			} -		} +        LLSD new_llsd = new_cat->asLLSD(); +        AISAPI::completion_t cr = boost::bind(&doInventoryCb, cb, _1); +        AISAPI::UpdateCategory(cat_id, new_llsd, cr);  	}  } @@ -1604,41 +1461,8 @@ void remove_inventory_category(  			LLNotificationsUtil::add("CannotRemoveProtectedCategories");  			return;  		} -        if (AISAPI::isAvailable()) -		{ -            AISAPI::completion_t cr = (cb) ? boost::bind(&doInventoryCb, cb, _1) : AISAPI::completion_t(); -            AISAPI::RemoveCategory(cat_id, cr); -		} -		else // no cap -		{ -			// RemoveInventoryFolder does not remove children, so must -			// clear descendents first. -			LLInventoryModel::EHasChildren children = gInventory.categoryHasChildren(cat_id); -			if(children != LLInventoryModel::CHILDREN_NO) -			{ -				LL_DEBUGS(LOG_INV) << "Will purge descendents first before deleting category " << cat_id << LL_ENDL; -				LLPointer<LLInventoryCallback> wrap_cb = new LLRemoveCategoryOnDestroy(cat_id, cb);  -				purge_descendents_of(cat_id, wrap_cb); -				return; -			} - -			LLMessageSystem* msg = gMessageSystem; -			msg->newMessageFast(_PREHASH_RemoveInventoryFolder); -			msg->nextBlockFast(_PREHASH_AgentData); -			msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID()); -			msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID()); -			msg->nextBlockFast(_PREHASH_FolderData); -			msg->addUUIDFast(_PREHASH_FolderID, cat_id); -			gAgent.sendReliableMessage(); - -			// Update inventory and call callback immediately since -			// message-based system has no callback mechanism (!) -			gInventory.onObjectDeletedFromServer(cat_id); -			if (cb) -			{ -				cb->fire(cat_id); -			} -		} +        AISAPI::completion_t cr = boost::bind(&doInventoryCb, cb, _1); +        AISAPI::RemoveCategory(cat_id, cr);  	}  	else  	{ @@ -1857,29 +1681,11 @@ void slam_inventory_folder(const LLUUID& folder_id,  						   const LLSD& contents,  						   LLPointer<LLInventoryCallback> cb)  { -    if (AISAPI::isAvailable()) -	{ -		LL_DEBUGS(LOG_INV) << "using AISv3 to slam folder, id " << folder_id -						   << " new contents: " << ll_pretty_print_sd(contents) << LL_ENDL; +    LL_DEBUGS(LOG_INV) << "using AISv3 to slam folder, id " << folder_id +                       << " new contents: " << ll_pretty_print_sd(contents) << LL_ENDL; -        AISAPI::completion_t cr = (cb) ? boost::bind(&doInventoryCb, cb, _1) : AISAPI::completion_t(); -        AISAPI::SlamFolder(folder_id, contents, cr); -	} -	else // no cap -	{ -		LL_DEBUGS(LOG_INV) << "using item-by-item calls to slam folder, id " << folder_id -						   << " new contents: " << ll_pretty_print_sd(contents) << LL_ENDL; -		for (LLSD::array_const_iterator it = contents.beginArray(); -			 it != contents.endArray(); -			 ++it) -		{ -			const LLSD& item_contents = *it; -			LLViewerInventoryItem *item = new LLViewerInventoryItem; -			item->fromLLSD(item_contents); -			link_inventory_object(folder_id, item, cb); -		} -		remove_folder_contents(folder_id,false,cb); -	} +    AISAPI::completion_t cr = boost::bind(&doInventoryCb, cb, _1); +    AISAPI::SlamFolder(folder_id, contents, cr);  }  void remove_folder_contents(const LLUUID& category, bool keep_outfit_links, diff --git a/indra/newview/llviewerinventory.h b/indra/newview/llviewerinventory.h index 4e91e4110a..5194679a0c 100644 --- a/indra/newview/llviewerinventory.h +++ b/indra/newview/llviewerinventory.h @@ -38,6 +38,7 @@ class LLInventoryPanel;  class LLFolderView;  class LLFolderBridge;  class LLViewerInventoryCategory; +class LLInventoryCallback;  //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // Class LLViewerInventoryItem @@ -387,9 +388,9 @@ void update_inventory_item(  	LLPointer<LLInventoryCallback> cb);  void update_inventory_category( -	const LLUUID& cat_id, -	const LLSD& updates, -	LLPointer<LLInventoryCallback> cb); +    const LLUUID& cat_id, +    const LLSD& updates, +    LLPointer<LLInventoryCallback> cb);  void remove_inventory_items(  	LLInventoryObject::object_list_t& items, 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 7b63a67415..4473ce0cda 100644 --- a/indra/newview/skins/default/xui/en/floater_web_content.xml +++ b/indra/newview/skins/default/xui/en/floater_web_content.xml @@ -25,10 +25,10 @@      <layout_panel        auto_resize="false"        default_tab_group="1" -      height="44" +      height="22"        layout="topleft"        left="0" -      min_height="40" +      min_height="20"        name="nav_controls"        top="400"        width="770"> @@ -152,112 +152,136 @@          <button.commit_callback            function="WebContent.PopExternal" />        </button> +    </layout_panel> +    <layout_panel +     height="22" +     layout="topleft" +     left_delta="0" +     name="debug_controls" +     top_delta="0" +     auto_resize="false" +     width="585"> +      <button +        image_overlay="Home_Off" +            image_disabled="PushButton_Disabled" +            image_disabled_selected="PushButton_Disabled" +            image_selected="PushButton_Selected" +            image_unselected="PushButton_Off" +        chrome="true" +        tool_tip="Web tests home page" +        enabled="true" +        follows="left|top" +        height="22" +        layout="topleft" +        left="1" +        name="web_test_home_page" +        top="0" +        width="22"> +        <button.commit_callback +          function="WebContent.TestURL" +          parameter="https://callum-linden.s3.amazonaws.com/ceftests.html"/> +      </button>        <button          image_overlay="Video_URL_Off" -		    image_disabled="PushButton_Disabled" -		    image_disabled_selected="PushButton_Disabled" -		    image_selected="PushButton_Selected" -		    image_unselected="PushButton_Off" +            image_disabled="PushButton_Disabled" +            image_disabled_selected="PushButton_Disabled" +            image_selected="PushButton_Selected" +            image_unselected="PushButton_Off"          chrome="true"          tool_tip="MPEG4 Video Test"          enabled="true"          follows="left|top"          height="22"          layout="topleft" -        left="1" +        left="27"          name="VLC Plugin Test" -        top="22" +        top="0"          width="22">          <button.commit_callback -          function="WebContent.TestVideo" +          function="WebContent.TestURL"            parameter="https://callum-linden.s3.amazonaws.com/sample_media/ss.mp4"/>        </button> -        <button          image_overlay="Video_URL_Off" -		    image_disabled="PushButton_Disabled" -		    image_disabled_selected="PushButton_Disabled" -		    image_selected="PushButton_Selected" -		    image_unselected="PushButton_Off" +            image_disabled="PushButton_Disabled" +            image_disabled_selected="PushButton_Disabled" +            image_selected="PushButton_Selected" +            image_unselected="PushButton_Off"          chrome="true"          tool_tip="MKV Video Test"          enabled="true"          follows="left|top"          height="22"          layout="topleft" -        left="27" +        left="51"          name="VLC Plugin Test" -        top="22" +        top="0"          width="22">          <button.commit_callback -          function="WebContent.TestVideo" +          function="WebContent.TestURL"            parameter="https://callum-linden.s3.amazonaws.com/sample_media/jellyfish.mkv"/>        </button> -        <button          image_overlay="Video_URL_Off" -		    image_disabled="PushButton_Disabled" -		    image_disabled_selected="PushButton_Disabled" -		    image_selected="PushButton_Selected" -		    image_unselected="PushButton_Off" +            image_disabled="PushButton_Disabled" +            image_disabled_selected="PushButton_Disabled" +            image_selected="PushButton_Selected" +            image_unselected="PushButton_Off"          chrome="true"          tool_tip="WebM Video Test"          enabled="true"          follows="left|top"          height="22"          layout="topleft" -        left="51" +        left="75"          name="VLC Plugin Test" -        top="22" +        top="0"          width="22">          <button.commit_callback -          function="WebContent.TestVideo" +          function="WebContent.TestURL"            parameter="https://callum-linden.s3.amazonaws.com/sample_media/jumprope.webm"/>        </button> -        <button          image_overlay="Video_URL_Off" -		    image_disabled="PushButton_Disabled" -		    image_disabled_selected="PushButton_Disabled" -		    image_selected="PushButton_Selected" -		    image_unselected="PushButton_Off" +            image_disabled="PushButton_Disabled" +            image_disabled_selected="PushButton_Disabled" +            image_selected="PushButton_Selected" +            image_unselected="PushButton_Off"          chrome="true"          tool_tip="MP3 audio Test"          enabled="true"          follows="left|top"          height="22"          layout="topleft" -        left="75" +        left="99"          name="VLC Plugin Test" -        top="22" +        top="0"          width="22">          <button.commit_callback -          function="WebContent.TestVideo" +          function="WebContent.TestURL"            parameter="https://callum-linden.s3.amazonaws.com/alegria.mp3"/>        </button> -        <button          image_overlay="Video_URL_Off" -		    image_disabled="PushButton_Disabled" -		    image_disabled_selected="PushButton_Disabled" -		    image_selected="PushButton_Selected" -		    image_unselected="PushButton_Off" +            image_disabled="PushButton_Disabled" +            image_disabled_selected="PushButton_Disabled" +            image_selected="PushButton_Selected" +            image_unselected="PushButton_Off"          chrome="true"          tool_tip="FLV Test"          enabled="true"          follows="left|top"          height="22"          layout="topleft" -        left="99" +        left="123"          name="VLC Plugin Test" -        top="22" +        top="0"          width="22">          <button.commit_callback -          function="WebContent.TestVideo" +          function="WebContent.TestURL"            parameter="https://callum-linden.s3.amazonaws.com/sample_media/vandal.flv"/>        </button> -      </layout_panel>      <layout_panel        height="40" diff --git a/indra/newview/skins/default/xui/en/menu_login.xml b/indra/newview/skins/default/xui/en/menu_login.xml index 419ec359a6..4576111db1 100644 --- a/indra/newview/skins/default/xui/en/menu_login.xml +++ b/indra/newview/skins/default/xui/en/menu_login.xml @@ -232,11 +232,11 @@               parameter="message_critical" />          </menu_item_call>        <menu_item_call -       label="Web Content Floater Debug Test" -       name="Web Content Floater Debug Test"> +       label="Media Browser" +       name="Media Browser">          <menu_item_call.on_click           function="Advanced.WebContentTest" -         parameter="https://callum-linden.s3.amazonaws.com/ceftests.html"/> +         parameter="http://google.com"/>        </menu_item_call>        <menu         create_jump_keys="true" diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml index 0a492fb37b..82488cd88d 100644 --- a/indra/newview/skins/default/xui/en/menu_viewer.xml +++ b/indra/newview/skins/default/xui/en/menu_viewer.xml @@ -3141,30 +3141,13 @@           label="UI"           name="UI"           tear_off="true"> -         <!--   <menu_item_check -             label="New Bottom Bar" -             name="New Bottom Bar"> -                <menu_item_check.on_check -                 function="CheckControl" -                 parameter="BottomPanelNew" /> -                <menu_item_check.on_click -                 function="ToggleControl" -                 parameter="BottomPanelNew" /> -            </menu_item_check>--> -            <menu_item_call -             label="Media Browser Test" -             name="Web Browser Test"> -                <menu_item_call.on_click -                 function="Advanced.WebBrowserTest" -                 parameter="http://secondlife.com/app/search/slurls.html"/> -            </menu_item_call>            <menu_item_call -           label="Web Content Browser" -           name="Web Content Browser" -           shortcut="control|shift|Z"> +           label="Media Browser" +           name="Media Browser" +           shortcut="control|alt|shift|Z">              <menu_item_call.on_click               function="Advanced.WebContentTest" -             parameter="https://callum-linden.s3.amazonaws.com/ceftests.html"/> +             parameter="http://google.com"/>            </menu_item_call>            <menu_item_call             label="FB Connect Test" diff --git a/indra/newview/skins/default/xui/en/panel_prim_media_controls.xml b/indra/newview/skins/default/xui/en/panel_prim_media_controls.xml index eb67d07601..068e4420bc 100644 --- a/indra/newview/skins/default/xui/en/panel_prim_media_controls.xml +++ b/indra/newview/skins/default/xui/en/panel_prim_media_controls.xml @@ -374,9 +374,11 @@  		  layout="topleft"  		  tool_tip="Movie play progress"  		  width="200"> -		<slider_bar.commit_callback -			function="MediaCtrl.JumpProgress" /> -	  </slider_bar> +      <slider_bar.mouse_down_callback +        function="MediaCtrl.MouseDown" /> +      <slider_bar.mouse_up_callback +        function="MediaCtrl.MouseUp" /> +    </slider_bar>  	</layout_panel>  	<layout_panel  		name="skip_back" | 
