summaryrefslogtreecommitdiff
path: root/indra/llui/llnotifications.cpp
AgeCommit message (Collapse)Author
2017-04-25MAINT-7145 Eliminate LLSingleton circular referencesandreykproductengine
2016-05-06merge 4.0.4-release and MAINT-5974Oz Linden
2016-03-11MAINT-6097 FIXED On required update, clicking link to release notes opens ↵andreykproductengine
browser behind menu
2016-01-15merge changes for 4.0.1-releaseOz Linden
2016-01-11MAINT-6018 Open URL dialog spamAndreyL ProductEngine
Added the ability to close all notifications from one owner at once
2016-01-11MAINT-6018 Open URL dialog spamAndreyL ProductEngine
Added the ability to close all notifications from one owner at once
2015-11-10remove execute permission from many files that should not have itOz Linden
2014-07-09Merge with 3.7.11-releasedolphin
2014-05-17Added COMBINE_WITH_NEW for notifications for ACME-1471Cho
2014-05-06Automated merge with http://hg.secondlife.com/viewer-releaseNat Goodspeed
2014-03-28DRTVWR-363: Fix LLNotificationsListener::listChannels() channel walk.Nat Goodspeed
LLNotifications::ChannelMap went away when LLNotificationChannel became an LLInstanceTracker subclass. Iterate the universe of channels using LLNotificationChannel::beginInstances(), endInstances() instead. More troubling is that LLNotificationChannel::getParentChannelName() went away too. When LLNotificationChannel acquired a Params block and corresponding constructor, it acquired the ability to listen on multiple upstream sources. That meant that a single mParent string became inapplicable, and its access method was removed. (Curiously, mParent was not itself removed, but it was left unused.) Change mParent to mParents, a vector<string>, built by connectToChannel(). Introduce getParents(), an accessor returning an iterator_range over that vector. Change LLNotificationsListener::listChannels() to collect a "parents" key in the map returned for each channel, and -- for backwards compatibility -- capture the first entry in the "parents" array as "parent".
2013-11-06merge with releaseRichard Linden
2013-10-15merge changes for DRTVWR-336Oz Linden
2013-10-08merge from viewer-releaseRichard Linden
2013-09-09merge with viewer-releaseRichard Linden
2013-08-26Merge downstream code from CHUIStorm releasesimon
2013-08-26merge changes for 3.6.4-releaseOz Linden
2013-08-23MAINT-3046 make LLNotifications clear out vecs of LLNotificationChannelPtr ↵Graham Madarasz (Graham Linden)
so singleton cleanup doesn't do things it really ought not do
2013-08-09second phase summer cleaningRichard Linden
replace llinfos, lldebugs, etc with new LL_INFOS(), LL_DEBUGS(), etc.
2013-07-25CHOP-962: Make LLControlVariable::setPersist() accept only enum.Nat Goodspeed
Initial change made LLControlVariable::mPersist an enum, but retained bool/BOOL public API. setPersist(true) set one value, setPersist(false) set another, forcePersist() set the third. Per code review, expose enum to public, make setPersist() (and LLControlVariable constructor, and LLControlGroup:: declareControl(), and all the LLControlGroup::declareMumble() methods, and all the unit-test dummy declareMumble() method bodies) accept that enum. Remove forcePersist(). Fix calls to LLControlGroup::declareMumble() accordingly. Also rename PERSIST_YES to PERSIST_NONDFT, also per code review.
2013-07-25Restore VITA LLNotiication APIJeff (Gioffredo Linden)
2013-06-24SH-4242 FIX interesting: Mac viewer crashes on exitRichard Linden
made notifications subsystem touch instancetracker<notificationchannel> in constructor so that teardown order is preserved
2013-06-05merge with viewer-releaseRichard Linden
2013-03-29Update Mac and Windows breakpad builds to latestGraham Madarasz
2013-03-22merge with viewer-releaseRichard Linden
2013-01-30Pull merge from lindenlab/viewer-developementMerov Linden
2013-01-15CHUI-679 FIX Crash when script floater appears in CHUI viewerCho
LLPostponedNotification now inherits from LLMortician so it can postpone its deletion. This prevents a crash when looking up an avatar name in the case where the name already exists in the cache.
2013-01-08CHUI-660: Post code review changesGilbert Gonzales
2013-01-08CHUI-660: Problem: Upon auto-existing DND mode upon startup, the ↵Gilbert Gonzales
notification form elements (buttonts) were added to the form. But then deserialized form elements were also being added to the form causing duplicate buttons. As a solution, only add on the deserialized form elements that exceed the amount in the template.
2013-01-04Merge with viewer-chuiMerov Linden
2013-01-04Merge with viewer-chuiMerov Linden
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.
2012-12-17CHUI-580 : WIP : Added disconnect of callbacks once they're called to ↵Merov Linden
prevent filling up the callback queue
2012-12-17CHUI-580 : WIP : Protect callback connections passed to ↵Merov Linden
LLAvatarNameCache::get() where necessary
2012-12-18CHUI-499: Adding ability to serialize the communication notifications to ↵William Todd Stinson
local disk per user.
2012-12-05Pull and merge ssh://stinson@hg.lindenlab.com/richard/viewer-chui/.William Todd Stinson
2012-12-05CHUI-519 FIXED Do not put offered items into the trash while in Busy / DND modemaksymsproductengine
2012-12-04Pull and merge viewer-developmentsimon@Simon-PC.lindenlab.com
2012-12-03Cleaning up some unreferenced member variables and related types from ↵William Todd Stinson
LLNotifications.
2012-11-20Pull and merge from ssh://hg@bitbucket.org/lindenlab/viewer-beta.William Todd Stinson
2012-11-19merge with viewer-developmentRichard Linden
2012-11-15CHUI-489: Code review cleanup for both CHUI-489 and CHUI-486. This should be ↵Gilbert Gonzales
last commit for CHUI-489.
2012-11-15CHUI-489: Now sounds exist for teleport and inventory offers. The sound is ↵Gilbert Gonzales
specified in notifications.xml. Also changes for CHUI 486, which allow the user to set preferences for hearing sounds for a New Conversation, Incoming Voice Call, Teleport Offer and Inventory Offer.
2012-11-07SH-3499 WIP Ensure asset stats output is correctRichard Linden
further fixes to implicit conversion of unit types
2012-11-02CHUI-475: Ensuring that objects that query the avatar name cache with a ↵William Todd Stinson
callback store the connection and disconnect on object destruction. This should help resolve some of the heap corruption we are seeing.
2012-09-26MAINT-994 Oskar Linden login issuesKelly Washington
* Set max persistent notifications to 250 * Don't register for notification callbacks until after peristent ones are loaded. reviewed with Simon
2012-10-11Change LLDir::findSkinnedFilenames() to use enum instead of bool.Nat Goodspeed
At Richard's suggestion, changed the bool merge parameter to new enum ESkinConstraint with values CURRENT_SKIN and ALL_SKINS. This clarifies what we're requesting at the point of the call.
2012-10-10Introduce new LLDir::findSkinnedFilenames() method. Use as needed.Nat Goodspeed
In a number of different places, for different reasons, the viewer wants to load a UI-related file that might be overridden by a non-default skin; and within that skin, might further be overridden by a non-default language. Apparently, for each of those use cases, every individual developer approached it as an entirely new problem, solving it idiosyncratically for that one case. Not only is this a maintenance problem, but it rubs one's nose in the fact that most such solutions consider only a subset of the relevant skin directories. Richard and I evolved an API intended to address all such cases: a central LLDir method returning a list of relevant pathnames, from most general to most localized, filtered to present only existing files; plus a couple of convenience methods to specifically obtain the most general and most localized available file. There were several load-skinned-file methods (LLFloater::buildFromFile(), LLPanel::buildFromFile() and LLUICtrlFactory::createFromFile() -- apparently cloned-and-modified from each other) that contained funky bolted-on logic to output the loaded data to an optional passed LLXMLNodePtr param. The trouble is that passing that param forced each of these methods to subvert its normal search: specifically for that case, it needed to find the baseline XML file instead of the localized one. Richard agreed that for the intended usage (reformatting XML files) we should use XML schema instead, and that the hacky functionality should be removed. Remove it. Also remove LLUICtrlFactory::getLocalizedXMLNode(), only used for those three special cases. Some callers explicitly passed the optional LLXMLNodePtr param as NULL. Remove that. Remove LLFloaterUIPreview::displayFloater(save) param, which relied on the optional output LLXMLNodePtr param. Make onClickSaveFloater() and onClickSaveAll() emit popupAndPrintWarning() about discontinued functionality. Recast LLFloater::buildFromFile(), LLPanel::buildFromFile(), LLUICtrlFactory::createFromFile(), LLNotifications::loadTemplates(), LLUI::locateSkin(), LLFontRegistry::parseFontInfo(), LLUIColorTable::loadFromSettings(), LLUICtrlFactory::loadWidgetTemplate(), LLUICtrlFactory::getLayeredXMLNode(), LLUIImageList::initFromFile(), LLAppViewer::launchUpdater() and LLMediaCtrl::navigateToLocalPage() to use findSkinnedFilenames(). (Is LLAppViewer::launchUpdater() ever called any more? Apparently so -- though the linux-updater.bin logic to process the relevant command-line switch has been disabled. Shrug.) (Is LLMediaCtrl::navigateToLocalPage() ever used?? If so, why?) Remove LLUI::setupPaths(), getXUIPaths(), getSkinPath() and getLocalizedSkinPath(). Remove the skins/paths.xml file read by setupPaths(). The only configuration it contained was the pair of partial paths "xui/en" and "xui/[LANGUAGE]" -- hardly likely to change. getSkinPath() specifically returned the first of these, while getLocalizedSkinPath() specifically returned the second. This knowledge is now embedded in findSkinnedFilenames(). Also remove paths.xml from viewer_manifest.py. Remove injected xui_paths from LLFontGL::initClass() and LLFontRegistry::LLFontRegistry(). These are no longer needed since LLFontRegistry can now directly consult LLDir for its path search. Stop passing LLUI::getXUIPaths() to LLFontGL::initClass() in LLViewerWindow's constructor and initFonts() method. Add LLDir::append() and add() methods for the simple task of combining two path components separated by getDirDelimiter() -- but only if they're both non-empty. Amazing how often that logic is replicated. Replace some existing concatenations with add() or append(). New LLDir::findSkinnedFilenames() method must know current language. Allow injecting current language by adding an LLDir::setSkinFolder(language) param, and pass it where LLAppViewer::init() and initConfiguration() currently call setSkinFolder(). Also add LLDir::getSkinFolder() and getLanguage() methods. Change LLFLoaterUIPreview's LLLocalizationResetForcer helper to "forcibly reset language" using LLDir::setSkinFolder() instead of LLUI::setupPaths(). Update LLDir stubs in lldir_stub.cpp and llupdaterservice_test.cpp. Add LLDir::getUserDefaultSkinDir() to obtain often-overlooked possible skin directory -- like getUserSkinDir() but with "default" in place of the current skin name as the last path component. (However, we hope findSkinnedFilenames() obviates most explicit use of such individual skin directory pathnames.) Add LLDir unit tests for new findSkinnedFilenames() and add() methods -- the latter exercises append() as well. Tweak indra/integration_tests/llui_libtest/llui_libtest.cpp for all the above. Notably, comment out its export_test_floaters() function, since the essential LLFloater::buildFromFile(optional LLXMLNodePtr) functionality has been removed. This may mean that llui_libtest.cpp has little remaining value, not sure.
2012-08-09Pull and merge from ssh://hg@bitbucket.org/lindenlab/viewer-beta.Todd Stinson