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-pipelinemaster
parent
4110307f28
commit
faef48504c
|
|
@ -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 )
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in New Issue