Skip to content
Snippets Groups Projects
Commit 779bf4bb authored by Eugene Mutavchi's avatar Eugene Mutavchi
Browse files

Implemented low sub-task EXT-7164 (Implement preserving panel inventory item...

Implemented low sub-task EXT-7164 (Implement preserving panel inventory item selection across COF wearables lists updates (i.e. when changing ordering of wearables - up/down).)
- implemented preserving of current items selection during lists updates.
Reviewed by Mike Antipov at https://codereview.productengine.com/secondlife/r/344/

--HG--
branch : product-engine
parent 67c95d6d
No related branches found
No related tags found
No related merge requests found
......@@ -94,6 +94,16 @@ void LLCOFWearables::onSelectionChange(LLFlatListView* selected_list)
void LLCOFWearables::refresh()
{
typedef std::vector<LLSD> values_vector_t;
typedef std::map<LLFlatListView*, values_vector_t> selection_map_t;
selection_map_t preserve_selection;
// Save current selection
mAttachments->getSelectedValues(preserve_selection[mAttachments]);
mClothing->getSelectedValues(preserve_selection[mClothing]);
mBodyParts->getSelectedValues(preserve_selection[mBodyParts]);
clear();
LLInventoryModel::cat_array_t cats;
......@@ -108,6 +118,23 @@ void LLCOFWearables::refresh()
LLAppearanceMgr::getInstance()->divvyWearablesByType(cof_items, clothing_by_type);
populateClothingList(clothing_by_type);
// Restore previous selection
for (selection_map_t::iterator
iter = preserve_selection.begin(),
iter_end = preserve_selection.end();
iter != iter_end; ++iter)
{
LLFlatListView* list = iter->first;
const values_vector_t& values = iter->second;
for (values_vector_t::const_iterator
value_it = values.begin(),
value_it_end = values.end();
value_it != value_it_end; ++value_it)
{
list->selectItemByValue(*value_it);
}
}
}
......
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