From ceb336c5f340c260ac5c1923723dbc8204b98157 Mon Sep 17 00:00:00 2001 From: andreykproductengine Date: Thu, 13 Sep 2018 16:32:41 +0300 Subject: SL-1168 EEP Shouldn't be possible to create more than 20 keframes --- indra/llui/llmultislider.h | 4 ++++ indra/llui/llmultisliderctrl.h | 4 ++++ indra/newview/llfloatereditextdaycycle.cpp | 23 ++++++++++++++++------- 3 files changed, 24 insertions(+), 7 deletions(-) (limited to 'indra') diff --git a/indra/llui/llmultislider.h b/indra/llui/llmultislider.h index 3884b0a2a0..9a997de16a 100644 --- a/indra/llui/llmultislider.h +++ b/indra/llui/llmultislider.h @@ -105,6 +105,10 @@ public: /*virtual*/ BOOL handleKeyHere(KEY key, MASK mask); /*virtual*/ void draw(); + S32 getMaxNumSliders() { return mMaxNumSliders; } + S32 getCurNumSliders() { return mValue.size(); } + bool canAddSliders() { return mValue.size() < mMaxNumSliders; } + protected: LLSD mValue; std::string mCurSlider; diff --git a/indra/llui/llmultisliderctrl.h b/indra/llui/llmultisliderctrl.h index a1593c28e0..ad2dc94779 100644 --- a/indra/llui/llmultisliderctrl.h +++ b/indra/llui/llmultisliderctrl.h @@ -115,6 +115,10 @@ public: F32 getMinValue() const { return mMultiSlider->getMinValue(); } F32 getMaxValue() const { return mMultiSlider->getMaxValue(); } + S32 getMaxNumSliders() { return mMultiSlider->getMaxNumSliders(); } + S32 getCurNumSliders() { return mMultiSlider->getCurNumSliders(); } + bool canAddSliders() { return mMultiSlider->canAddSliders(); } + void setLabel(const std::string& label) { if (mLabelBox) mLabelBox->setText(label); } void setLabelColor(const LLColor4& c) { mTextEnabledColor = c; } void setDisabledLabelColor(const LLColor4& c) { mTextDisabledColor = c; } diff --git a/indra/newview/llfloatereditextdaycycle.cpp b/indra/newview/llfloatereditextdaycycle.cpp index ad797c686a..4ba23493d1 100644 --- a/indra/newview/llfloatereditextdaycycle.cpp +++ b/indra/newview/llfloatereditextdaycycle.cpp @@ -551,6 +551,12 @@ void LLFloaterEditExtDayCycle::onAddTrack() LL_WARNS("ENVDAYEDIT") << "Attempt to add new frame too close to existing frame." << LL_ENDL; return; } + if (!mFramesSlider->canAddSliders()) + { + // Shouldn't happen, button should be disabled + LL_WARNS("ENVDAYEDIT") << "Attempt to add new frame when slider is full." << LL_ENDL; + return; + } if (mCurrentTrack == LLSettingsDay::TRACK_WATER) { @@ -903,7 +909,7 @@ void LLFloaterEditExtDayCycle::updateButtons() //bool can_add = static_cast(settings); //mAddFrameButton->setEnabled(can_add); //mDeleteFrameButton->setEnabled(!can_add); - mAddFrameButton->setEnabled(true && mCanMod); + mAddFrameButton->setEnabled(mCanMod && mFramesSlider->canAddSliders()); mDeleteFrameButton->setEnabled(isRemovingFrameAllowed() && mCanMod); } @@ -964,13 +970,16 @@ void LLFloaterEditExtDayCycle::addSliderFrame(const F32 frame, LLSettingsBase::p // multi slider distinguishes elements by key/name in string format // store names to map to be able to recall dependencies std::string new_slider = mFramesSlider->addSlider(frame); - mSliderKeyMap[new_slider] = FrameData(frame, setting); - - if (update_ui) + if (!new_slider.empty()) { - mLastFrameSlider = new_slider; - mTimeSlider->setCurSliderValue(frame); - updateTabs(); + mSliderKeyMap[new_slider] = FrameData(frame, setting); + + if (update_ui) + { + mLastFrameSlider = new_slider; + mTimeSlider->setCurSliderValue(frame); + updateTabs(); + } } } -- cgit v1.2.3 From bb52cdf4f0104cb61c537041fc9574167fdf98eb Mon Sep 17 00:00:00 2001 From: andreykproductengine Date: Thu, 13 Sep 2018 18:36:47 +0300 Subject: SL-1307 EEP At startup viewer does not recognize what parcel you are on. --- indra/newview/llviewerparcelmgr.cpp | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'indra') diff --git a/indra/newview/llviewerparcelmgr.cpp b/indra/newview/llviewerparcelmgr.cpp index d263e15a10..3ad78efd41 100644 --- a/indra/newview/llviewerparcelmgr.cpp +++ b/indra/newview/llviewerparcelmgr.cpp @@ -659,6 +659,10 @@ LLParcel * LLViewerParcelMgr::getAgentOrSelectedParcel() const if (selection) { parcel = selection->getParcel(); + if (parcel->getLocalID() == INVALID_PARCEL_ID) + { + parcel = NULL; + } } } -- cgit v1.2.3