MAINT-7607 FIXED Viewer crashes when double clicking on scroll bar arrow in Outfit Gallery tab
parent
d5a2a71327
commit
c55d9a59a2
|
|
@ -344,7 +344,7 @@ void LLOutfitGallery::removeFromLastRow(LLOutfitGalleryItem* item)
|
|||
mItemPanels.pop_back();
|
||||
}
|
||||
|
||||
LLOutfitGalleryItem* LLOutfitGallery::buildGalleryItem(std::string name)
|
||||
LLOutfitGalleryItem* LLOutfitGallery::buildGalleryItem(std::string name, LLUUID outfit_id)
|
||||
{
|
||||
LLOutfitGalleryItem::Params giparams;
|
||||
LLOutfitGalleryItem* gitem = LLUICtrlFactory::create<LLOutfitGalleryItem>(giparams);
|
||||
|
|
@ -353,6 +353,7 @@ LLOutfitGalleryItem* LLOutfitGallery::buildGalleryItem(std::string name)
|
|||
gitem->setFollowsLeft();
|
||||
gitem->setFollowsTop();
|
||||
gitem->setOutfitName(name);
|
||||
gitem->setUUID(outfit_id);
|
||||
return gitem;
|
||||
}
|
||||
|
||||
|
|
@ -511,7 +512,7 @@ void LLOutfitGallery::updateAddedCategory(LLUUID cat_id)
|
|||
if (!cat) return;
|
||||
|
||||
std::string name = cat->getName();
|
||||
LLOutfitGalleryItem* item = buildGalleryItem(name);
|
||||
LLOutfitGalleryItem* item = buildGalleryItem(name, cat_id);
|
||||
mOutfitMap.insert(LLOutfitGallery::outfit_map_value_t(cat_id, item));
|
||||
item->setRightMouseDownCallback(boost::bind(&LLOutfitListBase::outfitRightClickCallBack, this,
|
||||
_1, _2, _3, cat_id));
|
||||
|
|
@ -661,7 +662,8 @@ LLOutfitGalleryItem::LLOutfitGalleryItem(const Params& p)
|
|||
mSelected(false),
|
||||
mWorn(false),
|
||||
mDefaultImage(true),
|
||||
mOutfitName("")
|
||||
mOutfitName(""),
|
||||
mUUID(LLUUID())
|
||||
{
|
||||
buildFromFile("panel_outfit_gallery_item.xml");
|
||||
}
|
||||
|
|
@ -745,23 +747,20 @@ BOOL LLOutfitGalleryItem::handleRightMouseDown(S32 x, S32 y, MASK mask)
|
|||
return LLUICtrl::handleRightMouseDown(x, y, mask);
|
||||
}
|
||||
|
||||
BOOL LLOutfitGallery::handleDoubleClick(S32 x, S32 y, MASK mask)
|
||||
BOOL LLOutfitGalleryItem::handleDoubleClick(S32 x, S32 y, MASK mask)
|
||||
{
|
||||
LLTabContainer* appearence_tabs = LLPanelOutfitsInventory::findInstance()->getChild<LLTabContainer>("appearance_tabs");
|
||||
LLPanel* panel = NULL;
|
||||
LLAccordionCtrl* accordion = NULL;
|
||||
if (appearence_tabs != NULL)
|
||||
if (appearence_tabs && (mUUID != LLUUID()))
|
||||
{
|
||||
appearence_tabs->selectTabByName("outfitslist_tab");
|
||||
panel = appearence_tabs->getCurrentPanel();
|
||||
if (panel != NULL)
|
||||
LLPanel* panel = appearence_tabs->getCurrentPanel();
|
||||
if (panel)
|
||||
{
|
||||
accordion = panel->getChild<LLAccordionCtrl>("outfits_accordion");
|
||||
LLAccordionCtrl* accordion = panel->getChild<LLAccordionCtrl>("outfits_accordion");
|
||||
LLOutfitsList* outfit_list = dynamic_cast<LLOutfitsList*>(panel);
|
||||
if (accordion != NULL && outfit_list != NULL)
|
||||
{
|
||||
LLUUID item_id = getSelectedOutfitUUID();
|
||||
outfit_list->setSelectedOutfitByUUID(item_id);
|
||||
outfit_list->setSelectedOutfitByUUID(mUUID);
|
||||
LLAccordionCtrlTab* tab = accordion->getSelectedTab();
|
||||
tab->showAndFocusHeader();
|
||||
return TRUE;
|
||||
|
|
@ -769,7 +768,7 @@ BOOL LLOutfitGallery::handleDoubleClick(S32 x, S32 y, MASK mask)
|
|||
}
|
||||
}
|
||||
|
||||
return LLUICtrl::handleDoubleClick(x, y, mask);
|
||||
return LLPanel::handleDoubleClick(x, y, mask);
|
||||
}
|
||||
|
||||
void LLOutfitGalleryItem::setImageAssetId(LLUUID image_asset_id)
|
||||
|
|
|
|||
|
|
@ -115,8 +115,6 @@ public:
|
|||
void onBeforeOutfitSnapshotSave();
|
||||
void onAfterOutfitSnapshotSave();
|
||||
|
||||
/*virtual*/ BOOL handleDoubleClick(S32 x, S32 y, MASK mask);
|
||||
|
||||
protected:
|
||||
/*virtual*/ void onHighlightBaseOutfit(LLUUID base_id, LLUUID prev_id);
|
||||
/*virtual*/ void onSetSelectedOutfitByUUID(const LLUUID& outfit_uuid);
|
||||
|
|
@ -150,7 +148,7 @@ private:
|
|||
void updateRowsIfNeeded();
|
||||
void updateGalleryWidth();
|
||||
|
||||
LLOutfitGalleryItem* buildGalleryItem(std::string name);
|
||||
LLOutfitGalleryItem* buildGalleryItem(std::string name, LLUUID outfit_id);
|
||||
|
||||
void onTextureSelectionChanged(LLInventoryItem* itemp);
|
||||
|
||||
|
|
@ -258,6 +256,7 @@ public:
|
|||
/*virtual*/ void draw();
|
||||
/*virtual*/ BOOL handleMouseDown(S32 x, S32 y, MASK mask);
|
||||
/*virtual*/ BOOL handleRightMouseDown(S32 x, S32 y, MASK mask);
|
||||
/*virtual*/ BOOL handleDoubleClick(S32 x, S32 y, MASK mask);
|
||||
|
||||
void setDefaultImage();
|
||||
void setImageAssetId(LLUUID asset_id);
|
||||
|
|
@ -265,6 +264,7 @@ public:
|
|||
void setOutfitName(std::string name);
|
||||
void setOutfitWorn(bool value);
|
||||
void setSelected(bool value);
|
||||
void setUUID(LLUUID outfit_id) {mUUID = outfit_id;}
|
||||
|
||||
std::string getItemName() {return mOutfitName;}
|
||||
bool isDefaultImage() {return mDefaultImage;}
|
||||
|
|
@ -274,6 +274,7 @@ public:
|
|||
|
||||
private:
|
||||
LLPointer<LLViewerFetchedTexture> mTexturep;
|
||||
LLUUID mUUID;
|
||||
LLUUID mImageAssetId;
|
||||
LLTextBox* mOutfitNameText;
|
||||
LLTextBox* mOutfitWornText;
|
||||
|
|
|
|||
Loading…
Reference in New Issue