Skip to content
Snippets Groups Projects
Commit c55d9a59 authored by Mnikolenko Productengine's avatar Mnikolenko Productengine
Browse files

MAINT-7607 FIXED Viewer crashes when double clicking on scroll bar arrow in Outfit Gallery tab

parent d5a2a713
No related branches found
No related tags found
No related merge requests found
......@@ -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 @@ class LLOutfitGallery : public LLOutfitListBase
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 @@ class LLOutfitGallery : public LLOutfitListBase
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 @@ class LLOutfitGalleryItem : public LLPanel
/*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 @@ class LLOutfitGalleryItem : public LLPanel
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 @@ class LLOutfitGalleryItem : public LLPanel
private:
LLPointer<LLViewerFetchedTexture> mTexturep;
LLUUID mUUID;
LLUUID mImageAssetId;
LLTextBox* mOutfitNameText;
LLTextBox* mOutfitWornText;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment