diff options
| author | Mnikolenko Productengine <mnikolenko@productengine.com> | 2017-07-18 16:17:59 +0300 | 
|---|---|---|
| committer | Mnikolenko Productengine <mnikolenko@productengine.com> | 2017-07-18 16:17:59 +0300 | 
| commit | c55d9a59a25cbc311c63ca8bfee0189b090ff99a (patch) | |
| tree | ef761c41412a5b65a402ff47cf45d8137308218b /indra/newview | |
| parent | d5a2a71327537393b0c97eed2a575eb7f47759f6 (diff) | |
MAINT-7607 FIXED Viewer crashes when double clicking on scroll bar arrow in Outfit Gallery tab
Diffstat (limited to 'indra/newview')
| -rw-r--r-- | indra/newview/lloutfitgallery.cpp | 25 | ||||
| -rw-r--r-- | indra/newview/lloutfitgallery.h | 7 | 
2 files changed, 16 insertions, 16 deletions
| diff --git a/indra/newview/lloutfitgallery.cpp b/indra/newview/lloutfitgallery.cpp index 31e89c0ed0..5518656f3f 100644 --- a/indra/newview/lloutfitgallery.cpp +++ b/indra/newview/lloutfitgallery.cpp @@ -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) diff --git a/indra/newview/lloutfitgallery.h b/indra/newview/lloutfitgallery.h index 37e75f1109..2566247072 100644 --- a/indra/newview/lloutfitgallery.h +++ b/indra/newview/lloutfitgallery.h @@ -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; | 
