From ceb336c5f340c260ac5c1923723dbc8204b98157 Mon Sep 17 00:00:00 2001
From: andreykproductengine <andreykproductengine@lindenlab.com>
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(-)

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<bool>(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 <andreykproductengine@lindenlab.com>
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(+)

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