summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indra/newview/llinventorygallery.cpp22
-rw-r--r--indra/newview/llinventorygallery.h4
2 files changed, 18 insertions, 8 deletions
diff --git a/indra/newview/llinventorygallery.cpp b/indra/newview/llinventorygallery.cpp
index 8516ff37c2..e31b6b1527 100644
--- a/indra/newview/llinventorygallery.cpp
+++ b/indra/newview/llinventorygallery.cpp
@@ -461,7 +461,7 @@ void LLInventoryGallery::removeFromLastRow(LLInventoryGalleryItem* item)
mItemPanels.pop_back();
}
-LLInventoryGalleryItem* LLInventoryGallery::buildGalleryItem(std::string name, LLUUID item_id, LLAssetType::EType type, LLUUID thumbnail_id, bool is_link)
+LLInventoryGalleryItem* LLInventoryGallery::buildGalleryItem(std::string name, LLUUID item_id, LLAssetType::EType type, LLUUID thumbnail_id, LLInventoryType::EType inventory_type, U32 flags, bool is_link)
{
LLInventoryGalleryItem::Params giparams;
LLInventoryGalleryItem* gitem = LLUICtrlFactory::create<LLInventoryGalleryItem>(giparams);
@@ -472,7 +472,7 @@ LLInventoryGalleryItem* LLInventoryGallery::buildGalleryItem(std::string name, L
gitem->setName(name);
gitem->setUUID(item_id);
gitem->setGallery(this);
- gitem->setType(type, is_link);
+ gitem->setType(type, inventory_type, flags, is_link);
gitem->setThumbnail(thumbnail_id);
gitem->setCreatorName(get_searchable_creator_name(&gInventory, item_id));
gitem->setDescription(get_searchable_description(&gInventory, item_id));
@@ -621,7 +621,8 @@ void LLInventoryGallery::updateAddedItem(LLUUID item_id)
std::string name = obj->getName();
LLUUID thumbnail_id = obj->getThumbnailUUID();;
-
+ LLInventoryType::EType inventory_type(LLInventoryType::IT_CATEGORY);
+ U32 misc_flags = 0;
if (LLAssetType::AT_CATEGORY == obj->getType())
{
name = get_localized_folder_name(item_id);
@@ -630,8 +631,17 @@ void LLInventoryGallery::updateAddedItem(LLUUID item_id)
thumbnail_id = getOutfitImageID(item_id);
}
}
+ else
+ {
+ LLInventoryItem* inv_item = gInventory.getItem(item_id);
+ if (inv_item)
+ {
+ inventory_type = inv_item->getInventoryType();
+ misc_flags = inv_item->getFlags();
+ }
+ }
- LLInventoryGalleryItem* item = buildGalleryItem(name, item_id, obj->getType(), thumbnail_id, obj->getIsLinkType());
+ LLInventoryGalleryItem* item = buildGalleryItem(name, item_id, obj->getType(), thumbnail_id, inventory_type, misc_flags, obj->getIsLinkType());
mItemMap.insert(LLInventoryGallery::gallery_item_map_t::value_type(item_id, item));
item->setRightMouseDownCallback(boost::bind(&LLInventoryGallery::showContextMenu, this, _1, _2, _3, item_id));
item->setFocusReceivedCallback(boost::bind(&LLInventoryGallery::onChangeItemSelection, this, item_id));
@@ -950,12 +960,12 @@ BOOL LLInventoryGalleryItem::postBuild()
return TRUE;
}
-void LLInventoryGalleryItem::setType(LLAssetType::EType type, bool is_link)
+void LLInventoryGalleryItem::setType(LLAssetType::EType type, LLInventoryType::EType inventory_type, U32 flags, bool is_link)
{
mType = type;
mIsFolder = (mType == LLAssetType::AT_CATEGORY);
- std::string icon_name = LLInventoryIcon::getIconName(mType);
+ std::string icon_name = LLInventoryIcon::getIconName(mType, inventory_type, flags);
if(mIsFolder)
{
mSortGroup = SG_NORMAL_FOLDER;
diff --git a/indra/newview/llinventorygallery.h b/indra/newview/llinventorygallery.h
index 09eafc8396..9d1a277c65 100644
--- a/indra/newview/llinventorygallery.h
+++ b/indra/newview/llinventorygallery.h
@@ -144,7 +144,7 @@ private:
void updateRowsIfNeeded();
void updateGalleryWidth();
- LLInventoryGalleryItem* buildGalleryItem(std::string name, LLUUID item_id, LLAssetType::EType type, LLUUID thumbnail_id, bool is_link);
+ LLInventoryGalleryItem* buildGalleryItem(std::string name, LLUUID item_id, LLAssetType::EType type, LLUUID thumbnail_id, LLInventoryType::EType inventory_type, U32 flags, bool is_link);
void buildGalleryPanel(int row_count);
void reshapeGalleryPanel(int row_count);
@@ -237,7 +237,7 @@ public:
bool isHidden() {return mHidden;}
void setHidden(bool hidden) {mHidden = hidden;}
- void setType(LLAssetType::EType type, bool is_link);
+ void setType(LLAssetType::EType type, LLInventoryType::EType inventory_type, U32 flags, bool is_link);
void setThumbnail(LLUUID id);
void setGallery(LLInventoryGallery* gallery) { mGallery = gallery; }
bool isFolder() { return mIsFolder; }