Protect all other debug settings change callbacks in FSRadar

Ansariel 2014-09-18 11:53:36 +02:00
parent 4becb4bcac
commit 753006d5ae
2 changed files with 16 additions and 2 deletions

View File

@ -95,15 +95,17 @@ FSRadar::FSRadar() :
mRadarFrameCount(0),
mRadarLastBulkOffsetRequestTime(0),
mRadarLastRequestTime(0.f),
mShowUsernamesCallbackConnection(),
mNameFormatCallbackConnection(),
mAgeAlertCallbackConnection()
{
mRadarListUpdater = new FSRadarListUpdater(boost::bind(&FSRadar::updateRadarList, this));
// Use the callback from LLAvatarNameCache here or we might update the names too early!
LLAvatarNameCache::addUseDisplayNamesCallback(boost::bind(&FSRadar::updateNames, this));
gSavedSettings.getControl("NameTagShowUsernames")->getSignal()->connect(boost::bind(&FSRadar::updateNames, this));
mShowUsernamesCallbackConnection = gSavedSettings.getControl("NameTagShowUsernames")->getSignal()->connect(boost::bind(&FSRadar::updateNames, this));
gSavedSettings.getControl("RadarNameFormat")->getSignal()->connect(boost::bind(&FSRadar::updateNames, this));
mNameFormatCallbackConnection = gSavedSettings.getControl("RadarNameFormat")->getSignal()->connect(boost::bind(&FSRadar::updateNames, this));
mAgeAlertCallbackConnection = gSavedSettings.getControl("RadarAvatarAgeAlertValue")->getSignal()->connect(boost::bind(&FSRadar::updateAgeAlertCheck, this));
}
@ -117,6 +119,16 @@ FSRadar::~FSRadar()
delete em_it->second;
}
if (mShowUsernamesCallbackConnection.connected())
{
mShowUsernamesCallbackConnection.disconnect();
}
if (mNameFormatCallbackConnection.connected())
{
mNameFormatCallbackConnection.disconnect();
}
if (mAgeAlertCallbackConnection.connected())
{
mAgeAlertCallbackConnection.disconnect();

View File

@ -145,6 +145,8 @@ private:
radar_update_callback_t mUpdateSignal;
boost::signals2::connection mShowUsernamesCallbackConnection;
boost::signals2::connection mNameFormatCallbackConnection;
boost::signals2::connection mAgeAlertCallbackConnection;
};