Skip to content
Snippets Groups Projects
Commit cbeaf3d7 authored by Paul ProductEngine's avatar Paul ProductEngine
Browse files

EXP-1586 FIXED (Nearby chat window no longer persists between viewer startups)

- Visibility state of chat floater is saved between sessions
- Also visibility state of chat history in nearby chat floater is saved too
parent 0380372a
No related branches found
No related tags found
No related merge requests found
...@@ -109,6 +109,17 @@ BOOL LLNearbyChatBar::postBuild() ...@@ -109,6 +109,17 @@ BOOL LLNearbyChatBar::postBuild()
mOutputMonitor = getChild<LLOutputMonitorCtrl>("chat_zone_indicator"); mOutputMonitor = getChild<LLOutputMonitorCtrl>("chat_zone_indicator");
mOutputMonitor->setVisible(FALSE); mOutputMonitor->setVisible(FALSE);
gSavedSettings.declareBOOL("nearbychat_history_visibility", mNearbyChat->getVisible(), "Visibility state of nearby chat history", TRUE);
// If mVisibilityControl is not empty it means that the visibility state of floater is saved between sessions,
// i.e. save_visibility="true" for this floater.
// So if we need to restore visibility state of floater we also need to restore visibility state of nearby chat history.
if (!mVisibilityControl.empty())
{
// restore visibility of nearby chat history
mNearbyChat->setVisible(gSavedSettings.getBOOL("nearbychat_history_visibility"));
}
// Register for font change notifications // Register for font change notifications
LLViewerChat::setFontChangedCallback(boost::bind(&LLNearbyChatBar::onChatFontChange, this, _1)); LLViewerChat::setFontChangedCallback(boost::bind(&LLNearbyChatBar::onChatFontChange, this, _1));
...@@ -141,6 +152,18 @@ bool LLNearbyChatBar::applyRectControl() ...@@ -141,6 +152,18 @@ bool LLNearbyChatBar::applyRectControl()
return rect_controlled; return rect_controlled;
} }
void LLNearbyChatBar::saveChatHistoryVisibility()
{
// save visibility state of nearby chat history panel if
// visibility of nearby chat floater is saved, i.e. save_visisbility="true"
// (if save_visisbility="true", mVisibilityControl == "floater_vis_chat_bar")
if (mVisibilityControl.size() > 1)
{
// save visibility of nearby chat history
gSavedSettings.setBOOL("nearbychat_history_visibility", mNearbyChat->getVisible());
}
}
void LLNearbyChatBar::onChatFontChange(LLFontGL* fontp) void LLNearbyChatBar::onChatFontChange(LLFontGL* fontp)
{ {
// Update things with the new font whohoo // Update things with the new font whohoo
...@@ -413,6 +436,8 @@ void LLNearbyChatBar::onToggleNearbyChatPanel() ...@@ -413,6 +436,8 @@ void LLNearbyChatBar::onToggleNearbyChatPanel()
enableResizeCtrls(true); enableResizeCtrls(true);
storeRectControl(); storeRectControl();
} }
saveChatHistoryVisibility();
} }
void LLNearbyChatBar::setMinimized(BOOL b) void LLNearbyChatBar::setMinimized(BOOL b)
......
...@@ -92,6 +92,11 @@ class LLNearbyChatBar : public LLFloater ...@@ -92,6 +92,11 @@ class LLNearbyChatBar : public LLFloater
LLLocalSpeakerMgr* mSpeakerMgr; LLLocalSpeakerMgr* mSpeakerMgr;
S32 mExpandedHeight; S32 mExpandedHeight;
private:
// Saves visibility of chat history panel
// if save_visibility="true"
void saveChatHistoryVisibility();
}; };
#endif #endif
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
single_instance="true" single_instance="true"
title="NEARBY CHAT" title="NEARBY CHAT"
save_rect="true" save_rect="true"
save_visibility="true"
can_close="true" can_close="true"
can_minimize="true" can_minimize="true"
help_topic="chat_bar" help_topic="chat_bar"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment