X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1c4a764c984ba8e482e5d808fd1c762aeb5b535a..6ca41e57f48db4c1a2de7ae67c7e4b655d9809af:/src/common/log.cpp?ds=sidebyside diff --git a/src/common/log.cpp b/src/common/log.cpp index 66cc2c1d0c..8f7ebe11fd 100644 --- a/src/common/log.cpp +++ b/src/common/log.cpp @@ -250,7 +250,7 @@ wxLog *wxLog::GetActiveTarget() if ( !s_bInGetActiveTarget ) { s_bInGetActiveTarget = TRUE; - #ifdef WX_TEST_MINIMAL + #ifdef wxUSE_NOGUI ms_pLogger = new wxLogStderr; #else // ask the application to create a log target for us @@ -258,6 +258,8 @@ wxLog *wxLog::GetActiveTarget() ms_pLogger = wxTheApp->CreateLogTarget(); #endif + s_bInGetActiveTarget = FALSE; + // do nothing if it fails - what can we do? } } @@ -265,15 +267,17 @@ wxLog *wxLog::GetActiveTarget() return ms_pLogger; } -wxLog *wxLog::SetActiveTarget(wxLog *pLogger, bool bNoFlashOld) +wxLog *wxLog::SetActiveTarget(wxLog *pLogger) { - // flush the old messages before changing - if ( (ms_pLogger != NULL) && !bNoFlashOld ) { + if ( ms_pLogger != NULL ) { + // flush the old messages before changing because otherwise they might + // get lost later if this target is not restored ms_pLogger->Flush(); } wxLog *pOldLogger = ms_pLogger; ms_pLogger = pLogger; + return pOldLogger; } @@ -387,6 +391,7 @@ void wxLogStream::DoLogString(const char *szString) (*m_ostr) << szString << endl << flush; } +#ifndef wxUSE_NOGUI // ---------------------------------------------------------------------------- // wxLogTextCtrl implementation // ---------------------------------------------------------------------------- @@ -410,8 +415,6 @@ wxLogTextCtrl::~wxLogTextCtrl() // wxLogGui implementation // ---------------------------------------------------------------------------- -#ifndef WX_TEST_MINIMAL - wxLogGui::wxLogGui() { m_bErrors = FALSE; @@ -780,8 +783,7 @@ void wxLogWindow::DoLogString(const char *szString) pText->WriteText(szString); pText->WriteText("\n"); // "\n" ok here (_not_ "\r\n") - // ensure that the line can be seen - // @@@ TODO + // TODO ensure that the line can be seen } wxFrame *wxLogWindow::GetFrame() const @@ -795,16 +797,18 @@ void wxLogWindow::OnFrameCreate(wxFrame *WXUNUSED(frame)) void wxLogWindow::OnFrameDelete(wxFrame *WXUNUSED(frame)) { - m_pLogFrame = (wxLogFrame *) NULL; + m_pLogFrame = (wxLogFrame *)NULL; } wxLogWindow::~wxLogWindow() { + delete m_pOldLog; + // may be NULL if log frame already auto destroyed itself delete m_pLogFrame; } -#endif //WX_TEST_MINIMAL +#endif //wxUSE_NOGUI // ============================================================================ // Global functions/variables @@ -814,6 +818,7 @@ wxLogWindow::~wxLogWindow() // static variables // ---------------------------------------------------------------------------- wxLog *wxLog::ms_pLogger = (wxLog *) NULL; +bool wxLog::ms_doLog = TRUE; bool wxLog::ms_bAutoCreate = TRUE; wxTraceMask wxLog::ms_ulTraceMask = (wxTraceMask)0; @@ -942,6 +947,8 @@ void wxOnAssert(const char *szFile, int nLine, const char *szMsg) if ( s_bInAssert ) { // He-e-e-e-elp!! we're trapped in endless loop Trap(); + + return; } s_bInAssert = TRUE; @@ -960,22 +967,26 @@ void wxOnAssert(const char *szFile, int nLine, const char *szMsg) // send it to the normal log destination wxLogDebug(szBuf); - strcat(szBuf, _("\nDo you want to stop the program?" - "\nYou can also choose [Cancel] to suppress " - "further warnings.")); + #ifdef wxUSE_NOGUI + Trap(); + #else + strcat(szBuf, _("\nDo you want to stop the program?" + "\nYou can also choose [Cancel] to suppress " + "further warnings.")); - switch ( wxMessageBox(szBuf, _("Debug"), - wxYES_NO | wxCANCEL | wxICON_STOP ) ) { - case wxYES: - Trap(); - break; + switch ( wxMessageBox(szBuf, _("Debug"), + wxYES_NO | wxCANCEL | wxICON_STOP ) ) { + case wxYES: + Trap(); + break; - case wxCANCEL: - s_bNoAsserts = TRUE; - break; + case wxCANCEL: + s_bNoAsserts = TRUE; + break; - //case wxNO: nothing to do - } + //case wxNO: nothing to do + } + #endif // USE_NOGUI } s_bInAssert = FALSE;