X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c67daf87774c71ae9f73af9969008af220e52a11..dcf40a56e7b09fc5472edc1d4471e7954c0da40d:/src/common/log.cpp diff --git a/src/common/log.cpp b/src/common/log.cpp index bf1994214f..66cc2c1d0c 100644 --- a/src/common/log.cpp +++ b/src/common/log.cpp @@ -265,11 +265,12 @@ wxLog *wxLog::GetActiveTarget() return ms_pLogger; } -wxLog *wxLog::SetActiveTarget(wxLog *pLogger) +wxLog *wxLog::SetActiveTarget(wxLog *pLogger, bool bNoFlashOld) { // flush the old messages before changing - if ( ms_pLogger != NULL ) + if ( (ms_pLogger != NULL) && !bNoFlashOld ) { ms_pLogger->Flush(); + } wxLog *pOldLogger = ms_pLogger; ms_pLogger = pLogger; @@ -423,7 +424,7 @@ void wxLogGui::Flush() // do it right now to block any new calls to Flush() while we're here m_bHasMessages = FALSE; - + // @@@ ugly... // concatenate all strings (but not too many to not overfill the msg box) @@ -633,7 +634,7 @@ void wxLogFrame::OnSave(wxCommandEvent& WXUNUSED(event)) // open file // --------- wxFile file; - bool bOk = FALSE; + bool bOk = FALSE; if ( wxFile::Exists(szFileName) ) { bool bAppend = FALSE; wxString strMsg; @@ -723,7 +724,7 @@ void wxLogWindow::Flush() if ( m_pOldLog != NULL ) m_pOldLog->Flush(); - m_bHasMessages = FALSE; + m_bHasMessages = FALSE; } void wxLogWindow::DoLog(wxLogLevel level, const char *szString) @@ -737,13 +738,29 @@ void wxLogWindow::DoLog(wxLogLevel level, const char *szString) ((wxLogWindow *)m_pOldLog)->DoLog(level, szString); } - // don't put trace messages in the text window for 2 reasons: - // 1) there are too many of them - // 2) they may provoke other trace messages thus sending a program into an - // infinite loop - if ( m_pLogFrame && level != wxLOG_Trace ) { - // and this will format it nicely and call our DoLogString() - wxLog::DoLog(level, szString); + if ( m_pLogFrame ) { + switch ( level ) { + case wxLOG_Status: + // by default, these messages are ignored by wxLog, so process + // them ourselves + { + wxString str = TimeStamp(); + str << _("Status: ") << szString; + DoLogString(str); + } + break; + + // don't put trace messages in the text window for 2 reasons: + // 1) there are too many of them + // 2) they may provoke other trace messages thus sending a program + // into an infinite loop + case wxLOG_Trace: + break; + + default: + // and this will format it nicely and call our DoLogString() + wxLog::DoLog(level, szString); + } } m_bHasMessages = TRUE; @@ -772,11 +789,11 @@ wxFrame *wxLogWindow::GetFrame() const return m_pLogFrame; } -void wxLogWindow::OnFrameCreate(wxFrame *frame) +void wxLogWindow::OnFrameCreate(wxFrame *WXUNUSED(frame)) { } -void wxLogWindow::OnFrameDelete(wxFrame *frame) +void wxLogWindow::OnFrameDelete(wxFrame *WXUNUSED(frame)) { m_pLogFrame = (wxLogFrame *) NULL; }