summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indra/newview/llfloatereditsky.cpp18
-rw-r--r--indra/newview/llfloatereditsky.h1
2 files changed, 19 insertions, 0 deletions
diff --git a/indra/newview/llfloatereditsky.cpp b/indra/newview/llfloatereditsky.cpp
index a35b7cb003..538d6cfa39 100644
--- a/indra/newview/llfloatereditsky.cpp
+++ b/indra/newview/llfloatereditsky.cpp
@@ -39,6 +39,7 @@
// newview
#include "llagent.h"
+#include "llregioninfomodel.h"
#include "llviewerregion.h"
#undef max
@@ -121,6 +122,9 @@ void LLFloaterEditSky::initCallbacks(void)
LLEnvManagerNew::instance().setRegionSettingsChangeCallback(boost::bind(&LLFloaterEditSky::onRegionSettingsChange, this));
LLWLParamManager::instance().setPresetListChangeCallback(boost::bind(&LLFloaterEditSky::onSkyPresetListChange, this));
+ // Connect to region info updates.
+ LLRegionInfoModel::instance().setUpdateCallback(boost::bind(&LLFloaterEditSky::onRegionInfoUpdate, this));
+
//-------------------------------------------------------------------------
LLWLParamManager& param_mgr = LLWLParamManager::instance();
@@ -949,3 +953,17 @@ void LLFloaterEditSky::onRegionSettingsChange()
refreshSkyPresetsList();
}
}
+
+void LLFloaterEditSky::onRegionInfoUpdate()
+{
+ bool can_edit = true;
+
+ // If we've selected the region day cycle for editing.
+ if (getSelectedSkyPreset().scope == LLEnvKey::SCOPE_REGION)
+ {
+ // check whether we have the access
+ can_edit = LLEnvManagerNew::canEditRegionSettings();
+ }
+
+ enableEditing(can_edit);
+}
diff --git a/indra/newview/llfloatereditsky.h b/indra/newview/llfloatereditsky.h
index 85b4b250d5..0ad4217a43 100644
--- a/indra/newview/llfloatereditsky.h
+++ b/indra/newview/llfloatereditsky.h
@@ -99,6 +99,7 @@ private:
void onSkyPresetListChange();
void onRegionSettingsChange();
+ void onRegionInfoUpdate();
LLLineEditor* mSkyPresetNameEditor;
LLComboBox* mSkyPresetCombo;