diff options
| author | andreykproductengine <andreykproductengine@lindenlab.com> | 2019-02-25 16:51:29 +0200 | 
|---|---|---|
| committer | andreykproductengine <andreykproductengine@lindenlab.com> | 2019-02-25 16:51:29 +0200 | 
| commit | 645651813520c29c9f898ad531e0b3de65f33b67 (patch) | |
| tree | b2e1a31d2ff909ae7be0ed745285e557c8459078 | |
| parent | 0aa46bb013e888d437054bfb31efe5fa1136d1ba (diff) | |
SL-1945 Autoselection and some crash fixing
| -rw-r--r-- | indra/newview/llfloatereditextdaycycle.cpp | 7 | ||||
| -rw-r--r-- | indra/newview/lltrackpicker.cpp | 10 | 
2 files changed, 15 insertions, 2 deletions
diff --git a/indra/newview/llfloatereditextdaycycle.cpp b/indra/newview/llfloatereditextdaycycle.cpp index 18f22bf2d2..f712901795 100644 --- a/indra/newview/llfloatereditextdaycycle.cpp +++ b/indra/newview/llfloatereditextdaycycle.cpp @@ -1322,6 +1322,11 @@ void LLFloaterEditExtDayCycle::updateSlider()      mFramesSlider->clear();      mSliderKeyMap.clear(); +    if (!mEditDay) +    { +        return; +    } +      LLSettingsDay::CycleTrack_t track = mEditDay->getCycleTrack(mCurrentTrack);      for (auto &track_frame : track)      { @@ -1723,7 +1728,7 @@ bool LLFloaterEditExtDayCycle::isRemovingFrameAllowed()  bool LLFloaterEditExtDayCycle::isAddingFrameAllowed()  { -    if (!mFramesSlider->getCurSlider().empty()) return false; +    if (!mFramesSlider->getCurSlider().empty() || !mEditDay) return false;      LLSettingsBase::Seconds frame(mTimeSlider->getCurSliderValue());      if ((mEditDay->getSettingsNearKeyframe(frame, mCurrentTrack, LLSettingsDay::DEFAULT_FRAME_SLOP_FACTOR)).second) diff --git a/indra/newview/lltrackpicker.cpp b/indra/newview/lltrackpicker.cpp index bc918f4bd7..15bc591b37 100644 --- a/indra/newview/lltrackpicker.cpp +++ b/indra/newview/lltrackpicker.cpp @@ -81,13 +81,21 @@ void LLFloaterTrackPicker::showPicker(const LLSD &args)      LLSD::array_const_iterator iter;      LLSD::array_const_iterator end = args.endArray(); +    bool select_item = true;      for (iter = args.beginArray(); iter != end; ++iter)      {          S32 track_id = (*iter)["id"].asInteger();          bool can_enable = (*iter)["enabled"].asBoolean(); -        LLView *view = getChild<LLCheckBoxCtrl>(RDO_TRACK_PREFIX + llformat("%d", track_id), true); +        LLCheckBoxCtrl *view = getChild<LLCheckBoxCtrl>(RDO_TRACK_PREFIX + llformat("%d", track_id), true);          view->setEnabled(can_enable);          view->setLabelArg("[ALT]", (*iter).has("altitude") ? ((*iter)["altitude"].asString() + "m") : " "); + +        // Mark first avaliable item as selected +        if (can_enable && select_item) +        { +            select_item = false; +            view->set(TRUE); +        }      }      openFloater(getKey());  | 
