diff options
author | Yuri Chebotarev <ychebotarev@productengine.com> | 2009-12-24 16:34:24 +0200 |
---|---|---|
committer | Yuri Chebotarev <ychebotarev@productengine.com> | 2009-12-24 16:34:24 +0200 |
commit | 2c7e5b91001a981809803adbe8490c756ab8bfc6 (patch) | |
tree | d31988c8cd5c73ca4d74a06aea75193bf2dcad25 /indra/newview | |
parent | a778ecc6c0c15c4d30c4b4a301fa21bdbeb4969b (diff) |
EXT-3457 Code Improvements: Places: Restore accordion tabs' state (expanded collapsed) while filtering when filter string is empty like in Inventory folders
--HG--
branch : product-engine
Diffstat (limited to 'indra/newview')
-rw-r--r-- | indra/newview/llpanelpeople.cpp | 13 | ||||
-rw-r--r-- | indra/newview/llpanelteleporthistory.cpp | 6 |
2 files changed, 19 insertions, 0 deletions
diff --git a/indra/newview/llpanelpeople.cpp b/indra/newview/llpanelpeople.cpp index 374af5c059..5cc4d4aec6 100644 --- a/indra/newview/llpanelpeople.cpp +++ b/indra/newview/llpanelpeople.cpp @@ -965,6 +965,13 @@ void LLPanelPeople::onFilterEdit(const std::string& search_string) mFilterSubString = search_upper; + //store accordion tabs state before any manipulation with accordion tabs + if(!mFilterSubString.empty()) + { + notifyChildren(LLSD().with("action","store_state")); + } + + // Apply new filter. mNearbyList->setNameFilter(mFilterSubString); mOnlineFriendList->setNameFilter(mFilterSubString); @@ -976,6 +983,12 @@ void LLPanelPeople::onFilterEdit(const std::string& search_string) setAccordionCollapsedByUser("tab_all", false); showFriendsAccordionsIfNeeded(); + + //restore accordion tabs state _after_ all manipulations... + if(mFilterSubString.empty()) + { + notifyChildren(LLSD().with("action","restore_state")); + } } void LLPanelPeople::onTabSelected(const LLSD& param) diff --git a/indra/newview/llpanelteleporthistory.cpp b/indra/newview/llpanelteleporthistory.cpp index 03b616d280..8648900475 100644 --- a/indra/newview/llpanelteleporthistory.cpp +++ b/indra/newview/llpanelteleporthistory.cpp @@ -662,6 +662,9 @@ void LLTeleportHistoryPanel::refresh() // Expand all accordion tabs when filtering if(!sFilterSubString.empty()) { + //store accordion tab state when filter is not empty + tab->notifyChildren(LLSD().with("action","store_state")); + tab->setDisplayChildren(true); } // Restore each tab's expand state when not filtering @@ -669,6 +672,9 @@ void LLTeleportHistoryPanel::refresh() { bool collapsed = isAccordionCollapsedByUser(tab); tab->setDisplayChildren(!collapsed); + + //restore accordion state after all those accodrion tabmanipulations + tab->notifyChildren(LLSD().with("action","restore_state")); } curr_flat_view = getFlatListViewFromTab(tab); |