X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e38bacf8840985709905e3c9672fe13377c030cd..538a0c0de22cb3ae125038e69b4de095f081147b:/src/generic/logg.cpp?ds=sidebyside diff --git a/src/generic/logg.cpp b/src/generic/logg.cpp index 7d0a8ca6d3..d8cd14dc7a 100644 --- a/src/generic/logg.cpp +++ b/src/generic/logg.cpp @@ -18,15 +18,11 @@ // headers // ---------------------------------------------------------------------------- -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) - #pragma implementation "logg.h" -#endif - // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" #ifdef __BORLANDC__ - #pragma hdrstop + #pragma hdrstop #endif #ifndef WX_PRECOMP @@ -41,7 +37,6 @@ #include "wx/textctrl.h" #include "wx/sizer.h" #include "wx/statbmp.h" - #include "wx/button.h" #include "wx/settings.h" #endif // WX_PRECOMP @@ -53,20 +48,18 @@ #include "wx/artprov.h" #ifdef __WXMSW__ - // for OutputDebugString() - #include "wx/msw/private.h" + // for OutputDebugString() + #include "wx/msw/private.h" #endif // Windows #ifdef __WXPM__ - #include + #include #endif #if wxUSE_LOG_DIALOG #include "wx/listctrl.h" #include "wx/imaglist.h" #include "wx/image.h" -#else // !wxUSE_LOG_DIALOG - #include "wx/msgdlg.h" #endif // wxUSE_LOG_DIALOG/!wxUSE_LOG_DIALOG #if defined(__MWERKS__) && wxUSE_UNICODE @@ -88,13 +81,18 @@ // allows to exclude the usage of wxDateTime static wxString TimeStamp(const wxChar *format, time_t t) { +#if wxUSE_DATETIME wxChar buf[4096]; - if ( !wxStrftime(buf, WXSIZEOF(buf), format, localtime(&t)) ) + struct tm tm; + if ( !wxStrftime(buf, WXSIZEOF(buf), format, wxLocaltime_r(&t, &tm)) ) { // buffer is too small? wxFAIL_MSG(_T("strftime() failed")); } return wxString(buf); +#else // !wxUSE_DATETIME + return wxEmptyString; +#endif // wxUSE_DATETIME/!wxUSE_DATETIME } @@ -251,6 +249,12 @@ void wxLogGui::Flush() // do it right now to block any new calls to Flush() while we're here m_bHasMessages = false; + unsigned repeatCount = 0; + if ( wxLog::GetRepetitionCounting() ) + { + repeatCount = wxLog::DoLogNumberOfRepeats(); + } + wxString appName = wxTheApp->GetAppName(); if ( !appName.empty() ) appName[0u] = (wxChar)wxToupper(appName[0u]); @@ -288,6 +292,8 @@ void wxLogGui::Flush() { #if wxUSE_LOG_DIALOG + if ( repeatCount > 0 ) + m_aMessages[nMsgCount-1] += wxString::Format(wxT(" (%s)"), m_aMessages[nMsgCount-2].c_str()); wxLogDialog dlg(NULL, m_aMessages, m_aSeverity, m_aTimes, title, style); @@ -429,6 +435,8 @@ void wxLogGui::DoLog(wxLogLevel level, const wxChar *szString, time_t t) // wxLogWindow and wxLogFrame implementation // ---------------------------------------------------------------------------- +#if wxUSE_LOGWINDOW + // log frame class // --------------- class wxLogFrame : public wxFrame @@ -682,6 +690,8 @@ wxLogWindow::~wxLogWindow() delete m_pLogFrame; } +#endif // wxUSE_LOGWINDOW + // ---------------------------------------------------------------------------- // wxLogDialog // ---------------------------------------------------------------------------- @@ -908,7 +918,7 @@ void wxLogDialog::CreateDetailsControls() if ( !fmt ) { // default format - fmt = wxDefaultDateTimeFormat; + fmt = _T("%c"); } size_t count = m_messages.GetCount(); @@ -994,7 +1004,7 @@ void wxLogDialog::OnSave(wxCommandEvent& WXUNUSED(event)) if ( !fmt ) { // default format - fmt = wxDefaultDateTimeFormat; + fmt = _T("%c"); } size_t count = m_messages.GetCount(); @@ -1217,4 +1227,3 @@ void wxLogTextCtrl::DoLogString(const wxChar *szString, time_t WXUNUSED(t)) } #endif // wxUSE_LOG && wxUSE_TEXTCTRL -