summaryrefslogtreecommitdiff
path: root/indra/newview/llfloaterpreference.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llfloaterpreference.cpp')
-rw-r--r--indra/newview/llfloaterpreference.cpp123
1 files changed, 110 insertions, 13 deletions
diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp
index 64961fc99c..28e77deec2 100644
--- a/indra/newview/llfloaterpreference.cpp
+++ b/indra/newview/llfloaterpreference.cpp
@@ -702,7 +702,7 @@ void LLFloaterPreference::cancel()
// hide spellchecker settings folder
LLFloaterReg::hideInstance("prefs_spellchecker");
- // hide advancede floater
+ // hide advanced graphics floater
LLFloaterReg::hideInstance("prefs_graphics_advanced");
// reverts any changes to current skin
@@ -821,7 +821,8 @@ void LLFloaterPreference::onOpen(const LLSD& key)
saveSettings();
// Make sure there is a default preference file
- LLPresetsManager::getInstance()->createMissingDefault();
+ LLPresetsManager::getInstance()->createMissingDefault(PRESETS_CAMERA);
+ LLPresetsManager::getInstance()->createMissingDefault(PRESETS_GRAPHIC);
bool started = (LLStartUp::getStartupState() == STATE_STARTED);
@@ -830,12 +831,26 @@ void LLFloaterPreference::onOpen(const LLSD& key)
LLButton* delete_btn = findChild<LLButton>("PrefDeleteButton");
LLButton* exceptions_btn = findChild<LLButton>("RenderExceptionsButton");
- load_btn->setEnabled(started);
- save_btn->setEnabled(started);
- delete_btn->setEnabled(started);
- exceptions_btn->setEnabled(started);
+ if (load_btn && save_btn && delete_btn && exceptions_btn)
+ {
+ load_btn->setEnabled(started);
+ save_btn->setEnabled(started);
+ delete_btn->setEnabled(started);
+ exceptions_btn->setEnabled(started);
+ }
+
+ LLButton* load_camera_btn = findChild<LLButton>("PrefCameraLoadButton");
+ LLButton* save_camera_btn = findChild<LLButton>("PrefCameraSaveButton");
+ LLButton* delete_camera_btn = findChild<LLButton>("PrefCameraDeleteButton");
- collectSearchableItems();
+ if (load_camera_btn && save_camera_btn && delete_camera_btn)
+ {
+ load_camera_btn->setEnabled(started);
+ save_camera_btn->setEnabled(started);
+ delete_camera_btn->setEnabled(started);
+ }
+
+ collectSearchableItems();
if (!mFilterEdit->getText().empty())
{
mFilterEdit->setText(LLStringExplicit(""));
@@ -2293,6 +2308,11 @@ void LLFloaterPreference::changed()
}
+void LLFloaterPreference::saveCameraPreset(std::string& preset)
+{
+ mSavedCameraPreset = preset;
+}
+
void LLFloaterPreference::saveGraphicsPreset(std::string& preset)
{
mSavedGraphicsPreset = preset;
@@ -2609,18 +2629,24 @@ void LLPanelPreference::updateMediaAutoPlayCheckbox(LLUICtrl* ctrl)
void LLPanelPreference::deletePreset(const LLSD& user_data)
{
std::string subdirectory = user_data.asString();
+ LLFloaterReg::hideInstance("load_pref_preset", subdirectory);
+ LLFloaterReg::hideInstance("save_pref_preset", subdirectory);
LLFloaterReg::showInstance("delete_pref_preset", subdirectory);
}
void LLPanelPreference::savePreset(const LLSD& user_data)
{
std::string subdirectory = user_data.asString();
+ LLFloaterReg::hideInstance("delete_pref_preset", subdirectory);
+ LLFloaterReg::hideInstance("load_pref_preset", subdirectory);
LLFloaterReg::showInstance("save_pref_preset", subdirectory);
}
void LLPanelPreference::loadPreset(const LLSD& user_data)
{
std::string subdirectory = user_data.asString();
+ LLFloaterReg::hideInstance("delete_pref_preset", subdirectory);
+ LLFloaterReg::hideInstance("save_pref_preset", subdirectory);
LLFloaterReg::showInstance("load_pref_preset", subdirectory);
}
@@ -2668,6 +2694,82 @@ private:
static LLPanelInjector<LLPanelPreferenceGraphics> t_pref_graph("panel_preference_graphics");
static LLPanelInjector<LLPanelPreferencePrivacy> t_pref_privacy("panel_preference_privacy");
+static LLPanelInjector<LLPanelPreferenceView> t_pref_view("panel_preference_view");
+
+BOOL LLPanelPreferenceView::postBuild()
+{
+ setPresetText();
+
+ LLPresetsManager* presetsMgr = LLPresetsManager::getInstance();
+ if (presetsMgr)
+ {
+ presetsMgr->setPresetListChangeCameraCallback(boost::bind(&LLPanelPreferenceView::onPresetsListChangeCamera, this));
+ presetsMgr->createMissingDefault(PRESETS_CAMERA); // a no-op after the first time, but that's ok
+ }
+
+ return LLPanelPreference::postBuild();
+}
+
+void LLPanelPreferenceView::onPresetsListChangeCamera()
+{
+ LLPresetsManager* presetsMgr = LLPresetsManager::getInstance();
+ if (presetsMgr)
+ {
+ presetsMgr->setCameraDirty(false);
+ }
+
+ setPresetText();
+
+ LLFloaterPreference* instance = LLFloaterReg::findTypedInstance<LLFloaterPreference>("preferences");
+ if (instance && !gSavedSettings.getString("PresetCameraActive").empty())
+ {
+ instance->saveSettings(); //make cancel work correctly after changing the preset
+ }
+}
+
+void LLPanelPreferenceView::draw()
+{
+ setPresetText();
+ LLPanelPreference::draw();
+}
+
+void LLPanelPreferenceView::setPresetText()
+{
+ LLTextBox* preset_text = getChild<LLTextBox>("preset_camera_text");
+
+ std::string preset_camera_active = gSavedSettings.getString("PresetCameraActive");
+
+ if (!preset_camera_active.empty() && preset_camera_active != preset_text->getText())
+ {
+ LLFloaterPreference* instance = LLFloaterReg::findTypedInstance<LLFloaterPreference>("preferences");
+ if (instance)
+ {
+ instance->saveCameraPreset(preset_camera_active);
+ }
+ }
+
+ LLPresetsManager* presetsMgr = LLPresetsManager::getInstance();
+ if (presetsMgr)
+ {
+ if (presetsMgr->isCameraDirty() && !preset_camera_active.empty())
+ {
+ preset_camera_active.clear();
+ }
+ }
+
+ if (!preset_camera_active.empty())
+ {
+ if (preset_camera_active == PRESETS_DEFAULT)
+ {
+ preset_camera_active = LLTrans::getString(PRESETS_DEFAULT);
+ }
+ preset_text->setText(preset_camera_active);
+ }
+ else
+ {
+ preset_text->setText(LLTrans::getString("none_paren_cap"));
+ }
+}
BOOL LLPanelPreferenceGraphics::postBuild()
{
@@ -2679,7 +2781,7 @@ BOOL LLPanelPreferenceGraphics::postBuild()
LLPresetsManager* presetsMgr = LLPresetsManager::getInstance();
presetsMgr->setPresetListChangeCallback(boost::bind(&LLPanelPreferenceGraphics::onPresetsListChange, this));
- presetsMgr->createMissingDefault(); // a no-op after the first time, but that's ok
+ presetsMgr->createMissingDefault(PRESETS_GRAPHIC); // a no-op after the first time, but that's ok
return LLPanelPreference::postBuild();
}
@@ -2700,11 +2802,6 @@ void LLPanelPreferenceGraphics::onPresetsListChange()
{
instance->saveSettings(); //make cancel work correctly after changing the preset
}
- else
- {
- std::string dummy;
- instance->saveGraphicsPreset(dummy);
- }
}
void LLPanelPreferenceGraphics::setPresetText()