diff options
| author | Mnikolenko Productengine <mnikolenko@productengine.com> | 2016-05-10 16:09:25 +0300 |
|---|---|---|
| committer | Mnikolenko Productengine <mnikolenko@productengine.com> | 2016-05-10 16:09:25 +0300 |
| commit | b1243c55e5579f72e3dd9dafe2b53173349a047f (patch) | |
| tree | 9d9e0b018059483973a8e6f76644b0875d2534a3 /indra/newview/llpersistentnotificationstorage.cpp | |
| parent | 042930b59a82f706f16e4b67a683697aed65112f (diff) | |
| parent | 7f5e6cea124e1193b199a3eabd50bdab96340c13 (diff) | |
Merged in oz_linden/maint-5974
Diffstat (limited to 'indra/newview/llpersistentnotificationstorage.cpp')
| -rwxr-xr-x | 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 100755 --- 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; |
