From c0f0ab471345fe3f3a3517bb302c7da1549c8f25 Mon Sep 17 00:00:00 2001 From: Catalin Badea Date: Fri, 27 Jul 2012 22:59:24 +0300 Subject: fix localtime utc conversion issues diff --git a/Swift/Controllers/HistoryController.cpp b/Swift/Controllers/HistoryController.cpp index deda25b..c03cc2c 100644 --- a/Swift/Controllers/HistoryController.cpp +++ b/Swift/Controllers/HistoryController.cpp @@ -7,6 +7,7 @@ #include #include #include +#include namespace Swift { @@ -20,7 +21,9 @@ HistoryController::~HistoryController() { } void HistoryController::addMessage(const std::string& message, const JID& fromJID, const JID& toJID, HistoryMessage::Type type, const boost::posix_time::ptime& timeStamp) { - HistoryMessage historyMessage(message, fromJID, toJID, type, timeStamp); + // note: using localtime timestamps + HistoryMessage historyMessage(message, fromJID, toJID, type, boost::date_time::c_local_adjustor::utc_to_local(timeStamp)); + localHistory_->addMessage(historyMessage); onNewMessage(historyMessage); } diff --git a/Swift/QtUI/QtHistoryWindow.cpp b/Swift/QtUI/QtHistoryWindow.cpp index 0a7c5b5..a0ccbf9 100644 --- a/Swift/QtUI/QtHistoryWindow.cpp +++ b/Swift/QtUI/QtHistoryWindow.cpp @@ -106,8 +106,11 @@ void QtHistoryWindow::addMessage(const std::string &message, const std::string & QString messageHTML(P2QSTRING(message)); messageHTML = Qt::escape(messageHTML); - QDateTime qTime = B2QDATE(time); - QDate date = qTime.date(); + + // note: time uses localtime + QDate date = QDate(time.date().year(), time.date().month(), time.date().day()); + QTime dayTime = QTime(time.time_of_day().hours(), time.time_of_day().minutes(), time.time_of_day().seconds()); + QDateTime qTime = QDateTime(date, dayTime); std::string id = "id" + boost::lexical_cast(idCounter_++); diff --git a/Swiften/History/HistoryManager.h b/Swiften/History/HistoryManager.h index 6b32206..104f0ad 100644 --- a/Swiften/History/HistoryManager.h +++ b/Swiften/History/HistoryManager.h @@ -17,6 +17,9 @@ namespace Swift { typedef std::map > ContactsMap; class HistoryManager { + /** + * Messages are stored using localtime timestamps. + */ public: virtual ~HistoryManager(); -- cgit v0.10.2-6-g49f6