diff options
author | Sergei Litovchuk <slitovchuk@productengine.com> | 2010-05-29 00:06:34 +0300 |
---|---|---|
committer | Sergei Litovchuk <slitovchuk@productengine.com> | 2010-05-29 00:06:34 +0300 |
commit | 40b476dbb2aee494d57dce81427b74ac19b1428d (patch) | |
tree | eee607f17401937ca7a33d25db81fdd525e4b889 /indra/llui/llaccordionctrl.cpp | |
parent | 325729b739475b5c6b4227f4d1951a70cb9d7028 (diff) |
EXT-7198, EXT-7491 FIXED Added mutli-selection support for outfit items and outfit tabs selection support.
- Added selecting multiple items from more than one accordion tab.
- Integrated context menus from Vadim's patch for EXT-6726 Appearance SP menus (WIP tier 2).
- Added selection to accordion control to use it instead of accordion tab focus in cases when focus is lost and outfit tab should stay selected.
- Changed "Wear" button behavior: "Wear" puts on currently selected outfit (as the tooltip reads "Wear selected outfit"). There is always an outfit selected when the accordion is focused so for now there are no cases when only some items are selected. Separate items can be worn from context menu.
- Added moving accordion tab selection with right click. Fixed (EXT-7491) Right click on an accordion title should move selection to it.
Reviewed by Neal Orman at https://codereview.productengine.com/secondlife/r/437/
--HG--
branch : product-engine
Diffstat (limited to 'indra/llui/llaccordionctrl.cpp')
-rw-r--r-- | indra/llui/llaccordionctrl.cpp | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/indra/llui/llaccordionctrl.cpp b/indra/llui/llaccordionctrl.cpp index 5d1d57cbb2..8e0245c451 100644 --- a/indra/llui/llaccordionctrl.cpp +++ b/indra/llui/llaccordionctrl.cpp @@ -65,6 +65,7 @@ LLAccordionCtrl::LLAccordionCtrl(const Params& params):LLPanel(params) , mFitParent(params.fit_parent) , mAutoScrolling( false ) , mAutoScrollRate( 0.f ) + , mSelectedTab( NULL ) { mSingleExpansion = params.single_expansion; if(mFitParent && !mSingleExpansion) @@ -76,6 +77,7 @@ LLAccordionCtrl::LLAccordionCtrl(const Params& params):LLPanel(params) LLAccordionCtrl::LLAccordionCtrl() : LLPanel() , mAutoScrolling( false ) , mAutoScrollRate( 0.f ) + , mSelectedTab( NULL ) { mSingleExpansion = false; mFitParent = false; @@ -689,6 +691,28 @@ S32 LLAccordionCtrl::notifyParent(const LLSD& info) } return 0; } + else if(str_action == "select_current") + { + for(size_t i=0;i<mAccordionTabs.size();++i) + { + // Set selection to the currently focused tab. + if(mAccordionTabs[i]->hasFocus()) + { + if (mAccordionTabs[i] != mSelectedTab) + { + if (mSelectedTab) + { + mSelectedTab->setSelected(false); + } + mSelectedTab = mAccordionTabs[i]; + mSelectedTab->setSelected(true); + } + + return 1; + } + } + return 0; + } } else if (info.has("scrollToShowRect")) { |