STORM-101 FIXED Moved floater settings (rect, visibility, docked state) to account-specific XML file.
The settings are now stored to settings_per_account.xml. This change affects all floaters having save_rect/save_visibility/save_dock_state params set to "true", not just detached sidebar tabs as the ticket requests.master
parent
1f46b1d87b
commit
baeded61a7
|
|
@ -1117,7 +1117,7 @@ void LLButton::setFloaterToggle(LLUICtrl* ctrl, const LLSD& sdname)
|
|||
// Get the visibility control name for the floater
|
||||
std::string vis_control_name = LLFloaterReg::declareVisibilityControl(sdname.asString());
|
||||
// Set the button control value (toggle state) to the floater visibility control (Sets the value as well)
|
||||
button->setControlVariable(LLUI::sSettingGroups["floater"]->getControl(vis_control_name));
|
||||
button->setControlVariable(LLFloater::getControlGroup()->getControl(vis_control_name));
|
||||
// Set the clicked callback to toggle the floater
|
||||
button->setClickedCallback(boost::bind(&LLFloaterReg::toggleFloaterInstance, sdname));
|
||||
}
|
||||
|
|
@ -1131,7 +1131,7 @@ void LLButton::setDockableFloaterToggle(LLUICtrl* ctrl, const LLSD& sdname)
|
|||
// Get the visibility control name for the floater
|
||||
std::string vis_control_name = LLFloaterReg::declareVisibilityControl(sdname.asString());
|
||||
// Set the button control value (toggle state) to the floater visibility control (Sets the value as well)
|
||||
button->setControlVariable(LLUI::sSettingGroups["floater"]->getControl(vis_control_name));
|
||||
button->setControlVariable(LLFloater::getControlGroup()->getControl(vis_control_name));
|
||||
// Set the clicked callback to toggle the floater
|
||||
button->setClickedCallback(boost::bind(&LLDockableFloater::toggleInstance, sdname));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -499,7 +499,7 @@ void LLFloater::storeRectControl()
|
|||
{
|
||||
if( mRectControl.size() > 1 )
|
||||
{
|
||||
LLUI::sSettingGroups["floater"]->setRect( mRectControl, getRect() );
|
||||
getControlGroup()->setRect( mRectControl, getRect() );
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -507,7 +507,7 @@ void LLFloater::storeVisibilityControl()
|
|||
{
|
||||
if( !sQuitting && mVisibilityControl.size() > 1 )
|
||||
{
|
||||
LLUI::sSettingGroups["floater"]->setBOOL( mVisibilityControl, getVisible() );
|
||||
getControlGroup()->setBOOL( mVisibilityControl, getVisible() );
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -515,7 +515,7 @@ void LLFloater::storeDockStateControl()
|
|||
{
|
||||
if( !sQuitting && mDocStateControl.size() > 1 )
|
||||
{
|
||||
LLUI::sSettingGroups["floater"]->setBOOL( mDocStateControl, isDocked() );
|
||||
getControlGroup()->setBOOL( mDocStateControl, isDocked() );
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -525,7 +525,7 @@ LLRect LLFloater::getSavedRect() const
|
|||
|
||||
if (mRectControl.size() > 1)
|
||||
{
|
||||
rect = LLUI::sSettingGroups["floater"]->getRect(mRectControl);
|
||||
rect = getControlGroup()->getRect(mRectControl);
|
||||
}
|
||||
|
||||
return rect;
|
||||
|
|
@ -550,6 +550,13 @@ std::string LLFloater::getControlName(const std::string& name, const LLSD& key)
|
|||
return ctrl_name;
|
||||
}
|
||||
|
||||
// static
|
||||
LLControlGroup* LLFloater::getControlGroup()
|
||||
{
|
||||
// Floater size, position, visibility, etc are saved in per-account settings.
|
||||
return LLUI::sSettingGroups["account"];
|
||||
}
|
||||
|
||||
void LLFloater::setVisible( BOOL visible )
|
||||
{
|
||||
LLPanel::setVisible(visible); // calls handleVisibilityChange()
|
||||
|
|
@ -805,7 +812,7 @@ void LLFloater::applyRectControl()
|
|||
// override center if we have saved rect control
|
||||
if (mRectControl.size() > 1)
|
||||
{
|
||||
const LLRect& rect = LLUI::sSettingGroups["floater"]->getRect(mRectControl);
|
||||
const LLRect& rect = getControlGroup()->getRect(mRectControl);
|
||||
if (rect.getWidth() > 0 && rect.getHeight() > 0)
|
||||
{
|
||||
translate( rect.mLeft - getRect().mLeft, rect.mBottom - getRect().mBottom);
|
||||
|
|
@ -821,7 +828,7 @@ void LLFloater::applyDockState()
|
|||
{
|
||||
if (mDocStateControl.size() > 1)
|
||||
{
|
||||
bool dockState = LLUI::sSettingGroups["floater"]->getBOOL(mDocStateControl);
|
||||
bool dockState = getControlGroup()->getBOOL(mDocStateControl);
|
||||
setDocked(dockState);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -206,7 +206,8 @@ public:
|
|||
LLRect getSavedRect() const;
|
||||
bool hasSavedRect() const;
|
||||
|
||||
static std::string getControlName(const std::string& name, const LLSD& key);
|
||||
static std::string getControlName(const std::string& name, const LLSD& key);
|
||||
static LLControlGroup* getControlGroup();
|
||||
|
||||
bool isMinimizeable() const{ return mCanMinimize; }
|
||||
bool isCloseable() const{ return mCanClose; }
|
||||
|
|
|
|||
|
|
@ -284,9 +284,9 @@ void LLFloaterReg::showInitialVisibleInstances()
|
|||
{
|
||||
const std::string& name = iter->first;
|
||||
std::string controlname = getVisibilityControlName(name);
|
||||
if (LLUI::sSettingGroups["floater"]->controlExists(controlname))
|
||||
if (LLFloater::getControlGroup()->controlExists(controlname))
|
||||
{
|
||||
BOOL isvis = LLUI::sSettingGroups["floater"]->getBOOL(controlname);
|
||||
BOOL isvis = LLFloater::getControlGroup()->getBOOL(controlname);
|
||||
if (isvis)
|
||||
{
|
||||
showInstance(name, LLSD()); // keyed floaters shouldn't set save_vis to true
|
||||
|
|
@ -340,7 +340,7 @@ std::string LLFloaterReg::getRectControlName(const std::string& name)
|
|||
std::string LLFloaterReg::declareRectControl(const std::string& name)
|
||||
{
|
||||
std::string controlname = getRectControlName(name);
|
||||
LLUI::sSettingGroups["floater"]->declareRect(controlname, LLRect(),
|
||||
LLFloater::getControlGroup()->declareRect(controlname, LLRect(),
|
||||
llformat("Window Position and Size for %s", name.c_str()),
|
||||
TRUE);
|
||||
return controlname;
|
||||
|
|
@ -358,7 +358,7 @@ std::string LLFloaterReg::getVisibilityControlName(const std::string& name)
|
|||
std::string LLFloaterReg::declareVisibilityControl(const std::string& name)
|
||||
{
|
||||
std::string controlname = getVisibilityControlName(name);
|
||||
LLUI::sSettingGroups["floater"]->declareBOOL(controlname, FALSE,
|
||||
LLFloater::getControlGroup()->declareBOOL(controlname, FALSE,
|
||||
llformat("Window Visibility for %s", name.c_str()),
|
||||
TRUE);
|
||||
return controlname;
|
||||
|
|
@ -368,7 +368,7 @@ std::string LLFloaterReg::declareVisibilityControl(const std::string& name)
|
|||
std::string LLFloaterReg::declareDockStateControl(const std::string& name)
|
||||
{
|
||||
std::string controlname = getDockStateControlName(name);
|
||||
LLUI::sSettingGroups["floater"]->declareBOOL(controlname, TRUE,
|
||||
LLFloater::getControlGroup()->declareBOOL(controlname, TRUE,
|
||||
llformat("Window Docking state for %s", name.c_str()),
|
||||
TRUE);
|
||||
return controlname;
|
||||
|
|
@ -391,11 +391,11 @@ void LLFloaterReg::registerControlVariables()
|
|||
for (build_map_t::iterator iter = sBuildMap.begin(); iter != sBuildMap.end(); ++iter)
|
||||
{
|
||||
const std::string& name = iter->first;
|
||||
if (LLUI::sSettingGroups["floater"]->controlExists(getRectControlName(name)))
|
||||
if (LLFloater::getControlGroup()->controlExists(getRectControlName(name)))
|
||||
{
|
||||
declareRectControl(name);
|
||||
}
|
||||
if (LLUI::sSettingGroups["floater"]->controlExists(getVisibilityControlName(name)))
|
||||
if (LLFloater::getControlGroup()->controlExists(getVisibilityControlName(name)))
|
||||
{
|
||||
declareVisibilityControl(name);
|
||||
}
|
||||
|
|
@ -419,7 +419,7 @@ void LLFloaterReg::initUICtrlToFloaterVisibilityControl(LLUICtrl* ctrl, const LL
|
|||
// Get the visibility control name for the floater
|
||||
std::string vis_control_name = LLFloaterReg::declareVisibilityControl(sdname.asString());
|
||||
// Set the control value to the floater visibility control (Sets the value as well)
|
||||
ctrl->setControlVariable(LLUI::sSettingGroups["floater"]->getControl(vis_control_name));
|
||||
ctrl->setControlVariable(LLFloater::getControlGroup()->getControl(vis_control_name));
|
||||
}
|
||||
|
||||
// callback args may use "floatername.key" format
|
||||
|
|
|
|||
|
|
@ -1526,7 +1526,7 @@ void LLBottomTray::setButtonsControlsAndListeners()
|
|||
// set control name for Build button. It is not enough to link it with Button.SetFloaterToggle in xml
|
||||
std::string vis_control_name = LLFloaterReg::declareVisibilityControl("build");
|
||||
// Set the button control value (toggle state) to the floater visibility control (Sets the value as well)
|
||||
build_btn->setControlVariable(LLUI::sSettingGroups["floater"]->getControl(vis_control_name));
|
||||
build_btn->setControlVariable(LLFloater::getControlGroup()->getControl(vis_control_name));
|
||||
}
|
||||
|
||||
bool LLBottomTray::toggleShowButton(LLBottomTray::EResizeState button_type, const LLSD& new_visibility)
|
||||
|
|
|
|||
|
|
@ -115,7 +115,7 @@ void LLNearbyChat::applySavedVariables()
|
|||
{
|
||||
if (mRectControl.size() > 1)
|
||||
{
|
||||
const LLRect& rect = LLUI::sSettingGroups["floater"]->getRect(mRectControl);
|
||||
const LLRect& rect = LLFloater::getControlGroup()->getRect(mRectControl);
|
||||
if(!rect.isEmpty() && rect.isValid())
|
||||
{
|
||||
reshape(rect.getWidth(), rect.getHeight());
|
||||
|
|
@ -124,7 +124,7 @@ void LLNearbyChat::applySavedVariables()
|
|||
}
|
||||
|
||||
|
||||
if(!LLUI::sSettingGroups["floater"]->controlExists(mDocStateControl))
|
||||
if(!LLFloater::getControlGroup()->controlExists(mDocStateControl))
|
||||
{
|
||||
setDocked(true);
|
||||
}
|
||||
|
|
@ -132,7 +132,7 @@ void LLNearbyChat::applySavedVariables()
|
|||
{
|
||||
if (mDocStateControl.size() > 1)
|
||||
{
|
||||
bool dockState = LLUI::sSettingGroups["floater"]->getBOOL(mDocStateControl);
|
||||
bool dockState = LLFloater::getControlGroup()->getBOOL(mDocStateControl);
|
||||
setDocked(dockState);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -998,9 +998,9 @@ void LLSideTray::detachTabs()
|
|||
|
||||
std::string floater_ctrl_name = LLFloater::getControlName("side_bar_tab", LLSD(tab->getName()));
|
||||
std::string vis_ctrl_name = LLFloaterReg::getVisibilityControlName(floater_ctrl_name);
|
||||
if (!LLUI::sSettingGroups["floater"]->controlExists(vis_ctrl_name)) continue;
|
||||
if (!LLFloater::getControlGroup()->controlExists(vis_ctrl_name)) continue;
|
||||
|
||||
bool is_visible = LLUI::sSettingGroups["floater"]->getBOOL(vis_ctrl_name);
|
||||
bool is_visible = LLFloater::getControlGroup()->getBOOL(vis_ctrl_name);
|
||||
if (!is_visible) continue;
|
||||
|
||||
llassert(isTabAttached(tab->getName()));
|
||||
|
|
|
|||
Loading…
Reference in New Issue