diff options
Diffstat (limited to 'indra/llui/llfolderview.cpp')
| -rw-r--r-- | indra/llui/llfolderview.cpp | 28 | 
1 files changed, 25 insertions, 3 deletions
| diff --git a/indra/llui/llfolderview.cpp b/indra/llui/llfolderview.cpp index 62c311f522..9fa8a84fa4 100644 --- a/indra/llui/llfolderview.cpp +++ b/indra/llui/llfolderview.cpp @@ -189,7 +189,8 @@ LLFolderView::LLFolderView(const Params& p)  	mStatusTextBox(NULL),  	mShowItemLinkOverlays(p.show_item_link_overlays),  	mViewModel(p.view_model), -    mGroupedItemModel(p.grouped_item_model) +    mGroupedItemModel(p.grouped_item_model), +    mForceArrange(false)  {      LLPanel* panel = p.parent_panel;      mParentPanel = panel->getHandle(); @@ -665,7 +666,7 @@ void LLFolderView::draw()  	}  	else if (mShowEmptyMessage)  	{ -		mStatusTextBox->setValue(getFolderViewModel()->getStatusText()); +		mStatusTextBox->setValue(getFolderViewModel()->getStatusText(mItems.empty() && mFolders.empty()));  		mStatusTextBox->setVisible( TRUE );  		// firstly reshape message textbox with current size. This is necessary to @@ -1273,6 +1274,11 @@ BOOL LLFolderView::handleKeyHere( KEY key, MASK mask )  		if(mSelectedItems.size())  		{  			LLFolderViewItem* last_selected = getCurSelectedItem(); +            if(last_selected && last_selected->isSingleFolderMode()) +            { +                handled = FALSE; +                break; +            }  			LLFolderViewItem* parent_folder = last_selected->getParentFolder();  			if (!last_selected->isOpen() && parent_folder && parent_folder->getParentFolder())  			{ @@ -1532,6 +1538,22 @@ BOOL LLFolderView::handleHover( S32 x, S32 y, MASK mask )  	return LLView::handleHover( x, y, mask );  } +LLFolderViewItem* LLFolderView::getHoveredItem() const +{ +	return dynamic_cast<LLFolderViewItem*>(mHoveredItem.get()); +} + +void LLFolderView::setHoveredItem(LLFolderViewItem* itemp) +{ +	if (mHoveredItem.get() != itemp) +	{ +		if (itemp) +			mHoveredItem = itemp->getHandle(); +		else +			mHoveredItem.markDead(); +	} +} +  BOOL LLFolderView::handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop,  									 EDragAndDropType cargo_type,  									 void* cargo_data,  @@ -1716,7 +1738,7 @@ void LLFolderView::update()  		mNeedsAutoSelect = FALSE;  	} -  BOOL is_visible = isInVisibleChain(); +  BOOL is_visible = isInVisibleChain() || mForceArrange;    //Puts folders/items in proper positions    // arrange() takes the model filter flag into account and call sort() if necessary (CHUI-849) | 
