Files
SingularityViewer/indra/newview/ascentprefssys.cpp
2011-05-29 20:18:44 -04:00

349 lines
19 KiB
C++

/**
* @file ascentprefssys.cpp
* @Ascent Viewer preferences panel
*
* $LicenseInfo:firstyear=2008&license=viewergpl$
*
* Copyright (c) 2008, Henri Beauchamp.
* Rewritten in its entirety 2010 Hg Beeks.
*
* Second Life Viewer Source Code
* The source code in this file ("Source Code") is provided by Linden Lab
* to you under the terms of the GNU General Public License, version 2.0
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
* online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
* and agree to abide by those obligations.
*
* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
* COMPLETENESS OR PERFORMANCE.
* $/LicenseInfo$
*/
#include "llviewerprecompiledheaders.h"
//File include
#include "ascentprefssys.h"
#include "llagent.h"
#include "llaudioengine.h" //For POWER USER affirmation.
#include "llchat.h"
#include "llcolorswatch.h"
#include "llcombobox.h"
#include "llfloaterchat.h" //For POWER USER affirmation.
#include "llradiogroup.h"
#include "lluictrlfactory.h"
#include "llviewercontrol.h"
LLPrefsAscentSys::LLPrefsAscentSys()
{
LLUICtrlFactory::getInstance()->buildPanel(this, "panel_preferences_ascent_system.xml");
childSetCommitCallback("speed_rez_check", onCommitCheckBox, this);
childSetCommitCallback("double_click_teleport_check", onCommitCheckBox, this);
childSetCommitCallback("system_folder_check", onCommitCheckBox, this);
childSetCommitCallback("show_look_at_check", onCommitCheckBox, this);
childSetCommitCallback("enable_clouds", onCommitCheckBox, this);
childSetCommitCallback("power_user_check", onCommitCheckBox, this);
childSetCommitCallback("power_user_confirm_check", onCommitCheckBox, this);
childSetCommitCallback("chat_cmd_toggle", onCommitCmdLine, this);
childSetCommitCallback("AscentCmdLinePos", onCommitCmdLine, this);
childSetCommitCallback("AscentCmdLineGround", onCommitCmdLine, this);
childSetCommitCallback("AscentCmdLineHeight", onCommitCmdLine, this);
childSetCommitCallback("AscentCmdLineTeleportHome", onCommitCmdLine, this);
childSetCommitCallback("AscentCmdLineRezPlatform", onCommitCmdLine, this);
childSetCommitCallback("AscentCmdLineCalc", onCommitCmdLine, this);
childSetCommitCallback("AscentCmdLineClearChat", onCommitCmdLine, this);
childSetCommitCallback("AscentCmdLineDrawDistance", onCommitCmdLine, this);
childSetCommitCallback("AscentCmdTeleportToCam", onCommitCmdLine, this);
childSetCommitCallback("AscentCmdLineKeyToName", onCommitCmdLine, this);
childSetCommitCallback("AscentCmdLineOfferTp", onCommitCmdLine, this);
childSetCommitCallback("AscentCmdLineMapTo", onCommitCmdLine, this);
childSetCommitCallback("AscentCmdLineTP2", onCommitCmdLine, this);
refreshValues();
refresh();
}
LLPrefsAscentSys::~LLPrefsAscentSys()
{
}
//static
void LLPrefsAscentSys::onCommitCheckBox(LLUICtrl* ctrl, void* user_data)
{
LLPrefsAscentSys* self = (LLPrefsAscentSys*)user_data;
// llinfos << "Change to " << ctrl->getControlName() << " aka " << ctrl->getName() << llendl;
if (ctrl->getName() == "speed_rez_check")
{
bool enabled = self->childGetValue("speed_rez_check").asBoolean();
self->childSetEnabled("speed_rez_interval", enabled);
self->childSetEnabled("speed_rez_seconds", enabled);
}
else if (ctrl->getName() == "double_click_teleport_check")
{
bool enabled = self->childGetValue("double_click_teleport_check").asBoolean();
self->childSetEnabled("center_after_teleport_check", enabled);
self->childSetEnabled("offset_teleport_check", enabled);
}
else if (ctrl->getName() == "system_folder_check")
{
bool enabled = self->childGetValue("system_folder_check").asBoolean();
self->childSetEnabled("temp_in_system_check", enabled);
}
else if (ctrl->getName() == "enable_clouds")
{
bool enabled = self->childGetValue("enable_clouds").asBoolean();
self->childSetEnabled("enable_classic_clouds", enabled);
}
else if (ctrl->getName() == "power_user_check")
{
bool enabled = self->childGetValue("power_user_check").asBoolean();
self->childSetEnabled("power_user_confirm_check", enabled);
self->childSetValue("power_user_confirm_check", false);
}
else if (ctrl->getName() == "power_user_confirm_check")
{
bool enabled = self->childGetValue("power_user_confirm_check").asBoolean();
gSavedSettings.setBOOL("AscentPowerfulWizard", enabled);
if (enabled)
{
LLVector3d lpos_global = gAgent.getPositionGlobal();
gAudiop->triggerSound(LLUUID("58a38e89-44c6-c52b-deb8-9f1ddc527319"), gAgent.getID(), 1.0f, LLAudioEngine::AUDIO_TYPE_UI, lpos_global);
LLChat chat;
chat.mSourceType = CHAT_SOURCE_SYSTEM;
chat.mText = llformat("You are bestowed with powers beyond mortal comprehension.\nUse your newfound abilities wisely.\nUnlocked:\n- Animation Priority up to 7 - Meant for animations that should override anything and everything at all times. DO NOT USE THIS FOR GENERAL ANIMATIONS.\n- Right click > Destroy objects - Permanently deletes an object immediately, when you don't feel like waiting for the server to respond.\n- Right Click > Explode objects - Turns an object physical, temporary, and delinks it.");
LLFloaterChat::addChat(chat);
}
}
}
//static
void LLPrefsAscentSys::onCommitCmdLine(LLUICtrl* ctrl, void* user_data)
{
LLPrefsAscentSys* self = (LLPrefsAscentSys*)user_data;
if (ctrl->getName() == "chat_cmd_toggle")
{
bool enabled = self->childGetValue("chat_cmd_toggle").asBoolean();
self->childSetEnabled("cmd_line_text_2", enabled);
self->childSetEnabled("cmd_line_text_3", enabled);
self->childSetEnabled("cmd_line_text_4", enabled);
self->childSetEnabled("cmd_line_text_5", enabled);
self->childSetEnabled("cmd_line_text_6", enabled);
self->childSetEnabled("cmd_line_text_7", enabled);
self->childSetEnabled("cmd_line_text_8", enabled);
self->childSetEnabled("cmd_line_text_9", enabled);
self->childSetEnabled("cmd_line_text_10", enabled);
self->childSetEnabled("cmd_line_text_11", enabled);
self->childSetEnabled("cmd_line_text_12", enabled);
self->childSetEnabled("cmd_line_text_13", enabled);
self->childSetEnabled("cmd_line_text_15", enabled);
self->childSetEnabled("AscentCmdLinePos", enabled);
self->childSetEnabled("AscentCmdLineGround", enabled);
self->childSetEnabled("AscentCmdLineHeight", enabled);
self->childSetEnabled("AscentCmdLineTeleportHome", enabled);
self->childSetEnabled("AscentCmdLineRezPlatform", enabled);
self->childSetEnabled("AscentPlatformSize", enabled);
self->childSetEnabled("AscentCmdLineCalc", enabled);
self->childSetEnabled("AscentCmdLineClearChat", enabled);
self->childSetEnabled("AscentCmdLineDrawDistance", enabled);
self->childSetEnabled("AscentCmdTeleportToCam", enabled);
self->childSetEnabled("AscentCmdLineKeyToName", enabled);
self->childSetEnabled("AscentCmdLineOfferTp", enabled);
self->childSetEnabled("AscentCmdLineMapTo", enabled);
self->childSetEnabled("map_to_keep_pos", enabled);
self->childSetEnabled("AscentCmdLineTP2", enabled);
}
gSavedSettings.setString("AscentCmdLinePos", self->childGetValue("AscentCmdLinePos"));
gSavedSettings.setString("AscentCmdLineGround", self->childGetValue("AscentCmdLineGround"));
gSavedSettings.setString("AscentCmdLineHeight", self->childGetValue("AscentCmdLineHeight"));
gSavedSettings.setString("AscentCmdLineTeleportHome", self->childGetValue("AscentCmdLineTeleportHome"));
gSavedSettings.setString("AscentCmdLineRezPlatform", self->childGetValue("AscentCmdLineRezPlatform"));
gSavedSettings.setString("AscentCmdLineCalc", self->childGetValue("AscentCmdLineCalc"));
gSavedSettings.setString("AscentCmdLineClearChat", self->childGetValue("AscentCmdLineClearChat"));
gSavedSettings.setString("AscentCmdLineDrawDistance", self->childGetValue("AscentCmdLineDrawDistance"));
gSavedSettings.setString("AscentCmdTeleportToCam", self->childGetValue("AscentCmdTeleportToCam"));
gSavedSettings.setString("AscentCmdLineKeyToName", self->childGetValue("AscentCmdLineKeyToName"));
gSavedSettings.setString("AscentCmdLineOfferTp", self->childGetValue("AscentCmdLineOfferTp"));
gSavedSettings.setString("AscentCmdLineMapTo", self->childGetValue("AscentCmdLineMapTo"));
gSavedSettings.setString("AscentCmdLineTP2", self->childGetValue("AscentCmdLineTP2"));
}
void LLPrefsAscentSys::refreshValues()
{
//General -----------------------------------------------------------------------------
mDoubleClickTeleport = gSavedSettings.getBOOL("DoubleClickTeleport");
mResetCameraAfterTP = gSavedSettings.getBOOL("OptionRotateCamAfterLocalTP");
mOffsetTPByUserHeight = gSavedSettings.getBOOL("OptionOffsetTPByAgentHeight");
mPreviewAnimInWorld = gSavedSettings.getBOOL("PreviewAnimInWorld");
// mSaveScriptsAsMono = gSavedSettings.getBOOL("SaveScriptsAsMono");
mAlwaysRezInGroup = gSavedSettings.getBOOL("AscentAlwaysRezInGroup");
mBuildAlwaysEnabled = gSavedSettings.getBOOL("AscentBuildAlwaysEnabled");
mAlwaysShowFly = gSavedSettings.getBOOL("AscentFlyAlwaysEnabled");
mDisableMinZoom = gSavedSettings.getBOOL("AscentDisableMinZoomDist");
mPowerUser = gSavedSettings.getBOOL("AscentPowerfulWizard");
mUseSystemFolder = gSavedSettings.getBOOL("AscentUseSystemFolder");
mUploadToSystem = gSavedSettings.getBOOL("AscentSystemTemporary");
mFetchInventoryOnLogin = gSavedSettings.getBOOL("FetchInventoryOnLogin");
mEnableLLWind = gSavedSettings.getBOOL("WindEnabled");
mEnableClouds = gSavedSettings.getBOOL("CloudsEnabled");
mEnableClassicClouds = gSavedSettings.getBOOL("SkyUseClassicClouds");
mSpeedRez = gSavedSettings.getBOOL("SpeedRez");
mSpeedRezInterval = gSavedSettings.getU32("SpeedRezInterval");
//Command Line ------------------------------------------------------------------------
mCmdLine = gSavedSettings.getBOOL("AscentCmdLine");
mCmdLinePos = gSavedSettings.getString("AscentCmdLinePos");
mCmdLineGround = gSavedSettings.getString("AscentCmdLineGround");
mCmdLineHeight = gSavedSettings.getString("AscentCmdLineHeight");
mCmdLineTeleportHome = gSavedSettings.getString("AscentCmdLineTeleportHome");
mCmdLineRezPlatform = gSavedSettings.getString("AscentCmdLineRezPlatform");
mCmdPlatformSize = gSavedSettings.getF32("AscentPlatformSize");
mCmdLineCalc = gSavedSettings.getString("AscentCmdLineCalc");
mCmdLineClearChat = gSavedSettings.getString("AscentCmdLineClearChat");
mCmdLineDrawDistance = gSavedSettings.getString("AscentCmdLineDrawDistance");
mCmdTeleportToCam = gSavedSettings.getString("AscentCmdTeleportToCam");
mCmdLineKeyToName = gSavedSettings.getString("AscentCmdLineKeyToName");
mCmdLineOfferTp = gSavedSettings.getString("AscentCmdLineOfferTp");
mCmdLineMapTo = gSavedSettings.getString("AscentCmdLineMapTo");
mCmdMapToKeepPos = gSavedSettings.getBOOL("AscentMapToKeepPos");
mCmdLineTP2 = gSavedSettings.getString("AscentCmdLineTP2");
//Privacy -----------------------------------------------------------------------------
mBroadcastViewerEffects = gSavedSettings.getBOOL("BroadcastViewerEffects");
mDisablePointAtAndBeam = gSavedSettings.getBOOL("DisablePointAtAndBeam");
mPrivateLookAt = gSavedSettings.getBOOL("PrivateLookAt");
mShowLookAt = gSavedSettings.getBOOL("AscentShowLookAt");
mRevokePermsOnStandUp = gSavedSettings.getBOOL("RevokePermsOnStandUp");
mDisableClickSit = gSavedSettings.getBOOL("DisableClickSit");
mDisplayScriptJumps = gSavedSettings.getBOOL("AscentDisplayTotalScriptJumps");
mNumScriptDiff = gSavedSettings.getF32("Ascentnumscriptdiff");
}
void LLPrefsAscentSys::refresh()
{
childSetEnabled("center_after_teleport_check", mDoubleClickTeleport);
childSetEnabled("offset_teleport_check", mDoubleClickTeleport);
childSetValue("power_user_check", mPowerUser);
childSetValue("power_user_confirm_check", mPowerUser);
childSetEnabled("temp_in_system_check", mUseSystemFolder);
childSetEnabled("speed_rez_interval", mSpeedRez);
childSetEnabled("speed_rez_seconds", mSpeedRez);
childSetEnabled("cmd_line_text_2", mCmdLine);
childSetEnabled("cmd_line_text_3", mCmdLine);
childSetEnabled("cmd_line_text_4", mCmdLine);
childSetEnabled("cmd_line_text_5", mCmdLine);
childSetEnabled("cmd_line_text_6", mCmdLine);
childSetEnabled("cmd_line_text_7", mCmdLine);
childSetEnabled("cmd_line_text_8", mCmdLine);
childSetEnabled("cmd_line_text_9", mCmdLine);
childSetEnabled("cmd_line_text_10", mCmdLine);
childSetEnabled("cmd_line_text_11", mCmdLine);
childSetEnabled("cmd_line_text_12", mCmdLine);
childSetEnabled("cmd_line_text_13", mCmdLine);
childSetEnabled("cmd_line_text_15", mCmdLine);
childSetEnabled("AscentCmdLinePos", mCmdLine);
childSetEnabled("AscentCmdLineGround", mCmdLine);
childSetEnabled("AscentCmdLineHeight", mCmdLine);
childSetEnabled("AscentCmdLineTeleportHome", mCmdLine);
childSetEnabled("AscentCmdLineRezPlatform", mCmdLine);
childSetEnabled("AscentPlatformSize", mCmdLine);
childSetEnabled("AscentCmdLineCalc", mCmdLine);
childSetEnabled("AscentCmdLineClearChat", mCmdLine);
childSetEnabled("AscentCmdLineDrawDistance", mCmdLine);
childSetEnabled("AscentCmdTeleportToCam", mCmdLine);
childSetEnabled("AscentCmdLineKeyToName", mCmdLine);
childSetEnabled("AscentCmdLineOfferTp", mCmdLine);
childSetEnabled("AscentCmdLineMapTo", mCmdLine);
childSetEnabled("map_to_keep_pos", mCmdLine);
childSetEnabled("AscentCmdLineTP2", mCmdLine);
childSetValue("AscentCmdLinePos", mCmdLinePos);
childSetValue("AscentCmdLineGround", mCmdLineGround);
childSetValue("AscentCmdLineHeight", mCmdLineHeight);
childSetValue("AscentCmdLineTeleportHome", mCmdLineTeleportHome);
childSetValue("AscentCmdLineRezPlatform", mCmdLineRezPlatform);
childSetValue("AscentCmdLineCalc", mCmdLineCalc);
childSetValue("AscentCmdLineClearChat", mCmdLineClearChat);
childSetValue("AscentCmdLineDrawDistance", mCmdLineDrawDistance);
childSetValue("AscentCmdTeleportToCam", mCmdTeleportToCam);
childSetValue("AscentCmdLineKeyToName", mCmdLineKeyToName);
childSetValue("AscentCmdLineOfferTp", mCmdLineOfferTp);
childSetValue("AscentCmdLineMapTo", mCmdLineMapTo);
childSetValue("AscentCmdLineTP2", mCmdLineTP2);
}
void LLPrefsAscentSys::cancel()
{
//General -----------------------------------------------------------------------------
gSavedSettings.setBOOL("DoubleClickTeleport", mDoubleClickTeleport);
gSavedSettings.setBOOL("OptionRotateCamAfterLocalTP", mResetCameraAfterTP);
gSavedSettings.setBOOL("OptionOffsetTPByAgentHeight", mOffsetTPByUserHeight);
gSavedSettings.setBOOL("PreviewAnimInWorld", mPreviewAnimInWorld);
// gSavedSettings.setBOOL("SaveScriptsAsMono", mSaveScriptsAsMono);
gSavedSettings.setBOOL("AscentAlwaysRezInGroup", mAlwaysRezInGroup);
gSavedSettings.setBOOL("AscentBuildAlwaysEnabled", mBuildAlwaysEnabled);
gSavedSettings.setBOOL("AscentFlyAlwaysEnabled", mAlwaysShowFly);
gSavedSettings.setBOOL("AscentDisableMinZoomDist", mDisableMinZoom);
gSavedSettings.setBOOL("AscentUseSystemFolder", mUseSystemFolder);
gSavedSettings.setBOOL("AscentSystemTemporary", mUploadToSystem);
gSavedSettings.setBOOL("FetchInventoryOnLogin", mFetchInventoryOnLogin);
gSavedSettings.setBOOL("WindEnabled", mEnableLLWind);
gSavedSettings.setBOOL("CloudsEnabled", mEnableClouds);
gSavedSettings.setBOOL("SkyUseClassicClouds", mEnableClassicClouds);
gSavedSettings.setBOOL("SpeedRez", mSpeedRez);
gSavedSettings.setU32("SpeedRezInterval", mSpeedRezInterval);
//Command Line ------------------------------------------------------------------------
gSavedSettings.setBOOL("AscentCmdLine", mCmdLine);
gSavedSettings.setString("AscentCmdLinePos", mCmdLinePos);
gSavedSettings.setString("AscentCmdLineGround", mCmdLineGround);
gSavedSettings.setString("AscentCmdLineHeight", mCmdLineHeight);
gSavedSettings.setString("AscentCmdLineTeleportHome", mCmdLineTeleportHome);
gSavedSettings.setString("AscentCmdLineRezPlatform", mCmdLineRezPlatform);
gSavedSettings.setF32("AscentPlatformSize", mCmdPlatformSize);
gSavedSettings.setString("AscentCmdLineCalc", mCmdLineCalc);
gSavedSettings.setString("AscentCmdLineClearChat", mCmdLineClearChat);
gSavedSettings.setString("AscentCmdLineDrawDistance", mCmdLineDrawDistance);
gSavedSettings.setString("AscentCmdTeleportToCam", mCmdTeleportToCam);
gSavedSettings.setString("AscentCmdLineKeyToName", mCmdLineKeyToName);
gSavedSettings.setString("AscentCmdLineOfferTp", mCmdLineOfferTp);
gSavedSettings.setString("AscentCmdLineMapTo", mCmdLineMapTo);
gSavedSettings.setBOOL("AscentMapToKeepPos", mCmdMapToKeepPos);
gSavedSettings.setString("AscentCmdLineTP2", mCmdLineTP2);
//Privacy -----------------------------------------------------------------------------
gSavedSettings.setBOOL("BroadcastViewerEffects", mBroadcastViewerEffects);
gSavedSettings.setBOOL("DisablePointAtAndBeam", mDisablePointAtAndBeam);
gSavedSettings.setBOOL("PrivateLookAt", mPrivateLookAt);
gSavedSettings.setBOOL("AscentShowLookAt", mShowLookAt);
gSavedSettings.setBOOL("RevokePermsOnStandUp", mRevokePermsOnStandUp);
gSavedSettings.setBOOL("DisableClickSit", mDisableClickSit);
gSavedSettings.setBOOL("AscentDisplayTotalScriptJumps", mDisplayScriptJumps);
gSavedSettings.setF32("Ascentnumscriptdiff", mNumScriptDiff);
}
void LLPrefsAscentSys::apply()
{
refreshValues();
refresh();
}