summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indra/newview/llfloatereditextdaycycle.cpp33
-rw-r--r--indra/newview/skins/default/xui/en/floater_edit_ext_day_cycle.xml3
2 files changed, 28 insertions, 8 deletions
diff --git a/indra/newview/llfloatereditextdaycycle.cpp b/indra/newview/llfloatereditextdaycycle.cpp
index 281d4f68f5..eb0cd28190 100644
--- a/indra/newview/llfloatereditextdaycycle.cpp
+++ b/indra/newview/llfloatereditextdaycycle.cpp
@@ -98,6 +98,11 @@ namespace {
const std::string TABS_SKYS("sky_tabs");
const std::string TABS_WATER("water_tabs");
+ // 'Play' buttons
+ const std::string BTN_PLAY("play_btn");
+ const std::string BTN_SKIP_BACK("skip_back_btn");
+ const std::string BTN_SKIP_FORWARD("skip_forward_btn");
+
const std::string EVNT_DAYTRACK("DayCycle.Track");
const std::string EVNT_PLAY("DayCycle.PlayActions");
@@ -1205,6 +1210,11 @@ void LLFloaterEditExtDayCycle::updateButtons()
mDeleteFrameButton->setEnabled(can_manipulate && isRemovingFrameAllowed());
mLoadFrame->setEnabled(can_manipulate);
+ BOOL enable_play = mEditDay ? TRUE : FALSE;
+ childSetEnabled(BTN_PLAY, enable_play);
+ childSetEnabled(BTN_SKIP_BACK, enable_play);
+ childSetEnabled(BTN_SKIP_FORWARD, enable_play);
+
// update track buttons
bool extended_env = LLEnvironment::instance().isExtendedEnvironmentEnabled();
for (S32 track = 0; track < LLSettingsDay::TRACK_MAX; ++track)
@@ -1575,15 +1585,22 @@ void LLFloaterEditExtDayCycle::onIdlePlay(void* user_data)
{
LLFloaterEditExtDayCycle* self = (LLFloaterEditExtDayCycle*)user_data;
- F32 prcnt_played = self->mPlayTimer.getElapsedTimeF32() / DAY_CYCLE_PLAY_TIME_SECONDS;
- F32 new_frame = fmod(self->mPlayStartFrame + prcnt_played, 1.f);
+ if (self->mSkyBlender == nullptr || self->mWaterBlender == nullptr)
+ {
+ self->stopPlay();
+ }
+ else
+ {
+
+ F32 prcnt_played = self->mPlayTimer.getElapsedTimeF32() / DAY_CYCLE_PLAY_TIME_SECONDS;
+ F32 new_frame = fmod(self->mPlayStartFrame + prcnt_played, 1.f);
- self->mTimeSlider->setCurSliderValue(new_frame); // will do the rounding
- self->mSkyBlender->setPosition(new_frame);
- self->mWaterBlender->setPosition(new_frame);
- self->synchronizeTabs();
- self->updateTimeAndLabel();
- self->updateButtons();
+ self->mTimeSlider->setCurSliderValue(new_frame); // will do the rounding
+
+ self->synchronizeTabs();
+ self->updateTimeAndLabel();
+ self->updateButtons();
+ }
}
}
diff --git a/indra/newview/skins/default/xui/en/floater_edit_ext_day_cycle.xml b/indra/newview/skins/default/xui/en/floater_edit_ext_day_cycle.xml
index c609e3bd3a..31c524c38a 100644
--- a/indra/newview/skins/default/xui/en/floater_edit_ext_day_cycle.xml
+++ b/indra/newview/skins/default/xui/en/floater_edit_ext_day_cycle.xml
@@ -342,6 +342,7 @@
width="25">
<button
name="skip_back_btn"
+ enabled="false"
follows="top"
image_overlay="SkipBackward_Off"
image_disabled="PushButton_Disabled"
@@ -373,6 +374,7 @@
width="25">
<button
name="play_btn"
+ enabled="false"
follows="top"
image_overlay="Play_Off"
image_disabled="PushButton_Disabled"
@@ -434,6 +436,7 @@
width="25">
<button
name="skip_forward_btn"
+ enabled="false"
follows="top"
image_overlay="SkipForward_Off"
image_disabled="PushButton_Disabled"