From 37da43e1bab26563fefe18dc6b5cf027220c41cb Mon Sep 17 00:00:00 2001 From: Ansariel Date: Thu, 17 Sep 2015 22:25:16 +0200 Subject: [PATCH] FIRE-16960: Sorting in money tracker incorrect if date flips over --- indra/newview/fsmoneytracker.cpp | 14 +++++++++++--- indra/newview/fsmoneytracker.h | 3 ++- .../default/xui/en/floater_fs_money_tracker.xml | 4 ++++ 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/indra/newview/fsmoneytracker.cpp b/indra/newview/fsmoneytracker.cpp index bc96a97cda..bff83f5829 100644 --- a/indra/newview/fsmoneytracker.cpp +++ b/indra/newview/fsmoneytracker.cpp @@ -63,6 +63,8 @@ void FSMoneyTracker::onClose(bool app_quitting) void FSMoneyTracker::addPayment(const LLUUID other_id, bool is_group, S32 amount, bool incoming) { + time_t utc_time = time_corrected(); + S32 scroll_pos = mTransactionHistory->getScrollPos(); bool at_end = mTransactionHistory->getScrollbar()->isAtEnd(); @@ -70,11 +72,12 @@ void FSMoneyTracker::addPayment(const LLUUID other_id, bool is_group, S32 amount item_params.value = other_id; item_params.name = LLTrans::getString("AvatarNameWaiting"); item_params.target = is_group ? LLNameListCtrl::GROUP : LLNameListCtrl::INDIVIDUAL; - item_params.columns.add().column("time").value(getTime()); + item_params.columns.add().column("time").value(getTime(utc_time)); item_params.columns.add().column("name"); item_params.columns.add().column("amount") .value((incoming ? amount : -amount)) .color(LLUIColorTable::instance().getColor((incoming ? "MoneyTrackerIncrease" : "MoneyTrackerDecrease"))); + item_params.columns.add().column("time_sort_column").value(getDate(utc_time)); mTransactionHistory->addNameItemRow(item_params); @@ -84,9 +87,8 @@ void FSMoneyTracker::addPayment(const LLUUID other_id, bool is_group, S32 amount } } -std::string FSMoneyTracker::getTime() +std::string FSMoneyTracker::getTime(time_t utc_time) { - time_t utc_time = time_corrected(); std::string timeStr = "[" + LLTrans::getString("TimeHour") + "]:[" + LLTrans::getString("TimeMin") + "]:[" + LLTrans::getString("TimeSec") + "]"; LLSD substitution; @@ -96,6 +98,12 @@ std::string FSMoneyTracker::getTime() return timeStr; } +std::string FSMoneyTracker::getDate(time_t utc_time) +{ + LLDate curdate = LLDate(utc_time); + return curdate.asString(); +} + void FSMoneyTracker::clear() { LL_INFOS() << "Cleared." << LL_ENDL; diff --git a/indra/newview/fsmoneytracker.h b/indra/newview/fsmoneytracker.h index 701016388d..0830272a66 100644 --- a/indra/newview/fsmoneytracker.h +++ b/indra/newview/fsmoneytracker.h @@ -45,7 +45,8 @@ public: private: void clear(); - std::string getTime(); + std::string getTime(time_t utc_time); + std::string getDate(time_t utc_time); LLNameListCtrl* mTransactionHistory; }; diff --git a/indra/newview/skins/default/xui/en/floater_fs_money_tracker.xml b/indra/newview/skins/default/xui/en/floater_fs_money_tracker.xml index 11dbee52e0..386b13bd21 100644 --- a/indra/newview/skins/default/xui/en/floater_fs_money_tracker.xml +++ b/indra/newview/skins/default/xui/en/floater_fs_money_tracker.xml @@ -30,6 +30,7 @@ +