From 4cb9fa2954cbce36d7d02624cd4ba37cc3f969b5 Mon Sep 17 00:00:00 2001 From: Cho Date: Tue, 22 Apr 2014 00:52:45 +0100 Subject: Sorted Experience Events with most recent first for ACME-1431 --- indra/newview/llpanelexperiencelog.cpp | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) (limited to 'indra/newview') diff --git a/indra/newview/llpanelexperiencelog.cpp b/indra/newview/llpanelexperiencelog.cpp index 0c9f57b336..5d049beec3 100644 --- a/indra/newview/llpanelexperiencelog.cpp +++ b/indra/newview/llpanelexperiencelog.cpp @@ -112,10 +112,19 @@ void LLPanelExperienceLog::refresh() int itemsToSkip = mPageSize*mCurrentPage; int items = 0; bool moreItems = false; - + + LLSD daysArray = LLSD::emptyArray(); for(LLSD::map_const_iterator day = events.beginMap(); day != events.endMap() ; ++day) { - const LLSD& dayArray = day->second; + LLSD dayMap = LLSD::emptyMap(); + dayMap["day"] = day->first; + dayMap["data"] = day->second; + daysArray.append(dayMap); + } + + for(LLSD::reverse_array_iterator day = daysArray.rbeginArray(); day != daysArray.rendArray() ; ++day) + { + const LLSD& dayArray = day->get("data"); int size = dayArray.size(); if(itemsToSkip > size) { @@ -127,7 +136,7 @@ void LLPanelExperienceLog::refresh() moreItems = true; break; } - for(int i = itemsToSkip ; i < dayArray.size(); i++) + for(int i = dayArray.size() - itemsToSkip - 1; i >= 0; i--) { if(items >= mPageSize) { @@ -147,7 +156,7 @@ void LLPanelExperienceLog::refresh() LLSD& columns = item["columns"]; columns[0]["column"] = "time"; - columns[0]["value"] = day->first+event["Time"].asString(); + columns[0]["value"] = day->get("day").asString()+event["Time"].asString(); columns[1]["column"] = "event"; columns[1]["value"] = LLExperienceLog::getPermissionString(event, "ExperiencePermissionShort"); columns[2]["column"] = "experience_name"; -- cgit v1.2.3