summaryrefslogtreecommitdiff
path: root/indra/newview/llfolderviewitem.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llfolderviewitem.cpp')
-rw-r--r--indra/newview/llfolderviewitem.cpp71
1 files changed, 25 insertions, 46 deletions
diff --git a/indra/newview/llfolderviewitem.cpp b/indra/newview/llfolderviewitem.cpp
index 5b73a34d29..3f0b493986 100644
--- a/indra/newview/llfolderviewitem.cpp
+++ b/indra/newview/llfolderviewitem.cpp
@@ -91,10 +91,7 @@ void LLFolderViewItem::cleanupClass()
// NOTE: Optimize this, we call it a *lot* when opening a large inventory
LLFolderViewItem::Params::Params()
-: icon(),
- icon_open(),
- icon_overlay(),
- root(),
+: root(),
listener(),
folder_arrow_image("folder_arrow_image"),
folder_indentation("folder_indentation"),
@@ -125,12 +122,10 @@ LLFolderViewItem::LLFolderViewItem(const LLFolderViewItem::Params& p)
mDragAndDropTarget(FALSE),
mLabel(p.name),
mRoot(p.root),
- mIcon(p.icon),
- mIconOpen(p.icon_open),
- mIconOverlay(p.icon_overlay),
mListener(p.listener),
mIsMouseOverTitle(false)
{
+ mListener->setFolderViewItem(this);
}
BOOL LLFolderViewItem::postBuild()
@@ -243,11 +238,6 @@ void LLFolderViewItem::setFiltered(BOOL filtered, S32 filter_generation)
mLastFilterGeneration = filter_generation;
}
-void LLFolderViewItem::setIcon(LLUIImagePtr icon)
-{
- mIcon = icon;
-}
-
void LLFolderViewItem::refresh()
{
if(!getViewModelItem()) return;
@@ -255,7 +245,10 @@ void LLFolderViewItem::refresh()
mLabel = getViewModelItem()->getDisplayName();
setToolTip(mLabel);
- setIcon(getViewModelItem()->getIcon());
+ mIcon = getViewModelItem()->getIcon();
+ mIconOpen = getViewModelItem()->getIconOpen();
+ mIconOverlay = getViewModelItem()->getIconOverlay();
+
if (mRoot->useLabelSuffix())
{
mLabelStyle = getViewModelItem()->getLabelStyle();
@@ -907,27 +900,23 @@ void LLFolderViewItem::draw()
mDragAndDropTarget = FALSE;
}
- //TODO RN: implement this in terms of getIcon() and getIconOverlay()
-
- //const LLViewerInventoryItem *item = getInventoryItem();
- //const BOOL highlight_link = mIconOverlay && item && item->getIsLinkType();
- ////--------------------------------------------------------------------------------//
- //// Draw open icon
- ////
- //const S32 icon_x = mIndentation + ARROW_SIZE + TEXT_PAD;
- //if (!mIconOpen.isNull() && (llabs(mControlLabelRotation) > 80)) // For open folders
- // {
- // mIconOpen->draw(icon_x, getRect().getHeight() - mIconOpen->getHeight() - TOP_PAD + 1);
- //}
- //else if (mIcon)
- //{
- // mIcon->draw(icon_x, getRect().getHeight() - mIcon->getHeight() - TOP_PAD + 1);
- // }
+ //--------------------------------------------------------------------------------//
+ // Draw open icon
+ //
+ const S32 icon_x = mIndentation + ARROW_SIZE + TEXT_PAD;
+ if (!mIconOpen.isNull() && (llabs(mControlLabelRotation) > 80)) // For open folders
+ {
+ mIconOpen->draw(icon_x, getRect().getHeight() - mIconOpen->getHeight() - TOP_PAD + 1);
+ }
+ else if (mIcon)
+ {
+ mIcon->draw(icon_x, getRect().getHeight() - mIcon->getHeight() - TOP_PAD + 1);
+ }
- //if (highlight_link)
- //{
- // mIconOverlay->draw(icon_x, getRect().getHeight() - mIcon->getHeight() - TOP_PAD + 1);
- //}
+ if (mIconOverlay && getRoot()->showItemLinkOverlays())
+ {
+ mIconOverlay->draw(icon_x, getRect().getHeight() - mIcon->getHeight() - TOP_PAD + 1);
+ }
//--------------------------------------------------------------------------------//
// Exit if no label to draw
@@ -1242,7 +1231,7 @@ BOOL LLFolderViewFolder::needsArrange()
void LLFolderViewFolder::requestSort()
{
- getRoot()->getFolderViewModel()->requestSort(this);
+ getViewModelItem()->requestSort();
}
void LLFolderViewFolder::setCompletedFilterGeneration(S32 generation, BOOL recurse_up)
@@ -2007,13 +1996,13 @@ BOOL LLFolderViewFolder::addFolder(LLFolderViewFolder* folder)
addChild( folder );
folder->dirtyFilter();
// rearrange all descendants too, as our indentation level might have changed
- folder->requestArrange(TRUE);
+ folder->requestArrange();
requestSort();
return TRUE;
}
-void LLFolderViewFolder::requestArrange(BOOL include_descendants)
+void LLFolderViewFolder::requestArrange()
{
mLastArrangeGeneration = -1;
// flag all items up to root
@@ -2021,16 +2010,6 @@ void LLFolderViewFolder::requestArrange(BOOL include_descendants)
{
mParentFolder->requestArrange();
}
-
- if (include_descendants)
- {
- for (folders_t::iterator iter = mFolders.begin();
- iter != mFolders.end();
- ++iter)
- {
- (*iter)->requestArrange(TRUE);
- }
- }
}
void LLFolderViewFolder::toggleOpen()