diff options
Diffstat (limited to 'indra/newview/llsidetraypanelcontainer.cpp')
-rwxr-xr-x[-rw-r--r--] | indra/newview/llsidetraypanelcontainer.cpp | 70 |
1 files changed, 35 insertions, 35 deletions
diff --git a/indra/newview/llsidetraypanelcontainer.cpp b/indra/newview/llsidetraypanelcontainer.cpp index 3024492ab9..e340333c2c 100644..100755 --- a/indra/newview/llsidetraypanelcontainer.cpp +++ b/indra/newview/llsidetraypanelcontainer.cpp @@ -2,31 +2,25 @@ * @file llsidetraypanelcontainer.cpp * @brief LLSideTrayPanelContainer implementation * -* $LicenseInfo:firstyear=2001&license=viewergpl$ -* -* Copyright (c) 2001-2009, Linden Research, Inc. -* +* $LicenseInfo:firstyear=2001&license=viewerlgpl$ * Second Life Viewer Source Code -* The source code in this file ("Source Code") is provided by Linden Lab -* to you under the terms of the GNU General Public License, version 2.0 -* ("GPL"), unless you have obtained a separate licensing agreement -* ("Other License"), formally executed by you and Linden Lab. Terms of -* the GPL can be found in doc/GPL-license.txt in this distribution, or -* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 +* Copyright (C) 2010, Linden Research, Inc. +* +* This library is free software; you can redistribute it and/or +* modify it under the terms of the GNU Lesser General Public +* License as published by the Free Software Foundation; +* version 2.1 of the License only. * -* There are special exceptions to the terms and conditions of the GPL as -* it is applied to this Source Code. View the full text of the exception -* in the file doc/FLOSS-exception.txt in this software distribution, or -* online at -* http://secondlifegrid.net/programs/open_source/licensing/flossexception +* This library is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +* Lesser General Public License for more details. * -* By copying, modifying or distributing this software, you acknowledge -* that you have read and understood your obligations described above, -* and agree to abide by those obligations. +* You should have received a copy of the GNU Lesser General Public +* License along with this library; if not, write to the Free Software +* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * -* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO -* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, -* COMPLETENESS OR PERFORMANCE. +* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA * $/LicenseInfo$ */ @@ -38,13 +32,15 @@ static LLDefaultChildRegistry::Register<LLSideTrayPanelContainer> r2("panel_cont std::string LLSideTrayPanelContainer::PARAM_SUB_PANEL_NAME = "sub_panel_name"; LLSideTrayPanelContainer::Params::Params() +: default_panel_name("default_panel_name") { // Always hide tabs. - hide_tabs(true); + changeDefault(hide_tabs, true); } LLSideTrayPanelContainer::LLSideTrayPanelContainer(const Params& p) : LLTabContainer(p) + , mDefaultPanelName(p.default_panel_name) { } @@ -53,31 +49,35 @@ void LLSideTrayPanelContainer::onOpen(const LLSD& key) // Select specified panel and save navigation history. if(key.has(PARAM_SUB_PANEL_NAME)) { + //*NOTE dzaporozhan + // Navigation history is not used after fix for EXT-3186, + // openPreviousPanel() always opens default panel + // Save panel navigation history std::string panel_name = key[PARAM_SUB_PANEL_NAME]; - S32 old_index = getCurrentPanelIndex(); selectTabByName(panel_name); - - S32 new_index = getCurrentPanelIndex(); - - // Don't update navigation history if we are opening same panel again. - if(old_index != new_index) - { - mPanelHistory[panel_name] = old_index; - } } // Will reopen current panel if no panel name was passed. getCurrentPanel()->onOpen(key); } +void LLSideTrayPanelContainer::openPanel(const std::string& panel_name, const LLSD& key) +{ + LLSD combined_key = key; + combined_key[PARAM_SUB_PANEL_NAME] = panel_name; + onOpen(combined_key); +} + void LLSideTrayPanelContainer::openPreviousPanel() { - std::string current_panel_name = getCurrentPanel()->getName(); - panel_navigation_history_t::const_iterator it = mPanelHistory.find(current_panel_name); - if(mPanelHistory.end() != it) + if(!mDefaultPanelName.empty()) + { + selectTabByName(mDefaultPanelName); + } + else { - selectTab(it->second); + selectTab(0); } } |