diff options
| -rw-r--r-- | indra/llui/llconsole.cpp | 6 | ||||
| -rw-r--r-- | indra/llui/llurlentry.cpp | 8 | ||||
| -rw-r--r-- | indra/newview/character/avatar_lad.xml | 12 | ||||
| -rw-r--r-- | indra/newview/llagentwearables.cpp | 86 | ||||
| -rw-r--r-- | indra/newview/llfasttimerview.cpp | 4 | ||||
| -rw-r--r-- | indra/newview/llfloatersearch.cpp | 14 | ||||
| -rw-r--r-- | indra/newview/llfloatersearch.h | 2 | ||||
| -rw-r--r-- | indra/newview/llmediactrl.cpp | 1 | ||||
| -rw-r--r-- | indra/newview/llpanellogin.cpp | 7 | ||||
| -rw-r--r-- | indra/newview/llsidepaneliteminfo.cpp | 102 | ||||
| -rw-r--r-- | indra/newview/llsidepaneliteminfo.h | 6 | ||||
| -rw-r--r-- | indra/newview/llstartup.cpp | 1 | ||||
| -rw-r--r-- | indra/newview/llteleporthistory.cpp | 1 | ||||
| -rw-r--r-- | indra/newview/lltoolpie.cpp | 27 | ||||
| -rw-r--r-- | indra/newview/lltoolpie.h | 3 | ||||
| -rw-r--r-- | indra/newview/llviewerwindow.cpp | 1 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/floater_customize.xml | 10 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/panel_main_inventory.xml | 2 | 
18 files changed, 175 insertions, 118 deletions
| diff --git a/indra/llui/llconsole.cpp b/indra/llui/llconsole.cpp index fa0abd55d0..c9090d388d 100644 --- a/indra/llui/llconsole.cpp +++ b/indra/llui/llconsole.cpp @@ -392,4 +392,10 @@ void LLConsole::addLine(const LLWString& wline, F32 size, const LLColor4 &color)  	Paragraph paragraph(wline, color, mTimer.getElapsedTimeF32(), mFont,  (F32)getRect().getWidth() );  	mParagraphs.push_back ( paragraph ); + +	// remove old paragraphs which can't possibly be visible any more.  ::draw() will do something similar but more conservative - we do this here because ::draw() isn't guaranteed to ever be called!  (i.e. the console isn't visible) +        while ((S32)mParagraphs.size() > llmax((S32)0, (S32)(mMaxLines))) +        { +                mParagraphs.pop_front(); +        }  } diff --git a/indra/llui/llurlentry.cpp b/indra/llui/llurlentry.cpp index 983f0a2d49..f7528bc62a 100644 --- a/indra/llui/llurlentry.cpp +++ b/indra/llui/llurlentry.cpp @@ -201,8 +201,12 @@ std::string LLUrlEntryHTTPLabel::getUrl(const std::string &string)  //  LLUrlEntryHTTPNoProtocol::LLUrlEntryHTTPNoProtocol()  { -	mPattern = boost::regex("(\\bwww\\.\\S+\\.\\S+|\\b[^ \t\n\r\f\v:/]+.com\\S*|\\b[^ \t\n\r\f\v:/]+.net\\S*|\\b[^ \t\n\r\f\v:/]+.edu\\S*|\\b[^ \t\n\r\f\v:/]+.org\\S*)", -							boost::regex::perl|boost::regex::icase); +	mPattern = boost::regex("(" +				"\\bwww\\.\\S+\\.\\S+" // i.e. www.FOO.BAR +				"|" // or +				"\\b[^ \\t\\n\\r\\f\\v:/]+\\.(?:com|net|edu|org)[^[:space:][:alnum:]]*\\>" // i.e. FOO.net +				")", +				boost::regex::perl|boost::regex::icase);  	mMenuName = "menu_url_http.xml";  	mTooltip = LLTrans::getString("TooltipHttpUrl");  } diff --git a/indra/newview/character/avatar_lad.xml b/indra/newview/character/avatar_lad.xml index ae89eb4413..448e20b382 100644 --- a/indra/newview/character/avatar_lad.xml +++ b/indra/newview/character/avatar_lad.xml @@ -5608,9 +5608,7 @@    <layer_set      body_region="head"      width="512" -    height="512" -  clear_alpha="false" -    alpha_tga_file="head_alpha.tga"> +    height="512">      <layer         name="head bump base"         fixed_color = "128,128,128,255" @@ -6609,6 +6607,13 @@ render_pass="bump">         local_texture="head_bodypaint" />      </layer>      <layer +	name="eyelash alpha" +	visibility_mask="TRUE"> +       <texture +	   tga_file="head_alpha.tga" +	   file_is_mask="TRUE" /> +    </layer> +    <layer         name="head alpha"         visibility_mask="TRUE">        <texture @@ -6620,6 +6625,7 @@ render_pass="bump">           local_texture="head_tattoo" />      </layer> +    </layer_set>    <!-- =========================================================== --> diff --git a/indra/newview/llagentwearables.cpp b/indra/newview/llagentwearables.cpp index b221c28dcd..dc1598aacd 100644 --- a/indra/newview/llagentwearables.cpp +++ b/indra/newview/llagentwearables.cpp @@ -100,6 +100,7 @@ public:  	LLLibraryOutfitsFetch() : mCurrFetchStep(LOFS_FOLDER), mOutfitsPopulated(false) {}  	~LLLibraryOutfitsFetch() {}  	virtual void done();	 +	void doneIdle();  protected:  	void folderDone(void);  	void outfitsDone(void); @@ -2084,52 +2085,50 @@ void LLAgentWearables::populateMyOutfitsFolder(void)  {	  	LLLibraryOutfitsFetch* outfits = new LLLibraryOutfitsFetch(); -	// What we do here is get the complete information on the items in -	// the inventory, and set up an observer that will wait for that to -	// happen. +	// Get the complete information on the items in the inventory and  +	// setup an observer that will wait for that to happen.  	LLInventoryFetchDescendentsObserver::folder_ref_t folders;  	const LLUUID my_outfits_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_MY_OUTFITS);  	folders.push_back(my_outfits_id); +	gInventory.addObserver(outfits);  	outfits->fetchDescendents(folders); -	if(outfits->isEverythingComplete()) -	{ -		// everything is already here - call done. -		outfits->done(); -	} -	else -	{ -		// it's all on it's way - add an observer, and the inventory -		// will call done for us when everything is here. -		gInventory.addObserver(outfits); -	}  }  void LLLibraryOutfitsFetch::done()  { -	switch (mCurrFetchStep){ +	// Delay this until idle() routine, since it's a heavy operation and +	// we also can't have it run within notifyObservers. +	doOnIdle(boost::bind(&LLLibraryOutfitsFetch::doneIdle,this)); +	gInventory.removeObserver(this); // Prevent doOnIdle from being added twice. +} + +void LLLibraryOutfitsFetch::doneIdle() +{ +	gInventory.addObserver(this); // Add this back in since it was taken out during ::done() +	switch (mCurrFetchStep) +	{  		case LOFS_FOLDER: -			mCurrFetchStep = LOFS_OUTFITS;  			folderDone();  			break;  		case LOFS_OUTFITS: -			mCurrFetchStep = LOFS_CONTENTS;  			outfitsDone();  			break;  		case LOFS_CONTENTS: -			// No longer need this observer hanging around. -			gInventory.removeObserver(this);  			contentsDone();  			break;  		default: -			gInventory.removeObserver(this); -			delete this; -			return; +			llwarns << "Got invalid state for outfit fetch: " << mCurrFetchStep << llendl; +			mOutfitsPopulated = TRUE; +			break;  	} + +	// We're completely done.  Cleanup.  	if (mOutfitsPopulated)  	{ -		gInventory.notifyObservers(); +		gInventory.removeObserver(this);  		delete this; +		return;  	}  } @@ -2143,7 +2142,6 @@ void LLLibraryOutfitsFetch::folderDone(void)  	if (cat_array.count() > 0 || wearable_array.count() > 0)  	{  		mOutfitsPopulated = true; -		gInventory.removeObserver(this);  		return;  	} @@ -2152,22 +2150,11 @@ void LLLibraryOutfitsFetch::folderDone(void)  	mCompleteFolders.clear(); -	// What we do here is get the complete information on the items in -	// the inventory, and set up an observer that will wait for that to -	// happen. +	// Get the complete information on the items in the inventory.  	LLInventoryFetchDescendentsObserver::folder_ref_t folders;  	folders.push_back(library_clothing_id); +	mCurrFetchStep = LOFS_OUTFITS;  	fetchDescendents(folders); -	if(isEverythingComplete()) -	{ -		// everything is already here - call done. -		outfitsDone(); -	} -	else  -	{ -		gInventory.removeObserver(this); -		gInventory.addObserver(this); -	}  }  void LLLibraryOutfitsFetch::outfitsDone(void) @@ -2180,25 +2167,21 @@ void LLLibraryOutfitsFetch::outfitsDone(void)  	LLInventoryFetchDescendentsObserver::folder_ref_t folders;  	llassert(cat_array.count() > 0); -	for(S32 i = 0; i < cat_array.count(); ++i) +	for (LLInventoryModel::cat_array_t::const_iterator iter = cat_array.begin(); +		 iter != cat_array.end(); +		 ++iter)  	{ -		if (cat_array.get(i)->getName() != "More Outfits" && cat_array.get(i)->getName() != "Ruth"){ -			folders.push_back(cat_array.get(i)->getUUID()); -			mOutfits.push_back( std::make_pair(cat_array.get(i)->getUUID(), cat_array.get(i)->getName() )); +		const LLViewerInventoryCategory *cat = iter->get(); +		if (cat->getName() != "More Outfits" && cat->getName() != "Ruth") +		{ +			folders.push_back(cat->getUUID()); +			mOutfits.push_back(std::make_pair(cat->getUUID(), cat->getName()));  		}  	}  	mCompleteFolders.clear(); + +	mCurrFetchStep = LOFS_CONTENTS;  	fetchDescendents(folders); -	if(isEverythingComplete()) -	{ -		// everything is already here - call done. -		contentsDone(); -	} -	else -	{ -		gInventory.removeObserver(this); -		gInventory.addObserver(this); -	}  }  void LLLibraryOutfitsFetch::contentsDone(void) @@ -2210,7 +2193,6 @@ void LLLibraryOutfitsFetch::contentsDone(void)  		LLUUID folder_id = gInventory.createNewCategory(parent_id,  														LLFolderType::FT_OUTFIT,  														mOutfits[i].second); -		  		LLAppearanceManager::getInstance()->shallowCopyCategory(mOutfits[i].first, folder_id, NULL);  	}  	mOutfitsPopulated = true; diff --git a/indra/newview/llfasttimerview.cpp b/indra/newview/llfasttimerview.cpp index effa57b1ef..7d8bb6e104 100644 --- a/indra/newview/llfasttimerview.cpp +++ b/indra/newview/llfasttimerview.cpp @@ -323,7 +323,9 @@ void LLFastTimerView::draw()  	S32 xleft = margin;  	S32 ytop = margin; -	mAverageCyclesPerTimer = llround(lerp((F32)mAverageCyclesPerTimer, (F32)(LLFastTimer::sTimerCycles / (U64)LLFastTimer::sTimerCalls), 0.1f)); +	mAverageCyclesPerTimer = LLFastTimer::sTimerCalls == 0  +		? 0  +		: llround(lerp((F32)mAverageCyclesPerTimer, (F32)(LLFastTimer::sTimerCycles / (U64)LLFastTimer::sTimerCalls), 0.1f));  	LLFastTimer::sTimerCycles = 0;  	LLFastTimer::sTimerCalls = 0; diff --git a/indra/newview/llfloatersearch.cpp b/indra/newview/llfloatersearch.cpp index 595d84f9f0..c6d9fee630 100644 --- a/indra/newview/llfloatersearch.cpp +++ b/indra/newview/llfloatersearch.cpp @@ -77,6 +77,15 @@ void LLFloaterSearch::onOpen(const LLSD& key)  	search(key);  } +void LLFloaterSearch::onClose(bool app_quitting) +{ +	if (! app_quitting) +	{ +		// Show the blank home page ready for the next onOpen() +		mBrowser->navigateHome(); +	} +} +  void LLFloaterSearch::handleMediaEvent(LLPluginClassMedia *self, EMediaEvent event)  {  	switch (event)  @@ -110,6 +119,11 @@ void LLFloaterSearch::search(const LLSD &key)  		return;  	} +	// display the blank home page first, to clear the display of  +	// any previous search results while the new results load. +	// The home page is set in floater_search.xml as start_url. +	mBrowser->navigateHome(); +  	// reset the god level warning as we're sending the latest state  	childHide("refresh_search");  	mSearchGodLevel = gAgent.getGodLevel(); diff --git a/indra/newview/llfloatersearch.h b/indra/newview/llfloatersearch.h index ba817adf7f..0a8d9bbe36 100644 --- a/indra/newview/llfloatersearch.h +++ b/indra/newview/llfloatersearch.h @@ -59,6 +59,8 @@ public:  	/// see search() for details on the key parameter.  	/*virtual*/ void onOpen(const LLSD& key); +	/*virtual*/ void onClose(bool app_quitting); +  	/// perform a search with the specific search term.  	/// The key should be a map that can contain the following keys:  	///  - "id": specifies the text phrase to search for diff --git a/indra/newview/llmediactrl.cpp b/indra/newview/llmediactrl.cpp index 199bd966ef..93f926b5d0 100644 --- a/indra/newview/llmediactrl.cpp +++ b/indra/newview/llmediactrl.cpp @@ -39,7 +39,6 @@  #include "llfloaterworldmap.h"  #include "lluictrlfactory.h"  #include "llurldispatcher.h" -#include "llurlsimstring.h"  #include "llviewborder.h"  #include "llviewercontrol.h"  #include "llviewermedia.h" diff --git a/indra/newview/llpanellogin.cpp b/indra/newview/llpanellogin.cpp index a9c7b908ed..87d101b00f 100644 --- a/indra/newview/llpanellogin.cpp +++ b/indra/newview/llpanellogin.cpp @@ -62,7 +62,6 @@  #include "llviewermenu.h"			// for handle_preferences()  #include "llviewernetwork.h"  #include "llviewerwindow.h"			// to link into child list -#include "llurlsimstring.h"  #include "lluictrlfactory.h"  #include "llhttpclient.h"  #include "llweb.h" @@ -229,8 +228,12 @@ LLPanelLogin::LLPanelLogin(const LLRect &rect,  	LLComboBox* combo = getChild<LLComboBox>("start_location_combo"); -	LLURLSimString::setString(gSavedSettings.getString("LoginLocation"));  	std::string sim_string = LLURLSimString::sInstance.mSimString; +	if(sim_string.empty()) +	{ +		LLURLSimString::setString(gSavedSettings.getString("LoginLocation")); +	} +  	if (!sim_string.empty())  	{  		// Replace "<Type region name>" with this region name diff --git a/indra/newview/llsidepaneliteminfo.cpp b/indra/newview/llsidepaneliteminfo.cpp index 814508daa9..94fe95d215 100644 --- a/indra/newview/llsidepaneliteminfo.cpp +++ b/indra/newview/llsidepaneliteminfo.cpp @@ -157,11 +157,12 @@ void LLSidepanelItemInfo::reset()  void LLSidepanelItemInfo::refresh()  { -	LLInventoryItem* item = findItem(); +	LLViewerInventoryItem* item = findItem();  	if(item)  	{  		refreshFromItem(item);  		updateVerbs(); +		return;  	}  	else  	{ @@ -170,11 +171,8 @@ void LLSidepanelItemInfo::refresh()  			setIsEditing(FALSE);  		}  	} -	 -	const LLUUID trash_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_TRASH); -	bool is_editable = item && (item->getUUID() != trash_id) && !gInventory.isObjectDescendentOf(item->getUUID(), trash_id); -	if (!getIsEditing() || !is_editable) +	if (!getIsEditing())  	{  		const std::string no_item_names[]={  			"LabelItemName", @@ -212,7 +210,7 @@ void LLSidepanelItemInfo::refresh()  		}  	} -	if (!is_editable) +	if (!item)  	{  		const std::string no_edit_mode_names[]={  			"BtnCreator", @@ -227,24 +225,26 @@ void LLSidepanelItemInfo::refresh()  	updateVerbs();  } -void LLSidepanelItemInfo::refreshFromItem(LLInventoryItem* item) +void LLSidepanelItemInfo::refreshFromItem(LLViewerInventoryItem* item)  {  	////////////////////////  	// PERMISSIONS LOOKUP //  	////////////////////////  	// do not enable the UI for incomplete items. -	LLViewerInventoryItem* i = (LLViewerInventoryItem*)item; -	BOOL is_complete = i->isComplete(); -	const BOOL cannot_restrict_permissions = LLInventoryType::cannotRestrictPermissions(i->getInventoryType()); -	const BOOL is_calling_card = (i->getInventoryType() == LLInventoryType::IT_CALLINGCARD); +	BOOL is_complete = item->isComplete(); +	const BOOL cannot_restrict_permissions = LLInventoryType::cannotRestrictPermissions(item->getInventoryType()); +	const BOOL is_calling_card = (item->getInventoryType() == LLInventoryType::IT_CALLINGCARD);  	const LLPermissions& perm = item->getPermissions();  	const BOOL can_agent_manipulate = gAgent.allowOperation(PERM_OWNER, perm,   															GP_OBJECT_MANIPULATE);  	const BOOL can_agent_sell = gAgent.allowOperation(PERM_OWNER, perm,   													  GP_OBJECT_SET_SALE) &&  		!cannot_restrict_permissions; -	const BOOL is_link = i->getIsLinkType(); +	const BOOL is_link = item->getIsLinkType(); +	 +	const LLUUID trash_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_TRASH); +	bool not_in_trash = item && (item->getUUID() != trash_id) && !gInventory.isObjectDescendentOf(item->getUUID(), trash_id);  	// You need permission to modify the object to modify an inventory  	// item in it. @@ -261,7 +261,7 @@ void LLSidepanelItemInfo::refreshFromItem(LLInventoryItem* item)  	//////////////////////  	BOOL is_modifiable = gAgent.allowOperation(PERM_MODIFY, perm,  											   GP_OBJECT_MANIPULATE) -		&& is_obj_modify && is_complete; +		&& is_obj_modify && is_complete && not_in_trash;  	childSetEnabled("LabelItemNameTitle",TRUE);  	childSetEnabled("LabelItemName",is_modifiable && !is_calling_card); // for now, don't allow rename of calling cards @@ -338,6 +338,64 @@ void LLSidepanelItemInfo::refreshFromItem(LLInventoryItem* item)  		LLStringUtil::format (timeStr, substitution);  		childSetText ("LabelAcquiredDate", timeStr);  	} +	 +	///////////////////////////////////// +	// PERMISSIONS AND SALE ITEM HIDING +	///////////////////////////////////// +	 +	const std::string perm_and_sale_items[]={ +		"perms_inv", +		"OwnerLabel", +		"perm_modify", +		"CheckOwnerModify", +		"CheckOwnerCopy", +		"CheckOwnerTransfer", +		"GroupLabel", +		"CheckShareWithGroup", +		"AnyoneLabel", +		"CheckEveryoneCopy", +		"NextOwnerLabel", +		"CheckNextOwnerModify", +		"CheckNextOwnerCopy", +		"CheckNextOwnerTransfer", +		"CheckPurchase", +		"SaleLabel", +		"RadioSaleType", +		"combobox sale copy", +		"Edit Cost", +		"TextPrice" +	}; +	 +	const std::string debug_items[]={ +		"BaseMaskDebug", +		"OwnerMaskDebug", +		"GroupMaskDebug", +		"EveryoneMaskDebug", +		"NextMaskDebug" +	}; +	 +	// Hide permissions checkboxes and labels and for sale info if in the trash +	// or ui elements don't apply to these objects and return from function +	if (!not_in_trash || cannot_restrict_permissions) +	{ +		for(size_t t=0; t<LL_ARRAY_SIZE(perm_and_sale_items); ++t) +		{ +			childSetVisible(perm_and_sale_items[t],false); +		} +		 +		for(size_t t=0; t<LL_ARRAY_SIZE(debug_items); ++t) +		{ +			childSetVisible(debug_items[t],false); +		} +		return; +	} +	else // Make sure perms and sale ui elements are visible +	{ +		for(size_t t=0; t<LL_ARRAY_SIZE(perm_and_sale_items); ++t) +		{ +			childSetVisible(perm_and_sale_items[t],true); +		} +	}  	///////////////////////  	// OWNER PERMISSIONS // @@ -541,7 +599,7 @@ void LLSidepanelItemInfo::refreshFromItem(LLInventoryItem* item)  void LLSidepanelItemInfo::onClickCreator()  { -	LLInventoryItem* item = findItem(); +	LLViewerInventoryItem* item = findItem();  	if(!item) return;  	if(!item->getCreatorUUID().isNull())  	{ @@ -552,7 +610,7 @@ void LLSidepanelItemInfo::onClickCreator()  // static  void LLSidepanelItemInfo::onClickOwner()  { -	LLInventoryItem* item = findItem(); +	LLViewerInventoryItem* item = findItem();  	if(!item) return;  	if(item->getPermissions().isGroupOwned())  	{ @@ -568,7 +626,7 @@ void LLSidepanelItemInfo::onClickOwner()  void LLSidepanelItemInfo::onCommitName()  {  	//llinfos << "LLSidepanelItemInfo::onCommitName()" << llendl; -	LLViewerInventoryItem* item = (LLViewerInventoryItem*)findItem(); +	LLViewerInventoryItem* item = findItem();  	if(!item)  	{  		return; @@ -604,7 +662,7 @@ void LLSidepanelItemInfo::onCommitName()  void LLSidepanelItemInfo::onCommitDescription()  {  	//llinfos << "LLSidepanelItemInfo::onCommitDescription()" << llendl; -	LLViewerInventoryItem* item = (LLViewerInventoryItem*)findItem(); +	LLViewerInventoryItem* item = findItem();  	if(!item) return;  	LLLineEditor* labelItemDesc = getChild<LLLineEditor>("LabelItemDesc"); @@ -642,7 +700,7 @@ void LLSidepanelItemInfo::onCommitDescription()  void LLSidepanelItemInfo::onCommitPermissions()  {  	//llinfos << "LLSidepanelItemInfo::onCommitPermissions()" << llendl; -	LLViewerInventoryItem* item = (LLViewerInventoryItem*)findItem(); +	LLViewerInventoryItem* item = findItem();  	if(!item) return;  	LLPermissions perm(item->getPermissions()); @@ -751,7 +809,7 @@ void LLSidepanelItemInfo::onCommitSaleType()  void LLSidepanelItemInfo::updateSaleInfo()  { -	LLViewerInventoryItem* item = (LLViewerInventoryItem*)findItem(); +	LLViewerInventoryItem* item = findItem();  	if(!item) return;  	LLSaleInfo sale_info(item->getSaleInfo());  	if(!gAgent.allowOperation(PERM_TRANSFER, item->getPermissions(), GP_OBJECT_SET_SALE)) @@ -851,9 +909,9 @@ void LLSidepanelItemInfo::updateSaleInfo()  	}  } -LLInventoryItem* LLSidepanelItemInfo::findItem() const +LLViewerInventoryItem* LLSidepanelItemInfo::findItem() const  { -	LLInventoryItem* item = NULL; +	LLViewerInventoryItem* item = NULL;  	if(mObjectID.isNull())  	{  		// it is in agent inventory @@ -864,7 +922,7 @@ LLInventoryItem* LLSidepanelItemInfo::findItem() const  		LLViewerObject* object = gObjectList.findObject(mObjectID);  		if(object)  		{ -			item = (LLInventoryItem*)object->getInventoryObject(mItemID); +			item = static_cast<LLViewerInventoryItem*>(object->getInventoryObject(mItemID));  		}  	}  	return item; diff --git a/indra/newview/llsidepaneliteminfo.h b/indra/newview/llsidepaneliteminfo.h index 21002327bc..e6dbf400ee 100644 --- a/indra/newview/llsidepaneliteminfo.h +++ b/indra/newview/llsidepaneliteminfo.h @@ -41,7 +41,7 @@  //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  class LLButton; -class LLInventoryItem; +class LLViewerInventoryItem;  class LLItemPropertiesObserver;  class LLViewerObject;  class LLPermissions; @@ -63,10 +63,10 @@ protected:  	/*virtual*/ void refresh();  	/*virtual*/ void save(); -	LLInventoryItem* findItem() const; +	LLViewerInventoryItem* findItem() const;  	LLViewerObject*  findObject() const; -	void refreshFromItem(LLInventoryItem* item); +	void refreshFromItem(LLViewerInventoryItem* item);  private:  	LLUUID mItemID; 	// inventory UUID for the inventory item. diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp index eb2275bff0..99fa271b78 100644 --- a/indra/newview/llstartup.cpp +++ b/indra/newview/llstartup.cpp @@ -1309,6 +1309,7 @@ bool idle_startup()  			// Move the progress view in front of the UI  			gViewerWindow->moveProgressViewToFront(); +			// direct logging to the debug console's line buffer  			LLError::logToFixedBuffer(gDebugView->mDebugConsolep);  			// set initial visibility of debug console diff --git a/indra/newview/llteleporthistory.cpp b/indra/newview/llteleporthistory.cpp index 1315887c37..ce00dec802 100644 --- a/indra/newview/llteleporthistory.cpp +++ b/indra/newview/llteleporthistory.cpp @@ -39,7 +39,6 @@  #include "llagent.h"  #include "llslurl.h" -#include "llurlsimstring.h"  #include "llviewercontrol.h"        // for gSavedSettings  #include "llviewerparcelmgr.h"  #include "llviewerregion.h" diff --git a/indra/newview/lltoolpie.cpp b/indra/newview/lltoolpie.cpp index b1d09eccba..5f66e6b409 100644 --- a/indra/newview/lltoolpie.cpp +++ b/indra/newview/lltoolpie.cpp @@ -101,16 +101,13 @@ BOOL LLToolPie::handleAnyMouseClick(S32 x, S32 y, MASK mask, EClickType clicktyp  BOOL LLToolPie::handleMouseDown(S32 x, S32 y, MASK mask)  {  	//left mouse down always picks transparent -	gViewerWindow->pickAsync(x, y, mask, leftMouseCallback, TRUE); +	mPick = gViewerWindow->pickImmediate(x, y, TRUE); +	mPick.mKeyMask = mask;  	mGrabMouseButtonDown = TRUE; -	return TRUE; -} +	 +	pickLeftMouseDownCallback(); -// static -void LLToolPie::leftMouseCallback(const LLPickInfo& pick_info) -{ -	LLToolPie::getInstance()->mPick = pick_info; -	LLToolPie::getInstance()->pickLeftMouseDownCallback(); +	return TRUE;  }  // Spawn context menus on right mouse down so you can drag over and select @@ -118,8 +115,13 @@ void LLToolPie::leftMouseCallback(const LLPickInfo& pick_info)  BOOL LLToolPie::handleRightMouseDown(S32 x, S32 y, MASK mask)  {  	// don't pick transparent so users can't "pay" transparent objects -	gViewerWindow->pickAsync(x, y, mask, rightMouseCallback, FALSE); +	mPick = gViewerWindow->pickImmediate(x, y, FALSE); +	mPick.mKeyMask = mask; +  	// claim not handled so UI focus stays same +	 +	pickRightMouseDownCallback(); +	  	return FALSE;  } @@ -134,13 +136,6 @@ BOOL LLToolPie::handleScrollWheel(S32 x, S32 y, S32 clicks)  	return LLViewerMediaFocus::getInstance()->handleScrollWheel(x, y, clicks);  } -// static -void LLToolPie::rightMouseCallback(const LLPickInfo& pick_info) -{ -	LLToolPie::getInstance()->mPick = pick_info; -	LLToolPie::getInstance()->pickRightMouseDownCallback(); -} -  // True if you selected an object.  BOOL LLToolPie::pickLeftMouseDownCallback()  { diff --git a/indra/newview/lltoolpie.h b/indra/newview/lltoolpie.h index 3660c68552..5f0e28fa95 100644 --- a/indra/newview/lltoolpie.h +++ b/indra/newview/lltoolpie.h @@ -71,9 +71,6 @@ public:  	LLObjectSelection*	getLeftClickSelection() { return (LLObjectSelection*)mLeftClickSelection; }  	void 				resetSelection(); -	static void			leftMouseCallback(const LLPickInfo& pick_info); -	static void			rightMouseCallback(const LLPickInfo& pick_info); -  	static void			selectionPropertiesReceived();  	static void			showAvatarInspector(const LLUUID& avatar_id); diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index 5c86822787..1400253176 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -182,7 +182,6 @@  #include "llworldmapview.h"  #include "pipeline.h"  #include "llappviewer.h" -#include "llurlsimstring.h"  #include "llviewerdisplay.h"  #include "llspatialpartition.h"  #include "llviewerjoystick.h" diff --git a/indra/newview/skins/default/xui/en/floater_customize.xml b/indra/newview/skins/default/xui/en/floater_customize.xml index 94686f0bb0..0dc7d62b19 100644 --- a/indra/newview/skins/default/xui/en/floater_customize.xml +++ b/indra/newview/skins/default/xui/en/floater_customize.xml @@ -12,16 +12,6 @@   title="APPEARANCE"   top_delta="-185"   width="524"> - <check_box -             enabled="true" -             height="23" -             label="Show Attachments in Previews" -             layout="topleft" -             left="110" -             name="show attachments" -             tool_tip="Display attachments on your avatar in the preview panels below." -             top="20" -             width="146" />      <tab_container       height="517"       layout="topleft" diff --git a/indra/newview/skins/default/xui/en/panel_main_inventory.xml b/indra/newview/skins/default/xui/en/panel_main_inventory.xml index 4353b306cd..58437cd4d2 100644 --- a/indra/newview/skins/default/xui/en/panel_main_inventory.xml +++ b/indra/newview/skins/default/xui/en/panel_main_inventory.xml @@ -208,7 +208,7 @@ halign="center"               layout="topleft"               name="Reset Current">                  <menu_item_call.on_click -                 function="Inventory.ResetFilter" /> +                 function="Inventory.ResetFilters" />              </menu_item_call>              <menu_item_call               label="Close All Folders" | 
