Commit Graph

40429 Commits (bd008a170898e69beeb8bc0481b4bfd94de86c55)

Author SHA1 Message Date
andreykproductengine 930bf680c2 SL-10423 Dump path data when missing critical file 2019-06-03 21:37:43 +03:00
Nat Goodspeed 13b0bd210f SL-11216: Try to pacify VS 2013. 2019-06-01 09:30:36 -04:00
Nat Goodspeed 2255f61e19 SL-11216: To display release notes, listen on "relnotes" LLEventPump.
Now, when the viewer decides it's appropriate to display release notes on the
login screen, wait for SLVersionChecker to post the release-notes URL before
opening the web floater.
2019-05-31 16:47:20 -04:00
Nat Goodspeed f706e85958 SL-11216: getViewerInfo() calls LLVersionInfo::getReleaseNotes().
Make LLAppViewer retrieve release notes from LLVersionInfo, rather than
synthesizing the release-notes URL itself based on the viewer version string.
2019-05-31 16:44:58 -04:00
Nat Goodspeed 2efaa8533c SL-11216: Add a "getStateTable" op to "LLStartUp" listener.
getStateTable returns a list of the EStartupState symbolic names, implicitly
mapping each to its index (its enum numeric value).
2019-05-31 16:42:07 -04:00
Nat Goodspeed 16ef497e18 SL-11216: Allow llsd::drill() to accept LLSD() as (empty) path.
Before this change, you had to literally pass LLSD::emptyArray() to get no-op
behavior.
2019-05-31 16:36:14 -04:00
Nat Goodspeed 3a9498a8e1 SL-11216: Update to viewer-manager build 527715 2019-05-31 16:33:01 -04:00
andreykproductengine 3dd074d5ec SL-11338 Better logging for missing texture reference 2019-05-31 21:56:58 +03:00
Anchor 565ca8fedd increment viewer version to 6.3.0 2019-05-31 10:20:59 -07:00
ruslantproductengine 87d4cb9c95 SL-856 (graphics) Animesh shadows flicker on LOD change
SL-10644[Render] Bad Shadow flickering with ALM on (probably)
2019-05-31 19:39:37 +03:00
maxim_productengine 618446f8df SL-11324 FIXED Accidental deletion of Marketplace Listings folder possible 2019-05-31 18:10:50 +03:00
andreykproductengine 1b793f5c10 SL-11323 Bad merge fix and cleanup 2019-05-31 17:51:51 +03:00
Nat Goodspeed 3dfa1b39bf SL-11216: Introduce LLVersionInfo::getReleaseNotes() method.
The default string returned by getReleaseNotes() is empty. It must be set by
posting the relevant release-notes URL string to a new LLEventMailDrop
instance named "relnotes".

Add unique_ptr<LLEventMailDrop> and unique_ptr<LLStoreListener<std::string>>
to LLVersionInfo -- using unique_ptr to leave those classes opaque to
header-file consumers. Introduce an out-of-line destructor to handle the
unique_ptr<opaque> idiom.

Initialize the LLEventMailDrop with the desired name; initialize the
LLStoreListener with that LLEventMailDrop and the data member returned by
getReleaseNotes().
2019-05-30 16:35:45 -04:00
Nat Goodspeed 0a5b9c01da SL-11216: Introduce generic LLStoreListener<T> to capture event data.
LLStoreListener is an adapter initialized with a reference to an LLEventPump
on which to listen, a reference to a variable into which to store received
data, and an optional llsd::drill() path to extract desired data from each
event received on the subject LLEventPump.

In effect, LLStoreListener is like a miniature LLEventAPI whose only operation
is to store to its destination variable.
2019-05-30 16:28:45 -04:00
Nat Goodspeed 712a03300b SL-11216: Add llsd::drill() function to drill into an LLSD blob.
We include both const and non-const overloads. The latter returns LLSD&, so
you can assign to the located element.

In fact we already implemented the non-const logic in a less public form as
storeToLLSDPath() in lleventcoro.cpp. Reimplement the latter to use the new
llsd::drill() function.
2019-05-30 15:35:54 -04:00
andreykproductengine 0c84313a00 SL-11321 Do not crash floater if capability is missing 2019-05-30 18:45:02 +03:00
maxim_productengine c338d337e7 SL-11230 FIXED Imposter Avatars become Jellies with Basic Shaders disabled 2019-05-30 17:39:53 +03:00
Nat Goodspeed 0bb6f754a1 SL-11216: Convert LLVersionInfo to an LLSingleton.
This changeset is meant to exemplify how to convert a "namespace" class whose
methods are static -- and whose data are module-static -- to an LLSingleton.
LLVersionInfo has no initClass() or cleanupClass() methods, but the general
idea is the same.

* Derive the class from LLSingleton<T>:
  class LLSomeSingleton: public LLSingleton<LLSomeSingleton> { ... };
* Add LLSINGLETON(LLSomeSingleton); in the private section of the class. This
  usage implies a separate LLSomeSingleton::LLSomeSingleton() definition, as
  described in indra/llcommon/llsingleton.h.
* Move module-scope data in the .cpp file to non-static class members. Change
  any sVariableName to mVariableName to avoid being outright misleading.
* Make static class methods non-static. Remove '//static' comments from method
  definitions as needed.
* For LLVersionInfo specifically, the 'const std::string&' return type was
  replaced with 'std::string'. Returning a reference to a static or a member,
  const or otherwise, is an anti-pattern: the interface constrains the
  implementation, prohibiting possibly later returning a temporary (an
  expression).
* For LLVersionInfo specifically, 'const S32' return type was replaced with
  simple 'S32'. 'const' is just noise in that usage.
* Simple member initialization (e.g. the original initializer expressions for
  static variables) can be done with member{ value } initializers (no examples
  here though).
* Delete initClass() method.
* LLSingleton's forté is of course lazy initialization. It might work to
  simply delete any calls to initClass(). But if there are side effects that
  must happen at that moment, replace LLSomeSingleton::initClass() with
  (void)LLSomeSingleton::instance();
* Most initClass() initialization can be done in the constructor, as would
  normally be the case.
* Initialization that might cause a circular LLSingleton reference should be
  moved to initSingleton(). Override 'void initSingleton();' should be private.
* For LLVersionInfo specifically, certain initialization that used to be
  lazily performed was made unconditional, due to its low cost.
* For LLVersionInfo specifically, certain initialization involved calling
  methods that have become non-static. This was moved to initSingleton()
  because, in a constructor body, 'this' does not yet point to the enclosing
  class.
* Delete cleanupClass() method.
* There is already a generic LLSingletonBase::deleteAll() call in
  LLAppViewer::cleanup(). It might work to let this new LLSingleton be cleaned
  up with all the rest. But if there are side effects that must happen at that
  moment, replace LLSomeSingleton::cleanupClass() with
  LLSomeSingleton::deleteSingleton(). That said, much of the benefit of
  converting to LLSingleton is deleteAll()'s guarantee that cross-LLSingleton
  dependencies will be properly honored: we're trying to migrate the code base
  away from the present fragile manual cleanup sequence.
* Most cleanupClass() cleanup can be done in the destructor, as would normally
  be the case.
* Cleanup that might throw an exception should be moved to cleanupSingleton().
  Override 'void cleanupSingleton();' should be private.
* Within LLSomeSingleton methods, remove any existing
  LLSomeSingleton::methodName() qualification: simple methodName() is better.
* In the rest of the code base, convert most LLSomeSingleton::methodName()
  references to LLSomeSingleton::instance().methodName(). (Prefer instance() to
  getInstance() because a reference does not admit the possibility of NULL.)
* Of course, LLSomeSingleton::ENUM_VALUE can remain unchanged.

In general, for many successive references to an LLSingleton instance, it
can be useful to capture the instance() as in:

auto& versionInfo{LLVersionInfo::instance()};
// ... versionInfo.getVersion() ...

We did not do that here only to simplify the code review.

The STRINGIZE(expression) macro encapsulates:
std::ostringstream out;
out << expression;
return out.str();
We used that in a couple places.

For LLVersionInfo specifically, lllogininstance_test.cpp used to dummy out a
couple specific static methods. It's harder to dummy out
LLSingleton::instance() references, so we add the real class to that test.
2019-05-30 10:39:37 -04:00
Nat Goodspeed ca1d051a15 SL-11216: Remove LLSingletonBase::cleanupAll().
Remove call from LLAppViewer::cleanup().

Instead, make each LLSingleton<T>::deleteSingleton() call cleanupSingleton()
just before destroying the instance. Since deleteSingleton() is not a
destructor, it's fine to call cleanupSingleton() from there; and since
deleteAll() calls deleteSingleton() on every remaining instance, the former
cleanupAll() functionality has been subsumed into deleteAll().

Since cleanupSingleton() is now called at exactly one point in the instance's
lifetime, we no longer need a bool indicating whether it has been called.

The previous protocol of calling cleanupAll() before deleteAll() implemented a
two-phase cleanup strategy for the application. That is no longer needed.
Moreover, the cleanupAll() / deleteAll() sequence created a time window during
which individual LLSingleton<T> instances weren't usable (to the extent that
their cleanupSingleton() methods released essential resources) but still
existed -- so a getInstance() call would return the crippled instance rather
than recreating it.

Remove cleanupAll() calls from tests; adjust to new order of expected side
effects: instead of A::cleanupSingleton(), B::cleanupSingleton(), ~A(), ~B(),
now we get A::cleanupSingleton(), ~A(), B::cleanupSingleton(), ~B().
2019-05-30 08:23:32 -04:00
andreykproductengine d081df14ef SL-11309 Crash on attempt to costruct singletone 2019-05-29 19:28:52 +03:00
AndreyL ProductEngine b996c95f32 SL-11079 Updated contributions.txt 2019-05-28 23:52:23 +03:00
andreykproductengine ff2a6f97a2 SL-1105 Pack a name for server to use 2019-05-28 20:38:37 +03:00
andreykproductengine 902bfccd02 SL-11231 Unused code and wrong macro 2019-05-28 19:16:34 +03:00
andreykproductengine 562fe5bf63 SL-10908 Output class names we are clearing on startup 2019-05-27 17:32:53 +03:00
AndreyL ProductEngine 8c32aa0dd1 Merged in eli_linden/eli_viewer-lynx 2019-05-27 14:59:15 +03:00
eli 190fc730f0 FIX INTL-351 translation update for 9 languages for viewer-lynx 2019-05-26 03:15:34 -07:00
Anchor df1d733974 [DRTVWR-476] - suppress dbghelp.h compiler warnings 2019-05-23 21:56:15 -07:00
Nat Goodspeed 399da9f891 SL-11215: Add release notes URLs to update-related notifications.
Add code to login-fail handler to provide release notes URL from
SLVersionChecker handshake event.
2019-05-23 15:27:37 -04:00
Nat Goodspeed ee14db3d26 SL-11215: Update to viewer-manager build 527490 2019-05-23 15:26:04 -04:00
Andrey Lihatskiy 91edfab36b Merged in default (pull request #56)
SL-10898[Mac] Camera spins and pulls back when using alt+zoom with mouse

Approved-by: Maxim Nikolenko
Approved-by: Andrey Lihatskiy
2019-05-23 14:34:10 +00:00
Anchor 01c7e6bb6c Merge 2019-05-21 11:15:22 -07:00
ruslantproductengine 6700f2907a SL-10898[Mac] Camera spins and pulls back when using alt+zoom with mouse 2019-05-21 20:09:23 +03:00
andreykproductengine fd51230df6 SL-11190 Ability to duplicate a group role 2019-05-22 21:48:46 +03:00
andreykproductengine e54c9987e7 SL-10562 Cleanup 2 2019-05-22 20:41:23 +03:00
andreykproductengine 2366323483 SL-10562 Cleanup 2019-05-22 20:30:50 +03:00
ruslantproductengine 0dd7ac4a8d SL-10898[Mac] Camera spins and pulls back when using alt+zoom with mouse 2019-05-21 20:09:23 +03:00
andreykproductengine c2c8753d25 SL-11012 Ambient setting can be missing from llsd 2019-05-21 19:39:52 +03:00
maxim_productengine 401868c440 SL-10898 revert 2019-05-22 15:36:10 +03:00
maxim_productengine c289a481bd SL-11191 FIXED Crash in LLCommandLineParser::parseCommandLineString(..) 2019-05-22 14:57:24 +03:00
AndreyL ProductEngine b7c3a2fbeb Merged in lindenlab/viewer-release 2019-05-21 18:32:04 +03:00
Nat Goodspeed 2672194b1d increment viewer version to 6.2.3 2019-05-21 08:57:32 -04:00
Nat Goodspeed 02ab47b256 Added tag 6.2.2-release for changeset ec09daf1899c 2019-05-21 08:57:32 -04:00
Anchor be97efc06c [DRTVWR-476] - revert 2019-05-21 02:09:50 -07:00
Anchor f791526695 [DRTVWR-476] - disable llcorehttp test on mac 2019-05-21 01:50:27 -07:00
Anchor f47a2e88ed [DRTVWR-476] - temporarily disable llcorehttptest on mac 2019-05-21 01:28:20 -07:00
Anchor 20051e9906 [DRTVWR-476] - conflicts with a mac macro 2019-05-20 05:13:02 -07:00
andreykproductengine 8101b70999 SL-10562 Children in Animesh linksets can not be selected in some cases 2019-05-20 14:59:05 +03:00
AndreyL ProductEngine f5e63b0627 Merged in lindenlab/viewer-bear 2019-05-21 18:27:35 +03:00
Anchor 37cd0acd59 [DRTVWR-476] - update googlemock,boost,colladom 2019-05-20 04:19:31 -07:00
Anchor c792ce6023 [DRTVWR-476] - update breakpad 2019-05-20 00:30:46 -07:00