diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index b869de05d4..059c6eaee1 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -1560,6 +1560,7 @@ set(viewer_APPSETTINGS_FILES app_settings/mid_graphics.xml app_settings/grids.fallback.xml app_settings/account_settings_phoenix.xml + app_settings/settings_firestorm.xml app_settings/settings_hybrid.xml app_settings/settings_phoenix.xml app_settings/settings_v3.xml diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index dcfaeeb8e8..141751bc77 100755 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -16199,7 +16199,7 @@ Change of this parameter will affect the layout of buttons in notification toast Comment Settings that are a applied per session (not saved). Persist - 0 + 1 Type String Value @@ -16210,7 +16210,7 @@ Change of this parameter will affect the layout of buttons in notification toast Comment User settings that are a applied per session (not saved). Persist - 0 + 1 Type String Value diff --git a/indra/newview/app_settings/settings_firestorm.xml b/indra/newview/app_settings/settings_firestorm.xml new file mode 100644 index 0000000000..d74e1a3327 --- /dev/null +++ b/indra/newview/app_settings/settings_firestorm.xml @@ -0,0 +1,278 @@ + + + + ShowNetStats + + Comment + Show the Status Indicators for the Viewer and Network Usage in the Status Overlay. + Persist + 1 + Type + Boolean + Value + 1 + + + ShowNavbarNavigationPanel + + Comment + Show/Hide Navigation Bar Navigation Panel + Persist + 1 + Type + Boolean + Value + 1 + + + OnlineOfflinetoNearbyChat + + Comment + Send online/offline notifications to Nearby Chat panel (v1-style behavior) + Persist + 1 + Type + Boolean + Value + 1 + + + ChatOnlineNotification + + Comment + Provide notifications for when friend log on and off of SL + Persist + 1 + Type + Boolean + Value + 0 + + + OpenSidePanelsInFloaters + + Comment + Open Panels in Floaters + Type + Boolean + Value + 1 + + + FSShowMouselookInstructions + + Comment + If true, instructions about leaving Mouseview are displayed. + Persist + 1 + Type + Boolean + Value + 0 + + + SkinCurrent + + Comment + The currently selected skin. + Persist + 1 + Type + String + Value + firestorm + + + SkinCurrentTheme + + Comment + The selected theme for the current skin. + Persist + 1 + Type + String + Value + grey + + + LetterKeysFocusChatBar + + Comment + When printable characters keys (possibly with Shift held) are pressed, the chat bar takes focus + Persist + 1 + Type + S32 + Value + 1 + + + FSColorClienttags + + Comment + Color Clienttags by: 0=Off, 1=Single color per Viewer, 2=Userdefinied color (one color per UUID), 3=New Tagsystem Color + Persist + 1 + Type + U32 + Value + 2 + + + FSScriptDialogNoTransparency + + Comment + If true, script dialogs will be shown opaque and ignore the floater opacity settings. + Persist + 1 + Type + Boolean + Value + 1 + + + ShowRadarMinimap + + Comment + Toggle visibility of the embedded minimap in the radar panel + Persist + 1 + Type + Boolean + Value + 0 + + + FSUseNearbyChatConsole + + Comment + Display popup chat embedded into the read-only world console (v1-style) instead of overlayed floaters (v2-style) + Persist + 1 + Type + Boolean + Value + 1 + + + ShowScriptDialogsTopRight + + Comment + Show script llDialog floaters always in the top right corner of the screen. + Persist + 1 + Type + Boolean + Value + 1 + + + EnableGroupChatPopups + + Comment + Enable Incoming Group Chat Popups + Persist + 1 + Type + Boolean + Value + 0 + + + EnableIMChatPopups + + Comment + Enable Incoming IM Chat Popups + Persist + 1 + Type + Boolean + Value + 0 + + + PlainTextChatHistory + + Comment + Enable/Disable plain text chat history style + Persist + 1 + Type + Boolean + Value + 1 + + + ShowChatMiniIcons + + Comment + Toggles the display of mini icons in chat history + Persist + 1 + Type + Boolean + Value + 0 + + + ChatWindow + + Comment + Show chat in multiple windows(by default) or in one multi-tabbed window(requires restart) + Persist + 1 + Type + S32 + Value + 1 + + + FSUseWebProfiles + + Comment + Shows web profiles instead of the v1-style profile floater + Persist + 1 + Type + Boolean + Value + 0 + + + FSFolderViewItemHeight + + Comment + Controls the height of folder items, for instance in inventory + Persist + 1 + Type + S32 + Value + 18 + + + ShowGroupNoticesTopRight + + Comment + Show group notifications to the top right corner of the screen. + Persist + 1 + Type + Boolean + Value + 1 + + + FSConsoleClassicDrawMode + + Comment + Enables classic console draw mode (single background block over all lines with width of the longest line) + Persist + 1 + Type + Boolean + Value + 1 + + + diff --git a/indra/newview/app_settings/settings_phoenix.xml b/indra/newview/app_settings/settings_phoenix.xml index dcda0ed9fa..dee84ac0c9 100644 --- a/indra/newview/app_settings/settings_phoenix.xml +++ b/indra/newview/app_settings/settings_phoenix.xml @@ -68,7 +68,7 @@ Type String Value - firestorm + vintage SkinCurrentTheme @@ -80,7 +80,7 @@ Type String Value - grey + classic LetterKeysFocusChatBar diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index 66d2e7c84a..d81c19c2d7 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -780,6 +780,7 @@ bool LLAppViewer::init() LLFile::remove(gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, "releases.xml")); LLFile::remove(gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, "client_list_v2.xml")); + LLFile::remove(gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, "settings_firestorm.xml")); LLFile::remove(gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, "settings_phoenix.xml")); LLFile::remove(gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, "settings_hybrid.xml")); LLFile::remove(gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, "settings_v3.xml")); @@ -2482,7 +2483,7 @@ bool LLAppViewer::initConfiguration() //Wolfspirit: Temporary fix for NOT loading settings_minimal.xml if (gSavedSettings.getBOOL("FirstRunThisInstall")) { - gSavedSettings.setString("SessionSettingsFile", "settings_phoenix.xml"); + gSavedSettings.setString("SessionSettingsFile", "settings_firestorm.xml"); // Note that the "FirstRunThisInstall" settings is currently unused. gSavedSettings.setBOOL("FirstRunThisInstall", FALSE); diff --git a/indra/newview/llfloaterabout.cpp b/indra/newview/llfloaterabout.cpp index 67bf98f272..de2bf23807 100644 --- a/indra/newview/llfloaterabout.cpp +++ b/indra/newview/llfloaterabout.cpp @@ -264,7 +264,8 @@ LLSD LLFloaterAbout::getInfo() //[FIRE 3113 : SJ] Added Settingsfile to info - if (gSavedSettings.getString("SessionSettingsFile") == "settings_phoenix.xml") info["MODE"] = "Phoenix"; + if (gSavedSettings.getString("SessionSettingsFile") == "settings_firestorm.xml") info["MODE"] = "Firestorm"; + else if (gSavedSettings.getString("SessionSettingsFile") == "settings_phoenix.xml") info["MODE"] = "Phoenix"; else if (gSavedSettings.getString("SessionSettingsFile") == "settings_v3.xml") info["MODE"] = "V3"; else if (gSavedSettings.getString("SessionSettingsFile") == "settings_hybrid.xml") info["MODE"] = "Hybrid"; diff --git a/indra/newview/lllogininstance.cpp b/indra/newview/lllogininstance.cpp index abcab14e10..ec516ad203 100644 --- a/indra/newview/lllogininstance.cpp +++ b/indra/newview/lllogininstance.cpp @@ -561,7 +561,15 @@ void LLLoginInstance::constructAuthParams(LLPointer user_credentia //send this info to login.cgi for stats gathering //since viewerstats isn't reliable enough - requested_options.append("advanced-mode"); + if (gSavedSettings.getString("SessionSettingsFile").empty()) + { + requested_options.append("advanced-mode"); + } + else + { + requested_options.append("basic-mode"); + //requested_options.append("inventory-basic"); + } #endif requested_options.append("max-agent-groups"); diff --git a/indra/newview/llpanellogin.cpp b/indra/newview/llpanellogin.cpp index 536bef0cf2..beeaf2297c 100644 --- a/indra/newview/llpanellogin.cpp +++ b/indra/newview/llpanellogin.cpp @@ -163,6 +163,10 @@ LLPanelLogin::LLPanelLogin(const LLRect &rect, LLStartUp::setStartSLURL(slurl); } + LLUICtrl& mode_combo = getChildRef("mode_combo"); + mode_combo.setValue(gSavedSettings.getString("SessionSettingsFile")); + mode_combo.setCommitCallback(boost::bind(&LLPanelLogin::onModeChange, this, getChild("mode_combo")->getValue(), _2)); + LLComboBox* server_choice_combo = sInstance->getChild("server_combo"); server_choice_combo->setCommitCallback(onSelectServer, NULL); LLComboBox* saved_login_choice_combo = sInstance->getChild("username_combo"); @@ -1330,6 +1334,32 @@ void LLPanelLogin::updateLoginPanelLinks() sInstance->getChildView("forgot_password_text")->setVisible( system_grid || has_password); } // + +void LLPanelLogin::onModeChange(const LLSD& original_value, const LLSD& new_value) +{ + if (original_value.asString() != new_value.asString()) + { + LLNotificationsUtil::add("ModeChange", LLSD(), LLSD(), boost::bind(&LLPanelLogin::onModeChangeConfirm, this, original_value, new_value, _1, _2)); + } +} + +void LLPanelLogin::onModeChangeConfirm(const LLSD& original_value, const LLSD& new_value, const LLSD& notification, const LLSD& response) +{ + S32 option = LLNotificationsUtil::getSelectedOption(notification, response); + switch (option) + { + case 0: + gSavedSettings.getControl("SessionSettingsFile")->set(new_value); + LLAppViewer::instance()->requestQuit(); + break; + case 1: + // revert to original value + getChild("mode_combo")->setValue(original_value); + break; + default: + break; + } +} std::string canonicalize_username(const std::string& name) { diff --git a/indra/newview/llpanellogin.h b/indra/newview/llpanellogin.h index b806d0c162..eee625da69 100644 --- a/indra/newview/llpanellogin.h +++ b/indra/newview/llpanellogin.h @@ -89,6 +89,8 @@ private: void reshapeBrowser(); void addFavoritesToStartLocation(); void addUsersWithFavoritesToUsername(); + void onModeChange(const LLSD& original_value, const LLSD& new_value); + void onModeChangeConfirm(const LLSD& original_value, const LLSD& new_value, const LLSD& notification, const LLSD& response); static void onClickConnect(void*); static void onClickNewAccount(void*); static void onClickVersion(void*); diff --git a/indra/newview/llstatusbar.cpp b/indra/newview/llstatusbar.cpp index 1ce66adad5..2c61ed84b2 100644 --- a/indra/newview/llstatusbar.cpp +++ b/indra/newview/llstatusbar.cpp @@ -343,13 +343,44 @@ BOOL LLStatusBar::postBuild() mParcelMgrConnection = LLViewerParcelMgr::getInstance()->addAgentParcelChangedCallback( boost::bind(&LLStatusBar::onAgentParcelChange, this)); + LLUICtrl& mode_combo = getChildRef("mode_combo"); + mode_combo.setValue(gSavedSettings.getString("SessionSettingsFile")); + mode_combo.setCommitCallback(boost::bind(&LLStatusBar::onModeChange, this, getChild("mode_combo")->getValue(), _2)); + if (!gSavedSettings.getBOOL("ShowNetStats")) { updateNetstatVisibility(LLSD(FALSE)); } + return TRUE; } +void LLStatusBar::onModeChange(const LLSD& original_value, const LLSD& new_value) +{ + if (original_value.asString() != new_value.asString()) + { + LLNotificationsUtil::add("ModeChange", LLSD(), LLSD(), boost::bind(&LLStatusBar::onModeChangeConfirm, this, original_value, new_value, _1, _2)); + } +} + +void LLStatusBar::onModeChangeConfirm(const LLSD& original_value, const LLSD& new_value, const LLSD& notification, const LLSD& response) +{ + S32 option = LLNotificationsUtil::getSelectedOption(notification, response); + switch (option) + { + case 0: + gSavedSettings.getControl("SessionSettingsFile")->set(new_value); + LLAppViewer::instance()->requestQuit(); + break; + case 1: + // revert to original value + getChild("mode_combo")->setValue(original_value); + break; + default: + break; + } +} + // Per-frame updates of visibility void LLStatusBar::refresh() { @@ -1155,4 +1186,4 @@ void LLStatusBar::updateNetstatVisibility(const LLSD& data) rect = mBalancePanel->getRect(); rect.translate(NETSTAT_WIDTH * translateFactor, 0); mBalancePanel->setRect(rect); -} \ No newline at end of file +} diff --git a/indra/newview/llstatusbar.h b/indra/newview/llstatusbar.h index b76fba21f3..9c897cc7a2 100644 --- a/indra/newview/llstatusbar.h +++ b/indra/newview/llstatusbar.h @@ -143,6 +143,8 @@ private: void onMouseEnterVolume(); void onMouseEnterNearbyMedia(); void onClickScreen(S32 x, S32 y); + void onModeChange(const LLSD& original_value, const LLSD& new_value); + void onModeChangeConfirm(const LLSD& original_value, const LLSD& new_value, const LLSD& notification, const LLSD& response); static void onClickStreamToggle(void* data); // ## Zi: Media/Stream separation static void onClickMediaToggle(void* data); diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index b1b4107101..7f921c19cd 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -9216,6 +9216,55 @@ class LLToggleUIHints : public view_listener_t } }; +class LLCheckSessionsSettings : public view_listener_t +{ + bool handleEvent(const LLSD& userdata) + { + std::string expected = userdata.asString(); + return gSavedSettings.getString("SessionSettingsFile") == expected; + } +}; + +class LLChangeMode : public view_listener_t +{ + bool handleEvent(const LLSD& userdata) + { + std::string mode = userdata.asString(); + if (mode == "basic") + { + if (gSavedSettings.getString("SessionSettingsFile") != "settings_minimal.xml") + { + LLNotificationsUtil::add("ModeChange", LLSD(), LLSD(), boost::bind(onModeChangeConfirm, "settings_minimal.xml", _1, _2)); + } + return true; + } + else if (mode == "advanced") + { + if (gSavedSettings.getString("SessionSettingsFile") != "") + { + LLNotificationsUtil::add("ModeChange", LLSD(), LLSD(), boost::bind(onModeChangeConfirm, "", _1, _2)); + } + return true; + } + return false; + } + + static void onModeChangeConfirm(const std::string& new_session_settings_file, const LLSD& notification, const LLSD& response) + { + S32 option = LLNotificationsUtil::getSelectedOption(notification, response); + switch (option) + { + case 0: + gSavedSettings.getControl("SessionSettingsFile")->set(new_session_settings_file); + LLAppViewer::instance()->requestQuit(); + break; + case 1: + default: + break; + } + } +}; + void LLUploadCostCalculator::calculateCost() { S32 upload_cost = LLGlobalEconomy::Singleton::getInstance()->getPriceUpload(); diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml index 16694213b5..636b3c8d29 100644 --- a/indra/newview/skins/default/xui/en/notifications.xml +++ b/indra/newview/skins/default/xui/en/notifications.xml @@ -7925,6 +7925,19 @@ You must authenticate [APP_NAME] before you can upload images to Flickr. Please confirm + + +Changing modes requires you to quit and restart. + confirm + + + + + Default Settings: + + + + + + +