use LogLastRepetitionCountIfNeeded() instead of DoLogNumberOfRepeats() in logg.cpp too

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@49410 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2007-10-24 22:19:28 +00:00
parent 5ed63bf59f
commit 0250efd6f4
3 changed files with 17 additions and 9 deletions

View File

@@ -304,8 +304,9 @@ protected:
#endif
// log a message indicating the number of times the previous message was
// repeated; only does something if ms_prevCounter > 0
static void LogLastRepetitionCountIfNeeded();
// repeated if ms_prevCounter > 0, does nothing otherwise; return the old
// value of ms_prevCounter
static unsigned LogLastRepetitionCountIfNeeded();
private:
// static variables

View File

@@ -458,10 +458,12 @@ void WXDLLEXPORT wxVLogSysError(unsigned long err, const wxString& format, va_li
// ----------------------------------------------------------------------------
/* static */
void wxLog::LogLastRepetitionCountIfNeeded()
unsigned wxLog::LogLastRepetitionCountIfNeeded()
{
wxCRIT_SECT_LOCKER(lock, ms_prevCS);
const unsigned count = ms_prevCounter;
wxLog *pLogger = GetActiveTarget();
if ( pLogger && ms_prevCounter )
{
@@ -479,6 +481,8 @@ void wxLog::LogLastRepetitionCountIfNeeded()
ms_prevString.clear();
pLogger->DoLog(ms_prevLevel, msg, ms_prevTimeStamp);
}
return count;
}
wxLog::~wxLog()
@@ -904,6 +908,9 @@ wxLogInterposerTemp::wxLogInterposerTemp()
// static variables
// ----------------------------------------------------------------------------
#if wxUSE_THREADS
wxCriticalSection wxLog::ms_prevCS;
#endif // wxUSE_THREADS
bool wxLog::ms_bRepetCounting = false;
wxString wxLog::ms_prevString;
unsigned int wxLog::ms_prevCounter = 0;

View File

@@ -275,11 +275,7 @@ 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();
}
const unsigned repeatCount = wxLog::LogLastRepetitionCountIfNeeded();
wxString appName = wxTheApp->GetAppDisplayName();
@@ -317,7 +313,11 @@ void wxLogGui::Flush()
#if wxUSE_LOG_DIALOG
if ( repeatCount > 0 )
m_aMessages[nMsgCount-1] += wxString::Format(wxT(" (%s)"), m_aMessages[nMsgCount-2].c_str());
{
m_aMessages[nMsgCount - 1]
<< " (" << m_aMessages[nMsgCount - 2] << ")";
}
wxLogDialog dlg(NULL,
m_aMessages, m_aSeverity, m_aTimes,
title, style);