From 2672093429ffd38e5f6c659e8e0220fde1501914 Mon Sep 17 00:00:00 2001 From: andreykproductengine Date: Thu, 20 Jun 2019 20:03:47 +0300 Subject: DRTVWR-493 LLHint to singleton --- indra/newview/llhints.cpp | 45 ++++++++++++++++++++------------------------- 1 file changed, 20 insertions(+), 25 deletions(-) (limited to 'indra/newview/llhints.cpp') diff --git a/indra/newview/llhints.cpp b/indra/newview/llhints.cpp index 197408b40e..7271376a3c 100644 --- a/indra/newview/llhints.cpp +++ b/indra/newview/llhints.cpp @@ -240,7 +240,7 @@ void LLHintPopup::draw() } else { - LLView* targetp = LLHints::getHintTarget(mTarget).get(); + LLView* targetp = LLHints::getInstance()->getHintTarget(mTarget).get(); if (!targetp) { // target widget is no longer valid, go away @@ -349,10 +349,20 @@ void LLHintPopup::draw() } -LLRegistry > LLHints::sTargetRegistry; -std::map LLHints::sHints; +/// LLHints + +LLHints::LLHints() +{ + LLControlVariablePtr control = gSavedSettings.getControl("EnableUIHints"); + mControlConnection = control->getSignal()->connect(boost::bind(&LLHints::showHints, this, _2)); + gViewerWindow->getHintHolder()->setVisible(control->getValue().asBoolean()); +} + +LLHints::~LLHints() +{ + mControlConnection.disconnect(); +} -//static void LLHints::show(LLNotificationPtr hint) { LLHintPopup::Params p(LLUICtrlFactory::getDefaultParams()); @@ -365,7 +375,7 @@ void LLHints::show(LLNotificationPtr hint) { LLHintPopup* popup = new LLHintPopup(p); - sHints[hint] = popup; + mHints[hint] = popup; LLView* hint_holder = gViewerWindow->getHintHolder(); if (hint_holder) @@ -376,27 +386,24 @@ void LLHints::show(LLNotificationPtr hint) } } -//static void LLHints::hide(LLNotificationPtr hint) { - hint_map_t::iterator found_it = sHints.find(hint); - if (found_it != sHints.end()) + hint_map_t::iterator found_it = mHints.find(hint); + if (found_it != mHints.end()) { found_it->second->hide(); - sHints.erase(found_it); + mHints.erase(found_it); } } -//static void LLHints::registerHintTarget(const std::string& name, LLHandle target) { - sTargetRegistry.defaultRegistrar().replace(name, target); + mTargetRegistry.defaultRegistrar().replace(name, target); } -//static LLHandle LLHints::getHintTarget(const std::string& name) { - LLHandle* handlep = sTargetRegistry.getValue(name); + LLHandle* handlep = mTargetRegistry.getValue(name); if (handlep) { return *handlep; @@ -407,18 +414,6 @@ LLHandle LLHints::getHintTarget(const std::string& name) } } -//static -void LLHints::initClass() -{ - sRegister.reference(); - - LLControlVariablePtr control = gSavedSettings.getControl("EnableUIHints"); - control->getSignal()->connect(boost::bind(&showHints, _2)); - gViewerWindow->getHintHolder()->setVisible(control->getValue().asBoolean()); - -} - -//staic void LLHints::showHints(const LLSD& show) { bool visible = show.asBoolean(); -- cgit v1.2.3