From bfc3d61d594f30c2b9913c7fb44b613678ec8e3d Mon Sep 17 00:00:00 2001 From: andreykproductengine Date: Tue, 30 Apr 2019 18:39:11 +0300 Subject: SL-11066 [EEP] Editor shows the 98% keyframe settings while the 0% keyframe is selected --- indra/newview/llfloatereditextdaycycle.cpp | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/indra/newview/llfloatereditextdaycycle.cpp b/indra/newview/llfloatereditextdaycycle.cpp index 3846dfd2a4..bae901bd50 100644 --- a/indra/newview/llfloatereditextdaycycle.cpp +++ b/indra/newview/llfloatereditextdaycycle.cpp @@ -1019,6 +1019,7 @@ void LLFloaterEditExtDayCycle::onFrameSliderMouseDown(S32 x, S32 y, MASK mask) void LLFloaterEditExtDayCycle::onFrameSliderMouseUp(S32 x, S32 y, MASK mask) { + // Only happens when clicking on empty space of frameslider, not on specific frame F32 sliderpos = mFramesSlider->getSliderValueFromPos(x, y); mTimeSlider->setCurSliderValue(sliderpos); @@ -1524,7 +1525,7 @@ void LLFloaterEditExtDayCycle::updateEditEnvironment(void) void LLFloaterEditExtDayCycle::synchronizeTabs() { // This should probably get moved into "updateTabs" - LLSettingsBase::TrackPosition frame(mTimeSlider->getCurSliderValue()); + std::string curslider = mFramesSlider->getCurSlider(); bool canedit(false); LLSettingsWater::ptr_t psettingW; @@ -1535,12 +1536,15 @@ void LLFloaterEditExtDayCycle::synchronizeTabs() { canedit = false; } - else if (!mFramesSlider->getCurSlider().empty()) + else if (!curslider.empty()) { canedit = !mIsPlaying; // either search mEditDay or retrieve from mSliderKeyMap - LLSettingsDay::CycleTrack_t::value_type found = mEditDay->getSettingsNearKeyframe(frame, LLSettingsDay::TRACK_WATER, LLSettingsDay::DEFAULT_FRAME_SLOP_FACTOR); - psettingW = std::static_pointer_cast(found.second); + keymap_t::iterator slider_it = mSliderKeyMap.find(curslider); + if (slider_it != mSliderKeyMap.end()) + { + psettingW = std::static_pointer_cast(slider_it->second.pSettings); + } } mCurrentEdit = psettingW; if (!psettingW) @@ -1568,12 +1572,15 @@ void LLFloaterEditExtDayCycle::synchronizeTabs() { canedit = false; } - else if (!mFramesSlider->getCurSlider().empty()) + else if (!curslider.empty()) { canedit = !mIsPlaying; // either search mEditDay or retrieve from mSliderKeyMap - LLSettingsDay::CycleTrack_t::value_type found = mEditDay->getSettingsNearKeyframe(frame, mCurrentTrack, LLSettingsDay::DEFAULT_FRAME_SLOP_FACTOR); - psettingS = std::static_pointer_cast(found.second); + keymap_t::iterator slider_it = mSliderKeyMap.find(curslider); + if (slider_it != mSliderKeyMap.end()) + { + psettingS = std::static_pointer_cast(slider_it->second.pSettings); + } } mCurrentEdit = psettingS; if (!psettingS) -- cgit v1.2.3