summaryrefslogtreecommitdiff
path: root/indra/newview/lldonotdisturbnotificationstorage.cpp
AgeCommit message (Collapse)Author
2016-09-15MAINT-5232: Normalize LLSingleton subclasses.Nat Goodspeed
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.
2015-11-10remove execute permission from many files that should not have itOz Linden
2013-10-15renamed TimeBlock to BlockTimerStatHandleRichard Linden
2013-09-09merge with viewer-releaseRichard Linden
2013-09-05changed fast timer over to using macroRichard Linden
another attempt to move mem stat into base class
2013-06-20CHUI-850 FIXED Unread notifications are lost after relog in certain ↵PavelK ProductEngine
circumstances
2013-05-22Pull merge from viewer-releaseMerov Linden
2013-04-25CHUI-759 FIXED Group invites never received in do not disturb mode when ↵PavelK ProductEngine
leaving do not disturb mode
2013-04-17CHUI-933 FIXED No notification of IMs when coming out of Do Not Disturb mode ↵PavelK ProductEngine
with Flash Toolbar button preference
2013-04-17CHUI-936 FIXED Do not show Conversation log floater if logging is disabled.Mnikolenko ProductEngine
2013-03-29Update Mac and Windows breakpad builds to latestGraham Madarasz
2013-03-27CHUI-875 (Viewer experiences a 10s delay on dnd (do not disturb) ↵Gilbert Gonzales
notification loading): For now adding logging when reading from persistent notifications and from dnd notifications.
2013-03-19CHUI 796 (User doesn't get all messages in 'do not disturb' mode): Now IM ↵Gilbert Gonzales
DND notifications will be stored as p2p, ad-hoc or group. When loading these notifications upon app start ad-hoc/group notifications will launch the conversation log and play a sound.
2013-02-12CHUI-758: Group notice received in DND mode causes crash on startup when ↵Gilbert Gonzales
auto-exiting DND mode. Crash occurred because two instances of the Group Notice notification were trying to be added from the persistent storage and then the DND storage.
2013-01-30Pull merge from lindenlab/viewer-developementMerov Linden
2013-01-25CHUI-667 Upon exit from DND mode, a maximum of one sound should be played. ↵Gilbert Gonzales
Solution. Added a deferred sound class which will have sound id's added to it and upon unmuting the deferred sounds will be played.
2013-01-23CHUI-687: post code review changes. Now upon deletion of an item, DND mode ↵Gilbert Gonzales
must be enabled in order to remove a notification from the DND history.
2013-01-23CHUI-687: Problem: User sees inventory offer notifications for deleted items ↵Gilbert Gonzales
when logging in from do not disturb mode. Resolution: If an item that is deletes has a DND notification saved, then remove that notification so that it doesn't appear onec the user exists DND mode.
2013-01-17CHUI-685 removing some commented out codeGilbert Gonzales
2013-01-17CHUI-685 Problem: The notifications .xml file was cleared upon exit because ↵Gilbert Gonzales
removeIMNotification was being called and deleting inventory offers becaus they did not have a session id. Resolution: Now check to make sure that removeIMNotification only removes IMs (IMToast).
2013-01-15CHUI-668: Code review changesGilbert Gonzales
2013-01-14CHUI-668: The user's most intrusive notification is not used anymore when ↵Gilbert Gonzales
coming out of DND mode with IMs. Adjusted code to just open the converseation floater (which was changed also in a prior fix by PE).
2013-01-14merging latest changesGilbert Gonzales
2013-01-11CHUI-668: Not fully complete but as of this commit, have functionality to ↵Gilbert Gonzales
use the user's most intrusive chat notification upon exiting from DND mode with IM's. Also if in DND mode, clicking on a conversation line item or floater, will flush the DND notifications system of storing that conversation. This way upon existing DND mode already responded conversations won't be notified to the user.
2013-01-08CHUI-660: Post code review changesGilbert Gonzales
2013-01-04CHUI-499: Now when existing DND mode, stored IM's will not show a toast but ↵Gilbert Gonzales
instead flash the conversation line item and Chat FUI button.
2013-01-03CHUI-499: Fixed a serialization problem where the a notification's ↵Gilbert Gonzales
objectInfo was not being serialized/deserialized.
2013-01-02CHUI-499: Removing debug codeGilbert Gonzales
2012-12-19CHUI-499: Code clean-up and adding some more types badly defined.William Todd Stinson
2012-12-19CHUI-499: Loading the DND notifications upon exit from DND mode and after login.William Todd Stinson
2012-12-18CHUI-499: Adding ability to serialize the communication notifications to ↵William Todd Stinson
local disk per user.