Commit Graph

173 Commits (bdc94eac5cda3dd6700a1cd462178b7ac3c4cfec)

Author SHA1 Message Date
Ansariel 969762f162 Merge branch 'master' of https://vcs.firestormviewer.org/phoenix-firestorm 2021-11-16 16:29:50 +01:00
Ansariel ae93dd240d Revert "FIRE-11339: Persisted group notifications get logged to IM on each login"
This reverts commit 5609fdbf3d.
2021-08-24 10:54:16 +02:00
Ansariel 1536fdd1c3 Merge branch 'DRTVWR-530-maint' of https://bitbucket.org/lindenlab/viewer 2021-08-24 10:47:18 +02:00
Ansariel 9718a38e9a Merge branch 'master' of https://vcs.firestormviewer.org/phoenix-firestorm 2021-07-21 03:07:48 +02:00
Andrey Lihatskiy 3a476a8296 Merge branch 'master' into DRTVWR-530-maint 2021-07-19 22:22:42 +03:00
Ansariel e893536a3a Merge branch 'master' of https://vcs.firestormviewer.org/phoenix-firestorm 2021-06-25 16:02:59 +02:00
Ansariel 9563ab543b Merge branch 'master' of https://vcs.firestormviewer.org/phoenix-firestorm 2021-06-25 11:56:38 +02:00
Andrey Lihatskiy 8b5fe507a4 Merge branch 'master' into DRTVWR-530-maint 2021-06-25 01:02:15 +03:00
Andrey Lihatskiy a4c6c7059f Merge branch 'master' into DRTVWR-516-maint
# Conflicts:
#	indra/newview/app_settings/settings.xml
#	indra/newview/llvoicevivox.cpp
2021-06-25 00:51:02 +03:00
Ansariel 826ee26272 Merge branch 'DRTVWR-521-maint' of https://bitbucket.org/lindenlab/viewer 2021-06-08 19:55:43 +02:00
Andrey Kleshchev e75519ef0e SL-15093 Crash nanov2_free_to_block #2
Mostly converted some boost pointers to std ones
Made ~LLNotificationChannelBase() more explicit to get a bit more data on location of another crash that likely happens when cleaning mItems
2021-05-31 19:36:36 +03:00
Mnikolenko Productengine 9a1688322a SL-15195 The notification in chat history is multiplied after relogging 2021-05-13 17:51:24 +03:00
Ansariel 7ab897baf0 Merge branch 'DRTVWR-516-maint' of https://bitbucket.org/lindenlab/viewer 2021-04-16 23:05:40 +02:00
Andrey Kleshchev 33b30fd7e0 SL-15077 Mac Crash destroying LLNotificationSet
Not a fix. Mac sometimes crashes when destroying mItems in LLPersistentNotificationChannel
Decided to try cleaning mItems explicitly to see if it will change callstack, it won't fix the crash, but will help figuring out if source of the issue is in mItems or is LLPersistentNotificationChannel itself
2021-04-14 22:06:35 +03:00
Ansariel 7735905d18 Merge branch 'master' of https://vcs.firestormviewer.org/phoenix-firestorm 2020-11-12 17:56:43 +01:00
Ansariel 5609fdbf3d FIRE-11339: Persisted group notifications get logged to IM on each login 2020-10-29 17:46:28 +01:00
Andrey Lihatskiy 4e43097c77 Merge branch 'master' into DRTVWR-518-ui
# Conflicts:
#	indra/newview/llfloaterbuycurrency.cpp
#	indra/newview/llinventorybridge.cpp
#	indra/newview/llinventorypanel.h
#	indra/newview/skins/default/xui/en/floater_buy_currency.xml
2020-09-28 22:33:51 +03:00
Ansariel b677e01629 Merge branch 'DRTVWR-518-ui' of https://bitbucket.org/lindenlab/viewer 2020-09-23 19:02:19 +02:00
Mnikolenko Productengine 2c0814b00a SL-13335 Friendlier L$ Buy flow when no payment method on file 2020-09-23 11:43:53 +03:00
Ansariel fe10f171d3 Merge branch 'DRTVWR-503-maint' of https://bitbucket.org/lindenlab/viewer
# Conflicts:
#	indra/llmessage/llcoproceduremanager.cpp
#	indra/newview/llinventorypanel.cpp
#	indra/newview/llpanelmaininventory.cpp
#	indra/newview/skins/default/xui/en/panel_main_inventory.xml
#	indra/newview/skins/default/xui/en/strings.xml
2020-09-09 19:34:33 +02:00
Andrey Kleshchev 1cd65a2447 SL-13498 Crash at ~LLPersistentNotificationChannel
Callstack is clearly broken since it points to LLNotifications::instance().clear(); after 'Goodbye!', my suspicion is that something reinitialized singleton so I fixed cleanup and added some logging to see if there is a dupplicate init
2020-08-25 22:22:12 +03:00
Ansariel 0f4933e2fc FIRE-29943: Fix item shared messaged logging to wrong IM logfile if user is offline 2020-07-31 14:03:04 +02:00
Nat Goodspeed afaad3cef7 DRTVWR-476: Remove special case for listen(boost::bind(weak_ptr)).
LLEventDetail::visit_and_connect() promised special treatment for the
specific case when an LLEventPump::listen() listener was composed of (possibly
nested) boost::bind() objects storing boost::weak_ptr values -- specifically
boost::bind() rather than std::bind or lambdas, specifically boost::weak_ptr
rather than std::weak_ptr.

Outside of self-tests, it does not appear that anyone actually uses that
support.

There is good reason not to: it's a silent side effect of a complicated
compile-time inspection that could be silently derailed by use of std::bind()
or a lambda or a std::weak_ptr. Can you be sure you've engaged that promise?
How?

A more robust guarantee can be achieved by storing an LLTempBoundConnection in
the transient object itself. When the object is destroyed, the listener is
disconnected. Normal C++ rules around object destruction guarantee it. This
idiom is widely used.

There are a couple good reasons to remove the visit_and_connect() machinery:

* boost::bind() and boost::weak_ptr do not constitute the wave of the future.
  Preferring those constructs to lambdas and std::weak_ptr penalizes new code,
  whether by silently failing or by discouraging use of modern idioms.
* The visit_and_connect() machinery was always complicated, and apparently
  never very robust. Most of its promised features have been commented out
  over the years. Making the code base simpler, clearer and more maintainable
  is always a useful effect.

LLEventDetail::visit_and_connect() was also used by the four
LLNotificationChannelBase::connectMumble() methods. Streamline those as well.

Of course, remove related test code.
2020-03-25 18:52:11 -04:00
Nicky Dasmijn 7f9bce5ada Merge branch 'master' into fs-vs2017 2019-12-21 01:52:19 +01:00
Nicky fee98dac77 Merge with VS2017 2019-11-10 12:07:34 +01:00
Nat Goodspeed 94a50320fb DRTVWR-476: Remove special case for listen(boost::bind(weak_ptr)).
LLEventDetail::visit_and_connect() promised special treatment for the
specific case when an LLEventPump::listen() listener was composed of (possibly
nested) boost::bind() objects storing boost::weak_ptr values -- specifically
boost::bind() rather than std::bind or lambdas, specifically boost::weak_ptr
rather than std::weak_ptr.

Outside of self-tests, it does not appear that anyone actually uses that
support.

There is good reason not to: it's a silent side effect of a complicated
compile-time inspection that could be silently derailed by use of std::bind()
or a lambda or a std::weak_ptr. Can you be sure you've engaged that promise?
How?

A more robust guarantee can be achieved by storing an LLTempBoundConnection in
the transient object itself. When the object is destroyed, the listener is
disconnected. Normal C++ rules around object destruction guarantee it. This
idiom is widely used.

There are a couple good reasons to remove the visit_and_connect() machinery:

* boost::bind() and boost::weak_ptr do not constitute the wave of the future.
  Preferring those constructs to lambdas and std::weak_ptr penalizes new code,
  whether by silently failing or by discouraging use of modern idioms.
* The visit_and_connect() machinery was always complicated, and apparently
  never very robust. Most of its promised features have been commented out
  over the years. Making the code base simpler, clearer and more maintainable
  is always a useful effect.

LLEventDetail::visit_and_connect() was also used by the four
LLNotificationChannelBase::connectMumble() methods. Streamline those as well.

Of course, remove related test code.
2019-10-15 23:06:04 -04:00
Ansariel 438bb8c113 Merge viewer-neko 2019-09-10 20:03:09 +02:00
andreykproductengine e29b3605c3 SL-11315 Viewer asks to play media and retains selected choice 2019-09-05 17:15:57 +03:00
Ansariel fa46b5495c Merge viewer-lynx 2018-04-07 12:06:15 +02:00
Nat Goodspeed f82548b931 MAINT-8474: Xcode 9.3 insists that comparators use const operator(). 2018-03-31 10:59:39 -04:00
Ansariel 9f099336e7 Merge viewer-lynx 2017-08-04 18:28:07 +02:00
AndreyL ProductEngine dcb6a850aa MAINT-7356 Improved the notification appearance 2017-07-25 03:18:59 +03:00
AndreyL ProductEngine 2efa40fa60 MAINT-7356 Logic fix and cleanup 2017-07-21 05:29:51 +03:00
Ansariel 2347b25808 Merge viewer-neko 2017-06-09 11:49:10 +02:00
Kitty Barnett d7edeb2df8 STORM-2149: Add a warning notification when deleting a folder of filtered content 2017-06-02 16:44:00 +02:00
Ansariel 099d988fe2 Merge viewer-neko 2017-05-25 22:49:53 +02:00
Mnikolenko Productengine 561cee12d8 MAINT-2585 Make permission request notifications permanent until action taken 2017-05-25 16:51:45 +03:00
Ansariel c182741596 Merge viewer-lynx 2016-11-16 09:55:54 +01:00
Nat Goodspeed d2c3c2f9fe MAINT-5232: Normalize LLSingleton subclasses.
A shocking number of LLSingleton subclasses had public constructors -- and in
several instances, were being explicitly instantiated independently of the
LLSingleton machinery. This breaks the new LLSingleton dependency-tracking
machinery. It seems only fair that if you say you want an LLSingleton, there
should only be ONE INSTANCE!

Introduce LLSINGLETON() and LLSINGLETON_EMPTY_CTOR() macros. These handle the
friend class LLSingleton<whatevah>;
and explicitly declare a private nullary constructor.

To try to enforce the LLSINGLETON() convention, introduce a new pure virtual
LLSingleton method you_must_use_LLSINGLETON_macro() which is, as you might
suspect, defined by the macro. If you declare an LLSingleton subclass without
using LLSINGLETON() or LLSINGLETON_EMPTY_CTOR() in the class body, you can't
instantiate the subclass for lack of a you_must_use_LLSINGLETON_macro()
implementation -- which will hopefully remind the coder.

Trawl through ALL LLSingleton subclass definitions, sprinkling in
LLSINGLETON() or LLSINGLETON_EMPTY_CTOR() as appropriate. Remove all explicit
constructor declarations, public or private, along with relevant 'friend class
LLSingleton<myself>' declarations. Where destructors are declared, move them
into private section as well. Where the constructor was inline but nontrivial,
move out of class body.

Fix several LLSingleton abuses revealed by making ctors/dtors private:

LLGlobalEconomy was both an LLSingleton and the base class for
LLRegionEconomy, a non-LLSingleton. (Therefore every LLRegionEconomy instance
contained another instance of the LLGlobalEconomy "singleton.") Extract
LLBaseEconomy; LLGlobalEconomy is now a trivial subclass of that.
LLRegionEconomy, as you might suspect, now derives from LLBaseEconomy.

LLToolGrab, an LLSingleton, was also explicitly instantiated by
LLToolCompGun's constructor. Extract LLToolGrabBase, explicitly instantiated,
with trivial subclass LLToolGrab, the LLSingleton instance.

(WARNING: LLToolGrabBase methods have an unnerving tendency to go after
LLToolGrab::getInstance(). I DO NOT KNOW what should be the relationship
between the instance in LLToolCompGun and the LLToolGrab singleton instance.)

LLGridManager declared a variant constructor accepting (const std::string&),
with the comment:
// initialize with an explicity grid file for testing.
As there is no evidence of this being called from anywhere, delete it.

LLChicletBar's constructor accepted an optional (const LLSD&). As the LLSD
parameter wasn't used, and as there is no evidence of it being passed from
anywhere, delete the parameter.

LLViewerWindow::shutdownViews() was checking LLNavigationBar::
instanceExists(), then deleting its getInstance() pointer -- leaving a
dangling LLSingleton instance pointer, a land mine if any subsequent code
should attempt to reference it. Use deleteSingleton() instead.

~LLAppViewer() was calling LLViewerEventRecorder::instance() and then
explicitly calling ~LLViewerEventRecorder() on that instance -- leaving the
LLSingleton instance pointer pointing to an allocated-but-destroyed instance.
Use deleteSingleton() instead.
2016-09-15 20:18:12 -04:00
Ansariel a0188a5358 Merge Firestorm LGPL 2016-05-09 12:41:24 +02:00
Oz Linden 950c41d184 merge 4.0.4-release and MAINT-5974 2016-05-06 10:28:42 -04:00
Ansariel 1bba3dfbe4 Merge viewer-bear 2016-03-17 21:14:49 +01:00
andreykproductengine 230fc28d8a MAINT-6097 FIXED On required update, clicking link to release notes opens browser behind menu 2016-03-11 20:16:03 +02:00
Ansariel 3192fe832f Merge viewer-quickgraphics 2016-03-08 01:41:31 +01:00
Oz Linden bc22e58743 merge changes for 4.0.1-release 2016-01-15 16:55:04 -05:00
Ansariel 5f7b0c5a59 Merge viewer-bear 2016-01-13 12:34:02 +01:00
AndreyL ProductEngine 30446d6afc MAINT-6018 Open URL dialog spam
Added the ability to close all notifications from one owner at once
2016-01-11 03:24:36 +02:00
AndreyL ProductEngine 29cb3a4a93 MAINT-6018 Open URL dialog spam
Added the ability to close all notifications from one owner at once
2016-01-11 03:24:36 +02:00
Oz Linden c8726aba30 remove execute permission from many files that should not have it 2015-11-10 09:48:56 -05:00
Ansariel 4ce6691cf8 Merge viewer-xp_tools 2015-06-25 11:57:17 +02:00