diff options
| author | Loren Shih <seraph@lindenlab.com> | 2009-11-16 17:52:15 -0500 | 
|---|---|---|
| committer | Loren Shih <seraph@lindenlab.com> | 2009-11-16 17:52:15 -0500 | 
| commit | faef48504c6f07fc143f664271fa5cc2e1071cc4 (patch) | |
| tree | 25264da76c6db50372f4f6cec7fd0aa2fd42733e /indra/newview | |
| parent | 4110307f28b0210311179b15bc4e85de3bdfbce0 (diff) | |
EXT-2526 : Disable "double click to wear" on outfit folders
EXT-1763 : Places - Landmarks : Unable to drop a landmark into Landamrks & FavoriteBar accordian panels
Threefixes in here.
(1) Simple disable of double-click.
(2) Corrected typos "hierary"-> "hierarchy".
(3) Now adding start folder to specialized inventory panels, so that we get the start folder's listener for drag&drop operations.
--HG--
branch : avatar-pipeline
Diffstat (limited to 'indra/newview')
| -rw-r--r-- | indra/newview/llfolderviewitem.cpp | 16 | ||||
| -rw-r--r-- | indra/newview/llfolderviewitem.h | 8 | ||||
| -rw-r--r-- | indra/newview/llinventorypanel.cpp | 142 | 
3 files changed, 83 insertions, 83 deletions
| diff --git a/indra/newview/llfolderviewitem.cpp b/indra/newview/llfolderviewitem.cpp index d39a17ca3b..bf74c5c936 100644 --- a/indra/newview/llfolderviewitem.cpp +++ b/indra/newview/llfolderviewitem.cpp @@ -133,8 +133,8 @@ LLFolderViewItem::LLFolderViewItem(LLFolderViewItem::Params p)  	mIconOpen(p.icon_open),  	mListener(p.listener),  	mArrowImage(p.folder_arrow_image), -	mBoxImage(p.selection_image) -,	mDontShowInHierarhy(false) +	mBoxImage(p.selection_image), +	mDontShowInHierarchy(false)  {  	refresh();  } @@ -411,7 +411,7 @@ S32 LLFolderViewItem::arrange( S32* width, S32* height, S32 filter_generation)  S32 LLFolderViewItem::getItemHeight()  { -	if (mDontShowInHierarhy) return 0; +	if (mDontShowInHierarchy) return 0;  	S32 icon_height = mIcon->getHeight();  	S32 label_height = llround(getLabelFontForStyle(mLabelStyle)->getLineHeight()); @@ -819,7 +819,7 @@ BOOL LLFolderViewItem::handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop,  void LLFolderViewItem::draw()  { -	if (mDontShowInHierarhy) return; +	if (mDontShowInHierarchy) return;  	static LLUIColor sFgColor = LLUIColorTable::instance().getColor("MenuItemEnabledColor", DEFAULT_WHITE);  	static LLUIColor sHighlightBgColor = LLUIColorTable::instance().getColor("MenuItemHighlightBgColor", DEFAULT_WHITE); @@ -995,14 +995,14 @@ void LLFolderViewItem::draw()  				S32 right = left + font->getWidth(combined_string, mStringMatchOffset, filter_string_length) + 2;  				S32 bottom = llfloor(getRect().getHeight() - font->getLineHeight() - 3);  				S32 top = getRect().getHeight(); - +				  				LLRect box_rect(left, top, right, bottom);  				sBoxImage->draw(box_rect, sFilterBGColor);  				F32 match_string_left = text_left + font->getWidthF32(combined_string, 0, mStringMatchOffset);  				F32 y = (F32)getRect().getHeight() - font->getLineHeight() - (F32)TEXT_PAD;  				font->renderUTF8( combined_string, mStringMatchOffset, match_string_left, y, -						   sFilterTextColor, LLFontGL::LEFT, LLFontGL::BOTTOM, LLFontGL::NORMAL, LLFontGL::NO_SHADOW, -					filter_string_length, S32_MAX, &right_x, FALSE ); +								  sFilterTextColor, LLFontGL::LEFT, LLFontGL::BOTTOM, LLFontGL::NORMAL, LLFontGL::NO_SHADOW, +								  filter_string_length, S32_MAX, &right_x, FALSE );  			}  		}  	} @@ -2166,6 +2166,7 @@ BOOL LLFolderViewFolder::handleMouseDown( S32 x, S32 y, MASK mask )  BOOL LLFolderViewFolder::handleDoubleClick( S32 x, S32 y, MASK mask )  { +	/* Disable outfit double click to wear  	const LLUUID &cat_uuid = getListener()->getUUID();  	const LLViewerInventoryCategory *cat = gInventory.getCategory(cat_uuid);  	if (cat && cat->getPreferredType() == LLFolderType::FT_OUTFIT) @@ -2173,6 +2174,7 @@ BOOL LLFolderViewFolder::handleDoubleClick( S32 x, S32 y, MASK mask )  		getListener()->performAction(NULL, NULL,"replaceoutfit");  		return TRUE;  	} +	*/  	BOOL handled = FALSE;  	if( mIsOpen ) diff --git a/indra/newview/llfolderviewitem.h b/indra/newview/llfolderviewitem.h index 7c429fc76e..30387812a6 100644 --- a/indra/newview/llfolderviewitem.h +++ b/indra/newview/llfolderviewitem.h @@ -158,7 +158,7 @@ protected:  	LLUIImagePtr				mBoxImage;  	BOOL                            mIsLoading;  	LLTimer                         mTimeSinceRequestStart; -	bool						mDontShowInHierarhy; +	bool						mDontShowInHierarchy;  	// helper function to change the selection from the root.  	void changeSelectionFromRoot(LLFolderViewItem* selection, BOOL selected); @@ -201,8 +201,8 @@ public:  	// makes sure that this view and it's children are the right size.  	virtual S32 arrange( S32* width, S32* height, S32 filter_generation );  	virtual S32 getItemHeight(); -	void setDontShowInHierarchy(bool dont_show) { mDontShowInHierarhy = dont_show; } -	bool getDontShowInHierarchy() { return mDontShowInHierarhy; } +	void setDontShowInHierarchy(bool dont_show) { mDontShowInHierarchy = dont_show; } +	bool getDontShowInHierarchy() { return mDontShowInHierarchy; }  	// applies filters to control visibility of inventory items  	virtual void filter( LLInventoryFilter& filter); @@ -343,7 +343,7 @@ typedef bool (*sort_order_f)(LLFolderViewItem* a, LLFolderViewItem* b);  //  // An instance of an LLFolderViewFolder represents a collection of  // more folders and items. This is used to build the hierarchy of -// items found in the folder view. :) +// items found in the folder view.  //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  class LLFolderViewFolder : public LLFolderViewItem diff --git a/indra/newview/llinventorypanel.cpp b/indra/newview/llinventorypanel.cpp index c113b9f0d0..7b7090d10d 100644 --- a/indra/newview/llinventorypanel.cpp +++ b/indra/newview/llinventorypanel.cpp @@ -406,88 +406,86 @@ void LLInventoryPanel::buildNewViews(const LLUUID& id)  {
  	LLMemType mt(LLMemType::MTYPE_INVENTORY_BUILD_NEW_VIEWS);
  	LLFolderViewItem* itemp = NULL;
 -	LLInventoryObject* objectp = NULL;
 -
 -	// Don't add the start folder (the inventory panel will show contents
 -	// beginning with the children of the starting folder, excluding the starting folder itself).
 -	if (id != mStartFolderID)
 +	LLInventoryObject* objectp = gInventory.getObject(id);
 +	if (objectp)
  	{
 -		objectp = gInventory.getObject(id);
 -		if (objectp)
 -		{		
 -			const LLUUID &parent_id = objectp->getParentUUID();
 -			// If this item's parent is the starting folder, then just add it to the top level (recall that 
 -			// the starting folder isn't actually represented in the view, parent_folder would be NULL in
 -			// this case otherwise).
 -			LLFolderViewFolder* parent_folder = (parent_id == mStartFolderID ?
 -				mFolders : (LLFolderViewFolder*)mFolders->getItemByID(parent_id));
 -
 +		const LLUUID &parent_id = objectp->getParentUUID();
 +		LLFolderViewFolder* parent_folder = (LLFolderViewFolder*)mFolders->getItemByID(parent_id);
 +		if (id == mStartFolderID)
 +			parent_folder = mFolders;
 +		
 +		if (!parent_folder)
 +		{
  			// This item exists outside the inventory's hierarchy, so don't add it.
 -			if (!parent_folder)
 -			{
 -				return;
 -			}
 -
 -			if (objectp->getType() <= LLAssetType::AT_NONE ||
 -				objectp->getType() >= LLAssetType::AT_COUNT)
 -			{
 -				llwarns << "LLInventoryPanel::buildNewViews called with invalid objectp->mType : " << 
 -					((S32) objectp->getType()) << " name " << objectp->getName() << " UUID " << objectp->getUUID() << llendl;
 -				return;
 -			}
 +			return;
 +		}
 +		
 +		if (objectp->getType() <= LLAssetType::AT_NONE ||
 +			objectp->getType() >= LLAssetType::AT_COUNT)
 +		{
 +			llwarns << "LLInventoryPanel::buildNewViews called with invalid objectp->mType : " << 
 +				((S32) objectp->getType()) << " name " << objectp->getName() << " UUID " << objectp->getUUID() << llendl;
 +			return;
 +		}
 +		
 +		if (objectp->getType() == LLAssetType::AT_CATEGORY &&
 +			objectp->getActualType() != LLAssetType::AT_LINK_FOLDER) 
 +		{
 +			LLInvFVBridge* new_listener = mInvFVBridgeBuilder->createBridge(objectp->getType(),
 +																			objectp->getType(),
 +																			LLInventoryType::IT_CATEGORY,
 +																			this,
 +																			objectp->getUUID());
 -			if (objectp->getType() == LLAssetType::AT_CATEGORY &&
 -					 objectp->getActualType() != LLAssetType::AT_LINK_FOLDER) 
 +			if (new_listener)
  			{
 -				LLInvFVBridge* new_listener = mInvFVBridgeBuilder->createBridge(objectp->getType(),
 -																				objectp->getType(),
 -																				LLInventoryType::IT_CATEGORY,
 -																				this,
 -																				objectp->getUUID());
 -
 -				if (new_listener)
 +				LLFolderViewFolder::Params p;
 +				p.name = new_listener->getDisplayName();
 +				p.icon = new_listener->getIcon();
 +				p.root = mFolders;
 +				p.listener = new_listener;
 +				p.tool_tip = p.name;
 +				LLFolderViewFolder* folderp = LLUICtrlFactory::create<LLFolderViewFolder>(p);
 +				folderp->setItemSortOrder(mFolders->getSortOrder());
 +				itemp = folderp;
 +
 +				// Hide the root folder, so we can show the contents of a folder
 +				// flat but still have the parent folder present for listener-related
 +				// operations.
 +				if (id == mStartFolderID)
  				{
 -					LLFolderViewFolder::Params p;
 -					p.name = new_listener->getDisplayName();
 -					p.icon = new_listener->getIcon();
 -					p.root = mFolders;
 -					p.listener = new_listener;
 -					p.tool_tip = p.name;
 -					LLFolderViewFolder* folderp = LLUICtrlFactory::create<LLFolderViewFolder>(p);
 -				
 -					folderp->setItemSortOrder(mFolders->getSortOrder());
 -					itemp = folderp;
 +					folderp->setDontShowInHierarchy(TRUE);
  				}
  			}
 -			else 
 +		}
 +		else 
 +		{
 +			// Build new view for item
 +			LLInventoryItem* item = (LLInventoryItem*)objectp;
 +			LLInvFVBridge* new_listener = mInvFVBridgeBuilder->createBridge(item->getType(),
 +																			item->getActualType(),
 +																			item->getInventoryType(),
 +																			this,
 +																			item->getUUID(),
 +																			item->getFlags());
 +
 +			if (new_listener)
  			{
 -				// Build new view for item
 -				LLInventoryItem* item = (LLInventoryItem*)objectp;
 -				LLInvFVBridge* new_listener = mInvFVBridgeBuilder->createBridge(item->getType(),
 -																				item->getActualType(),
 -																				item->getInventoryType(),
 -																				this,
 -																				item->getUUID(),
 -																				item->getFlags());
 -
 -				if (new_listener)
 -				{
 -					LLFolderViewItem::Params params;
 -					params.name(new_listener->getDisplayName());
 -					params.icon(new_listener->getIcon());
 -					params.creation_date(new_listener->getCreationDate());
 -					params.root(mFolders);
 -					params.listener(new_listener);
 -					params.rect(LLRect (0, 0, 0, 0));
 -					params.tool_tip = params.name;
 -					itemp = LLUICtrlFactory::create<LLFolderViewItem> (params);
 -				}
 +				LLFolderViewItem::Params params;
 +				params.name(new_listener->getDisplayName());
 +				params.icon(new_listener->getIcon());
 +				params.creation_date(new_listener->getCreationDate());
 +				params.root(mFolders);
 +				params.listener(new_listener);
 +				params.rect(LLRect (0, 0, 0, 0));
 +				params.tool_tip = params.name;
 +				itemp = LLUICtrlFactory::create<LLFolderViewItem> (params);
  			}
 +		}
 -			if (itemp)
 -			{
 -				itemp->addToFolder(parent_folder, mFolders);
 -			}
 +		if (itemp)
 +		{
 +			itemp->addToFolder(parent_folder, mFolders);
  		}
  	}
 | 
