summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnsariel <ansariel.hiller@phoenixviewer.com>2023-02-14 00:40:01 +0100
committerAnsariel <ansariel.hiller@phoenixviewer.com>2023-02-14 00:40:01 +0100
commitc5a3c97b6b3a65a4f0c34e74db925f8ed71c8109 (patch)
treec06609c6f2fe195e86990c0e52944602342684bb
parentc364d878b34434177ad6030707f8b66f2792ec8d (diff)
Add multi item properties floater support
-rw-r--r--indra/newview/llfloatermarketplacelistings.cpp16
-rw-r--r--indra/newview/llfloatermarketplacelistings.h7
-rw-r--r--indra/newview/llinventoryfunctions.cpp10
3 files changed, 31 insertions, 2 deletions
diff --git a/indra/newview/llfloatermarketplacelistings.cpp b/indra/newview/llfloatermarketplacelistings.cpp
index 56cdd3446f..58bd4bc82b 100644
--- a/indra/newview/llfloatermarketplacelistings.cpp
+++ b/indra/newview/llfloatermarketplacelistings.cpp
@@ -45,6 +45,7 @@
#include "lltabcontainer.h"
#include "lltextbox.h"
#include "lltrans.h"
+#include "llviewerwindow.h"
///----------------------------------------------------------------------------
/// LLPanelMarketplaceListings
@@ -982,3 +983,18 @@ void LLFloaterItemProperties::onOpen(const LLSD& key)
}
}
+LLMultiItemProperties::LLMultiItemProperties(const LLSD& key)
+ : LLMultiFloater(LLSD())
+{
+ // start with a small rect in the top-left corner ; will get resized
+ LLRect rect;
+ rect.setLeftTopAndSize(0, gViewerWindow->getWindowHeightScaled(), 350, 350);
+ setRect(rect);
+ LLFloater* last_floater = LLFloaterReg::getLastFloaterInGroup(key.asString());
+ if (last_floater)
+ {
+ stackWith(*last_floater);
+ }
+ setTitle(LLTrans::getString("MultiPropertiesTitle"));
+ buildTabContainer();
+}
diff --git a/indra/newview/llfloatermarketplacelistings.h b/indra/newview/llfloatermarketplacelistings.h
index ffc098e28a..77e855fd2a 100644
--- a/indra/newview/llfloatermarketplacelistings.h
+++ b/indra/newview/llfloatermarketplacelistings.h
@@ -33,6 +33,7 @@
#include "llinventorypanel.h"
#include "llnotificationptr.h"
#include "llmodaldialog.h"
+#include "llmultifloater.h"
#include "lltexteditor.h"
class LLInventoryCategoriesObserver;
@@ -223,4 +224,10 @@ public:
private:
};
+class LLMultiItemProperties : public LLMultiFloater
+{
+public:
+ LLMultiItemProperties(const LLSD& key);
+};
+
#endif // LL_LLFLOATERMARKETPLACELISTINGS_H
diff --git a/indra/newview/llinventoryfunctions.cpp b/indra/newview/llinventoryfunctions.cpp
index c3c8945556..38f79620bb 100644
--- a/indra/newview/llinventoryfunctions.cpp
+++ b/indra/newview/llinventoryfunctions.cpp
@@ -2561,6 +2561,7 @@ void LLInventoryAction::doToSelected(LLInventoryModel* model, LLFolderView* root
LLMultiPreview* multi_previewp = NULL;
+ LLMultiItemProperties* multi_itempropertiesp = nullptr;
if (("task_open" == action || "open" == action) && selected_items.size() > 1)
{
@@ -2594,8 +2595,9 @@ void LLInventoryAction::doToSelected(LLInventoryModel* model, LLFolderView* root
}
else if (("task_properties" == action || "properties" == action) && selected_items.size() > 1)
{
- // Isn't supported (previously used LLMultiProperties)
- LL_WARNS() << "Tried to open properties for multiple items" << LL_ENDL;
+ multi_itempropertiesp = new LLMultiItemProperties("item_properties");
+ gFloaterView->addChild(multi_itempropertiesp);
+ LLFloater::setFloaterHost(multi_itempropertiesp);
}
std::set<LLUUID> selected_uuid_set = LLAvatarActions::getInventorySelectedUUIDs();
@@ -2768,6 +2770,10 @@ void LLInventoryAction::doToSelected(LLInventoryModel* model, LLFolderView* root
{
multi_previewp->openFloater(LLSD());
}
+ else if (multi_itempropertiesp)
+ {
+ multi_itempropertiesp->openFloater(LLSD());
+ }
}
void LLInventoryAction::saveMultipleTextures(const std::vector<std::string>& filenames, std::set<LLFolderViewItem*> selected_items, LLInventoryModel* model)