MAINT-7354 correction to misbehaving 'purge' and notification spam.

master
andreykproductengine 2017-05-08 18:05:10 +03:00
parent d4d56f004a
commit fb7be87beb
5 changed files with 35 additions and 3 deletions

View File

@ -60,7 +60,13 @@ LLFloaterPreviewTrash::~LLFloaterPreviewTrash()
// static
void LLFloaterPreviewTrash::show()
{
LLFloaterReg::showTypedInstance<LLFloaterPreviewTrash>("preview_trash");
LLFloaterReg::showTypedInstance<LLFloaterPreviewTrash>("preview_trash", LLSD(), TRUE);
}
// static
bool LLFloaterPreviewTrash::isVisible()
{
return LLFloaterReg::instanceVisible("preview_trash");
}

View File

@ -35,6 +35,7 @@ class LLFloaterPreviewTrash
{
public:
static void show();
static bool isVisible();
LLFloaterPreviewTrash(const LLSD& key);
~LLFloaterPreviewTrash();

View File

@ -3437,8 +3437,16 @@ void LLInventoryModel::checkTrashOverflow()
const LLUUID trash_id = findCategoryUUIDForType(LLFolderType::FT_TRASH);
if (getDescendentsCountRecursive(trash_id, trash_max_capacity) >= trash_max_capacity)
{
LLNotificationsUtil::add("TrashIsFull", LLSD(), LLSD(),
boost::bind(callback_preview_trash_folder, _1, _2));
if (LLFloaterPreviewTrash::isVisible())
{
// bring to front
LLFloaterPreviewTrash::show();
}
else
{
LLNotificationsUtil::add("TrashIsFull", LLSD(), LLSD(),
boost::bind(callback_preview_trash_folder, _1, _2));
}
}
}

View File

@ -168,6 +168,7 @@ LLInventoryPanel::LLInventoryPanel(const LLInventoryPanel::Params& p) :
mCommitCallbackRegistrar.add("Inventory.BeginIMSession", boost::bind(&LLInventoryPanel::beginIMSession, this));
mCommitCallbackRegistrar.add("Inventory.Share", boost::bind(&LLAvatarActions::shareWithAvatars, this));
mCommitCallbackRegistrar.add("Inventory.FileUploadLocation", boost::bind(&LLInventoryPanel::fileUploadLocation, this, _2));
mCommitCallbackRegistrar.add("Inventory.Purge", boost::bind(&LLInventoryPanel::purgeSelectedItems, this));
}
LLFolderView * LLInventoryPanel::createFolderRoot(LLUUID root_id )
@ -1211,6 +1212,21 @@ void LLInventoryPanel::fileUploadLocation(const LLSD& userdata)
}
}
void LLInventoryPanel::purgeSelectedItems()
{
const std::set<LLFolderViewItem*> inventory_selected = mFolderRoot.get()->getSelectionList();
if (inventory_selected.empty()) return;
std::set<LLFolderViewItem*>::const_iterator it = inventory_selected.begin();
const std::set<LLFolderViewItem*>::const_iterator it_end = inventory_selected.end();
for (; it != it_end; ++it)
{
LLUUID item_id = static_cast<LLFolderViewModelItemInventory*>((*it)->getViewModelItem())->getUUID();
remove_inventory_object(item_id, NULL);
}
}
bool LLInventoryPanel::attachObject(const LLSD& userdata)
{
// Copy selected item UUIDs to a vector.

View File

@ -202,6 +202,7 @@ public:
void doCreate(const LLSD& userdata);
bool beginIMSession();
void fileUploadLocation(const LLSD& userdata);
void purgeSelectedItems();
bool attachObject(const LLSD& userdata);
static void idle(void* user_data);