diff options
| author | Oz Linden <oz@lindenlab.com> | 2016-05-06 10:28:42 -0400 |
|---|---|---|
| committer | Oz Linden <oz@lindenlab.com> | 2016-05-06 10:28:42 -0400 |
| commit | 950c41d184b340a7a3370c2cbda5d1eed9a17b0b (patch) | |
| tree | 373912394af6834d7d56258becf46954244b8423 /indra/newview/llpersistentnotificationstorage.cpp | |
| parent | 20198b750d02c769ab6845226f98ce6e5dd1f20b (diff) | |
| parent | 7f5e6cea124e1193b199a3eabd50bdab96340c13 (diff) | |
merge 4.0.4-release and MAINT-5974
Diffstat (limited to 'indra/newview/llpersistentnotificationstorage.cpp')
| -rw-r--r-- | indra/newview/llpersistentnotificationstorage.cpp | 25 |
1 files changed, 18 insertions, 7 deletions
diff --git a/indra/newview/llpersistentnotificationstorage.cpp b/indra/newview/llpersistentnotificationstorage.cpp index 9e4f50b7a7..9c0222d0bc 100644 --- a/indra/newview/llpersistentnotificationstorage.cpp +++ b/indra/newview/llpersistentnotificationstorage.cpp @@ -123,11 +123,28 @@ void LLPersistentNotificationStorage::loadNotifications() LLNotifications& instance = LLNotifications::instance(); S32 processed_notifications = 0; + std::vector<LLSD> notifications_array; for (LLSD::reverse_array_iterator notification_it = data.rbeginArray(); notification_it != data.rendArray(); ++notification_it) { LLSD notification_params = *notification_it; + notifications_array.push_back(notification_params); + + ++processed_notifications; + if (processed_notifications >= gSavedSettings.getS32("MaxPersistentNotifications")) + { + LL_WARNS() << "Too many persistent notifications." + << " Processed " << gSavedSettings.getS32("MaxPersistentNotifications") << " of " << data.size() << " persistent notifications." << LL_ENDL; + break; + } + } + + for (LLSD::reverse_array_iterator notification_it = notifications_array.rbegin(); + notification_it != notifications_array.rend(); + ++notification_it) + { + LLSD notification_params = *notification_it; LLNotificationPtr notification(new LLNotification(notification_params)); LLNotificationResponderPtr responder(createResponder(notification_params["name"], notification_params["responder"])); @@ -143,14 +160,8 @@ void LLPersistentNotificationStorage::loadNotifications() // hide saved toasts so they don't confuse the user notification_channel->hideToast(notification->getID()); } - ++processed_notifications; - if (processed_notifications >= gSavedSettings.getS32("MaxPersistentNotifications")) - { - LL_WARNS() << "Too many persistent notifications." - << " Processed " << gSavedSettings.getS32("MaxPersistentNotifications") << " of " << data.size() << " persistent notifications." << LL_ENDL; - break; - } } + LLNotifications::instance().getChannel("Persistent")-> connectChanged(boost::bind(&LLPersistentNotificationStorage::onPersistentChannelChanged, this, _1)); LL_INFOS("LLPersistentNotificationStorage") << "finished loading notifications" << LL_ENDL; |
