diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 8323ba1ce7..365fa52fb7 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -25623,5 +25623,16 @@ Change of this parameter will affect the layout of buttons in notification toast Value 0 + FSStatusBarTimeFormat + + Comment + Which time format to use for the status bar clock, e.g. 12 Hours, 24 Hours, etc. The default "Language" restores the original behavior of changing the time display mode per language. + Persist + 1 + Type + String + Value + Language + diff --git a/indra/newview/lllandmarklist.cpp b/indra/newview/lllandmarklist.cpp index b4236c406b..5a7ea32711 100644 --- a/indra/newview/lllandmarklist.cpp +++ b/indra/newview/lllandmarklist.cpp @@ -106,12 +106,14 @@ LLLandmark* LLLandmarkList::getAsset(const LLUUID& asset_uuid, loaded_callback_t mWaitList.insert(asset_uuid); return NULL; } - + // fIRE-14457 Fix CopySLURL fails / landmakrs not loading - based on snippet from Chorazin Allen + mRequestedList[asset_uuid] = gFrameTimeSeconds; gAssetStorage->getAssetData(asset_uuid, LLAssetType::AT_LANDMARK, LLLandmarkList::processGetAssetReply, NULL); - mRequestedList[asset_uuid] = gFrameTimeSeconds; + // fIRE-14457 Fix CopySLURL fails / landmakrs not loading - based on snippet from Chorazin Allen + // mRequestedList[asset_uuid] = gFrameTimeSeconds; } return NULL; } diff --git a/indra/newview/llstatusbar.cpp b/indra/newview/llstatusbar.cpp index 134dfd5a73..0ce7258e59 100644 --- a/indra/newview/llstatusbar.cpp +++ b/indra/newview/llstatusbar.cpp @@ -519,9 +519,49 @@ BOOL LLStatusBar::postBuild() updateVolumeControlsVisibility(LLSD(FALSE)); } // + + // FIRE-20390, FIRE-4269 - Option for 12/24 hour clock and seconds display + mClockFormatChoices["12 Hour"] = "[hour12, datetime, slt]:[min, datetime, slt] [ampm, datetime, slt]"; + mClockFormatChoices["12 Hour Seconds"] = "[hour12, datetime, slt]:[min, datetime, slt]:[second, datetime, slt] [ampm, datetime, slt]"; + mClockFormatChoices["12 Hour TZ"] = "[hour12, datetime, slt]:[min, datetime, slt] [ampm, datetime, slt] [timezone,datetime, slt]"; + mClockFormatChoices["12 Hour TZ Seconds"] = "[hour12, datetime, slt]:[min, datetime, slt]:[second, datetime, slt] [ampm, datetime, slt] [timezone,datetime, slt]"; + mClockFormatChoices["24 Hour"] = "[hour24, datetime, slt]:[min, datetime, slt]"; + mClockFormatChoices["24 Hour Seconds"] = "[hour24, datetime, slt]:[min, datetime, slt]:[second, datetime, slt]"; + mClockFormatChoices["24 Hour TZ"] = "[hour24, datetime, slt]:[min, datetime, slt] [timezone, datetime, slt]"; + mClockFormatChoices["24 Hour TZ Seconds"] = "[hour24, datetime, slt]:[min, datetime, slt]:[second, datetime, slt] [timezone, datetime, slt]"; + + // use the time format defined in the language's panel_status_bar.xml (default) + mClockFormatChoices["Language"] = getString("time"); + + mClockFormat = gSavedSettings.getString("FSStatusBarTimeFormat"); + // + return TRUE; } +// FIRE-20390, FIRE-4269 - Option for 12/24 hour clock and seconds display +void LLStatusBar::updateClockDisplay() +{ + // Get current UTC time, adjusted for the user's clock + // being off. + time_t utc_time; + utc_time = time_corrected(); + + std::string timeStr = mClockFormatChoices[mClockFormat]; + LLSD substitution; + substitution["datetime"] = (S32) utc_time; + LLStringUtil::format (timeStr, substitution); + mTextTime->setText(timeStr); + + // Add seconds to clock + static const std::string tooltip_template = getString("timeTooltip"); + std::string dtStr = tooltip_template; + // + LLStringUtil::format (dtStr, substitution); + mTextTime->setToolTip (dtStr); +} +// + // Per-frame updates of visibility void LLStatusBar::refresh() { @@ -562,29 +602,25 @@ void LLStatusBar::refresh() { mClockUpdateTimer.reset(); - // Get current UTC time, adjusted for the user's clock - // being off. - time_t utc_time; - utc_time = time_corrected(); + // FIRE-20390, FIRE-4269 - Option for 12/24 hour clock and seconds display + // // Get current UTC time, adjusted for the user's clock + // // being off. + // time_t utc_time; + // utc_time = time_corrected(); - // Add seconds to clock - //std::string timeStr = getString("time"); - static const std::string time_template = getString("time"); - std::string timeStr = time_template; - // - LLSD substitution; - substitution["datetime"] = (S32) utc_time; - LLStringUtil::format (timeStr, substitution); - mTextTime->setText(timeStr); + // std::string timeStr = getString("time"); + // LLSD substitution; + // substitution["datetime"] = (S32) utc_time; + // LLStringUtil::format (timeStr, substitution); + // mTextTime->setText(timeStr); - // set the tooltip to have the date - // Add seconds to clock - //std::string dtStr = getString("timeTooltip"); - static const std::string tooltip_template = getString("timeTooltip"); - std::string dtStr = tooltip_template; - // - LLStringUtil::format (dtStr, substitution); - mTextTime->setToolTip (dtStr); + // // set the tooltip to have the date + // std::string dtStr = getString("timeTooltip"); + // LLStringUtil::format (dtStr, substitution); + // mTextTime->setToolTip (dtStr); + + updateClockDisplay(); + // } // Pathfinding rebake functions @@ -1717,6 +1753,14 @@ void LLStatusBar::onPopupRolloverChanged(const LLSD& newvalue) } } +// FIRE-20390, FIRE-4269 - Option for 12/24 hour clock and seconds display +void LLStatusBar::onTimeFormatChanged(const std::string& format) +{ + mClockFormat = format; + updateClockDisplay(); +} +// + // Implements secondlife:///app/balance/request to request a L$ balance // update via UDP message system. JC class LLBalanceHandler : public LLCommandHandler diff --git a/indra/newview/llstatusbar.h b/indra/newview/llstatusbar.h index a14a1f8370..81d427cfd4 100644 --- a/indra/newview/llstatusbar.h +++ b/indra/newview/llstatusbar.h @@ -157,6 +157,9 @@ public: void updateCurrencySymbols(); // + // FIRE-20390, FIRE-4269 - Option for 12/24 hour clock and seconds display + void onTimeFormatChanged(const std::string& format); + private: void onClickBuyCurrency(); @@ -166,7 +169,8 @@ private: void onMouseEnterPresets(); void onMouseEnterVolume(); void onMouseEnterNearbyMedia(); - void onClickScreen(S32 x, S32 y); + // Does not exist 15-02-2021 + //void onClickScreen(S32 x, S32 y); static void onClickStreamToggle(void* data); // Media/Stream separation static void onClickMediaToggle(void* data); @@ -259,16 +263,11 @@ private: /** * Updates the visibility state of the parcel icons according to parcel properties */ - void updateParcelIconVisibility(); + // Does not exist 15-02-2021 + //void updateParcelIconVisibility(); void onBuyLandClicked(); - // Pathfinding support - void onRegionBoundaryCrossed(); - void onNavMeshStatusChange(const LLPathfindingNavMeshStatus &pNavMeshStatus); - void createNavMeshStatusListenerForCurrentRegion(); - // Pathfinding support - // FIRE-19697: Add setting to disable graphics preset menu popup on mouse over void onPopupRolloverChanged(const LLSD& newvalue); @@ -395,6 +394,13 @@ private: void onMouseLeaveParcelInfo(); // +// FIRE-20390, FIRE-4269 - Option for 12/24 hour clock and seconds display + std::map mClockFormatChoices; + std::string mClockFormat; + + void updateClockDisplay(); +// + std::string mCurrentLocationString; }; diff --git a/indra/newview/llviewercontrol.cpp b/indra/newview/llviewercontrol.cpp index 1904b7e63c..2f4b91a114 100644 --- a/indra/newview/llviewercontrol.cpp +++ b/indra/newview/llviewercontrol.cpp @@ -1048,6 +1048,17 @@ void handleSmallCameraFloaterChanged(const LLSD& newValue) } // +// FIRE-20390, FIRE-4269 - Option for 12/24 hour clock and seconds display +void handleStatusbarTimeformatChanged(const LLSD& newValue) +{ + const std::string format = newValue.asString(); + if (gStatusBar) + { + gStatusBar->onTimeFormatChanged(format); + } +} +// + //////////////////////////////////////////////////////////////////////////// void settings_setup_listeners() @@ -1298,6 +1309,9 @@ void settings_setup_listeners() // Optional small camera floater gSavedSettings.getControl("FSUseSmallCameraFloater")->getSignal()->connect(boost::bind(&handleSmallCameraFloaterChanged, _2)); + + // FIRE-20390, FIRE-4269 - Option for 12/24 hour clock and seconds display + gSavedSettings.getControl("FSStatusBarTimeFormat")->getSignal()->connect(boost::bind(&handleStatusbarTimeformatChanged, _2)); } #if TEST_CACHED_CONTROL diff --git a/indra/newview/llviewerobjectlist.cpp b/indra/newview/llviewerobjectlist.cpp index cd60588896..dc040019f0 100644 --- a/indra/newview/llviewerobjectlist.cpp +++ b/indra/newview/llviewerobjectlist.cpp @@ -83,6 +83,7 @@ #include #include +#include // FIRE-30694 DeadObject Spamming cleanup #include "fsassetblacklist.h" #include "fsfloaterimport.h" #include "fscommon.h" @@ -1410,15 +1411,30 @@ void LLViewerObjectList::clearDebugText() void LLViewerObjectList::cleanupReferences(LLViewerObject *objectp) { - bool new_dead_object = true; + // FIRE-30694 DeadObject Spam - handle new_dead_object properly and closer to source + // bool new_dead_object = true; if (mDeadObjects.find(objectp->mID) != mDeadObjects.end()) { LL_INFOS() << "Object " << objectp->mID << " already on dead list!" << LL_ENDL; - new_dead_object = false; + // FIRE-30694 DeadObject Spam + // new_dead_object = false; } else { - mDeadObjects.insert(objectp->mID); + // FIRE-30694 DeadObject Spam + // mDeadObjects.insert(objectp->mID); + bool success; + std::tie( std::ignore, success ) = mDeadObjects.insert( objectp->mID ); + if( success ) + { + mNumDeadObjects++; + llassert( mNumDeadObjects == mDeadObjects.size() ); + } + else + { + LL_WARNS() << "Object " << objectp->mID << " failed to insert on dead list!" << LL_ENDL; + } + // } // Cleanup any references we have to this object @@ -1454,10 +1470,11 @@ void LLViewerObjectList::cleanupReferences(LLViewerObject *objectp) // Also, not cleaned up removeDrawable(objectp->mDrawable); - if(new_dead_object) - { - mNumDeadObjects++; - } + // FIRE-30694 DeadObject Spam + // if(new_dead_object) + // { + // mNumDeadObjects++; + // } } static LLTrace::BlockTimerStatHandle FTM_REMOVE_DRAWABLE("Remove Drawable"); @@ -1589,12 +1606,17 @@ void LLViewerObjectList::killAllObjects() void LLViewerObjectList::cleanDeadObjects(BOOL use_timer) { + // FIRE-30694 DeadObject Spam + llassert( mNumDeadObjects == mDeadObjects.size() ); + if (!mNumDeadObjects) { // No dead objects, don't need to scan object list. return; } + // FIRE-30694 DeadObject Spam + S32 num_divergent = 0; S32 num_removed = 0; LLViewerObject *objectp; @@ -1617,7 +1639,13 @@ void LLViewerObjectList::cleanDeadObjects(BOOL use_timer) if (objectp->isDead()) { - mDeadObjects.erase(objectp->mID); // Use timer for cleaning up dead objects + // FIRE-30694 DeadObject Spam + // mDeadObjects.erase(objectp->mID); // Use timer for cleaning up dead objects + if(mDeadObjects.erase(objectp->mID)==0) + { + LL_WARNS() << "Attempt to delete object " << objectp->mID << " but object not in dead list" << LL_ENDL; + num_divergent++; // this is the number we are adrift in the count + } LLPointer::swap(*iter, *target); *target = NULL; ++target; @@ -1651,9 +1679,10 @@ void LLViewerObjectList::cleanDeadObjects(BOOL use_timer) mObjects.erase(mObjects.begin()+(mObjects.size()-num_removed), mObjects.end()); mNumDeadObjects -= num_removed; - if (mNumDeadObjects != mDeadObjects.size()) + // TODO(Beq) If this still happens, we ought to realign at this point. Do a full sweep and reset. + if ( mNumDeadObjects != mDeadObjects.size() ) { - LL_WARNS() << "Num dead objects != dead object list size" << LL_ENDL; + LL_WARNS() << "Num dead objects (" << mNumDeadObjects << ") != dead object list size (" << mDeadObjects.size() << "), deadlist discrepancy (" << num_divergent << ")" << LL_ENDL; } // } diff --git a/indra/newview/llviewertexturelist.cpp b/indra/newview/llviewertexturelist.cpp index 1718435225..bb85c9054d 100644 --- a/indra/newview/llviewertexturelist.cpp +++ b/indra/newview/llviewertexturelist.cpp @@ -1017,7 +1017,7 @@ void LLViewerTextureList::updateOneImageDecodePriority(LLPointergetProgressView()->getVisible(); diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index 7975b771ca..751df0582d 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -5939,7 +5939,10 @@ BOOL LLViewerWindow::rawSnapshot(LLImageRaw *raw, S32 image_width, S32 image_hei if ((image_width <= gGLManager.mGLMaxTextureSize && image_height <= gGLManager.mGLMaxTextureSize) && (image_width > window_width || image_height > window_height) && LLPipeline::sRenderDeferred && !show_ui) { - U32 color_fmt = type == LLSnapshotModel::SNAPSHOT_TYPE_DEPTH ? GL_DEPTH_COMPONENT : GL_RGBA; + // FIRE-15667: 24bit depth maps + //U32 color_fmt = type == LLSnapshotModel::SNAPSHOT_TYPE_DEPTH ? GL_DEPTH_COMPONENT : GL_RGBA; + U32 color_fmt = (type == LLSnapshotModel::SNAPSHOT_TYPE_DEPTH || type == LLSnapshotModel::SNAPSHOT_TYPE_DEPTH24) ? GL_DEPTH_COMPONENT : GL_RGBA; + // if (scratch_space.allocate(image_width, image_height, color_fmt, true, true)) { original_width = gPipeline.mDeferredScreen.getWidth(); diff --git a/indra/newview/skins/default/xui/de/panel_preferences_UI.xml b/indra/newview/skins/default/xui/de/panel_preferences_UI.xml index bab6df298b..8ec019d1cd 100644 --- a/indra/newview/skins/default/xui/de/panel_preferences_UI.xml +++ b/indra/newview/skins/default/xui/de/panel_preferences_UI.xml @@ -104,6 +104,20 @@ + + Zeitformat: + + + + + + + + + + + + Navigations- und Favoriten-Leiste: diff --git a/indra/newview/skins/default/xui/de/rlva_strings.xml b/indra/newview/skins/default/xui/de/rlva_strings.xml index f1ac38cf4b..6c0e648605 100644 --- a/indra/newview/skins/default/xui/de/rlva_strings.xml +++ b/indra/newview/skins/default/xui/de/rlva_strings.xml @@ -81,6 +81,11 @@ value "[OBJECT]" wurde aufgrund von RLV-Einschränkungen verweigert, dich zu teleportieren. + blocked_scriptdialog + + value + Skript-Dialog oder Textbox kann aufgrund von RLV-Einschränkungen nicht angezeigt werden. + blocked_startim value diff --git a/indra/newview/skins/default/xui/en/floater_about.xml b/indra/newview/skins/default/xui/en/floater_about.xml index 7cb03ceb21..932effd92c 100644 --- a/indra/newview/skins/default/xui/en/floater_about.xml +++ b/indra/newview/skins/default/xui/en/floater_about.xml @@ -165,7 +165,7 @@ Additional code generously contributed to Firestorm by: top_pad="4" width="450" wrap="true"> -Albatroz Hird, Alexie Birman, Andromeda Rage, Angeldark Raymaker, Animats, Armin Weatherwax, Beq Janus, Casper Warden, Chalice Yao, Chaser Zaks, Cron Stardust, Damian Zhaoying, Dan Threebeards, Dawa Gurbux, Denver Maksim, Drake Arconis, Felyza Wishbringer, f0rbidden, Fractured Crystal, Geenz Spad, Gibson Firehawk, Hitomi Tiponi, Inusaito Sayori, Jean Severine, Katharine Berry, Kittin Ninetails, Kool Koolhoven, Lance Corrimal, Lassie, Latif Khalifa, Laurent Bechir, Magne Metaverse LLC, Magus Freston, Manami Hokkigai, MartinRJ Fayray, McCabe Maxstead, Melancholy Lemon, Melysmile, Mimika Oh, Mister Acacia, MorganMegan, mygoditsfullofstars, Mysty Saunders, Nagi Michinaga, Name Short, nhede Core, NiranV Dean, Nogardrevlis Lectar, Oren Hurvitz, Paladin Forzane, paperwork, Penny Patton, Peyton Menges, programmtest, Qwerty Venom, Revolution Smythe, Romka Swallowtail, Sahkolihaa Contepomi, sal Kaligawa, Samm Florian, Satomi Ahn, Sei Lisa, Sempervirens Oddfellow, Shin Wasp, Shyotl Kuhr, Sione Lomu, Skills Hak, StarlightShining, Sunset Faulkes, Testicular Slingshot, Thickbrick Sleaford, Ubit Umarov, Vaalith Jinn, Vincent Sylvester, Whirly Fizzle, Xenhat Liamano, Zwagoth Klaar and others. +Albatroz Hird, Alexie Birman, Andromeda Rage, Angeldark Raymaker, Animats, Armin Weatherwax, Beq Janus, Casper Warden, Chalice Yao, Chaser Zaks, Chorazin Allen, Cron Stardust, Damian Zhaoying, Dan Threebeards, Dawa Gurbux, Denver Maksim, Drake Arconis, Felyza Wishbringer, f0rbidden, Fractured Crystal, Geenz Spad, Gibson Firehawk, Hitomi Tiponi, Inusaito Sayori, Jean Severine, Katharine Berry, Kittin Ninetails, Kool Koolhoven, Lance Corrimal, Lassie, Latif Khalifa, Laurent Bechir, Magne Metaverse LLC, Magus Freston, Manami Hokkigai, MartinRJ Fayray, McCabe Maxstead, Melancholy Lemon, Melysmile, Mimika Oh, Mister Acacia, MorganMegan, mygoditsfullofstars, Mysty Saunders, Nagi Michinaga, Name Short, nhede Core, NiranV Dean, Nogardrevlis Lectar, Oren Hurvitz, Paladin Forzane, paperwork, Penny Patton, Peyton Menges, programmtest, Qwerty Venom, Revolution Smythe, Romka Swallowtail, Sahkolihaa Contepomi, sal Kaligawa, Samm Florian, Satomi Ahn, Sei Lisa, Sempervirens Oddfellow, Shin Wasp, Shyotl Kuhr, Sione Lomu, Skills Hak, StarlightShining, Sunset Faulkes, Testicular Slingshot, Thickbrick Sleaford, Ubit Umarov, Vaalith Jinn, Vincent Sylvester, Whirly Fizzle, Xenhat Liamano, Zwagoth Klaar and others. + + Time format: + + + + + + + + + + + + - diff --git a/indra/newview/skins/default/xui/en/panel_status_bar.xml b/indra/newview/skins/default/xui/en/panel_status_bar.xml index f55b7faf91..ef2de84add 100644 --- a/indra/newview/skins/default/xui/en/panel_status_bar.xml +++ b/indra/newview/skins/default/xui/en/panel_status_bar.xml @@ -307,7 +307,7 @@ font="SansSerifSmall" text_color="TimeTextColor" follows="right|top" - halign="left" + halign="center" height="16" h_pad="2" top="4" diff --git a/indra/newview/skins/default/xui/pl/panel_preferences_UI.xml b/indra/newview/skins/default/xui/pl/panel_preferences_UI.xml index 82f2e915e5..8d4349ec5e 100644 --- a/indra/newview/skins/default/xui/pl/panel_preferences_UI.xml +++ b/indra/newview/skins/default/xui/pl/panel_preferences_UI.xml @@ -98,6 +98,20 @@ + + Format czasu: + + + + + + + + + + + + Paski nawigacji i ulubionych: diff --git a/indra/newview/skins/default/xui/pl/rlva_strings.xml b/indra/newview/skins/default/xui/pl/rlva_strings.xml index 4e69243079..4f25d06224 100644 --- a/indra/newview/skins/default/xui/pl/rlva_strings.xml +++ b/indra/newview/skins/default/xui/pl/rlva_strings.xml @@ -124,6 +124,11 @@ value Teleportacja poprzez obiekt '[OBJECT]' nie powiodła się ze względu na ograniczenia RLV + blocked_scriptdialog + + value + Nie można wyświetlić okna dialogowego lub pola tekstowego skryptu ze względu na ograniczenia RLV + blocked_startim value diff --git a/indra/newview/skins/default/xui/ru/floater_fs_asset_blacklist.xml b/indra/newview/skins/default/xui/ru/floater_fs_asset_blacklist.xml index e144adb338..6b7713bc5a 100644 --- a/indra/newview/skins/default/xui/ru/floater_fs_asset_blacklist.xml +++ b/indra/newview/skins/default/xui/ru/floater_fs_asset_blacklist.xml @@ -33,6 +33,8 @@