From c7fd0a36873b53308946d67e9313195b04bcc683 Mon Sep 17 00:00:00 2001 From: Charlie Fenton Date: Thu, 21 Nov 2013 05:30:10 -0800 Subject: [PATCH] MGR: Work around a wxCocoa bug(?) in wxDateTime::Format() --- clientgui/DlgEventLog.cpp | 13 ++++++++++++- clientgui/ViewWork.cpp | 8 ++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/clientgui/DlgEventLog.cpp b/clientgui/DlgEventLog.cpp index b3e879ef9a..d1756eb81c 100644 --- a/clientgui/DlgEventLog.cpp +++ b/clientgui/DlgEventLog.cpp @@ -38,6 +38,9 @@ #include "AdvancedFrame.h" #include +#ifdef __WXMAC__ +#include +#endif ////@begin includes ////@end includes @@ -994,12 +997,20 @@ wxInt32 CDlgEventLog::FormatProjectName(wxInt32 item, wxString& strBuffer) const wxInt32 CDlgEventLog::FormatTime(wxInt32 item, wxString& strBuffer) const { - wxDateTime dtBuffer; MESSAGE* message = wxGetApp().GetDocument()->message(item); if (message) { +#ifdef __WXMAC__ + // Work around a wxCocoa bug(?) in wxDateTime::Format() + char buf[80]; + struct tm * timeinfo = localtime((time_t*)&message->timestamp); + strftime(buf, sizeof(buf), "%c", timeinfo); + strBuffer = buf; +#else + wxDateTime dtBuffer; dtBuffer.Set((time_t)message->timestamp); strBuffer = dtBuffer.Format(); +#endif } return 0; diff --git a/clientgui/ViewWork.cpp b/clientgui/ViewWork.cpp index 102f9abf88..d84c37a588 100644 --- a/clientgui/ViewWork.cpp +++ b/clientgui/ViewWork.cpp @@ -1163,10 +1163,18 @@ void CViewWork::GetDocReportDeadline(wxInt32 item, time_t& time) const { wxInt32 CViewWork::FormatReportDeadline(time_t deadline, wxString& strBuffer) const { +#ifdef __WXMAC__ + // Work around a wxCocoa bug(?) in wxDateTime::Format() + char buf[80]; + struct tm * timeinfo = localtime(&deadline); + strftime(buf, sizeof(buf), "%c", timeinfo); + strBuffer = buf; +#else wxDateTime dtTemp; dtTemp.Set(deadline); strBuffer = dtTemp.Format(); +#endif return 0; }