diff --git a/indra/newview/llfloatercamera.cpp b/indra/newview/llfloatercamera.cpp index 830ecfff3b..cff7e3324f 100644 --- a/indra/newview/llfloatercamera.cpp +++ b/indra/newview/llfloatercamera.cpp @@ -393,9 +393,11 @@ BOOL LLFloaterCamera::postBuild() mTrack = getChild(PAN); mPresetCombo = getChild("preset_combo"); - getChild("precise_ctrs_label")->setShowCursorHand(false); - getChild("precise_ctrs_label")->setSoundFlags(LLView::MOUSE_UP); - getChild("precise_ctrs_label")->setClickedCallback(boost::bind(&LLFloaterReg::showInstance, "prefs_view_advanced", LLSD(), FALSE)); + // Improved camera floater + //getChild("precise_ctrs_label")->setShowCursorHand(false); + //getChild("precise_ctrs_label")->setSoundFlags(LLView::MOUSE_UP); + //getChild("precise_ctrs_label")->setClickedCallback(boost::bind(&LLFloaterReg::showInstance, "prefs_view_advanced", LLSD(), FALSE)); + // mPresetCombo->setCommitCallback(boost::bind(&LLFloaterCamera::onCustomPresetSelected, this)); LLPresetsManager::getInstance()->setPresetListChangeCameraCallback(boost::bind(&LLFloaterCamera::populatePresetCombo, this)); @@ -555,6 +557,16 @@ void LLFloaterCamera::onClickCameraItem(const LLSD& param) if (camera_floater) camera_floater->switchMode(CAMERA_CTRL_MODE_FREE_CAMERA); } + // Improved camera floater + else if ("reset_view" == name) + { + LLFloaterCamera* camera_floater = LLFloaterCamera::findInstance(); + if (camera_floater) + camera_floater->switchMode(CAMERA_CTRL_MODE_PAN); + gAgentCamera.changeCameraToDefault(); + switchToPreset("rear_view"); + } + // else { LLFloaterCamera* camera_floater = LLFloaterCamera::findInstance(); diff --git a/indra/newview/llfloaterpreferenceviewadvanced.cpp b/indra/newview/llfloaterpreferenceviewadvanced.cpp index f8db738923..131c5a3802 100644 --- a/indra/newview/llfloaterpreferenceviewadvanced.cpp +++ b/indra/newview/llfloaterpreferenceviewadvanced.cpp @@ -32,12 +32,14 @@ #include "lluictrlfactory.h" #include "llspinctrl.h" #include "llviewercontrol.h" +#include "llpresetsmanager.h" LLFloaterPreferenceViewAdvanced::LLFloaterPreferenceViewAdvanced(const LLSD& key) : LLFloater(key) { mCommitCallbackRegistrar.add("CommitSettings", boost::bind(&LLFloaterPreferenceViewAdvanced::onCommitSettings, this)); + mCommitCallbackRegistrar.add("CameraPresets.Save", boost::bind(&LLFloaterPreferenceViewAdvanced::onSavePreset, this)); // Improved camera floater } LLFloaterPreferenceViewAdvanced::~LLFloaterPreferenceViewAdvanced() @@ -80,3 +82,18 @@ void LLFloaterPreferenceViewAdvanced::onCommitSettings() vector3d.mdV[VZ] = (F32)getChild("focus_z")->getValue().asReal(); gSavedSettings.setVector3d("FocusOffsetRearView", vector3d); } + +// Improved camera floater +void LLFloaterPreferenceViewAdvanced::onSavePreset() +{ + LLFloaterReg::hideInstance("delete_pref_preset", PRESETS_CAMERA); + LLFloaterReg::hideInstance("load_pref_preset", PRESETS_CAMERA); + + LLSD key; + key["subdirectory"] = PRESETS_CAMERA; + std::string current_preset = gSavedSettings.getString("PresetCameraActive"); + bool is_custom_preset = current_preset != "" && !LLPresetsManager::getInstance()->isDefaultCameraPreset(current_preset); + key["index"] = is_custom_preset ? 1 : 0; + LLFloaterReg::showInstance("save_pref_preset", key); +} +// diff --git a/indra/newview/llfloaterpreferenceviewadvanced.h b/indra/newview/llfloaterpreferenceviewadvanced.h index 4619fdaab1..9b85ac9266 100644 --- a/indra/newview/llfloaterpreferenceviewadvanced.h +++ b/indra/newview/llfloaterpreferenceviewadvanced.h @@ -42,6 +42,7 @@ public: void onCommitSettings(); void updateCameraControl(const LLVector3& vector); void updateFocusControl(const LLVector3d& vector3d); + void onSavePreset(); // Improved camera floater private: virtual ~LLFloaterPreferenceViewAdvanced(); diff --git a/indra/newview/skins/default/xui/en/floater_camera.xml b/indra/newview/skins/default/xui/en/floater_camera.xml index 97a0077fdc..b8e2677963 100644 --- a/indra/newview/skins/default/xui/en/floater_camera.xml +++ b/indra/newview/skins/default/xui/en/floater_camera.xml @@ -1,17 +1,21 @@ Use preset @@ -47,7 +52,7 @@ - - Use precise controls - + top_delta="18" + width="120"> + width="18"> @@ -160,8 +153,8 @@ + width="18" + left_pad="2"> @@ -173,8 +166,8 @@ + width="18" + left_pad="2"> + width="18" + left_pad="2"> @@ -200,8 +193,8 @@ + width="18" + left_pad="2"> @@ -210,12 +203,26 @@ + + + + + + + + diff --git a/indra/newview/skins/default/xui/en/floater_preferences_view_advanced.xml b/indra/newview/skins/default/xui/en/floater_preferences_view_advanced.xml index a61a147148..a84c4bbfcc 100644 --- a/indra/newview/skins/default/xui/en/floater_preferences_view_advanced.xml +++ b/indra/newview/skins/default/xui/en/floater_preferences_view_advanced.xml @@ -1,6 +1,6 @@ Camera offset: @@ -66,7 +66,7 @@ height="16" layout="topleft" left="10" - top_pad="20" + top_pad="10" width="100"> Focus offset: @@ -113,4 +113,31 @@ + + + + diff --git a/indra/newview/skins/default/xui/en/panel_presets_camera_pulldown.xml b/indra/newview/skins/default/xui/en/panel_presets_camera_pulldown.xml index 08d4a67f94..42b4c9fe0b 100644 --- a/indra/newview/skins/default/xui/en/panel_presets_camera_pulldown.xml +++ b/indra/newview/skins/default/xui/en/panel_presets_camera_pulldown.xml @@ -58,7 +58,7 @@