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
master
Loren Shih 2009-11-16 17:52:15 -05:00
parent 4110307f28
commit faef48504c
3 changed files with 82 additions and 82 deletions

View File

@ -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 )

View File

@ -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

View File

@ -406,89 +406,87 @@ 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());
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;
if (new_listener)
// 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
{
// 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());
}
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)
{
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)
if (new_listener)
{
itemp->addToFolder(parent_folder, mFolders);
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 this is a folder, add the children of the folder and recursively add any