summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMnikolenko ProductEngine <mnikolenko@productengine.com>2016-02-09 18:32:41 +0200
committerMnikolenko ProductEngine <mnikolenko@productengine.com>2016-02-09 18:32:41 +0200
commit80593bf5bee927c763a55ffb086c5eada20ffd96 (patch)
tree03c0344242d3b49acac5cf2dbe1f4d6f6b045ad2
parent8351acc78c0fe72da2e5bf47b206ef9caf4b329c (diff)
MAINT-6120 Group notices do not show in chronological order in Notification floater
-rwxr-xr-xindra/newview/llpersistentnotificationstorage.cpp25
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;