]> git.saurik.com Git - wxWidgets.git/commitdiff
removed wxLog::HasPendingMessages() (it can't be made to work correctly with wxLogCha...
authorVadim Zeitlin <vadim@wxwidgets.org>
Fri, 10 Jan 2003 23:47:14 +0000 (23:47 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Fri, 10 Jan 2003 23:47:14 +0000 (23:47 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@18675 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

docs/latex/wx/log.tex
include/wx/log.h
src/common/log.cpp
src/generic/logg.cpp

index c8a697c45ea68e3e632983ace921c8bcaec1bfd7..fa31caabb9753b33ad728c767dbab72a161ca7ed 100644 (file)
@@ -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}}
index 04efbd0bd80f539d682f76016050b9d4840975ac..b3c90abbdfb9151ae67f2cd55837b8a1f92b4c66 100644 (file)
@@ -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
index 8c5c23be291f1892ddf716086b927d127ea803f4..b53bb3a6a9992e14b6c18cd4ba57e618db5e3a53 100644 (file)
@@ -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__)
-    str += wxT("\r\n") ;
-    OutputDebugString(str.c_str());
+    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();
 }
index 08c07e692c556ebf91d9c8095b960d1f9518d331..54e5bfa109f637e86a58de8e7e8957bad8722047 100644 (file)
@@ -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))