diff --git a/indra/newview/fsradar.cpp b/indra/newview/fsradar.cpp index 78e27a8380..ad4c27b7ca 100644 --- a/indra/newview/fsradar.cpp +++ b/indra/newview/fsradar.cpp @@ -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(); diff --git a/indra/newview/fsradar.h b/indra/newview/fsradar.h index 8950f927cb..9d44afa374 100644 --- a/indra/newview/fsradar.h +++ b/indra/newview/fsradar.h @@ -145,6 +145,8 @@ private: radar_update_callback_t mUpdateSignal; + boost::signals2::connection mShowUsernamesCallbackConnection; + boost::signals2::connection mNameFormatCallbackConnection; boost::signals2::connection mAgeAlertCallbackConnection; };