summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreyL ProductEngine <alihatskiy@productengine.com>2017-07-21 05:29:51 +0300
committerAndreyL ProductEngine <alihatskiy@productengine.com>2017-07-21 05:29:51 +0300
commit2efa40fa6089dabbaccc228d331679c8c92f797f (patch)
tree48d85625553575c337875b0f675daa1ed88bca1f
parentc55d9a59a25cbc311c63ca8bfee0189b090ff99a (diff)
MAINT-7356 Logic fix and cleanup
-rw-r--r--indra/llui/llnotifications.cpp6
-rw-r--r--indra/llui/llnotifications.h1
-rw-r--r--indra/newview/llinventoryfunctions.cpp32
3 files changed, 13 insertions, 26 deletions
diff --git a/indra/llui/llnotifications.cpp b/indra/llui/llnotifications.cpp
index d40347de13..6710e9993d 100644
--- a/indra/llui/llnotifications.cpp
+++ b/indra/llui/llnotifications.cpp
@@ -1799,6 +1799,12 @@ bool LLNotifications::getIgnoreAllNotifications()
return mIgnoreAllNotifications;
}
+void LLNotifications::setIgnored(const std::string& name, bool ignored)
+{
+ LLNotificationTemplatePtr templatep = getTemplate(name);
+ templatep->mForm->setIgnored(ignored);
+}
+
bool LLNotifications::getIgnored(const std::string& name)
{
LLNotificationTemplatePtr templatep = getTemplate(name);
diff --git a/indra/llui/llnotifications.h b/indra/llui/llnotifications.h
index a7a5490432..b06d7cbf4c 100644
--- a/indra/llui/llnotifications.h
+++ b/indra/llui/llnotifications.h
@@ -964,6 +964,7 @@ public:
void setIgnoreAllNotifications(bool ignore);
bool getIgnoreAllNotifications();
+ void setIgnored(const std::string& name, bool ignored);
bool getIgnored(const std::string& name);
bool isVisibleByRules(LLNotificationPtr pNotification);
diff --git a/indra/newview/llinventoryfunctions.cpp b/indra/newview/llinventoryfunctions.cpp
index 90d6e9b8a8..d282240bfb 100644
--- a/indra/newview/llinventoryfunctions.cpp
+++ b/indra/newview/llinventoryfunctions.cpp
@@ -92,8 +92,6 @@ BOOL LLInventoryState::sWearNewClothing = FALSE;
LLUUID LLInventoryState::sWearNewClothingTransactionID;
std::list<LLUUID> LLInventoryAction::sMarketplaceFolders;
-const int LLInventoryAction::sConfirmOnDeleteItemsNumber = 5;
-
// Helper function : callback to update a folder after inventory action happened in the background
void update_folder_cb(const LLUUID& dest_folder)
{
@@ -2298,29 +2296,6 @@ void LLInventoryAction::doToSelected(LLInventoryModel* model, LLFolderView* root
if ("delete" == action)
{
static bool sDisplayedAtSession = false;
-
- bool has_folder_items = false;
- for (std::set<LLFolderViewItem*>::iterator set_iter = selected_items.begin(); set_iter != selected_items.end(); ++set_iter)
- {
- LLFolderViewModelItemInventory * viewModel = dynamic_cast<LLFolderViewModelItemInventory *>((*set_iter)->getViewModelItem());
- if (viewModel && viewModel->hasChildren())
- {
- has_folder_items = true;
- break;
- }
- }
- if (root->getSelectedCount() >= sConfirmOnDeleteItemsNumber || has_folder_items)
- {
- bool ignore = !(LLUI::sSettingGroups["ignores"]->getBOOL("DeleteItems"));
- if (ignore)
- {
- if (!sDisplayedAtSession)
- {
- LLUI::sSettingGroups["ignores"]->setBOOL("DeleteItems", TRUE);
- sDisplayedAtSession = true;
- }
- }
- }
LLAllDescendentsPassedFilter f;
for (std::set<LLFolderViewItem*>::iterator it = selected_items.begin(); (it != selected_items.end()) && (f.allDescendentsPassedFilter()); ++it)
@@ -2330,7 +2305,6 @@ void LLInventoryAction::doToSelected(LLInventoryModel* model, LLFolderView* root
folder->applyFunctorRecursively(f);
}
}
-
// Fall through to the generic confirmation if the user choose to ignore the specialized one
if ( (!f.allDescendentsPassedFilter()) && (!LLNotifications::instance().getIgnored("DeleteFilteredItems")) )
{
@@ -2338,6 +2312,12 @@ void LLInventoryAction::doToSelected(LLInventoryModel* model, LLFolderView* root
}
else
{
+ if (!sDisplayedAtSession) // ask for the confirmation at least once per session
+ {
+ LLNotifications::instance().setIgnored("DeleteItems", false);
+ sDisplayedAtSession = true;
+ }
+
LLSD args;
args["QUESTION"] = LLTrans::getString(root->getSelectedCount() > 1 ? "DeleteItems" : "DeleteItem");
LLNotificationsUtil::add("DeleteItems", args, LLSD(), boost::bind(&LLInventoryAction::onItemsRemovalConfirmation, _1, _2, root->getHandle()));