From 80593bf5bee927c763a55ffb086c5eada20ffd96 Mon Sep 17 00:00:00 2001 From: Mnikolenko ProductEngine Date: Tue, 9 Feb 2016 18:32:41 +0200 Subject: MAINT-6120 Group notices do not show in chronological order in Notification floater --- indra/newview/llpersistentnotificationstorage.cpp | 25 ++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) (limited to 'indra/newview') 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,9 +123,26 @@ void LLPersistentNotificationStorage::loadNotifications() LLNotifications& instance = LLNotifications::instance(); S32 processed_notifications = 0; + std::vector 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)); @@ -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; -- cgit v1.2.3