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?
|
There also functions to support message buffering. Why are they needed?
|
||||||
Some of wxLog implementations, most notably the standard wxLogGui class,
|
Some of wxLog implementations, most notably the standard wxLogGui class,
|
||||||
buffer the messages (for example, to avoid showing the user a zillion of modal
|
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.
|
\helpref{Flush()}{wxlogflush} shows them all and clears the buffer contents.
|
||||||
Although this function doesn't do anything if the buffer is already empty,
|
This function doesn't do anything if the buffer is already empty.
|
||||||
\helpref{HasPendingMessages()}{wxloghaspendingmessages} is also provided which
|
|
||||||
allows to explicitly verify it.
|
|
||||||
|
|
||||||
\helpref{Flush}{wxlogflush}\\
|
\helpref{Flush}{wxlogflush}\\
|
||||||
\helpref{FlushActive}{wxlogflushactive}\\
|
\helpref{FlushActive}{wxlogflushactive}
|
||||||
\helpref{HasPendingMessages}{wxloghaspendingmessages}
|
|
||||||
|
|
||||||
\membersection{Customization}\label{wxlogcustomization}
|
\membersection{Customization}\label{wxlogcustomization}
|
||||||
|
|
||||||
@@ -294,13 +291,6 @@ See also:
|
|||||||
|
|
||||||
\helpref{Flush}{wxlogflush}
|
\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}
|
\membersection{wxLog::SetVerbose}\label{wxlogsetverbose}
|
||||||
|
|
||||||
\func{static void}{SetVerbose}{\param{bool }{ verbose = TRUE}}
|
\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
|
// and iostream logs don't need it, but wxGuiLog does to avoid showing
|
||||||
// 17 modal dialogs one after another)
|
// 17 modal dialogs one after another)
|
||||||
virtual void Flush();
|
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
|
// flush the active target if any
|
||||||
static void FlushActive()
|
static void FlushActive()
|
||||||
{
|
{
|
||||||
if ( !ms_suspendCount )
|
if ( !ms_suspendCount )
|
||||||
{
|
{
|
||||||
wxLog *log = GetActiveTarget();
|
wxLog *log = GetActiveTarget();
|
||||||
if ( log && log->HasPendingMessages() )
|
if ( log )
|
||||||
log->Flush();
|
log->Flush();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// only one sink is active at each moment
|
||||||
// get current log target, will call wxApp::CreateLogTarget() to
|
// get current log target, will call wxApp::CreateLogTarget() to
|
||||||
// create one if none exists
|
// create one if none exists
|
||||||
static wxLog *GetActiveTarget();
|
static wxLog *GetActiveTarget();
|
||||||
@@ -224,9 +221,11 @@ public:
|
|||||||
// make dtor virtual for all derived classes
|
// make dtor virtual for all derived classes
|
||||||
virtual ~wxLog() { }
|
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
|
// the logging functions that can be overriden
|
||||||
// default DoLog() prepends the time stamp and a prefix corresponding
|
// default DoLog() prepends the time stamp and a prefix corresponding
|
||||||
// to the message to szString and then passes it to DoLogString()
|
// to the message to szString and then passes it to DoLogString()
|
||||||
@@ -433,7 +432,9 @@ protected:
|
|||||||
wxArrayInt m_aSeverity; // one of wxLOG_XXX values
|
wxArrayInt m_aSeverity; // one of wxLOG_XXX values
|
||||||
wxArrayLong m_aTimes; // the time of each message
|
wxArrayLong m_aTimes; // the time of each message
|
||||||
bool m_bErrors, // do we have any errors?
|
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
|
#endif // wxUSE_LOGGUI
|
||||||
|
@@ -351,7 +351,6 @@ void WXDLLEXPORT wxLogSysError(long lErrCode, const wxChar *szFormat, ...)
|
|||||||
|
|
||||||
wxLog::wxLog()
|
wxLog::wxLog()
|
||||||
{
|
{
|
||||||
m_bHasMessages = FALSE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
wxChar *wxLog::SetLogBuffer( wxChar *buf, size_t size)
|
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()
|
void wxLog::Flush()
|
||||||
{
|
{
|
||||||
// remember that we don't have any more messages to show
|
// nothing to do here
|
||||||
m_bHasMessages = FALSE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
@@ -706,11 +704,17 @@ void wxLogStderr::DoLogString(const wxChar *szString, time_t WXUNUSED(t))
|
|||||||
fflush(m_fp);
|
fflush(m_fp);
|
||||||
|
|
||||||
// under Windows, programs usually don't have stderr at all, so show the
|
// 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 defined(__WXMSW__) && wxUSE_GUI && !defined(__WXMICROWIN__)
|
||||||
str += wxT("\r\n") ;
|
if ( m_fp == stderr )
|
||||||
OutputDebugString(str.c_str());
|
{
|
||||||
|
str += wxT("\r\n") ;
|
||||||
|
OutputDebugString(str.c_str());
|
||||||
|
}
|
||||||
#endif // MSW
|
#endif // MSW
|
||||||
|
|
||||||
#if defined(__WXMAC__) && !defined(__DARWIN__) && wxUSE_GUI
|
#if defined(__WXMAC__) && !defined(__DARWIN__) && wxUSE_GUI
|
||||||
Str255 pstr ;
|
Str255 pstr ;
|
||||||
strcpy( (char*) pstr , str.c_str() ) ;
|
strcpy( (char*) pstr , str.c_str() ) ;
|
||||||
@@ -793,7 +797,7 @@ void wxLogChain::Flush()
|
|||||||
if ( m_logOld )
|
if ( m_logOld )
|
||||||
m_logOld->Flush();
|
m_logOld->Flush();
|
||||||
|
|
||||||
// be careful to avoid inifinite recursion
|
// be careful to avoid infinite recursion
|
||||||
if ( m_logNew && m_logNew != this )
|
if ( m_logNew && m_logNew != this )
|
||||||
m_logNew->Flush();
|
m_logNew->Flush();
|
||||||
}
|
}
|
||||||
|
@@ -620,8 +620,6 @@ void wxLogWindow::DoLog(wxLogLevel level, const wxChar *szString, time_t t)
|
|||||||
wxLog::DoLog(level, szString, t);
|
wxLog::DoLog(level, szString, t);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
m_bHasMessages = TRUE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxLogWindow::DoLogString(const wxChar *szString, time_t WXUNUSED(t))
|
void wxLogWindow::DoLogString(const wxChar *szString, time_t WXUNUSED(t))
|
||||||
|
Reference in New Issue
Block a user