removed wxLog::HasPendingMessages() (it can't be made to work correctly with wxLogChain); don't send the messages going to a log file to debug output under MSW
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@18675 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -72,15 +72,12 @@ night in the current time zone).
|
||||
There also functions to support message buffering. Why are they needed?
|
||||
Some of wxLog implementations, most notably the standard wxLogGui class,
|
||||
buffer the messages (for example, to avoid showing the user a zillion of modal
|
||||
message boxes one after another - which would be really annoying).
|
||||
message boxes one after another -- which would be really annoying).
|
||||
\helpref{Flush()}{wxlogflush} shows them all and clears the buffer contents.
|
||||
Although this function doesn't do anything if the buffer is already empty,
|
||||
\helpref{HasPendingMessages()}{wxloghaspendingmessages} is also provided which
|
||||
allows to explicitly verify it.
|
||||
This function doesn't do anything if the buffer is already empty.
|
||||
|
||||
\helpref{Flush}{wxlogflush}\\
|
||||
\helpref{FlushActive}{wxlogflushactive}\\
|
||||
\helpref{HasPendingMessages}{wxloghaspendingmessages}
|
||||
\helpref{FlushActive}{wxlogflushactive}
|
||||
|
||||
\membersection{Customization}\label{wxlogcustomization}
|
||||
|
||||
@@ -294,13 +291,6 @@ See also:
|
||||
|
||||
\helpref{Flush}{wxlogflush}
|
||||
|
||||
\membersection{wxLog::HasPendingMessages}\label{wxloghaspendingmessages}
|
||||
|
||||
\constfunc{bool}{HasPendingMessages}{\void}
|
||||
|
||||
Returns true if there are any messages in the buffer (not yet shown to the
|
||||
user). (Almost) for internal use only.
|
||||
|
||||
\membersection{wxLog::SetVerbose}\label{wxlogsetverbose}
|
||||
|
||||
\func{static void}{SetVerbose}{\param{bool }{ verbose = TRUE}}
|
||||
|
@@ -143,22 +143,19 @@ public:
|
||||
// and iostream logs don't need it, but wxGuiLog does to avoid showing
|
||||
// 17 modal dialogs one after another)
|
||||
virtual void Flush();
|
||||
// call to Flush() may be optimized: call it only if this function
|
||||
// returns true (although Flush() also returns immediately if there is
|
||||
// no messages, this functions is more efficient because inline)
|
||||
bool HasPendingMessages() const { return m_bHasMessages; }
|
||||
|
||||
// only one sink is active at each moment
|
||||
// flush the active target if any
|
||||
static void FlushActive()
|
||||
{
|
||||
if ( !ms_suspendCount )
|
||||
{
|
||||
wxLog *log = GetActiveTarget();
|
||||
if ( log && log->HasPendingMessages() )
|
||||
if ( log )
|
||||
log->Flush();
|
||||
}
|
||||
}
|
||||
|
||||
// only one sink is active at each moment
|
||||
// get current log target, will call wxApp::CreateLogTarget() to
|
||||
// create one if none exists
|
||||
static wxLog *GetActiveTarget();
|
||||
@@ -224,9 +221,11 @@ public:
|
||||
// make dtor virtual for all derived classes
|
||||
virtual ~wxLog() { }
|
||||
|
||||
protected:
|
||||
bool m_bHasMessages; // any messages in the queue?
|
||||
|
||||
// this method exists for backwards compatibility only, don't use
|
||||
bool HasPendingMessages() const { return true; }
|
||||
|
||||
protected:
|
||||
// the logging functions that can be overriden
|
||||
// default DoLog() prepends the time stamp and a prefix corresponding
|
||||
// to the message to szString and then passes it to DoLogString()
|
||||
@@ -433,7 +432,9 @@ protected:
|
||||
wxArrayInt m_aSeverity; // one of wxLOG_XXX values
|
||||
wxArrayLong m_aTimes; // the time of each message
|
||||
bool m_bErrors, // do we have any errors?
|
||||
m_bWarnings; // any warnings?
|
||||
m_bWarnings, // any warnings?
|
||||
m_bHasMessages; // any messages at all?
|
||||
|
||||
};
|
||||
|
||||
#endif // wxUSE_LOGGUI
|
||||
|
@@ -351,7 +351,6 @@ void WXDLLEXPORT wxLogSysError(long lErrCode, const wxChar *szFormat, ...)
|
||||
|
||||
wxLog::wxLog()
|
||||
{
|
||||
m_bHasMessages = FALSE;
|
||||
}
|
||||
|
||||
wxChar *wxLog::SetLogBuffer( wxChar *buf, size_t size)
|
||||
@@ -493,8 +492,7 @@ void wxLog::DoLogString(const wxChar *WXUNUSED(szString), time_t WXUNUSED(t))
|
||||
|
||||
void wxLog::Flush()
|
||||
{
|
||||
// remember that we don't have any more messages to show
|
||||
m_bHasMessages = FALSE;
|
||||
// nothing to do here
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
@@ -706,11 +704,17 @@ void wxLogStderr::DoLogString(const wxChar *szString, time_t WXUNUSED(t))
|
||||
fflush(m_fp);
|
||||
|
||||
// under Windows, programs usually don't have stderr at all, so show the
|
||||
// messages also under debugger - unless it's a console program
|
||||
// messages also under debugger (unless it's a console program which does
|
||||
// have stderr or unless this is a file logger which doesn't use stderr at
|
||||
// all)
|
||||
#if defined(__WXMSW__) && wxUSE_GUI && !defined(__WXMICROWIN__)
|
||||
if ( m_fp == stderr )
|
||||
{
|
||||
str += wxT("\r\n") ;
|
||||
OutputDebugString(str.c_str());
|
||||
}
|
||||
#endif // MSW
|
||||
|
||||
#if defined(__WXMAC__) && !defined(__DARWIN__) && wxUSE_GUI
|
||||
Str255 pstr ;
|
||||
strcpy( (char*) pstr , str.c_str() ) ;
|
||||
@@ -793,7 +797,7 @@ void wxLogChain::Flush()
|
||||
if ( m_logOld )
|
||||
m_logOld->Flush();
|
||||
|
||||
// be careful to avoid inifinite recursion
|
||||
// be careful to avoid infinite recursion
|
||||
if ( m_logNew && m_logNew != this )
|
||||
m_logNew->Flush();
|
||||
}
|
||||
|
@@ -620,8 +620,6 @@ void wxLogWindow::DoLog(wxLogLevel level, const wxChar *szString, time_t t)
|
||||
wxLog::DoLog(level, szString, t);
|
||||
}
|
||||
}
|
||||
|
||||
m_bHasMessages = TRUE;
|
||||
}
|
||||
|
||||
void wxLogWindow::DoLogString(const wxChar *szString, time_t WXUNUSED(t))
|
||||
|
Reference in New Issue
Block a user