From a069a0df0f51a948a86e34d99f952a33eecd97ba Mon Sep 17 00:00:00 2001 From: Tobias Markmann Date: Fri, 8 Mar 2013 17:10:12 +0100 Subject: Show idle time as local time in the UI. Change-Id: I4aabcd0dfd35fe06ff239dd0fb5f35c57226f461 License: This patch is BSD-licensed, see Documentation/Licenses/BSD-simplified.txt for details. diff --git a/Swift/Controllers/Chat/ChatController.cpp b/Swift/Controllers/Chat/ChatController.cpp index 2d2d941..3c0e933 100644 --- a/Swift/Controllers/Chat/ChatController.cpp +++ b/Swift/Controllers/Chat/ChatController.cpp @@ -24,6 +24,7 @@ #include #include #include +#include #include #include #include @@ -65,7 +66,7 @@ ChatController::ChatController(const JID& self, StanzaChannel* stanzaChannel, IQ } Idle::ref idle; if (theirPresence && (idle = theirPresence->getPayload())) { - startMessage += QT_TRANSLATE_NOOP("", ", who has been idle since ") + boost::posix_time::to_simple_string(idle->getSince()); + startMessage += str(format(QT_TRANSLATE_NOOP("", ", who has been idle since %1%")) % dateTimeToLocalString(idle->getSince())); } startMessage += ": " + statusShowTypeToFriendlyName(theirPresence ? theirPresence->getShow() : StatusShow::None); if (theirPresence && !theirPresence->getStatus().empty()) { @@ -342,7 +343,7 @@ std::string ChatController::getStatusChangeString(boost::shared_ptr pr } Idle::ref idle; if ((idle = presence->getPayload())) { - response += QT_TRANSLATE_NOOP("", " and has been idle since ") + boost::posix_time::to_simple_string(idle->getSince()); + response += str(format(QT_TRANSLATE_NOOP("", " and has been idle since %1%")) % dateTimeToLocalString(idle->getSince())); } if (!response.empty()) { diff --git a/Swift/Controllers/Roster/ContactRosterItem.cpp b/Swift/Controllers/Roster/ContactRosterItem.cpp index d2edfe7..f301552 100644 --- a/Swift/Controllers/Roster/ContactRosterItem.cpp +++ b/Swift/Controllers/Roster/ContactRosterItem.cpp @@ -8,6 +8,7 @@ #include "Swift/Controllers/Roster/GroupRosterItem.h" #include +#include #include #include @@ -47,7 +48,7 @@ std::string ContactRosterItem::getIdleText() const { if (!idle || idle->getSince().is_not_a_date_time()) { return ""; } else { - return boost::posix_time::to_simple_string(idle->getSince()); + return dateTimeToLocalString(idle->getSince()); } } diff --git a/Swiften/Base/DateTime.cpp b/Swiften/Base/DateTime.cpp index fae26d4..5d192c4 100644 --- a/Swiften/Base/DateTime.cpp +++ b/Swiften/Base/DateTime.cpp @@ -10,6 +10,7 @@ #include #include #include +#include #include @@ -31,4 +32,8 @@ std::string dateTimeToString(const boost::posix_time::ptime& time) { return stampString; } +std::string dateTimeToLocalString(const boost::posix_time::ptime& time) { + return boost::posix_time::to_simple_string(boost::date_time::c_local_adjustor::utc_to_local(time)); +} + } diff --git a/Swiften/Base/DateTime.h b/Swiften/Base/DateTime.h index bc9eecb..891b170 100644 --- a/Swiften/Base/DateTime.h +++ b/Swiften/Base/DateTime.h @@ -20,4 +20,9 @@ namespace Swift { * Converts a UTC ptime object to a XEP-0082 formatted string. */ SWIFTEN_API std::string dateTimeToString(const boost::posix_time::ptime& time); + + /** + * Converts a UTC ptime object to a localized human readable string. + */ + SWIFTEN_API std::string dateTimeToLocalString(const boost::posix_time::ptime& time); } -- cgit v0.10.2-6-g49f6