FIRE-19697: Made toggle of FSStatusBarMenuButtonPopupOnRollover instant without restart

Ansariel 2016-07-22 09:51:43 +02:00
parent c7e0831f57
commit b5983fc77c
4 changed files with 72 additions and 11 deletions

View File

@ -24056,7 +24056,7 @@ Change of this parameter will affect the layout of buttons in notification toast
<key>FSStatusBarMenuButtonPopupOnRollover</key>
<map>
<key>Comment</key>
<string>Enable rollover popups on top status bar menu icons: Quick Graphics Presets, Volume, and Media. (Restart Required)</string>
<string>Enable rollover popups on top status bar menu icons: Quick Graphics Presets, Volume, and Media.</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>

View File

@ -195,7 +195,12 @@ LLStatusBar::LLStatusBar(const LLRect& rect)
mNearbyIcons(FALSE), // <FS:Ansariel> Script debug
mSearchData(NULL), // <FS:ND/> Hook up and init for filtering
mFilterEdit(NULL), // <FS:ND/> Edit for filtering
mSearchPanel(NULL) // <FS:ND/> Panel for filtering
mSearchPanel(NULL), // <FS:ND/> Panel for filtering
mIconPresets(NULL),
mMediaToggle(NULL),
mMouseEnterPresetsConnection(),
mMouseEnterVolumeConnection(),
mMouseEnterNearbyMediaConnection()
{
setRect(rect);
@ -244,6 +249,22 @@ LLStatusBar::~LLStatusBar()
{
mShowCoordsCtrlConnection.disconnect();
}
// <FS:Ansariel> FIRE-19697: Add setting to disable graphics preset menu popup on mouse over
if (mMouseEnterPresetsConnection.connected())
{
mMouseEnterPresetsConnection.disconnect();
}
if (mMouseEnterVolumeConnection.connected())
{
mMouseEnterVolumeConnection.disconnect();
}
if (mMouseEnterNearbyMediaConnection.connected())
{
mMouseEnterNearbyMediaConnection.disconnect();
}
// </FS:Ansariel>
// LLView destructor cleans up children
}
@ -289,7 +310,7 @@ BOOL LLStatusBar::postBuild()
// mIconPresets->setMouseEnterCallback(boost::bind(&LLStatusBar::onMouseEnterPresets, this));
if (gSavedSettings.getBOOL("FSStatusBarMenuButtonPopupOnRollover"))
{
mIconPresets->setMouseEnterCallback(boost::bind(&LLStatusBar::onMouseEnterPresets, this));
mMouseEnterPresetsConnection = mIconPresets->setMouseEnterCallback(boost::bind(&LLStatusBar::onMouseEnterPresets, this));
}
// </FS: KC> FIRE-19697: Add setting to disable graphics preset menu popup on mouse over
mIconPresets->setClickedCallback(boost::bind(&LLStatusBar::onMouseEnterPresets, this));
@ -300,23 +321,22 @@ BOOL LLStatusBar::postBuild()
// mBtnVolume->setMouseEnterCallback(boost::bind(&LLStatusBar::onMouseEnterVolume, this));
if (gSavedSettings.getBOOL("FSStatusBarMenuButtonPopupOnRollover"))
{
mBtnVolume->setMouseEnterCallback(boost::bind(&LLStatusBar::onMouseEnterVolume, this));
mMouseEnterVolumeConnection = mBtnVolume->setMouseEnterCallback(boost::bind(&LLStatusBar::onMouseEnterVolume, this));
}
// </FS: KC> FIRE-19697: Add setting to disable status bar icon menu popup on mouseover
// ## Zi: Media/Stream separation
// <FS:Zi> Media/Stream separation
mStreamToggle = getChild<LLButton>("stream_toggle_btn");
mStreamToggle->setClickedCallback( &LLStatusBar::onClickStreamToggle, this );
// ## Zi: Media/Stream separation
mStreamToggle->setClickedCallback(&LLStatusBar::onClickStreamToggle, this);
// </FS:Zi> Media/Stream separation
mMediaToggle = getChild<LLButton>("media_toggle_btn");
mMediaToggle->setClickedCallback( &LLStatusBar::onClickMediaToggle, this );
// <FS: KC> FIRE-19697: Add setting to disable status bar icon menu popup on mouseover
// mMediaToggle->setMouseEnterCallback(boost::bind(&LLStatusBar::onMouseEnterNearbyMedia, this));
if (gSavedSettings.getBOOL("FSStatusBarMenuButtonPopupOnRollover"))
// mMediaToggle->setMouseEnterCallback(boost::bind(&LLStatusBar::onMouseEnterNearbyMedia, this));
{
mMediaToggle->setMouseEnterCallback(boost::bind(&LLStatusBar::onMouseEnterNearbyMedia, this));
mMouseEnterNearbyMediaConnection = mMediaToggle->setMouseEnterCallback(boost::bind(&LLStatusBar::onMouseEnterNearbyMedia, this));
}
// </FS: KC> FIRE-19697: Add setting to disable status bar icon menu popup on mouseover
@ -324,6 +344,9 @@ BOOL LLStatusBar::postBuild()
gSavedSettings.getControl("MuteAudio")->getSignal()->connect(boost::bind(&LLStatusBar::onVolumeChanged, this, _2));
// <FS:Ansariel> FIRE-19697: Add setting to disable graphics preset menu popup on mouse over
gSavedSettings.getControl("FSStatusBarMenuButtonPopupOnRollover")->getSignal()->connect(boost::bind(&LLStatusBar::onPopupRolloverChanged, this, _2));
// Adding Net Stat Graph
S32 x = getRect().getWidth() - 2;
S32 y = 0;
@ -1601,3 +1624,31 @@ void LLStatusBar::updateMenuSearchVisibility(const LLSD& data)
}
update();
}
// <FS:Ansariel> FIRE-19697: Add setting to disable graphics preset menu popup on mouse over
void LLStatusBar::onPopupRolloverChanged(const LLSD& newvalue)
{
bool new_value = newvalue.asBoolean();
if (new_value)
{
mMouseEnterPresetsConnection = mIconPresets->setMouseEnterCallback(boost::bind(&LLStatusBar::onMouseEnterPresets, this));
mMouseEnterVolumeConnection = mBtnVolume->setMouseEnterCallback(boost::bind(&LLStatusBar::onMouseEnterVolume, this));
mMouseEnterNearbyMediaConnection = mMediaToggle->setMouseEnterCallback(boost::bind(&LLStatusBar::onMouseEnterNearbyMedia, this));
}
else
{
if (mMouseEnterPresetsConnection.connected())
{
mMouseEnterPresetsConnection.disconnect();
}
if (mMouseEnterVolumeConnection.connected())
{
mMouseEnterVolumeConnection.disconnect();
}
if (mMouseEnterNearbyMediaConnection.connected())
{
mMouseEnterNearbyMediaConnection.disconnect();
}
}
}

View File

@ -261,6 +261,10 @@ private:
void onNavMeshStatusChange(const LLPathfindingNavMeshStatus &pNavMeshStatus);
void createNavMeshStatusListenerForCurrentRegion();
// </FS:Ansariel> Pathfinding support
// <FS:Ansariel> FIRE-19697: Add setting to disable graphics preset menu popup on mouse over
void onPopupRolloverChanged(const LLSD& newvalue);
public:
/**
@ -362,6 +366,12 @@ private:
boost::signals2::connection mShowCoordsCtrlConnection;
boost::signals2::connection mParcelMgrConnection;
// <FS:Ansariel> FIRE-19697: Add setting to disable graphics preset menu popup on mouse over
boost::signals2::connection mMouseEnterPresetsConnection;
boost::signals2::connection mMouseEnterVolumeConnection;
boost::signals2::connection mMouseEnterNearbyMediaConnection;
// </FS:Ansariel>
// <FS:Zi> Pathfinding rebake functions
BOOL rebakeRegionCallback(const LLSD& notification,const LLSD& response);

View File

@ -630,7 +630,7 @@
top_pad="4"
follows="left|top"
height="16"
label="Enable mouse rollover popup on status bar menu icons (Restart Required)"
label="Enable mouse rollover popup on status bar menu icons"
name="FSStatusBarMenuButtonPopupOnRollover"
width="270"
control_name="FSStatusBarMenuButtonPopupOnRollover"/>