diff options
| author | Maxim Nikolenko <maximnproductengine@lindenlab.com> | 2023-06-08 12:44:35 +0300 | 
|---|---|---|
| committer | Maxim Nikolenko <maximnproductengine@lindenlab.com> | 2023-06-08 12:44:35 +0300 | 
| commit | 29f52ad1a7c4f0d023c4b6a7dd0d43ea105e8fdb (patch) | |
| tree | 51353c01386b512dca1dfa2140ffd1c5f3184100 | |
| parent | 2f8227473514b864f7806af031d3c1168b3279aa (diff) | |
SL-19845 Show confirmation before deleting an item in Gallery view
| -rw-r--r-- | indra/newview/llinventorygallerymenu.cpp | 45 | ||||
| -rw-r--r-- | indra/newview/llinventorygallerymenu.h | 1 | 
2 files changed, 32 insertions, 14 deletions
diff --git a/indra/newview/llinventorygallerymenu.cpp b/indra/newview/llinventorygallerymenu.cpp index 6dc749fab6..e7f8b10cca 100644 --- a/indra/newview/llinventorygallerymenu.cpp +++ b/indra/newview/llinventorygallerymenu.cpp @@ -39,6 +39,7 @@  #include "llmarketplacefunctions.h"  #include "llmenugl.h"  #include "llnotificationsutil.h" +#include "lltrans.h"  #include "llviewerfoldertype.h"  #include "llviewerwindow.h"  #include "llvoavatarself.h" @@ -220,20 +221,9 @@ void LLInventoryGalleryContextMenu::doToSelected(const LLSD& userdata, const LLU      }      else if ("delete" == action)      { -        if (is_folder) -        { -            if(get_is_category_removable(&gInventory, selected_id)) -            { -                gInventory.removeCategory(selected_id); -            } -        } -        else -        { -            if(get_is_item_removable(&gInventory, selected_id)) -            { -                gInventory.removeItem(selected_id); -            } -        } +        LLSD args; +        args["QUESTION"] = LLTrans::getString("DeleteItem"); +        LLNotificationsUtil::add("DeleteItems", args, LLSD(), boost::bind(&LLInventoryGalleryContextMenu::onDelete, _1, _2, selected_id));      }      else if ("copy" == action)      { @@ -342,6 +332,33 @@ void LLInventoryGalleryContextMenu::doToSelected(const LLSD& userdata, const LLU      }  } +void LLInventoryGalleryContextMenu::onDelete(const LLSD& notification, const LLSD& response, const LLUUID& selected_id) +{ +    S32 option = LLNotificationsUtil::getSelectedOption(notification, response); +    if (option == 0) +    { +        LLInventoryObject* obj = gInventory.getObject(selected_id); +        if (!obj) +        { +            return; +        } +        if (obj->getType() == LLAssetType::AT_CATEGORY) +        { +            if(get_is_category_removable(&gInventory, selected_id)) +            { +                gInventory.removeCategory(selected_id); +            } +        } +        else +        { +            if(get_is_item_removable(&gInventory, selected_id)) +            { +                gInventory.removeItem(selected_id); +            } +        } +    } +} +  void LLInventoryGalleryContextMenu::onRename(const LLSD& notification, const LLSD& response)  {      S32 option = LLNotificationsUtil::getSelectedOption(notification, response); diff --git a/indra/newview/llinventorygallerymenu.h b/indra/newview/llinventorygallerymenu.h index 67cf9a569a..1c56266310 100644 --- a/indra/newview/llinventorygallerymenu.h +++ b/indra/newview/llinventorygallerymenu.h @@ -47,6 +47,7 @@ protected:      void fileUploadLocation(const LLSD& userdata, const LLUUID& selected_id); +    static void onDelete(const LLSD& notification, const LLSD& response, const LLUUID& selected_id);      static void onRename(const LLSD& notification, const LLSD& response);  private:  | 
