Change SignaledTyped signal to pass the new value to the callback method
parent
fd834b39d7
commit
658d08aed5
|
|
@ -271,37 +271,37 @@ void LFSimFeatureHandler::updateCurrencySymbols()
|
|||
}
|
||||
// </COLOSI opensim multi-currency support>
|
||||
|
||||
boost::signals2::connection LFSimFeatureHandler::setSupportsExportCallback(const boost::signals2::signal<void()>::slot_type& slot)
|
||||
boost::signals2::connection LFSimFeatureHandler::setSupportsExportCallback(const SignaledType<bool>::changed_signal_t& slot)
|
||||
{
|
||||
return mSupportsExport.connect(slot);
|
||||
}
|
||||
|
||||
boost::signals2::connection LFSimFeatureHandler::setSearchURLCallback(const boost::signals2::signal<void()>::slot_type& slot)
|
||||
boost::signals2::connection LFSimFeatureHandler::setSearchURLCallback(const SignaledType<std::string>::changed_signal_t& slot)
|
||||
{
|
||||
return mSearchURL.connect(slot);
|
||||
}
|
||||
|
||||
boost::signals2::connection LFSimFeatureHandler::setSayRangeCallback(const boost::signals2::signal<void()>::slot_type& slot)
|
||||
boost::signals2::connection LFSimFeatureHandler::setSayRangeCallback(const SignaledType<U32>::changed_signal_t& slot)
|
||||
{
|
||||
return mSayRange.connect(slot);
|
||||
}
|
||||
|
||||
boost::signals2::connection LFSimFeatureHandler::setShoutRangeCallback(const boost::signals2::signal<void()>::slot_type& slot)
|
||||
boost::signals2::connection LFSimFeatureHandler::setShoutRangeCallback(const SignaledType<U32>::changed_signal_t& slot)
|
||||
{
|
||||
return mShoutRange.connect(slot);
|
||||
}
|
||||
|
||||
boost::signals2::connection LFSimFeatureHandler::setWhisperRangeCallback(const boost::signals2::signal<void()>::slot_type& slot)
|
||||
boost::signals2::connection LFSimFeatureHandler::setWhisperRangeCallback(const SignaledType<U32>::changed_signal_t& slot)
|
||||
{
|
||||
return mWhisperRange.connect(slot);
|
||||
}
|
||||
|
||||
boost::signals2::connection LFSimFeatureHandler::setAvatarPickerCallback(const boost::signals2::signal<void()>::slot_type& slot)
|
||||
boost::signals2::connection LFSimFeatureHandler::setAvatarPickerCallback(const SignaledType<std::string>::changed_signal_t& slot)
|
||||
{
|
||||
return mAvatarPickerURL.connect(slot);
|
||||
}
|
||||
|
||||
boost::signals2::connection LFSimFeatureHandler::setDestinationGuideCallback(const boost::signals2::signal<void()>::slot_type& slot)
|
||||
boost::signals2::connection LFSimFeatureHandler::setDestinationGuideCallback(const SignaledType<std::string>::changed_signal_t& slot)
|
||||
{
|
||||
return mDestinationGuideURL.connect(slot);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,21 +21,22 @@
|
|||
#include "llsingleton.h"
|
||||
#include "llpermissions.h" // ExportPolicy
|
||||
|
||||
template<typename Type, typename Signal = boost::signals2::signal<void()> >
|
||||
template<typename Type, typename Signal = boost::signals2::signal<void(Type)> >
|
||||
class SignaledType
|
||||
{
|
||||
public:
|
||||
SignaledType() : mValue() {}
|
||||
SignaledType(Type b) : mValue(b) {}
|
||||
|
||||
boost::signals2::connection connect(const typename Signal::slot_type& slot) { return mSignal.connect(slot); }
|
||||
typedef typename Signal::slot_type changed_signal_t;
|
||||
boost::signals2::connection connect(const typename changed_signal_t& slot) { return mSignal.connect(slot); }
|
||||
|
||||
SignaledType& operator =(Type val)
|
||||
{
|
||||
if (val != mValue)
|
||||
{
|
||||
mValue = val;
|
||||
mSignal();
|
||||
mSignal(mValue);
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
|
|
@ -76,13 +77,13 @@ public:
|
|||
// </COLOSI opensim multi-currency support>
|
||||
|
||||
// Connection setters
|
||||
boost::signals2::connection setSupportsExportCallback(const boost::signals2::signal<void()>::slot_type& slot);
|
||||
boost::signals2::connection setSearchURLCallback(const boost::signals2::signal<void()>::slot_type& slot);
|
||||
boost::signals2::connection setSayRangeCallback(const boost::signals2::signal<void()>::slot_type& slot);
|
||||
boost::signals2::connection setShoutRangeCallback(const boost::signals2::signal<void()>::slot_type& slot);
|
||||
boost::signals2::connection setWhisperRangeCallback(const boost::signals2::signal<void()>::slot_type& slot);
|
||||
boost::signals2::connection setAvatarPickerCallback(const boost::signals2::signal<void()>::slot_type& slot);
|
||||
boost::signals2::connection setDestinationGuideCallback(const boost::signals2::signal<void()>::slot_type& slot);
|
||||
boost::signals2::connection setSupportsExportCallback(const SignaledType<bool>::changed_signal_t& slot);
|
||||
boost::signals2::connection setSearchURLCallback(const SignaledType<std::string>::changed_signal_t& slot);
|
||||
boost::signals2::connection setSayRangeCallback(const SignaledType<U32>::changed_signal_t& slot);
|
||||
boost::signals2::connection setShoutRangeCallback(const SignaledType<U32>::changed_signal_t& slot);
|
||||
boost::signals2::connection setWhisperRangeCallback(const SignaledType<U32>::changed_signal_t& slot);
|
||||
boost::signals2::connection setAvatarPickerCallback(const SignaledType<std::string>::changed_signal_t& slot);
|
||||
boost::signals2::connection setDestinationGuideCallback(const SignaledType<std::string>::changed_signal_t& slot);
|
||||
|
||||
// Accessors
|
||||
bool simSupportsExport() const { return mSupportsExport; }
|
||||
|
|
|
|||
|
|
@ -80,13 +80,13 @@ void LLFloaterAvatar::onOpen(const LLSD& key)
|
|||
// region the avatar logs into as well.
|
||||
if (!mAvatarPickerUrlChangedSignal.connected())
|
||||
{
|
||||
mAvatarPickerUrlChangedSignal = LFSimFeatureHandler::instance().setAvatarPickerCallback(boost::bind(&LLFloaterAvatar::handleUrlChanged, this));
|
||||
mAvatarPickerUrlChangedSignal = LFSimFeatureHandler::instance().setAvatarPickerCallback(boost::bind(&LLFloaterAvatar::handleUrlChanged, this, _1));
|
||||
}
|
||||
}
|
||||
|
||||
void LLFloaterAvatar::handleUrlChanged()
|
||||
void LLFloaterAvatar::handleUrlChanged(const std::string& url)
|
||||
{
|
||||
getChild<LLMediaCtrl>("avatar_picker_contents")->navigateTo(LLWeb::expandURLSubstitutions(LFSimFeatureHandler::instance().avatarPickerURL(), LLSD()), HTTP_CONTENT_TEXT_HTML);
|
||||
getChild<LLMediaCtrl>("avatar_picker_contents")->navigateTo(LLWeb::expandURLSubstitutions(url, LLSD()), HTTP_CONTENT_TEXT_HTML);
|
||||
}
|
||||
// </FS:Ansariel>
|
||||
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ private:
|
|||
|
||||
// <FS:Ansariel> Avatar chooser does not change between OpenSim grids
|
||||
/*virtual*/ void onOpen(const LLSD& key);
|
||||
void handleUrlChanged();
|
||||
void handleUrlChanged(const std::string& url);
|
||||
|
||||
boost::signals2::connection mAvatarPickerUrlChangedSignal;
|
||||
// </FS:Ansariel>
|
||||
|
|
|
|||
|
|
@ -72,14 +72,14 @@ void LLFloaterDestinations::onOpen(const LLSD& key)
|
|||
// region the avatar logs into as well.
|
||||
if (!mDestinationGuideUrlChangedSignal.connected())
|
||||
{
|
||||
mDestinationGuideUrlChangedSignal = LFSimFeatureHandler::instance().setDestinationGuideCallback(boost::bind(&LLFloaterDestinations::handleUrlChanged, this));
|
||||
mDestinationGuideUrlChangedSignal = LFSimFeatureHandler::instance().setDestinationGuideCallback(boost::bind(&LLFloaterDestinations::handleUrlChanged, this, _1));
|
||||
}
|
||||
|
||||
handleUrlChanged();
|
||||
handleUrlChanged(LFSimFeatureHandler::instance().destinationGuideURL());
|
||||
}
|
||||
|
||||
void LLFloaterDestinations::handleUrlChanged()
|
||||
void LLFloaterDestinations::handleUrlChanged(const std::string& url)
|
||||
{
|
||||
getChild<LLMediaCtrl>("destination_guide_contents")->navigateTo(LLWeb::expandURLSubstitutions(LFSimFeatureHandler::instance().destinationGuideURL(), LLSD()), HTTP_CONTENT_TEXT_HTML);
|
||||
getChild<LLMediaCtrl>("destination_guide_contents")->navigateTo(LLWeb::expandURLSubstitutions(url, LLSD()), HTTP_CONTENT_TEXT_HTML);
|
||||
}
|
||||
// </FS:Ansariel>
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ private:
|
|||
|
||||
// <FS:Ansariel> FIRE-16833: Destination guide does not change between OpenSim grids
|
||||
/*virtual*/ void onOpen(const LLSD& key);
|
||||
void handleUrlChanged();
|
||||
void handleUrlChanged(const std::string& url);
|
||||
|
||||
boost::signals2::connection mDestinationGuideUrlChangedSignal;
|
||||
// </FS:Ansariel>
|
||||
|
|
|
|||
Loading…
Reference in New Issue