diff options
author | Igor Borovkov <iborovkov@productengine.com> | 2010-07-08 18:55:45 +0300 |
---|---|---|
committer | Igor Borovkov <iborovkov@productengine.com> | 2010-07-08 18:55:45 +0300 |
commit | 5fef1c902a3c028e6dd7158955a82b42145c1680 (patch) | |
tree | a141a818863f212f9d029a350278a38661ecfc56 | |
parent | 0451902bcd4e2a2326f6f457c732d05b2c1c8d97 (diff) |
EXT-8061 FIXED refactoring, added a mapping for According Tab > Asset Type (COF Wearables)
Reviewed by Neal Orman at https://codereview.productengine.com/secondlife/r/704/
--HG--
branch : product-engine
-rw-r--r-- | indra/newview/llcofwearables.cpp | 44 | ||||
-rw-r--r-- | indra/newview/llcofwearables.h | 2 |
2 files changed, 10 insertions, 36 deletions
diff --git a/indra/newview/llcofwearables.cpp b/indra/newview/llcofwearables.cpp index 8fdbdd08bf..0adbfd6ee2 100644 --- a/indra/newview/llcofwearables.cpp +++ b/indra/newview/llcofwearables.cpp @@ -333,6 +333,10 @@ BOOL LLCOFWearables::postBuild() mBodyPartsTab = getChild<LLAccordionCtrlTab>("tab_body_parts"); mBodyPartsTab->setDropDownStateChangedCallback(boost::bind(&LLCOFWearables::onAccordionTabStateChanged, this, _1, _2)); + mTab2AssetType[mClothingTab] = LLAssetType::AT_CLOTHING; + mTab2AssetType[mAttachmentsTab] = LLAssetType::AT_OBJECT; + mTab2AssetType[mBodyPartsTab] = LLAssetType::AT_BODYPART; + return LLPanel::postBuild(); } @@ -632,49 +636,17 @@ LLAssetType::EType LLCOFWearables::getExpandedAccordionAssetType() static type_map_t type_map; static LLAccordionCtrl* accordion_ctrl = getChild<LLAccordionCtrl>("cof_wearables_accordion"); + const LLAccordionCtrlTab* expanded_tab = accordion_ctrl->getExpandedTab(); - if (type_map.empty()) - { - type_map["tab_clothing"] = LLAssetType::AT_CLOTHING; - type_map["tab_attachments"] = LLAssetType::AT_OBJECT; - type_map["tab_body_parts"] = LLAssetType::AT_BODYPART; - } - - const LLAccordionCtrlTab* tab = accordion_ctrl->getExpandedTab(); - LLAssetType::EType result = LLAssetType::AT_NONE; - - if (tab) - { - type_map_t::iterator i = type_map.find(tab->getName()); - llassert(i != type_map.end()); - result = i->second; - } - - return result; + return get_if_there(mTab2AssetType, expanded_tab, LLAssetType::AT_NONE); } LLAssetType::EType LLCOFWearables::getSelectedAccordionAssetType() { - //*TODO share the code with ::getExpandedAccordionAssetType(...) static LLAccordionCtrl* accordion_ctrl = getChild<LLAccordionCtrl>("cof_wearables_accordion"); const LLAccordionCtrlTab* selected_tab = accordion_ctrl->getSelectedTab(); - - if (selected_tab == mClothingTab) - { - return LLAssetType::AT_CLOTHING; - } - else if (selected_tab == mAttachmentsTab) - { - return LLAssetType::AT_OBJECT; - } - else if (selected_tab == mBodyPartsTab) - { - return LLAssetType::AT_BODYPART; - } - else - { - return LLAssetType::AT_NONE; - } + + return get_if_there(mTab2AssetType, selected_tab, LLAssetType::AT_NONE); } void LLCOFWearables::onListRightClick(LLUICtrl* ctrl, S32 x, S32 y, LLListContextMenu* menu) diff --git a/indra/newview/llcofwearables.h b/indra/newview/llcofwearables.h index de148e0d46..0518d59df3 100644 --- a/indra/newview/llcofwearables.h +++ b/indra/newview/llcofwearables.h @@ -116,6 +116,8 @@ protected: LLAccordionCtrlTab* mLastSelectedTab; + std::map<const LLAccordionCtrlTab*, LLAssetType::EType> mTab2AssetType; + LLCOFCallbacks mCOFCallbacks; LLListContextMenu* mClothingMenu; |