From dbe377dd65463ef014a33e78ca219080b819cda2 Mon Sep 17 00:00:00 2001 From: ziree Date: Mon, 7 Jan 2013 21:37:25 +0100 Subject: [PATCH] First draft of settings backup. Lacks selective restore, any form of notification or error messages yet. FIRE-1723 --- indra/llxml/llcontrol.cpp | 36 +- indra/llxml/llcontrol.h | 18 +- indra/newview/app_settings/settings.xml | 636 ++++++++++++++++++ indra/newview/app_settings/settings_files.xml | 16 + .../app_settings/settings_per_account.xml | 4 + indra/newview/llappviewer.cpp | 31 +- indra/newview/llappviewer.h | 5 + indra/newview/llfloaterpreference.cpp | 312 +++++++++ indra/newview/llfloaterpreference.h | 13 + .../default/xui/en/floater_preferences.xml | 7 + .../xui/en/panel_preferences_backup.xml | 68 ++ .../xui/en/floater_preferences.xml | 7 + .../vintage/xui/en/floater_preferences.xml | 9 +- 13 files changed, 1153 insertions(+), 9 deletions(-) create mode 100644 indra/newview/skins/default/xui/en/panel_preferences_backup.xml diff --git a/indra/llxml/llcontrol.cpp b/indra/llxml/llcontrol.cpp index e3d75ed475..1dcd909a4d 100644 --- a/indra/llxml/llcontrol.cpp +++ b/indra/llxml/llcontrol.cpp @@ -133,12 +133,16 @@ bool LLControlVariable::llsd_compare(const LLSD& a, const LLSD & b) LLControlVariable::LLControlVariable(const std::string& name, eControlType type, LLSD initial, const std::string& comment, eSanityType sanityType,LLSD sanityValues,const std::string& sanityComment, - bool persist, bool hidefromsettingseditor + // Backup Settings + // bool persist, bool hidefromsettingseditor + bool persist, bool can_backup, bool hidefromsettingseditor + // ) : mName(name), mComment(comment), mType(type), mPersist(persist), + mCanBackup(can_backup), // Backup Settings mHideFromSettingsEditor(hidefromsettingseditor), mSanityType(sanityType), mSanityComment(sanityComment) @@ -274,6 +278,13 @@ void LLControlVariable::setPersist(bool state) mPersist = state; } +// Backup Settings +void LLControlVariable::setBackupable(bool state) +{ + mCanBackup = state; +} +// + void LLControlVariable::setHiddenFromSettingsEditor(bool hide) { mHideFromSettingsEditor = hide; @@ -427,7 +438,10 @@ std::string LLControlGroup::sanityTypeEnumToString(eSanityType sanitytypeenum) return mSanityTypeString[sanitytypeenum]; } -BOOL LLControlGroup::declareControl(const std::string& name, eControlType type, const LLSD initial_val, const std::string& comment, eSanityType sanity_type, LLSD sanity_value, const std::string& sanity_comment, BOOL persist, BOOL hidefromsettingseditor) +// Backup Settings +//BOOL LLControlGroup::declareControl(const std::string& name, eControlType type, const LLSD initial_val, const std::string& comment, eSanityType sanity_type, LLSD sanity_value, const std::string& sanity_comment, BOOL persist, BOOL hidefromsettingseditor) +BOOL LLControlGroup::declareControl(const std::string& name, eControlType type, const LLSD initial_val, const std::string& comment, eSanityType sanity_type, LLSD sanity_value, const std::string& sanity_comment, BOOL persist, BOOL can_backup, BOOL hidefromsettingseditor) +// { LLControlVariable* existing_control = getControl(name); if (existing_control) @@ -450,7 +464,10 @@ BOOL LLControlGroup::declareControl(const std::string& name, eControlType type, } // if not, create the control and add it to the name table - LLControlVariable* control = new LLControlVariable(name, type, initial_val, comment, sanity_type, sanity_value, sanity_comment, persist, hidefromsettingseditor); + // Backup Settings + // LLControlVariable* control = new LLControlVariable(name, type, initial_val, comment, sanity_type, sanity_value, sanity_comment, persist, hidefromsettingseditor); + LLControlVariable* control = new LLControlVariable(name, type, initial_val, comment, sanity_type, sanity_value, sanity_comment, persist, can_backup, hidefromsettingseditor); + // mNameTable[name] = control; return TRUE; } @@ -885,6 +902,7 @@ U32 LLControlGroup::saveToFile(const std::string& filename, BOOL nondefault_only settings[iter->first]["Type"] = typeEnumToString(control->type()); settings[iter->first]["Comment"] = control->getComment(); settings[iter->first]["Value"] = control->getSaveValue(); + settings[iter->first]["Backup"] = control->isBackupable(); // Backup Settings ++num_saved; } else @@ -937,6 +955,7 @@ U32 LLControlGroup::loadFromFile(const std::string& filename, bool set_default_v for(LLSD::map_const_iterator itr = settings.beginMap(); itr != settings.endMap(); ++itr) { bool persist = true; + bool can_backup = true; // Backup Settings std::string const & name = itr->first; LLSD const & control_map = itr->second; @@ -944,7 +963,14 @@ U32 LLControlGroup::loadFromFile(const std::string& filename, bool set_default_v { persist = control_map["Persist"].asInteger(); } - + + // Backup Settings + if(control_map.has("Backup")) + { + can_backup = control_map["Backup"].asInteger(); + } + // + // Sometimes we want to use the settings system to provide cheap persistence, but we // don't want the settings themselves to be easily manipulated in the UI because // doing so can cause support problems. So we have this option: @@ -972,6 +998,7 @@ U32 LLControlGroup::loadFromFile(const std::string& filename, bool set_default_v existing_control->setPersist(persist); existing_control->setHiddenFromSettingsEditor(hidefromsettingseditor); existing_control->setComment(control_map["Comment"].asString()); + existing_control->setBackupable(can_backup); // Backup Settings } else { @@ -997,6 +1024,7 @@ U32 LLControlGroup::loadFromFile(const std::string& filename, bool set_default_v control_map["SanityValue"], control_map["SanityComment"].asString(), persist, + can_backup, // Backup Settings hidefromsettingseditor ); } diff --git a/indra/llxml/llcontrol.h b/indra/llxml/llcontrol.h index 7a48e32ba4..b03915a35f 100644 --- a/indra/llxml/llcontrol.h +++ b/indra/llxml/llcontrol.h @@ -120,6 +120,7 @@ private: eSanityType mSanityType; std::string mSanityComment; bool mPersist; + bool mCanBackup; // Backup Settings bool mHideFromSettingsEditor; std::vector mValues; std::vector mSanityValues; @@ -134,7 +135,10 @@ public: eSanityType sanityType, LLSD sanityValues, const std::string& sanityComment, - bool persist = true, bool hidefromsettingseditor = false + // Backup Settings + // bool persist = true, bool hidefromsettingseditor = false + bool persist = true, bool can_backup = true, bool hidefromsettingseditor = false + // ); virtual ~LLControlVariable(); @@ -159,6 +163,7 @@ public: bool isSane(); bool isSaveValueDefault(); bool isPersisted() { return mPersist; } + bool isBackupable() { return mCanBackup; } // Backup Settings bool isHiddenFromSettingsEditor() { return mHideFromSettingsEditor; } LLSD get() const { return getValue(); } LLSD getValue() const { return mValues.back(); } @@ -169,6 +174,7 @@ public: void setValue(const LLSD& value, bool saved_value = TRUE); void setDefaultValue(const LLSD& value); void setPersist(bool state); + void setBackupable(bool state); // Backup Settings void setHiddenFromSettingsEditor(bool hide); void setComment(const std::string& comment); @@ -237,7 +243,10 @@ public: }; void applyToAll(ApplyFunctor* func); - BOOL declareControl(const std::string& name, eControlType type, const LLSD initial_val, const std::string& comment, eSanityType sanity_type, LLSD sanity_value, const std::string& sanity_comment, BOOL persist, BOOL hidefromsettingseditor = FALSE); + // Backup Settings + // BOOL declareControl(const std::string& name, eControlType type, const LLSD initial_val, const std::string& comment, eSanityType sanity_type, LLSD sanity_value, const std::string& sanity_comment, BOOL persist, BOOL hidefromsettingseditor = FALSE); + BOOL declareControl(const std::string& name, eControlType type, const LLSD initial_val, const std::string& comment, eSanityType sanity_type, LLSD sanity_value, const std::string& sanity_comment, BOOL persist, BOOL can_backup = TRUE, BOOL hidefromsettingseditor = FALSE); + // BOOL declareU32(const std::string& name, U32 initial_val, const std::string& comment, BOOL persist = TRUE); BOOL declareS32(const std::string& name, S32 initial_val, const std::string& comment, BOOL persist = TRUE); @@ -397,7 +406,10 @@ private: init_value = convert_to_llsd(default_value); if(type < TYPE_COUNT) { - group.declareControl(name, type, init_value, comment, SANITY_TYPE_NONE, LLSD(), std::string(""), FALSE); + // Backup Settings + // group.declareControl(name, type, init_value, comment, SANITY_TYPE_NONE, LLSD(), std::string(""), FALSE); + group.declareControl(name, type, init_value, comment, SANITY_TYPE_NONE, LLSD(), std::string(""), TRUE, FALSE); + // return true; } return false; diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index e5c47521d9..340b05f13e 100755 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -174,6 +174,8 @@ String Value + Backup + 0 OpensimPrefsAddGrid @@ -1239,6 +1241,8 @@ Boolean Value 0 + Backup + 0 RenderVolumeSAThreshold @@ -1330,6 +1334,8 @@ Boolean Value 0 + Backup + 0 RestrainedLoveCanOOC @@ -1484,6 +1490,8 @@ Boolean Value 1 + Backup + 0 RLVaShowNameTags @@ -1540,6 +1548,8 @@ Boolean Value 0 + Backup + 0 SearchURLDebug @@ -1574,6 +1584,8 @@ String Value http://crashlogs.phoenixviewer.com/upload + Backup + 0 AFKTimeout @@ -1685,6 +1697,8 @@ Boolean Value 0 + Backup + 0 AppearanceCameraMovement @@ -1829,6 +1843,8 @@ F32 Value 1.0 + Backup + 0 AudioLevelMedia @@ -2258,6 +2274,8 @@ U32 Value 70 + Backup + 0 AvatarBakedLocalTextureUpdateTimeout @@ -2269,6 +2287,8 @@ U32 Value 10 + Backup + 0 AvatarPhysics @@ -2303,6 +2323,8 @@ S32 Value 40 + Backup + 0 BrowserHomePage @@ -2325,6 +2347,8 @@ Boolean Value 0 + Backup + 0 BrowserEnableJSObject @@ -2347,6 +2371,8 @@ Boolean Value 0 + Backup + 0 BlockSomeAvatarAppearanceVisualParams @@ -2358,6 +2384,8 @@ Boolean Value 0 + Backup + 0 BrowserProxyAddress @@ -2380,6 +2408,8 @@ Boolean Value 0 + Backup + 0 BrowserProxyExclusions @@ -2424,6 +2454,8 @@ Boolean Value 0 + Backup + 0 HttpProxyType @@ -2864,6 +2896,8 @@ U32 Value 0 + Backup + 0 CameraMouseWheelZoom @@ -2886,6 +2920,8 @@ F32 Value 1.047197551 + Backup + 0 CameraOffset @@ -2897,6 +2933,8 @@ Boolean Value 0 + Backup + 0 CameraOffsetBuild @@ -2912,6 +2950,8 @@ 0.0 6.0 + Backup + 0 CameraOffsetRearView @@ -2926,6 +2966,8 @@ -3.0 0.0 0.75 + Backup + 0 CameraOffsetFrontView @@ -2942,6 +2984,8 @@ 0.0 0.0 + Backup + 0 CameraOffsetGroupView @@ -2957,6 +3001,8 @@ 0.7 0.5 + Backup + 0 CameraOffsetScale @@ -2968,6 +3014,8 @@ F32 Value 1.0 + Backup + 0 CameraPosOnLogout @@ -2983,6 +3031,8 @@ 0.0 0.0 + Backup + 0 CameraPositionSmoothing @@ -3005,6 +3055,8 @@ U32 Value 0 + Backup + 0 CameraFocusTransitionTime @@ -3334,6 +3386,8 @@ Boolean Value 0 + Backup + 0 ConnectionPort @@ -3356,6 +3410,8 @@ Boolean Value 0 + Backup + 0 ConsoleBackgroundOpacity @@ -3411,6 +3467,8 @@ Boolean Value 1 + Backup + 0 BrowserJavascriptEnabled @@ -3422,6 +3480,8 @@ Boolean Value 1 + Backup + 0 BrowserPluginsEnabled @@ -3433,6 +3493,8 @@ Boolean Value 1 + Backup + 0 ChatBarCustomWidth @@ -3521,6 +3583,8 @@ S32 Value 256 + Backup + 0 CurlRequestTimeOut @@ -3532,6 +3596,8 @@ F32 Value 120.0 + Backup + 0 CurlUseMultipleThreads @@ -3543,6 +3609,8 @@ Boolean Value 1 + Backup + 0 Cursor3D @@ -3565,6 +3633,8 @@ String Value + Backup + 0 CustomServer @@ -3576,6 +3646,8 @@ String Value + Backup + 0 DebugAvatarRezTime @@ -3587,6 +3659,8 @@ Boolean Value 0 + Backup + 0 DebugAvatarLocalTexLoadedTime @@ -3598,6 +3672,8 @@ Boolean Value 1 + Backup + 0 DebugBeaconLineWidth @@ -3631,6 +3707,8 @@ Boolean Value 0 + Backup + 0 DebugPermissions @@ -3642,6 +3720,8 @@ Boolean Value 0 + Backup + 0 DebugPluginDisableTimeout @@ -3653,6 +3733,8 @@ Boolean Value 0 + Backup + 0 DebugShowColor @@ -3664,6 +3746,8 @@ S32 Value 0 + Backup + 0 DebugShowMemory @@ -3675,6 +3759,8 @@ Boolean Value 0 + Backup + 0 DebugShowPrivateMem @@ -3686,6 +3772,8 @@ Boolean Value 0 + Backup + 0 DebugShowRenderInfo @@ -3697,6 +3785,8 @@ Boolean Value 0 + Backup + 0 DebugShowRenderMatrices @@ -3708,6 +3798,8 @@ Boolean Value 0 + Backup + 0 DebugShowTextureInfo @@ -3719,6 +3811,8 @@ Boolean Value 0 + Backup + 0 DebugShowTime @@ -3730,6 +3824,8 @@ Boolean Value 0 + Backup + 0 DebugShowUploadCost @@ -4445,6 +4541,8 @@ Boolean Value 0 + Backup + 0 DebugWindowProc @@ -4456,6 +4554,8 @@ Boolean Value 0 + Backup + 0 DefaultFemaleAvatar @@ -4501,6 +4601,8 @@ U32 Value 10 + Backup + 0 DestinationGuideURL @@ -4512,6 +4614,8 @@ String Value http://lecs-viewer-web-components.s3.amazonaws.com/v3.0/[GRID_LOWERCASE]/guide.html + Backup + 0 DisableCameraConstraints @@ -4556,6 +4660,8 @@ Boolean Value 0 + Backup + 0 DisableTextHyperlinkActions @@ -4567,6 +4673,8 @@ Boolean Value 0 + Backup + 0 DisableVerticalSync @@ -4578,6 +4686,8 @@ Boolean Value 1 + Backup + 0 DisplayAvatarAgentTarget @@ -4589,6 +4699,8 @@ Boolean Value 0 + Backup + 0 DisplayChat @@ -4666,6 +4778,8 @@ Boolean Value 0 + Backup + 0 Disregard128DefaultDrawDistance @@ -4754,6 +4868,8 @@ F32 Value 0.5 + Backup + 0 DragAndDropToolTipDelay @@ -4776,6 +4892,8 @@ S32 Value 3 + Backup + 0 DropShadowButton @@ -4831,6 +4949,8 @@ Boolean Value 0 + Backup + 0 DynamicCameraStrength @@ -4952,6 +5072,8 @@ Boolean Value 1 + Backup + 0 EnableTextureAtlas @@ -4971,6 +5093,8 @@ SanityComment This is an experimental feature and might result in textures being stretched in a weird way across surfaces. + Backup + 0 EnableUIHints @@ -5070,6 +5194,8 @@ String Value http://viewer-settings.secondlife.com + Backup + 0 FPSLogFrequency @@ -5081,6 +5207,8 @@ F32 Value 10.0 + Backup + 0 FilterItemsPerFrame @@ -5092,6 +5220,8 @@ S32 Value 500 + Backup + 0 FindLandArea @@ -5180,6 +5310,8 @@ Boolean Value 1 + Backup + 0 FirstLoginThisInstall @@ -5191,6 +5323,8 @@ Boolean Value 1 + Backup + 0 FixedWeather @@ -5538,6 +5672,8 @@ Boolean Value 0 + Backup + 0 FocusOffsetRearView @@ -5553,6 +5689,8 @@ 0.0 1.0 + Backup + 0 FocusOffsetFrontView @@ -5568,6 +5706,8 @@ 0.0 0.0 + Backup + 0 FocusOffsetGroupView @@ -5583,6 +5723,8 @@ 0.7 1.0 + Backup + 0 FocusPosOnLogout @@ -5598,6 +5740,8 @@ 0.0 0.0 + Backup + 0 FolderAutoOpenDelay @@ -5609,6 +5753,8 @@ F32 Value 0.75 + Backup + 0 FolderLoadingMessageWaitTime @@ -5620,6 +5766,8 @@ F32 Value 0.5 + Backup + 0 FontScreenDPI @@ -5643,6 +5791,8 @@ U32 Value 255 + Backup + 0 ForceInitialCOFDelay @@ -5654,6 +5804,8 @@ F32 Value 0.0 + Backup + 0 ForceShowGrid @@ -5676,6 +5828,8 @@ Boolean Value 0 + Backup + 0 ForceMissingType @@ -5687,6 +5841,8 @@ U32 Value 255 + Backup + 0 FreezeTime @@ -5819,6 +5975,8 @@ String Value http://wiki.phoenixviewer.com/[TOPIC] + Backup + 0 HowToHelpURL @@ -5830,6 +5988,8 @@ String Value http://www.phoenixviewer.com/viewerfloater/howtofloater/index.html + Backup + 0 HomeSidePanelURL @@ -5841,6 +6001,8 @@ String Value https://viewer-sidebar.secondlife.com/sidebar.html + Backup + 0 SearchURL @@ -5852,6 +6014,8 @@ String Value http://search.secondlife.com/viewer/[CATEGORY]/?q=[QUERY]&p=[AUTH_TOKEN]&r=[MATURITY]&lang=[LANGUAGE]&sid=[SESSION_ID] + Backup + 0 @@ -5899,6 +6063,8 @@ Boolean Value 0 + Backup + 0 HostID @@ -5921,6 +6087,8 @@ String Value + Backup + 0 IMShowControlPanel @@ -5954,6 +6122,8 @@ Boolean Value 0 + Backup + 0 ImagePipelineUseHTTP @@ -6075,6 +6245,8 @@ Boolean Value 1 + Backup + 0 InventoryOutboxLogging @@ -6086,6 +6258,8 @@ Boolean Value 0 + Backup + 0 InventoryOutboxMaxFolderCount @@ -6273,6 +6447,8 @@ String Value + Backup + 0 JoystickMouselookYaw @@ -6308,6 +6484,8 @@ Boolean Value 0 + Backup + 0 Jpeg2000PrecinctsSize @@ -6320,6 +6498,8 @@ S32 Value 256 + Backup + 0 Jpeg2000BlocksSize @@ -6332,6 +6512,8 @@ S32 Value 64 + Backup + 0 @@ -6467,6 +6649,8 @@ String Value http://wiki.secondlife.com/wiki/[LSL_STRING] + Backup + 0 LagMeterShrunk @@ -6511,6 +6695,8 @@ String Value + Backup + 0 LastFeatureVersion @@ -6522,6 +6708,8 @@ S32 Value 0 + Backup + 0 LastFindPanel @@ -6533,6 +6721,8 @@ String Value find_all_panel + Backup + 0 LastName @@ -6555,6 +6745,8 @@ S32 Value 0 + Backup + 0 LastMediaSettingsTab @@ -6566,6 +6758,8 @@ S32 Value 0 + Backup + 0 LastRunVersion @@ -6577,6 +6771,8 @@ String Value 0.0.0 + Backup + 0 LastSnapshotToProfileHeight @@ -6754,6 +6950,8 @@ Boolean Value 0 + Backup + 0 LegacyMultiAttachmentSupport @@ -6864,6 +7062,8 @@ S32 Value 0 + Backup + 0 LocalFileSystemBrowsingEnabled @@ -6930,6 +7130,8 @@ Boolean Value 0 + Backup + 0 LoginLocation @@ -6952,6 +7154,8 @@ String Value + Backup + 0 LosslessJ2CUpload @@ -6974,6 +7178,8 @@ F32 Value 60.0 + Backup + 0 MapOverlayIndex @@ -7524,6 +7730,8 @@ F32 Value 1.6 + Backup + 0 MaxSelectDistance @@ -7546,6 +7754,8 @@ F32 Value 60.0 + Backup + 0 MediaPluginDebugging @@ -7557,6 +7767,8 @@ Boolean Value 0 + Backup + 0 MediaControlFadeTime @@ -7639,6 +7851,8 @@ Boolean Value 0 + Backup + 0 MediaShowOnOthers @@ -7716,6 +7930,8 @@ Boolean Value 0 + Backup + 0 MemoryPrivatePoolSize @@ -7727,6 +7943,8 @@ U32 Value 512 + Backup + 0 MemProfiling @@ -7738,6 +7956,8 @@ Boolean Value 0 + Backup + 0 MenuAccessKeyTime @@ -7782,6 +8002,8 @@ Boolean Value 0 + Backup + 0 MeshEnabled @@ -7815,6 +8037,8 @@ Boolean Value 0 + Backup + 0 MeshUploadFakeErrors @@ -7826,6 +8050,8 @@ S32 Value 0 + Backup + 0 MeshUploadTimeOut @@ -7837,6 +8063,8 @@ S32 Value 600 + Backup + 0 MigrateCacheDirectory @@ -7848,6 +8076,8 @@ Boolean Value 0 + Backup + 0 MiniMapPrimMaxRadius @@ -7958,6 +8188,8 @@ Boolean Value 0 + Backup + 0 MuteMedia @@ -7969,6 +8201,8 @@ Boolean Value 0 + Backup + 0 MuteMusic @@ -7980,6 +8214,8 @@ Boolean Value 0 + Backup + 0 MuteSounds @@ -7991,6 +8227,8 @@ Boolean Value 0 + Backup + 0 MuteUI @@ -8002,6 +8240,8 @@ Boolean Value 0 + Backup + 0 MuteVoice @@ -8013,6 +8253,8 @@ Boolean Value 0 + Backup + 0 MuteWhenMinimized @@ -8112,6 +8354,8 @@ String Value + Backup + 0 NewCacheLocationTopFolder @@ -8123,6 +8367,8 @@ String Value + Backup + 0 NextLoginLocation @@ -8134,6 +8380,8 @@ String Value + Backup + 0 NoAudio @@ -8145,6 +8393,8 @@ Boolean Value 0 + Backup + 0 NoHardwareProbe @@ -8156,6 +8406,8 @@ Boolean Value 0 + Backup + 0 NoInventoryLibrary @@ -8711,6 +8963,8 @@ Change of this parameter will affect the layout of buttons in notification toast F32 Value 5.0 + Backup + 0 PicksPerSecondMouseStationary @@ -8722,6 +8976,8 @@ Change of this parameter will affect the layout of buttons in notification toast F32 Value 0.0 + Backup + 0 PieMenuLineWidth @@ -8744,6 +9000,8 @@ Change of this parameter will affect the layout of buttons in notification toast Boolean Value 0 + Backup + 0 PitchFromMousePosition @@ -8777,6 +9035,8 @@ Change of this parameter will affect the layout of buttons in notification toast Boolean Value 0 + Backup + 0 PluginInstancesCPULimit @@ -8857,6 +9117,8 @@ Change of this parameter will affect the layout of buttons in notification toast String Value + Backup + 0 PostFirstLoginIntroViewed @@ -8868,6 +9130,8 @@ Change of this parameter will affect the layout of buttons in notification toast Boolean Value 0 + Backup + 0 PrecachingDelay @@ -8879,6 +9143,8 @@ Change of this parameter will affect the layout of buttons in notification toast F32 Value 6.0 + Backup + 0 PreferredMaturity @@ -9115,6 +9381,8 @@ Change of this parameter will affect the layout of buttons in notification toast F32 Value 1.0 + Backup + 0 PrimMediaRetryTimerDelay @@ -9126,6 +9394,8 @@ Change of this parameter will affect the layout of buttons in notification toast F32 Value 5.0 + Backup + 0 PrimMediaMaxSortedQueueSize @@ -9137,6 +9407,8 @@ Change of this parameter will affect the layout of buttons in notification toast U32 Value 100000 + Backup + 0 PrimMediaMaxRoundRobinQueueSize @@ -9148,6 +9420,8 @@ Change of this parameter will affect the layout of buttons in notification toast U32 Value 100000 + Backup + 0 ProbeHardwareOnStartup @@ -9170,6 +9444,8 @@ Change of this parameter will affect the layout of buttons in notification toast Boolean Value 0 + Backup + 0 PurgeCacheOnStartup @@ -9189,6 +9465,8 @@ Change of this parameter will affect the layout of buttons in notification toast SanityComment Purging your cache on each login will add more traffic to the asset servers and your world will load a lot slower. Please only clear your cache when you see issues with inventory, texture or sculpties loading. + Backup + 0 PushToTalkButton @@ -9222,6 +9500,8 @@ Change of this parameter will affect the layout of buttons in notification toast Boolean Value 0 + Backup + 0 QAModeEventHostPort @@ -9255,6 +9535,8 @@ Change of this parameter will affect the layout of buttons in notification toast Boolean Value 0 + Backup + 0 QuitAfterSeconds @@ -9267,6 +9549,8 @@ Change of this parameter will affect the layout of buttons in notification toast F32 Value 0.0 + Backup + 0 QuitAfterSecondsOfAFK @@ -9291,6 +9575,8 @@ Change of this parameter will affect the layout of buttons in notification toast Boolean Value 0 + Backup + 0 RadioLandBrushAction @@ -9423,6 +9709,8 @@ Change of this parameter will affect the layout of buttons in notification toast Boolean Value 0 + Backup + 0 QuickBuyCurrency @@ -9468,6 +9756,8 @@ Change of this parameter will affect the layout of buttons in notification toast U32 Value 128 + Backup + 0 OctreeStaticObjectSizeFactor @@ -9480,6 +9770,8 @@ Change of this parameter will affect the layout of buttons in notification toast S32 Value 4 + Backup + 0 OctreeAlphaDistanceFactor @@ -9496,6 +9788,8 @@ Change of this parameter will affect the layout of buttons in notification toast 0.0 0.0 + Backup + 0 OctreeAttachmentSizeFactor @@ -9508,6 +9802,8 @@ Change of this parameter will affect the layout of buttons in notification toast S32 Value 4 + Backup + 0 OctreeDistanceFactor @@ -9524,6 +9820,8 @@ Change of this parameter will affect the layout of buttons in notification toast 0.0 0.0 + Backup + 0 RenderAnisotropic @@ -9602,6 +9900,8 @@ Change of this parameter will affect the layout of buttons in notification toast S32 Value -1 + Backup + 0 RenderComplexityColorMin @@ -9661,6 +9961,8 @@ Change of this parameter will affect the layout of buttons in notification toast S32 Value -1 + Backup + 0 RenderComplexityStaticMax @@ -9673,6 +9975,8 @@ Change of this parameter will affect the layout of buttons in notification toast S32 Value -1 + Backup + 0 RenderAvatarLODFactor @@ -9770,6 +10074,8 @@ Change of this parameter will affect the layout of buttons in notification toast 256 256 + Backup + 0 RenderShadowClipPlanes @@ -9785,6 +10091,8 @@ Change of this parameter will affect the layout of buttons in notification toast 12.0 32.0 + Backup + 0 RenderShadowSplitExponent @@ -9800,6 +10108,8 @@ Change of this parameter will affect the layout of buttons in notification toast 3.0 2.0 + Backup + 0 RenderShadowOrthoClipPlanes @@ -9815,6 +10125,8 @@ Change of this parameter will affect the layout of buttons in notification toast 8.0 24.0 + Backup + 0 RenderShadowProjOffset @@ -9826,6 +10138,8 @@ Change of this parameter will affect the layout of buttons in notification toast F32 Value 2.0 + Backup + 0 RenderShadowSlopeThreshold @@ -9837,6 +10151,8 @@ Change of this parameter will affect the layout of buttons in notification toast F32 Value 0.0 + Backup + 0 RenderShadowProjExponent @@ -9848,6 +10164,8 @@ Change of this parameter will affect the layout of buttons in notification toast F32 Value 0.5 + Backup + 0 RenderSSAOScale @@ -9859,6 +10177,8 @@ Change of this parameter will affect the layout of buttons in notification toast F32 Value 500.0 + Backup + 0 RenderSSAOMaxScale @@ -9870,6 +10190,8 @@ Change of this parameter will affect the layout of buttons in notification toast U32 Value 200 + Backup + 0 RenderSSAOFactor @@ -9881,6 +10203,8 @@ Change of this parameter will affect the layout of buttons in notification toast F32 Value 0.30 + Backup + 0 RenderSSAOEffect @@ -9896,6 +10220,8 @@ Change of this parameter will affect the layout of buttons in notification toast 1.00 0.00 + Backup + 0 RenderBumpmapMinDistanceSquared @@ -9907,6 +10233,8 @@ Change of this parameter will affect the layout of buttons in notification toast F32 Value 100.0 + Backup + 0 RenderNormalMapScale @@ -9918,6 +10246,8 @@ Change of this parameter will affect the layout of buttons in notification toast F32 Value 64 + Backup + 0 RenderCubeMap @@ -9929,6 +10259,8 @@ Change of this parameter will affect the layout of buttons in notification toast Boolean Value 1 + Backup + 0 RenderDebugAlphaMask @@ -9940,6 +10272,8 @@ Change of this parameter will affect the layout of buttons in notification toast F32 Value 0.5 + Backup + 0 RenderDebugGL @@ -9951,6 +10285,8 @@ Change of this parameter will affect the layout of buttons in notification toast Boolean Value 0 + Backup + 0 RenderDebugNormalScale @@ -9973,6 +10309,8 @@ Change of this parameter will affect the layout of buttons in notification toast Boolean Value 0 + Backup + 0 RenderMaxTextureIndex @@ -9995,6 +10333,8 @@ Change of this parameter will affect the layout of buttons in notification toast Boolean Value 0 + Backup + 0 RenderDelayCreation @@ -10006,6 +10346,8 @@ Change of this parameter will affect the layout of buttons in notification toast Boolean Value 0 + Backup + 0 RenderAnimateRes @@ -10030,6 +10372,8 @@ Change of this parameter will affect the layout of buttons in notification toast Boolean Value 0 + Backup + 0 RenderNoAlpha @@ -10042,6 +10386,8 @@ Change of this parameter will affect the layout of buttons in notification toast Boolean Value 0 + Backup + 0 RenderMinimumLODTriangleCount @@ -10054,6 +10400,8 @@ Change of this parameter will affect the layout of buttons in notification toast U32 Value 16 + Backup + 0 RenderEdgeDepthCutoff @@ -10066,6 +10414,8 @@ Change of this parameter will affect the layout of buttons in notification toast F32 Value 0.01 + Backup + 0 RenderEdgeNormCutoff @@ -10077,6 +10427,8 @@ Change of this parameter will affect the layout of buttons in notification toast F32 Value 0.25 + Backup + 0 RenderDeferredAlphaSoften @@ -10089,6 +10441,8 @@ Change of this parameter will affect the layout of buttons in notification toast F32 Value 0.75 + Backup + 0 RenderDeferredNoise @@ -10100,6 +10454,8 @@ Change of this parameter will affect the layout of buttons in notification toast F32 Value 4 + Backup + 0 RenderDeferredSpotShadowBias @@ -10111,6 +10467,8 @@ Change of this parameter will affect the layout of buttons in notification toast F32 Value -64.0 + Backup + 0 RenderDeferredSpotShadowOffset @@ -10122,6 +10480,8 @@ Change of this parameter will affect the layout of buttons in notification toast F32 Value 0.8 + Backup + 0 RenderShadowBias @@ -10134,6 +10494,8 @@ Change of this parameter will affect the layout of buttons in notification toast F32 Value -0.008 + Backup + 0 RenderShadowOffset @@ -10145,6 +10507,8 @@ Change of this parameter will affect the layout of buttons in notification toast F32 Value 0.01 + Backup + 0 RenderShadowBiasError @@ -10156,6 +10520,8 @@ Change of this parameter will affect the layout of buttons in notification toast F32 Value -0.007 + Backup + 0 RenderShadowOffsetError @@ -10167,6 +10533,8 @@ Change of this parameter will affect the layout of buttons in notification toast F32 Value 0 + Backup + 0 RenderDepthPrePass @@ -10179,6 +10547,8 @@ Change of this parameter will affect the layout of buttons in notification toast Boolean Value 0 + Backup + 0 RenderDepthOfField @@ -10227,6 +10597,8 @@ Change of this parameter will affect the layout of buttons in notification toast F32 Value -0.001 + Backup + 0 RenderSpotShadowOffset @@ -10238,6 +10610,8 @@ Change of this parameter will affect the layout of buttons in notification toast F32 Value 0.04 + Backup + 0 RenderShadowResolutionScale @@ -10250,6 +10624,8 @@ Change of this parameter will affect the layout of buttons in notification toast F32 Value 1.0 + Backup + 0 RenderDeferredTreeShadowBias @@ -10262,6 +10638,8 @@ Change of this parameter will affect the layout of buttons in notification toast F32 Value 1.0 + Backup + 0 RenderDeferredTreeShadowOffset @@ -10273,6 +10651,8 @@ Change of this parameter will affect the layout of buttons in notification toast F32 Value 1.0 + Backup + 0 RenderHoverGlowEnable @@ -10285,6 +10665,8 @@ Change of this parameter will affect the layout of buttons in notification toast Boolean Value 0 + Backup + 0 RenderHighlightFadeTime @@ -10350,6 +10732,8 @@ Change of this parameter will affect the layout of buttons in notification toast U32 Value 512 + Backup + 0 RenderSpecularResY @@ -10362,6 +10746,8 @@ Change of this parameter will affect the layout of buttons in notification toast U32 Value 128 + Backup + 0 RenderSpecularExponent @@ -10374,6 +10760,8 @@ Change of this parameter will affect the layout of buttons in notification toast F32 Value 384 + Backup + 0 RenderDeferred @@ -10398,6 +10786,8 @@ Change of this parameter will affect the layout of buttons in notification toast Boolean Value 1 + Backup + 0 RenderDeferredAtmospheric @@ -10410,6 +10800,8 @@ Change of this parameter will affect the layout of buttons in notification toast Boolean Value 1 + Backup + 0 RenderDeferredSSAO @@ -10422,6 +10814,8 @@ Change of this parameter will affect the layout of buttons in notification toast Boolean Value 1 + Backup + 0 RenderDeferredBlurLight @@ -10434,6 +10828,8 @@ Change of this parameter will affect the layout of buttons in notification toast Boolean Value 1 + Backup + 0 RenderDeferredSunWash @@ -10446,6 +10842,8 @@ Change of this parameter will affect the layout of buttons in notification toast F32 Value 0.5 + Backup + 0 RenderShadowNoise @@ -10457,6 +10855,8 @@ Change of this parameter will affect the layout of buttons in notification toast F32 Value -0.0001 + Backup + 0 RenderShadowErrorCutoff @@ -10468,6 +10868,8 @@ Change of this parameter will affect the layout of buttons in notification toast F32 Value 5.0 + Backup + 0 RenderShadowFOVCutoff @@ -10479,6 +10881,8 @@ Change of this parameter will affect the layout of buttons in notification toast F32 Value 0.8 + Backup + 0 RenderShadowGaussian @@ -10495,6 +10899,8 @@ Change of this parameter will affect the layout of buttons in notification toast 2.0 0.0 + Backup + 0 RenderShadowBlurSize @@ -10507,6 +10913,8 @@ Change of this parameter will affect the layout of buttons in notification toast F32 Value 1.4 + Backup + 0 RenderShadowBlurSamples @@ -10518,6 +10926,8 @@ Change of this parameter will affect the layout of buttons in notification toast U32 Value 4 + Backup + 0 RenderShadowBlurDistFactor @@ -10529,6 +10939,8 @@ Change of this parameter will affect the layout of buttons in notification toast F32 Value 0 + Backup + 0 RenderDynamicLOD @@ -10541,6 +10953,8 @@ Change of this parameter will affect the layout of buttons in notification toast Boolean Value 1 + Backup + 0 RenderFSAASamples @@ -10640,6 +11054,8 @@ Change of this parameter will affect the layout of buttons in notification toast Boolean Value 0 + Backup + 0 RenderGlow @@ -10769,6 +11185,8 @@ Change of this parameter will affect the layout of buttons in notification toast Boolean Value 1 + Backup + 0 RenderHUDInSnapshot @@ -10791,6 +11209,8 @@ Change of this parameter will affect the layout of buttons in notification toast Boolean Value 0 + Backup + 0 RenderHighlightSelections @@ -10879,6 +11299,8 @@ Change of this parameter will affect the layout of buttons in notification toast Boolean Value 0 + Backup + 0 RenderLightRadius @@ -10912,6 +11334,8 @@ Change of this parameter will affect the layout of buttons in notification toast S32 Value 65536 + Backup + 0 RenderMaxVBOSize @@ -10923,6 +11347,8 @@ Change of this parameter will affect the layout of buttons in notification toast S32 Value 512 + Backup + 0 RenderNameFadeDuration @@ -11023,6 +11449,8 @@ Change of this parameter will affect the layout of buttons in notification toast U32 Value 1 + Backup + 0 RenderShaderLightingMaxLevel @@ -11045,6 +11473,8 @@ Change of this parameter will affect the layout of buttons in notification toast F32 Value 1.0 + Backup + 0 RenderShaderParticleThreshold @@ -11056,6 +11486,8 @@ Change of this parameter will affect the layout of buttons in notification toast F32 Value 0.25 + Backup + 0 RenderSunDynamicRange @@ -11067,6 +11499,8 @@ Change of this parameter will affect the layout of buttons in notification toast F32 Value 1.0 + Backup + 0 RenderTerrainDetail @@ -11177,6 +11611,8 @@ Change of this parameter will affect the layout of buttons in notification toast Boolean Value 0 + Backup + 0 RenderUnloadedAvatar @@ -11199,6 +11635,8 @@ Change of this parameter will affect the layout of buttons in notification toast Boolean Value 0 + Backup + 0 RenderUseFarClip @@ -11210,6 +11648,8 @@ Change of this parameter will affect the layout of buttons in notification toast Boolean Value 1 + Backup + 0 RenderUseImpostors @@ -11232,6 +11672,8 @@ Change of this parameter will affect the layout of buttons in notification toast U32 Value 0 + Backup + 0 RenderAutoMuteSurfaceAreaLimit @@ -11243,6 +11685,8 @@ Change of this parameter will affect the layout of buttons in notification toast F32 Value 0 + Backup + 0 RenderAutoHideSurfaceAreaLimit @@ -11255,6 +11699,8 @@ Change of this parameter will affect the layout of buttons in notification toast F32 Value 0 + Backup + 0 RenderVBOEnable @@ -11278,6 +11724,8 @@ Change of this parameter will affect the layout of buttons in notification toast Boolean Value 0 + Backup + 0 RenderUseTransformFeedback @@ -11289,6 +11737,8 @@ Change of this parameter will affect the layout of buttons in notification toast Boolean Value 0 + Backup + 0 RenderVBOMappingDisable @@ -11301,6 +11751,8 @@ Change of this parameter will affect the layout of buttons in notification toast Boolean Value 1 + Backup + 0 RenderUseStreamVBO @@ -11323,6 +11775,8 @@ Change of this parameter will affect the layout of buttons in notification toast Boolean Value 0 + Backup + 0 RenderVolumeLODFactor @@ -11345,6 +11799,8 @@ Change of this parameter will affect the layout of buttons in notification toast Boolean Value 1 + Backup + 0 RenderWaterMipNormal @@ -11356,6 +11812,8 @@ Change of this parameter will affect the layout of buttons in notification toast Boolean Value 1 + Backup + 0 RenderWaterRefResolution @@ -11367,6 +11825,8 @@ Change of this parameter will affect the layout of buttons in notification toast S32 Value 512 + Backup + 0 RenderParcelSelection @@ -11389,6 +11849,8 @@ Change of this parameter will affect the layout of buttons in notification toast Boolean Value 0 + Backup + 0 RotationStep @@ -11411,6 +11873,8 @@ Change of this parameter will affect the layout of buttons in notification toast U32 Value 250000 + Backup + 0 MeshMetaDataDiscount @@ -11422,6 +11886,8 @@ Change of this parameter will affect the layout of buttons in notification toast U32 Value 384 + Backup + 0 MeshMinimumByteSize @@ -11433,6 +11899,8 @@ Change of this parameter will affect the layout of buttons in notification toast U32 Value 16 + Backup + 0 MeshBytesPerTriangle @@ -11444,6 +11912,8 @@ Change of this parameter will affect the layout of buttons in notification toast U32 Value 16 + Backup + 0 MeshMaxConcurrentRequests @@ -11467,6 +11937,8 @@ Change of this parameter will affect the layout of buttons in notification toast Boolean Value 0 + Backup + 0 SafeMode @@ -11478,6 +11950,8 @@ Change of this parameter will affect the layout of buttons in notification toast Boolean Value 0 + Backup + 0 SaveMinidump @@ -11687,6 +12161,8 @@ Change of this parameter will affect the layout of buttons in notification toast S32 Value 0 + Backup + 0 ShareWithGroup @@ -11742,6 +12218,8 @@ Change of this parameter will affect the layout of buttons in notification toast Boolean Value 0 + Backup + 0 ShowBanLines @@ -11775,6 +12253,8 @@ Change of this parameter will affect the layout of buttons in notification toast Boolean Value 0 + Backup + 0 NavBarShowCoordinates @@ -11830,6 +12310,8 @@ Change of this parameter will affect the layout of buttons in notification toast Boolean Value 0 + Backup + 0 ShowEmptyFoldersWhenSearching @@ -12361,6 +12843,8 @@ Change of this parameter will affect the layout of buttons in notification toast Boolean Value 0 + Backup + 0 ShowParcelOwners @@ -12438,6 +12922,8 @@ Change of this parameter will affect the layout of buttons in notification toast Boolean Value 0 + Backup + 0 ShowTutorial @@ -12449,6 +12935,8 @@ Change of this parameter will affect the layout of buttons in notification toast Boolean Value 0 + Backup + 0 ShowVoiceVisualizersInCalls @@ -12493,6 +12981,8 @@ Change of this parameter will affect the layout of buttons in notification toast F32 Value 0.300000011921 + Backup + 0 SkyNightColorShift @@ -12508,6 +12998,8 @@ Change of this parameter will affect the layout of buttons in notification toast 0.67 1.0 + Backup + 0 SkyOverrideSimSunPosition @@ -12622,6 +13114,8 @@ Change of this parameter will affect the layout of buttons in notification toast String Value http://photos.apps.staging.avatarsunited.com/viewer_config + Backup + 0 SpeedTest @@ -12633,6 +13127,8 @@ Change of this parameter will affect the layout of buttons in notification toast Boolean Value 0 + Backup + 0 StatsAutoRun @@ -12644,6 +13140,8 @@ Change of this parameter will affect the layout of buttons in notification toast Boolean Value 0 + Backup + 0 StatsFile @@ -12655,6 +13153,8 @@ Change of this parameter will affect the layout of buttons in notification toast String Value fs.txt + Backup + 0 StatsNumRuns @@ -12666,6 +13166,8 @@ Change of this parameter will affect the layout of buttons in notification toast S32 Value -1 + Backup + 0 StatsPilotFile @@ -12677,6 +13179,8 @@ Change of this parameter will affect the layout of buttons in notification toast String Value pilot.txt + Backup + 0 StatsPilotXMLFile @@ -12688,6 +13192,8 @@ Change of this parameter will affect the layout of buttons in notification toast String Value pilot.xml + Backup + 0 StatsQuitAfterRuns @@ -12699,6 +13205,8 @@ Change of this parameter will affect the layout of buttons in notification toast Boolean Value 0 + Backup + 0 StatsSessionTrackFrameStats @@ -12710,6 +13218,8 @@ Change of this parameter will affect the layout of buttons in notification toast Boolean Value 0 + Backup + 0 StatsSummaryFile @@ -12721,6 +13231,8 @@ Change of this parameter will affect the layout of buttons in notification toast String Value fss.txt + Backup + 0 SysinfoButtonInIM @@ -12798,6 +13310,8 @@ Change of this parameter will affect the layout of buttons in notification toast F32 Value 1.0 + Backup + 0 TextureCameraMotionThreshold @@ -12809,6 +13323,8 @@ Change of this parameter will affect the layout of buttons in notification toast F32 Value 0.2 + Backup + 0 TextureCameraMotionBoost @@ -12820,6 +13336,8 @@ Change of this parameter will affect the layout of buttons in notification toast S32 Value 3 + Backup + 0 TextureDecodeDisabled @@ -12831,6 +13349,8 @@ Change of this parameter will affect the layout of buttons in notification toast Boolean Value 0 + Backup + 0 TextureDisable @@ -12850,6 +13370,8 @@ Change of this parameter will affect the layout of buttons in notification toast SanityComment This will cause textures not to load at all, sculpties will be deformed or look like spheres. + Backup + 0 TextureDiscardLevel @@ -12869,6 +13391,8 @@ Change of this parameter will affect the layout of buttons in notification toast SanityComment This might cause textures to look blurry and sculpties might fail to load properly. + Backup + 0 TextureFetchConcurrency @@ -12891,6 +13415,8 @@ Change of this parameter will affect the layout of buttons in notification toast Boolean Value 0 + Backup + 0 TextureFetchSource @@ -12902,6 +13428,8 @@ Change of this parameter will affect the layout of buttons in notification toast S32 Value 0 + Backup + 0 TextureFetchUpdateHighPriority @@ -12913,6 +13441,8 @@ Change of this parameter will affect the layout of buttons in notification toast S32 Value 32 + Backup + 0 TextureFetchUpdateMaxMediumPriority @@ -12924,6 +13454,8 @@ Change of this parameter will affect the layout of buttons in notification toast S32 Value 256 + Backup + 0 TextureFetchUpdateMinMediumPriority @@ -12935,6 +13467,8 @@ Change of this parameter will affect the layout of buttons in notification toast S32 Value 32 + Backup + 0 TextureFetchUpdatePriorityThreshold @@ -12946,6 +13480,8 @@ Change of this parameter will affect the layout of buttons in notification toast F32 Value 0.0 + Backup + 0 TextureFetchUpdateSkipLowPriority @@ -12957,6 +13493,8 @@ Change of this parameter will affect the layout of buttons in notification toast Boolean Value 0 + Backup + 0 TextureFetchUpdatePriorities @@ -12968,6 +13506,8 @@ Change of this parameter will affect the layout of buttons in notification toast S32 Value 32 + Backup + 0 TextureLoadFullRes @@ -13009,6 +13549,8 @@ Change of this parameter will affect the layout of buttons in notification toast Boolean Value 1 + Backup + 0 TexturePickerShowFolders @@ -13042,6 +13584,8 @@ Change of this parameter will affect the layout of buttons in notification toast S32 Value 50 + Backup + 0 ThrottleBandwidthKBPS @@ -13416,6 +13960,8 @@ Change of this parameter will affect the layout of buttons in notification toast Boolean Value 0 + Backup + 0 UIFloaterTitleVPad @@ -14487,6 +15033,8 @@ Change of this parameter will affect the layout of buttons in notification toast Boolean Value 0 + Backup + 0 UseAltKeyForMenus @@ -14553,6 +15101,8 @@ Change of this parameter will affect the layout of buttons in notification toast Boolean Value 0 + Backup + 0 UseDebugMenus @@ -14715,6 +15265,8 @@ Change of this parameter will affect the layout of buttons in notification toast Boolean Value 1 + Backup + 0 RenderDelayVBUpdate @@ -14726,6 +15278,8 @@ Change of this parameter will affect the layout of buttons in notification toast Boolean Value 0 + Backup + 0 sourceid @@ -14737,6 +15291,8 @@ Change of this parameter will affect the layout of buttons in notification toast String Value + Backup + 0 SpeakerParticipantDefaultOrder @@ -14814,6 +15370,8 @@ Change of this parameter will affect the layout of buttons in notification toast Boolean Value 0 + Backup + 0 UserConnectionPort @@ -14825,6 +15383,8 @@ Change of this parameter will affect the layout of buttons in notification toast U32 Value 0 + Backup + 0 UserLogFile @@ -14891,6 +15451,8 @@ Change of this parameter will affect the layout of buttons in notification toast U32 Value 0 + Backup + 0 VFSSalt @@ -14902,6 +15464,8 @@ Change of this parameter will affect the layout of buttons in notification toast U32 Value 1 + Backup + 0 VelocityInterpolate @@ -14946,6 +15510,8 @@ Change of this parameter will affect the layout of buttons in notification toast Boolean Value 0 + Backup + 0 VerifyInitialWearables @@ -14957,6 +15523,8 @@ Change of this parameter will affect the layout of buttons in notification toast Boolean Value 0 + Backup + 0 VertexShaderEnable @@ -14979,6 +15547,8 @@ Change of this parameter will affect the layout of buttons in notification toast Boolean Value 0 + Backup + 0 VivoxDebugLevel @@ -14990,6 +15560,8 @@ Change of this parameter will affect the layout of buttons in notification toast String Value -1 + Backup + 0 VivoxDebugSIPURIHostName @@ -15001,6 +15573,8 @@ Change of this parameter will affect the layout of buttons in notification toast String Value + Backup + 0 VivoxDebugVoiceAccountServerURI @@ -15012,6 +15586,8 @@ Change of this parameter will affect the layout of buttons in notification toast String Value + Backup + 0 VivoxVoiceHost @@ -15023,6 +15599,8 @@ Change of this parameter will affect the layout of buttons in notification toast String Value 127.0.0.1 + Backup + 0 VivoxVoicePort @@ -15034,6 +15612,8 @@ Change of this parameter will affect the layout of buttons in notification toast U32 Value 44125 + Backup + 0 VoiceCallsFriendsOnly @@ -15122,6 +15702,8 @@ Change of this parameter will affect the layout of buttons in notification toast String Value 127.0.0.1 + Backup + 0 VoiceImageLevel0 @@ -15221,6 +15803,8 @@ Change of this parameter will affect the layout of buttons in notification toast String Value + Backup + 0 VoiceOutputAudioDevice @@ -15254,6 +15838,8 @@ Change of this parameter will affect the layout of buttons in notification toast U32 Value 44125 + Backup + 0 WarningsAsChat @@ -15545,6 +16131,8 @@ Change of this parameter will affect the layout of buttons in notification toast S32 Value -1 + Backup + 0 ZoomDirect @@ -15614,6 +16202,8 @@ Change of this parameter will affect the layout of buttons in notification toast Boolean Value 0 + Backup + 0 renderhighlights @@ -15625,6 +16215,8 @@ Change of this parameter will affect the layout of buttons in notification toast Boolean Value 1 + Backup + 0 scriptsbeacon @@ -15702,6 +16294,8 @@ Change of this parameter will affect the layout of buttons in notification toast Boolean Value 0 + Backup + 0 LogTextureDownloadsToSimulator @@ -15713,6 +16307,8 @@ Change of this parameter will affect the layout of buttons in notification toast Boolean Value 0 + Backup + 0 TextureLoggingThreshold @@ -15724,6 +16320,8 @@ Change of this parameter will affect the layout of buttons in notification toast U32 Value 1 + Backup + 0 FSHighlightGroupMods @@ -16583,6 +17187,8 @@ Change of this parameter will affect the layout of buttons in notification toast String Value + Backup + 0 UserSessionSettingsFile @@ -16594,6 +17200,8 @@ Change of this parameter will affect the layout of buttons in notification toast String Value + Backup + 0 OpenSidePanelsInFloaters @@ -16826,6 +17434,8 @@ Change of this parameter will affect the layout of buttons in notification toast String Value http://common-flash-secondlife-com.s3.amazonaws.com/viewer/v2.6/agni/404.html + Backup + 0 OpenIMOnVoice @@ -16875,6 +17485,8 @@ Change of this parameter will affect the layout of buttons in notification toast Boolean Value 0 + Backup + 0 ShowHelpOnFirstLogin @@ -16886,6 +17498,8 @@ Change of this parameter will affect the layout of buttons in notification toast Boolean Value 0 + Backup + 0 PathfindingRetrieveNeighboringRegion @@ -17993,6 +18607,8 @@ Change of this parameter will affect the layout of buttons in notification toast S32 Value 3 + Backup + 0 @@ -18641,6 +19257,8 @@ Change of this parameter will affect the layout of buttons in notification toast Boolean Value 0 + Backup + 0 FSPlayCollisionSounds @@ -18864,6 +19482,8 @@ Change of this parameter will affect the layout of buttons in notification toast F32 Value 0.0 + Backup + 0 FSRenderFarClipStepping @@ -18908,6 +19528,8 @@ Change of this parameter will affect the layout of buttons in notification toast Boolean Value 0 + Backup + 0 FSUseStandalonePlaceDetailsFloater @@ -19043,5 +19665,19 @@ Change of this parameter will affect the layout of buttons in notification toast Value 1 + + + SettingsBackupPath + + Comment + Path where settings were last backed up. + Persist + 1 + Type + String + Value + + + diff --git a/indra/newview/app_settings/settings_files.xml b/indra/newview/app_settings/settings_files.xml index 8566c80aad..bbd38a9281 100644 --- a/indra/newview/app_settings/settings_files.xml +++ b/indra/newview/app_settings/settings_files.xml @@ -13,6 +13,22 @@ + + + + + + + diff --git a/indra/newview/app_settings/settings_per_account.xml b/indra/newview/app_settings/settings_per_account.xml index ec636a0d27..ff42f85156 100644 --- a/indra/newview/app_settings/settings_per_account.xml +++ b/indra/newview/app_settings/settings_per_account.xml @@ -100,6 +100,8 @@ String Value 00000 + Backup + 0 FSMutedAvatarResponse @@ -177,6 +179,8 @@ Boolean Value 1 + Backup + 0 LastInventoryInboxActivity diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index 2e43fad2a2..ea58fc04d9 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -686,6 +686,7 @@ LLAppViewer::LLAppViewer() : mPeriodicSlowFrame(LLCachedControl(gSavedSettings,"Periodic Slow Frame", FALSE)), mFastTimerLogThread(NULL), mUpdater(new LLUpdaterService()), + mSaveSettingsOnExit(true), // Backup Settings mSettingsLocationList(NULL) { if(NULL != sInstance) @@ -1764,6 +1765,10 @@ bool LLAppViewer::cleanup() llinfos << "Cleaning Up" << llendflush; + // Backup Settings + if(mSaveSettingsOnExit) + { + // // FIRE-4871: Save per-account settings earlier -- TS std::string per_account_settings_file = gSavedSettings.getString("PerAccountSettingsFile"); if (per_account_settings_file.empty()) @@ -1785,6 +1790,13 @@ bool LLAppViewer::cleanup() } gSavedSettings.saveToFile(gSavedSettings.getString("ClientSettingsFile"), TRUE); // /FIRE-4871 + // Backup Settings + } + else + { + llinfos << "Not saving settings, to prevent settings restore failure." << llendl; + } + // // shut down mesh streamer gMeshRepo.shutdown(); @@ -1979,9 +1991,12 @@ bool LLAppViewer::cleanup() // Must do this after all panels have been deleted because panels that have persistent rects // save their rects on delete. - gSavedSettings.saveToFile(gSavedSettings.getString("ClientSettingsFile"), TRUE); + if(mSaveSettingsOnExit) // Backup Settings + { + gSavedSettings.saveToFile(gSavedSettings.getString("ClientSettingsFile"), TRUE); LLUIColorTable::instance().saveUserSettings(); + } // Backup Settings // std::string skinSaved = gSavedSettings.getString("SkinCurrent"); @@ -1996,6 +2011,11 @@ bool LLAppViewer::cleanup() // + // Backup Settings + if(mSaveSettingsOnExit) + { + std::string per_account_settings_file = gSavedSettings.getString("PerAccountSettingsFile"); + // // PerAccountSettingsFile should be empty if no user has been logged on. // *FIX:Mani This should get really saved in a "logoff" mode. // FIRE-4871: use the same file we picked out earlier -- TS @@ -2016,15 +2036,24 @@ bool LLAppViewer::cleanup() llinfos << "Second time: Saved per-account settings to " << per_account_settings_file << llendflush; } + // Backup Settings + } + else + { + llinfos << "Not saving settings, to prevent settings restore failure." << llendl; + } + // // We need to save all crash settings, even if they're defaults [see LLCrashLogger::loadCrashBehaviorSetting()] gCrashSettings.saveToFile(gSavedSettings.getString("CrashSettingsFile"),FALSE); //std::string warnings_settings_filename = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, getSettingsFilename("Default", "Warnings")); std::string warnings_settings_filename = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, getSettingsFilename("User", "Warnings")); + if(mSaveSettingsOnExit) // Backup Settings gWarningSettings.saveToFile(warnings_settings_filename, TRUE); // Save URL history file + if(mSaveSettingsOnExit) // Backup Settings LLURLHistory::saveFile("url_history.xml"); // save mute list. gMuteList used to also be deleted here too. diff --git a/indra/newview/llappviewer.h b/indra/newview/llappviewer.h index b493366370..651042dc56 100644 --- a/indra/newview/llappviewer.h +++ b/indra/newview/llappviewer.h @@ -312,6 +312,11 @@ public: void launchUpdater(); //--------------------------------------------- + + // Backup Settings + void setSaveSettingsOnExit(bool state) {mSaveSettingsOnExit = state; }; + bool mSaveSettingsOnExit; + // }; // consts from viewer.h diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp index 746d8258e4..d136ef8c7e 100644 --- a/indra/newview/llfloaterpreference.cpp +++ b/indra/newview/llfloaterpreference.cpp @@ -125,6 +125,15 @@ #include "llviewernetwork.h" // +// Backup Settings +#include "llline.h" +#include "llspellcheck.h" +#include "lltoolbarview.h" +#include "llwaterparammanager.h" +#include "llwldaycycle.h" +#include "llwlparammanager.h" +// + const F32 MAX_USER_FAR_CLIP = 512.f; const F32 MIN_USER_FAR_CLIP = 64.f; // FIRE-6340, FIRE-6567 - Setting Bandwidth issues @@ -480,6 +489,12 @@ LLFloaterPreference::LLFloaterPreference(const LLSD& key) mCommitCallbackRegistrar.add("Pref.ClickActionChange", boost::bind(&LLFloaterPreference::onClickActionChange, this)); + // Backup settings + mCommitCallbackRegistrar.add("Pref.SetBackupSettingsPath", boost::bind(&LLFloaterPreference::onClickSetBackupSettingsPath, this)); + mCommitCallbackRegistrar.add("Pref.BackupSettings", boost::bind(&LLFloaterPreference::onClickBackupSettings, this)); + mCommitCallbackRegistrar.add("Pref.RestoreSettings", boost::bind(&LLFloaterPreference::onClickRestoreSettings, this)); + // + gSavedSettings.getControl("NameTagShowUsernames")->getCommitSignal()->connect(boost::bind(&handleNameTagOptionChanged, _2)); gSavedSettings.getControl("NameTagShowFriends")->getCommitSignal()->connect(boost::bind(&handleNameTagOptionChanged, _2)); gSavedSettings.getControl("UseDisplayNames")->getCommitSignal()->connect(boost::bind(&handleDisplayNamesOptionChanged, _2)); @@ -490,6 +505,34 @@ LLFloaterPreference::LLFloaterPreference(const LLSD& key) gSavedSettings.getControl("FSPublishRadarTag")->getCommitSignal()->connect(boost::bind(&handlePublishRadarTagOptionChanged, _2)); LLAvatarPropertiesProcessor::getInstance()->addObserver( gAgent.getID(), this ); + + // Backup Settings + // make a list of global files to copy + mGlobalFiles.push_back("bin_conf.dat"); // login credentials and accounts + mGlobalFiles.push_back("colors.xml"); + mGlobalFiles.push_back("ignorable_dialogs.xml"); + mGlobalFiles.push_back("grids.user.xml"); + mGlobalFiles.push_back("settings_autocorrect.xml"); + + // make a list of per account files to copy + mPerAccountFiles.push_back("asset_blacklist.xml"); + mPerAccountFiles.push_back("filters.xml"); + mPerAccountFiles.push_back("landmarks_sorting.xml"); + mPerAccountFiles.push_back("medialist.xml"); + mPerAccountFiles.push_back("muted_groups.xml"); + mPerAccountFiles.push_back("toolbars.xml"); + mPerAccountFiles.push_back("volume_settings.xml"); // voice chat volumes + mPerAccountFiles.push_back("teleport_history.txt"); + + // make a list of folders to copy (flat file, non recursive) + mGlobalFolders.push_back("beams"); // custom selection beams + mGlobalFolders.push_back("beamsColors"); // custom selection beam colors + mGlobalFolders.push_back("dictionaries"); // user defined words/ignores + mGlobalFolders.push_back("windlight"); // base windlight settings folder + mGlobalFolders.push_back("windlight/days"); // windlight day cycles + mGlobalFolders.push_back("windlight/skies"); // windlight sky presets + mGlobalFolders.push_back("windlight/water"); // windlight water presets + // } void LLFloaterPreference::processProperties( void* pData, EAvatarProcessorType type ) @@ -635,6 +678,12 @@ BOOL LLFloaterPreference::postBuild() // Show email address in preferences (FIRE-1071) getChild("send_im_to_email")->setLabelArg("[EMAIL]", getString("LoginToChange")); + // Backup Settings + // Apparently, line editors don't update with their settings controls, so do that manually here + std::string dir_name=gSavedSettings.getString("SettingsBackupPath"); + getChild("settings_backup_path")->setValue(dir_name); + // + return TRUE; } @@ -2943,6 +2992,269 @@ void LLPanelPreferenceSkins::refreshSkinThemeList() } // [/SL:KB] +// Backup Settings +// copied from llxfer_file.cpp - Hopefully this will be part of LLFile some day -Zi +S32 copy_prefs_file(const std::string& from, const std::string& to) +{ + llwarns << "copying " << from << " to " << to << llendl; + S32 rv = 0; + LLFILE* in = LLFile::fopen(from, "rb"); /*Flawfinder: ignore*/ + LLFILE* out = LLFile::fopen(to, "wb"); /*Flawfinder: ignore*/ + if(in && out) + { + S32 read = 0; + const S32 COPY_BUFFER_SIZE = 16384; + U8 buffer[COPY_BUFFER_SIZE]; + while(((read = fread(buffer, 1, sizeof(buffer), in)) > 0) + && (fwrite(buffer, 1, read, out) == (U32)read)); /* Flawfinder : ignore */ + if(ferror(in) || ferror(out)) rv = -2; + } + else + { + rv = -1; + } + if(in) fclose(in); + if(out) fclose(out); + return rv; +} + +void LLFloaterPreference::onClickSetBackupSettingsPath() +{ + std::string dir_name=gSavedSettings.getString("SettingsBackupPath"); + LLDirPicker& picker=LLDirPicker::instance(); + if(!picker.getDir(&dir_name)) + { + // canceled + return; + } + + dir_name=picker.getDirName(); + gSavedSettings.setString("SettingsBackupPath",dir_name); + getChild("settings_backup_path")->setValue(dir_name); +} + +void LLFloaterPreference::onClickBackupSettings() +{ + // get settings backup path + std::string dir_name=gSavedSettings.getString("SettingsBackupPath"); + + // If we don't have a path yet, ask the user + if(dir_name.empty()) + onClickSetBackupSettingsPath(); + + // If we still don't have a path, do nothing + dir_name=gSavedSettings.getString("SettingsBackupPath"); + if(dir_name.empty()) + return; + + // get path and file names to the relevant settings files + std::string userlower=gDirUtilp->getBaseFileName(gDirUtilp->getLindenUserDir(),false); + std::string backup_per_account_folder=dir_name+gDirUtilp->getDirDelimiter()+userlower; + + std::string backup_global_name=gDirUtilp->getExpandedFilename(LL_PATH_NONE,dir_name, + LLAppViewer::instance()->getSettingsFilename("Default","BackupGlobal")); + std::string backup_per_account_name=gDirUtilp->getExpandedFilename(LL_PATH_NONE,backup_per_account_folder, + LLAppViewer::instance()->getSettingsFilename("Default","BackupPerAccount")); + std::string per_account_name=gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, + LLAppViewer::instance()->getSettingsFilename("Default","PerAccount")); + + // define a couple of control groups to store the settings to back up + LLControlGroup backup_global_controls("BackupGlobal"); + LLControlGroup backup_per_account_controls("BackupPerAccount"); + + // functor that will go over all settings in a control group and copy the ones that are + // meant to be backed up + struct f : public LLControlGroup::ApplyFunctor + { + LLControlGroup* group; // our control group that will hold the backup controls + f(LLControlGroup* g) : group(g) {} // constructor, initializing group variable + virtual void apply(const std::string& name, LLControlVariable* control) + { + if(!control->isPersisted() && !control->isBackupable()) + { + llwarns << "Settings control " << control->getName() << ": non persistant controls don't need to be set not backupable." << llendl; + return; + } + + // only backup settings that are not default, are persistent an are marked as "safe" to back up + if(!control->isDefault() && control->isPersisted() && control->isBackupable()) + { + llwarns << control->getName() << llendl; + // copy the control to our backup group + (*group).declareControl( + control->getName(), + control->type(), + control->getValue(), + control->getComment(), + SANITY_TYPE_NONE, + LLSD(), + std::string(), + TRUE); // need to set persisitent flag, or it won't be saved + } + } + } func_global(&backup_global_controls), func_per_account(&backup_per_account_controls); + + // run backup on global controls + gSavedSettings.applyToAll(&func_global); + + // make sure to write color preferences before copying them + LLUIColorTable::instance().saveUserSettings(); + + // set it to save defaults, too (FALSE), because our declaration automatically + // makes the value default + backup_global_controls.saveToFile(backup_global_name,FALSE); + + for(S32 index=0;indexgetExpandedFilename(LL_PATH_USER_SETTINGS,mGlobalFiles[index]), + gDirUtilp->getExpandedFilename(LL_PATH_NONE,dir_name,mGlobalFiles[index])); + } + + // Only back up per-account settings when the path is available, meaning, the user + // has logged in + if(!per_account_name.empty()) + { + // create per-user folder if it doesn't exist yet + LLFile::mkdir(backup_per_account_folder.c_str()); + + // check if the path is actually a folder + if(LLFile::isdir(backup_per_account_folder.c_str())) + { + // run backup on per-account controls + gSavedPerAccountSettings.applyToAll(&func_per_account); + // save defaults here as well (FALSE) + backup_per_account_controls.saveToFile(backup_per_account_name,FALSE); + + for(S32 index=0;indexgetExpandedFilename(LL_PATH_PER_SL_ACCOUNT,mPerAccountFiles[index]), + gDirUtilp->getExpandedFilename(LL_PATH_NONE,backup_per_account_folder,mPerAccountFiles[index])); + } + } + else + llwarns << backup_per_account_folder << " is not a folder. Per account settings save aborted." << llendl; + } + + // copy global folders and their contents + for(S32 index=0;indexgetExpandedFilename(LL_PATH_USER_SETTINGS,mGlobalFolders[index])+gDirUtilp->getDirDelimiter(); + std::string backup_folder_name=gDirUtilp->getExpandedFilename(LL_PATH_NONE,dir_name,mGlobalFolders[index])+gDirUtilp->getDirDelimiter(); + + llwarns << "found folder: " << folder_name << llendl; + + // create folder if it's not there already + LLFile::mkdir(backup_folder_name.c_str()); + while(gDirUtilp->getNextFileInDir(folder_name,"*",file_name)) + { + llwarns << "found entry: " << folder_name+file_name << llendl; + // only copy files, not subfolders + if(LLFile::isfile(folder_name+file_name.c_str())) + { + copy_prefs_file(folder_name+file_name,backup_folder_name+file_name); + } + } + } +} + +void LLFloaterPreference::onClickRestoreSettings() +{ + // close the window so the restored settings can't be destroyed by the user + onBtnOK(); + + std::string dir_name=gSavedSettings.getString("SettingsBackupPath"); + + if(dir_name.empty()) + onClickSetBackupSettingsPath(); + + dir_name=gSavedSettings.getString("SettingsBackupPath"); + if(dir_name.empty()) + return; + + // get path and file names to the relevant settings files + std::string userlower=gDirUtilp->getBaseFileName(gDirUtilp->getLindenUserDir(),false); + std::string backup_per_account_folder=dir_name+gDirUtilp->getDirDelimiter()+userlower; + + std::string global_name=gSavedSettings.getString("ClientSettingsFile"); + std::string backup_global_name=gDirUtilp->getExpandedFilename(LL_PATH_NONE,dir_name, + LLAppViewer::instance()->getSettingsFilename("Default","BackupGlobal")); + std::string per_account_name=gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, + LLAppViewer::instance()->getSettingsFilename("Default","PerAccount")); + std::string backup_per_account_name=gDirUtilp->getExpandedFilename(LL_PATH_NONE,backup_per_account_folder, + LLAppViewer::instance()->getSettingsFilename("Default","BackupPerAccount")); + std::string backup_colors_name=gDirUtilp->getExpandedFilename(LL_PATH_NONE,dir_name, + LLAppViewer::instance()->getSettingsFilename("Default","BackupColors")); + std::string warnings_name=gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, + LLAppViewer::instance()->getSettingsFilename("Default","Warnings")); + std::string backup_warnings_name=gDirUtilp->getExpandedFilename(LL_PATH_NONE,dir_name, + LLAppViewer::instance()->getSettingsFilename("Default","BackupWarnings")); + + // start clean + gSavedSettings.resetToDefaults(); + + // run restore on global controls + gSavedSettings.loadFromFile(backup_global_name); + gSavedSettings.saveToFile(global_name,TRUE); + + for(S32 index=0;indexgetExpandedFilename(LL_PATH_NONE,dir_name,mGlobalFiles[index]), + gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS,mGlobalFiles[index])); + } + + // Only restore per-account settings when the path is available, meaning, the user + // has logged in + if(!backup_per_account_name.empty()) + { + // run restore on per-account controls + gSavedPerAccountSettings.loadFromFile(backup_per_account_name); + gSavedPerAccountSettings.saveToFile(per_account_name,TRUE); + + for(S32 index=0;indexgetExpandedFilename(LL_PATH_NONE,backup_per_account_folder,mPerAccountFiles[index]), + gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT,mPerAccountFiles[index])); + } + } + + // toolbars get overwritten when LLToolbarView is destroyed, so make sure + // the toolbars are updated here already + gToolBarView->clearToolbars(); + gToolBarView->loadToolbars(FALSE); + + // restore global folders and their contents + for(S32 index=0;indexgetExpandedFilename(LL_PATH_USER_SETTINGS,mGlobalFolders[index])+gDirUtilp->getDirDelimiter(); + std::string backup_folder_name=gDirUtilp->getExpandedFilename(LL_PATH_NONE,dir_name,mGlobalFolders[index])+gDirUtilp->getDirDelimiter(); + + // create folder if it's not there already + LLFile::mkdir(folder_name.c_str()); + while(gDirUtilp->getNextFileInDir(folder_name,"*",file_name)) + { + llwarns << "found entry: " << backup_folder_name+file_name << llendl; + // only restore files, not subfolders + if(LLFile::isfile(backup_folder_name+file_name.c_str())) + { + copy_prefs_file(backup_folder_name+file_name,folder_name+file_name); + } + } + } + + // Make sure the viewer will not save any settings on exit, so our copied files will survive + LLAppViewer::instance()->setSaveSettingsOnExit(FALSE); + + // And quit the viewer so all gets saved immediately + LLApp::instance()->setQuitting(); +} +// + #ifdef HAS_OPENSIM_SUPPORT// // static LLRegisterPanelClassWrapper t_pref_opensim("panel_preference_opensim"); diff --git a/indra/newview/llfloaterpreference.h b/indra/newview/llfloaterpreference.h index 074fa51665..a127c54a35 100644 --- a/indra/newview/llfloaterpreference.h +++ b/indra/newview/llfloaterpreference.h @@ -197,6 +197,12 @@ public: void buildPopupLists(); static void refreshSkin(void* data); + + // Backup settings + void onClickSetBackupSettingsPath(); + void onClickBackupSettings(); + void onClickRestoreSettings(); + // private: static std::string sSkin; bool mClickActionDirty; ///< Set to true when the click/double-click options get changed by user. @@ -209,6 +215,13 @@ private: std::string mDirectoryVisibility; LLAvatarData mAvatarProperties; + +// Backup settings +protected: + std::vector mGlobalFiles; // list of global settings files to copy + std::vector mGlobalFolders; // list of global folders to copy + std::vector mPerAccountFiles; // list of per account settings files to copy +// }; class LLPanelPreference : public LLPanel diff --git a/indra/newview/skins/default/xui/en/floater_preferences.xml b/indra/newview/skins/default/xui/en/floater_preferences.xml index bd3460f9a8..867b723c76 100644 --- a/indra/newview/skins/default/xui/en/floater_preferences.xml +++ b/indra/newview/skins/default/xui/en/floater_preferences.xml @@ -173,5 +173,12 @@ layout="topleft" help_topic="preferences_opensim_tab" name="opensim" /> + diff --git a/indra/newview/skins/default/xui/en/panel_preferences_backup.xml b/indra/newview/skins/default/xui/en/panel_preferences_backup.xml new file mode 100644 index 0000000000..9c6a1ff916 --- /dev/null +++ b/indra/newview/skins/default/xui/en/panel_preferences_backup.xml @@ -0,0 +1,68 @@ + + + +Backup Path: + + + + + + + + + + diff --git a/indra/newview/skins/starlightcui/xui/en/floater_preferences.xml b/indra/newview/skins/starlightcui/xui/en/floater_preferences.xml index 852a2903e1..926308ff29 100644 --- a/indra/newview/skins/starlightcui/xui/en/floater_preferences.xml +++ b/indra/newview/skins/starlightcui/xui/en/floater_preferences.xml @@ -180,5 +180,12 @@ layout="topleft" help_topic="preferences_opensim_tab" name="opensim" /> + diff --git a/indra/newview/skins/vintage/xui/en/floater_preferences.xml b/indra/newview/skins/vintage/xui/en/floater_preferences.xml index 2bb4f63498..dc36e2db97 100644 --- a/indra/newview/skins/vintage/xui/en/floater_preferences.xml +++ b/indra/newview/skins/vintage/xui/en/floater_preferences.xml @@ -9,7 +9,7 @@ help_topic="preferences" save_rect="true" single_instance="true" - title="PREFERENCES" + title="Preferences" width="658"> @@ -174,5 +174,12 @@ layout="topleft" help_topic="preferences_opensim_tab" name="opensim" /> +