diff options
Diffstat (limited to 'indra/newview/llfloaterhoverheight.cpp')
-rwxr-xr-x | indra/newview/llfloaterhoverheight.cpp | 62 |
1 files changed, 26 insertions, 36 deletions
diff --git a/indra/newview/llfloaterhoverheight.cpp b/indra/newview/llfloaterhoverheight.cpp index f25d491910..bcdab6b3a0 100755 --- a/indra/newview/llfloaterhoverheight.cpp +++ b/indra/newview/llfloaterhoverheight.cpp @@ -36,68 +36,58 @@ #include "llviewerregion.h" #include "llvoavatarself.h" -class LLHoverHeightResponder: public LLHTTPClient::Responder +LLFloaterHoverHeight::LLFloaterHoverHeight(const LLSD& key) : LLFloater(key) { -public: - LLHoverHeightResponder(): LLHTTPClient::Responder() {} +} -private: - void httpFailure() - { - LL_WARNS() << dumpResponse() << LL_ENDL; - } +void LLFloaterHoverHeight::syncFromPreferenceSetting(void *user_data) +{ + LLVector3 offset = gSavedSettings.getVector3("AvatarPosFinalOffset"); + F32 value = offset[2]; - void httpSuccess() + LLFloaterHoverHeight *self = static_cast<LLFloaterHoverHeight*>(user_data); + LLSliderCtrl* sldrCtrl = self->getChild<LLSliderCtrl>("HoverHeightSlider"); + sldrCtrl->setValue(value,FALSE); + if (isAgentAvatarValid()) { - LL_INFOS() << dumpResponse() << LL_ENDL; + gAgentAvatarp->sendHoverHeight(); } -}; - -LLFloaterHoverHeight::LLFloaterHoverHeight(const LLSD& key) : LLFloater(key) -{ } BOOL LLFloaterHoverHeight::postBuild() { - - LLVector3 offset = gSavedSettings.getVector3("AvatarPosFinalOffset"); - F32 value = offset[2]; - LLSliderCtrl* sldrCtrl = getChild<LLSliderCtrl>("HoverHeightSlider"); - sldrCtrl->setValue(value,FALSE); sldrCtrl->setSliderMouseUpCallback(boost::bind(&LLFloaterHoverHeight::onFinalCommit,this)); sldrCtrl->setSliderEditorCommitCallback(boost::bind(&LLFloaterHoverHeight::onFinalCommit,this)); childSetCommitCallback("HoverHeightSlider", &LLFloaterHoverHeight::onSliderMoved, NULL); + // Initialize slider from pref setting. + syncFromPreferenceSetting(this); + // Update slider on future pref changes. + gSavedSettings.getControl("AvatarPosFinalOffset")->getCommitSignal()->connect(boost::bind(&syncFromPreferenceSetting, this)); + return TRUE; } // static void LLFloaterHoverHeight::onSliderMoved(LLUICtrl* ctrl, void* userData) { + LLSliderCtrl* sldrCtrl = static_cast<LLSliderCtrl*>(ctrl); + F32 value = sldrCtrl->getValueF32(); + LLVector3 offset = gSavedSettings.getVector3("AvatarPosFinalOffset"); + offset[2] = value; + gAgentAvatarp->mHoverOffset = offset; } -// Do extra send-to-the-server work when slider drag completes, or new +// Do send-to-the-server work when slider drag completes, or new // value entered as text. void LLFloaterHoverHeight::onFinalCommit() { - LL_INFOS() << "FINAL FINAL!!!" << LL_ENDL; - sendHoverHeightUpdate(); -} - -void LLFloaterHoverHeight::sendHoverHeightUpdate() -{ LLSliderCtrl* sldrCtrl = getChild<LLSliderCtrl>("HoverHeightSlider"); F32 value = sldrCtrl->getValueF32(); + LLVector3 offset = gSavedSettings.getVector3("AvatarPosFinalOffset"); + offset[2] = value; + gSavedSettings.setVector3("AvatarPosFinalOffset",offset); +} - std::string url = gAgent.getRegion()->getCapability("AgentPreferences"); - if (!url.empty()) - { - LLSD update = LLSD::emptyMap(); - update["hover_height"] = value; - - LL_INFOS() << "updating hover height to " << value << LL_ENDL; - LLHTTPClient::post(url, update, new LLHoverHeightResponder); - } -} |