summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVadim Savchuk <vsavchuk@productengine.com>2010-09-01 21:11:25 +0300
committerVadim Savchuk <vsavchuk@productengine.com>2010-09-01 21:11:25 +0300
commit4020b91ec6e8ab4994969ddda37f5ebbd9985367 (patch)
tree33319e064c329a22aa8fd94ba39fbc95daefb723
parent82c7366e20d8944fe39b5789b0e74ecb0c06368e (diff)
VWR-21127 WIP Implemented saving position and dimensions of detached sidebar tabs.
Reviewed by Sergey Litovchuk.
-rw-r--r--indra/llui/llfloater.cpp14
-rw-r--r--indra/newview/llsidetray.cpp8
-rw-r--r--indra/newview/skins/default/xui/en/floater_side_bar_tab.xml4
3 files changed, 18 insertions, 8 deletions
diff --git a/indra/llui/llfloater.cpp b/indra/llui/llfloater.cpp
index e1203971ea..0c4c857022 100644
--- a/indra/llui/llfloater.cpp
+++ b/indra/llui/llfloater.cpp
@@ -2664,18 +2664,26 @@ void LLFloater::setInstanceName(const std::string& name)
mInstanceName = name;
if (!mInstanceName.empty())
{
+ std::string ctrl_name = mInstanceName;
+
+ // Add the key to the control name if appropriate.
+ if (mKey.isString() && !mKey.asString().empty())
+ {
+ ctrl_name += "_" + mKey.asString();
+ }
+
// save_rect and save_visibility only apply to registered floaters
if (!mRectControl.empty())
{
- mRectControl = LLFloaterReg::declareRectControl(mInstanceName);
+ mRectControl = LLFloaterReg::declareRectControl(ctrl_name);
}
if (!mVisibilityControl.empty())
{
- mVisibilityControl = LLFloaterReg::declareVisibilityControl(mInstanceName);
+ mVisibilityControl = LLFloaterReg::declareVisibilityControl(ctrl_name);
}
if(!mDocStateControl.empty())
{
- mDocStateControl = LLFloaterReg::declareDockStateControl(mInstanceName);
+ mDocStateControl = LLFloaterReg::declareDockStateControl(ctrl_name);
}
}
diff --git a/indra/newview/llsidetray.cpp b/indra/newview/llsidetray.cpp
index 3d6fc0d8fd..3f0c1fa946 100644
--- a/indra/newview/llsidetray.cpp
+++ b/indra/newview/llsidetray.cpp
@@ -214,10 +214,10 @@ void LLSideTrayTab::toggleTabDocked()
{
std::string tab_name = getName();
- LLFloater* floater_tab = LLFloaterReg::getInstance("side_bar_tab", LLSD().with("name", tab_name));
+ LLFloater* floater_tab = LLFloaterReg::getInstance("side_bar_tab", tab_name);
if (!floater_tab) return;
- LLFloaterReg::toggleInstance("side_bar_tab", LLSD().with("name", tab_name));
+ LLFloaterReg::toggleInstance("side_bar_tab", tab_name);
LLSideTray* side_tray = LLSideTray::getInstance();
@@ -336,7 +336,7 @@ public:
tab->toggleTabDocked();
- LLFloater* floater_tab = LLFloaterReg::getInstance("side_bar_tab", LLSD().with("name", tab->getName()));
+ LLFloater* floater_tab = LLFloaterReg::getInstance("side_bar_tab", tab->getName());
if (!floater_tab) return FALSE;
LLRect original_rect = floater_tab->getRect();
@@ -502,7 +502,7 @@ LLPanel* LLSideTray::openChildPanel(LLSideTrayTab* tab, const std::string& panel
}
else
{
- LLFloater* floater_tab = LLFloaterReg::getInstance("side_bar_tab", LLSD().with("name", tab_name));
+ LLFloater* floater_tab = LLFloaterReg::getInstance("side_bar_tab", tab_name);
if (!floater_tab) return NULL;
// Restore the floater if it was minimized.
diff --git a/indra/newview/skins/default/xui/en/floater_side_bar_tab.xml b/indra/newview/skins/default/xui/en/floater_side_bar_tab.xml
index 1466c2d2a5..35df6a37f6 100644
--- a/indra/newview/skins/default/xui/en/floater_side_bar_tab.xml
+++ b/indra/newview/skins/default/xui/en/floater_side_bar_tab.xml
@@ -1,5 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<floater
can_close="false"
- can_resize="true">
+ can_resize="true"
+ save_rect="true"
+ >
</floater>