diff options
author | Andrew Dyukov <adyukov@productengine.com> | 2010-06-18 12:22:02 +0300 |
---|---|---|
committer | Andrew Dyukov <adyukov@productengine.com> | 2010-06-18 12:22:02 +0300 |
commit | 7b64357562ceee47d9910f08f4e4fbc1dc108f91 (patch) | |
tree | 68daee5beaa2223f4119922a03a2c32099b656b8 /indra/newview | |
parent | f26eb91c4467211d14c59b89c36d234949c28021 (diff) |
EXT-7754 FIXED Implemented marking of worn outfit accordion header text with bold
- Added method to LLAccordionCtrlTabHeader which allows to change style of its textbox
- Added method to LLOutfitsList which marks accordion header of currently selected otfit and tied it up to BOF callbacks
Reviewed by Vadim Savchuk and Neal Orman at https://codereview.productengine.com/secondlife/r/609/
--HG--
branch : product-engine
Diffstat (limited to 'indra/newview')
-rw-r--r-- | indra/newview/lloutfitslist.cpp | 24 | ||||
-rw-r--r-- | indra/newview/lloutfitslist.h | 5 |
2 files changed, 29 insertions, 0 deletions
diff --git a/indra/newview/lloutfitslist.cpp b/indra/newview/lloutfitslist.cpp index e4079c709a..8dd849f947 100644 --- a/indra/newview/lloutfitslist.cpp +++ b/indra/newview/lloutfitslist.cpp @@ -44,6 +44,7 @@ #include "llinventorymodel.h" #include "lllistcontextmenu.h" #include "llnotificationsutil.h" +#include "lloutfitobserver.h" #include "llsidetray.h" #include "lltransutil.h" #include "llviewermenu.h" @@ -212,12 +213,16 @@ void LLOutfitsList::onOpen(const LLSD& /*info*/) // Start observing changes in Current Outfit category. mCategoriesObserver->addCategory(cof, boost::bind(&LLOutfitsList::onCOFChanged, this)); + LLOutfitObserver::instance().addBOFChangedCallback(boost::bind(&LLOutfitsList::highlightBaseOutfit, this)); + LLOutfitObserver::instance().addBOFReplacedCallback(boost::bind(&LLOutfitsList::highlightBaseOutfit, this)); + // Fetch "My Outfits" contents and refresh the list to display // initially fetched items. If not all items are fetched now // the observer will refresh the list as soon as the new items // arrive. category->fetch(); refreshList(outfits); + highlightBaseOutfit(); mIsInitialized = true; } @@ -350,6 +355,25 @@ void LLOutfitsList::refreshList(const LLUUID& category_id) mAccordion->sort(); } +void LLOutfitsList::highlightBaseOutfit() +{ + // id of base outfit + LLUUID base_id = LLAppearanceMgr::getInstance()->getBaseOutfitUUID(); + if (base_id != mHighlightedOutfitUUID) + { + if (mOutfitsMap[mHighlightedOutfitUUID]) + { + mOutfitsMap[mHighlightedOutfitUUID]->setTitleFontStyle("NORMAL"); + } + + mHighlightedOutfitUUID = base_id; + } + if (mOutfitsMap[base_id]) + { + mOutfitsMap[base_id]->setTitleFontStyle("BOLD"); + } +} + void LLOutfitsList::onSelectionChange(LLUICtrl* ctrl) { LLWearableItemsList* list = dynamic_cast<LLWearableItemsList*>(ctrl); diff --git a/indra/newview/lloutfitslist.h b/indra/newview/lloutfitslist.h index 33791fbe62..c984389f87 100644 --- a/indra/newview/lloutfitslist.h +++ b/indra/newview/lloutfitslist.h @@ -83,6 +83,9 @@ public: void refreshList(const LLUUID& category_id); + // highlits currently worn outfit tab text and unhighlights previously worn + void highlightBaseOutfit(); + void performAction(std::string action); void setFilterSubString(const std::string& string); @@ -167,6 +170,8 @@ private: wearables_lists_map_t mSelectedListsMap; LLUUID mSelectedOutfitUUID; + // id of currently highlited outfit + LLUUID mHighlightedOutfitUUID; selection_change_signal_t mSelectionChangeSignal; std::string mFilterSubString; |