MAINT-8061 update folder label when item count changes

meow-7.2.2
Mnikolenko Productengine 2017-12-20 17:01:47 +02:00
parent da58afc9f8
commit 763939b254
2 changed files with 31 additions and 0 deletions

View File

@ -608,6 +608,7 @@ void LLInventoryPanel::modelChanged(U32 mask)
{
setSelection(item_id, FALSE);
}
updateFolderLabel(model_item->getParentUUID());
}
//////////////////////////////
@ -619,6 +620,7 @@ void LLInventoryPanel::modelChanged(U32 mask)
// Don't process the item if it is the root
if (old_parent)
{
LLFolderViewModelItemInventory* viewmodel_folder = static_cast<LLFolderViewModelItemInventory*>(old_parent->getViewModelItem());
LLFolderViewFolder* new_parent = (LLFolderViewFolder*)getItemByID(model_item->getParentUUID());
// Item has been moved.
if (old_parent != new_parent)
@ -636,6 +638,7 @@ void LLInventoryPanel::modelChanged(U32 mask)
setSelection(item_id, FALSE);
}
}
updateFolderLabel(model_item->getParentUUID());
}
else
{
@ -647,6 +650,10 @@ void LLInventoryPanel::modelChanged(U32 mask)
// doesn't include trash). Just remove the item's UI.
view_item->destroyView();
}
if(viewmodel_folder)
{
updateFolderLabel(viewmodel_folder->getUUID());
}
old_parent->getViewModelItem()->dirtyDescendantsFilter();
}
}
@ -664,6 +671,11 @@ void LLInventoryPanel::modelChanged(U32 mask)
if(parent)
{
parent->getViewModelItem()->dirtyDescendantsFilter();
LLFolderViewModelItemInventory* viewmodel_folder = static_cast<LLFolderViewModelItemInventory*>(parent->getViewModelItem());
if(viewmodel_folder)
{
updateFolderLabel(viewmodel_folder->getUUID());
}
}
}
}
@ -1234,6 +1246,23 @@ void LLInventoryPanel::onSelectionChange(const std::deque<LLFolderViewItem*>& it
}
void LLInventoryPanel::updateFolderLabel(const LLUUID& folder_id)
{
if(folder_id != mPreviousSelectedFolder) return;
LLFolderViewItem* folder_item = getItemByID(mPreviousSelectedFolder);
if(folder_item)
{
LLFolderBridge* bridge = (LLFolderBridge*)folder_item->getViewModelItem();
if(bridge)
{
bridge->clearDisplayName();
bridge->setShowDescendantsCount(true);
folder_item->refresh();
}
}
}
void LLInventoryPanel::doCreate(const LLSD& userdata)
{
// <FS:Ansariel> FIRE-20108: Can't create new folder in secondary inventory if view is filtered

View File

@ -218,6 +218,8 @@ public:
// <FS:Ansariel> Optional hiding of Inbox folder
void updateShowInboxFolder(const LLSD &data);
void updateFolderLabel(const LLUUID& folder_id);
// DEBUG ONLY:
static void dumpSelectionInformation(void* user_data);