diff options
author | AndreyL ProductEngine <alihatskiy@productengine.com> | 2016-05-06 17:31:36 +0300 |
---|---|---|
committer | AndreyL ProductEngine <alihatskiy@productengine.com> | 2016-05-06 17:31:36 +0300 |
commit | b32d00308e4c3efee0c799f936155b58665ffc21 (patch) | |
tree | 81d2aefb0303d48944f470a6fb6886ff0d497969 /indra/newview/llpersistentnotificationstorage.cpp | |
parent | 76d1551e2ce53f8c26a8f5ced6c27c9a85e8a19f (diff) | |
parent | 94559950a2c670990db56bd74e65d26652421b8c (diff) |
Merged in lindenlab/viewer-release
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; |