X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/9ad2fe62d167bd7764b3d7eade75baa84a2a00e4..d33e45f134004bdb8199de60d60a251569bbed96:/src/generic/logg.cpp?ds=sidebyside diff --git a/src/generic/logg.cpp b/src/generic/logg.cpp index 80aab72d47..6d5ea29f61 100644 --- a/src/generic/logg.cpp +++ b/src/generic/logg.cpp @@ -51,6 +51,7 @@ #include "wx/artprov.h" #include "wx/collpane.h" #include "wx/arrstr.h" +#include "wx/msgout.h" #if wxUSE_THREADS #include "wx/thread.h" @@ -127,7 +128,6 @@ public: #if CAN_SAVE_FILES void OnSave(wxCommandEvent& event); #endif // CAN_SAVE_FILES - void OnListSelect(wxListEvent& event); void OnListItemActivated(wxListEvent& event); private: @@ -171,7 +171,7 @@ private: static size_t ms_maxLength; DECLARE_EVENT_TABLE() - DECLARE_NO_COPY_CLASS(wxLogDialog) + wxDECLARE_NO_COPY_CLASS(wxLogDialog); }; BEGIN_EVENT_TABLE(wxLogDialog, wxDialog) @@ -182,7 +182,6 @@ BEGIN_EVENT_TABLE(wxLogDialog, wxDialog) #if CAN_SAVE_FILES EVT_BUTTON(wxID_SAVE, wxLogDialog::OnSave) #endif // CAN_SAVE_FILES - EVT_LIST_ITEM_SELECTED(wxID_ANY, wxLogDialog::OnListSelect) EVT_LIST_ITEM_ACTIVATED(wxID_ANY, wxLogDialog::OnListItemActivated) END_EVENT_TABLE() @@ -235,7 +234,7 @@ void wxVLogStatus(wxFrame *pFrame, const wxString& format, va_list argptr) #else wxLog::OnLog(wxLOG_Status, msg, time(NULL)); #endif - gs_pFrame = (wxFrame *) NULL; + gs_pFrame = NULL; } } @@ -340,7 +339,8 @@ wxLogGui::DoShowMultipleLogMessages(const wxArrayString& messages, #else // !wxUSE_LOG_DIALOG // start from the most recent message wxString message; - str.reserve(nMsgCount*100); + const size_t nMsgCount = messages.size(); + message.reserve(nMsgCount*100); for ( size_t n = nMsgCount; n > 0; n-- ) { message << m_aMessages[n - 1] << wxT("\n"); } @@ -435,32 +435,6 @@ void wxLogGui::DoLog(wxLogLevel level, const wxString& szString, time_t t) #endif // wxUSE_STATUSBAR break; - case wxLOG_Trace: - case wxLOG_Debug: - #ifdef __WXDEBUG__ - { - wxString str; - TimeStamp(&str); - str += szString; - - #if defined(__WXMSW__) && !defined(__WXMICROWIN__) - // don't prepend debug/trace here: it goes to the - // debug window anyhow - str += wxT("\r\n"); - OutputDebugString(str.wx_str()); - #else - // send them to stderr - wxFprintf(stderr, wxT("[%s] %s\n"), - level == wxLOG_Trace ? wxT("Trace") - : wxT("Debug"), - str.c_str()); - fflush(stderr); - #endif - } - #endif // __WXDEBUG__ - - break; - case wxLOG_FatalError: // show this one immediately wxMessageBox(szString, _("Fatal error"), wxICON_HAND); @@ -492,6 +466,11 @@ void wxLogGui::DoLog(wxLogLevel level, const wxString& szString, time_t t) m_aTimes.Add((long)t); m_bHasMessages = true; break; + + default: + // let the base class deal with debug/trace messages as well as any + // custom levels + wxLog::DoLog(level, szString, t); } } @@ -560,7 +539,7 @@ private: DECLARE_EVENT_TABLE() - DECLARE_NO_COPY_CLASS(wxLogFrame) + wxDECLARE_NO_COPY_CLASS(wxLogFrame); }; BEGIN_EVENT_TABLE(wxLogFrame, wxFrame) @@ -793,7 +772,7 @@ bool wxLogWindow::OnFrameClose(wxFrame * WXUNUSED(frame)) void wxLogWindow::OnFrameDelete(wxFrame * WXUNUSED(frame)) { - m_pLogFrame = (wxLogFrame *)NULL; + m_pLogFrame = NULL; } wxLogWindow::~wxLogWindow() @@ -938,6 +917,9 @@ wxLogDialog::wxLogDialog(wxWindow *parent, void wxLogDialog::CreateDetailsControls(wxWindow *parent) { + wxString fmt = wxLog::GetTimestamp(); + bool hasTimeStamp = !fmt.IsEmpty(); + // create the list ctrl now m_listctrl = new wxListCtrl(parent, wxID_ANY, wxDefaultPosition, wxDefaultSize, @@ -954,7 +936,9 @@ void wxLogDialog::CreateDetailsControls(wxWindow *parent) // no need to translate these strings as they're not shown to the // user anyhow (we use wxLC_NO_HEADER style) m_listctrl->InsertColumn(0, _T("Message")); - m_listctrl->InsertColumn(1, _T("Time")); + + if (hasTimeStamp) + m_listctrl->InsertColumn(1, _T("Time")); // prepare the imagelist static const int ICON_SIZE = 16; @@ -989,14 +973,7 @@ void wxLogDialog::CreateDetailsControls(wxWindow *parent) m_listctrl->SetImageList(imageList, wxIMAGE_LIST_SMALL); - // and fill it - wxString fmt = wxLog::GetTimestamp(); - if ( !fmt ) - { - // default format - fmt = _T("%c"); - } - + // fill the listctrl size_t count = m_messages.GetCount(); for ( size_t n = 0; n < count; n++ ) { @@ -1028,12 +1005,15 @@ void wxLogDialog::CreateDetailsControls(wxWindow *parent) msg = EllipsizeString(msg); m_listctrl->InsertItem(n, msg, image); - m_listctrl->SetItem(n, 1, TimeStamp(fmt, (time_t)m_times[n])); + + if (hasTimeStamp) + m_listctrl->SetItem(n, 1, TimeStamp(fmt, (time_t)m_times[n])); } // let the columns size themselves m_listctrl->SetColumnWidth(0, wxLIST_AUTOSIZE); - m_listctrl->SetColumnWidth(1, wxLIST_AUTOSIZE); + if (hasTimeStamp) + m_listctrl->SetColumnWidth(1, wxLIST_AUTOSIZE); // calculate an approximately nice height for the listctrl int height = GetCharHeight()*(count + 4); @@ -1052,14 +1032,6 @@ void wxLogDialog::CreateDetailsControls(wxWindow *parent) m_listctrl->SetSize(wxDefaultCoord, wxMin(height, heightMax)); } -void wxLogDialog::OnListSelect(wxListEvent& event) -{ - // we can't just disable the control because this looks ugly under Windows - // (wrong bg colour, no scrolling...), but we still want to disable - // selecting items - it makes no sense here - m_listctrl->SetItemState(event.GetIndex(), 0, wxLIST_STATE_SELECTED); -} - void wxLogDialog::OnListItemActivated(wxListEvent& event) { // show the activated item in a message box @@ -1170,7 +1142,7 @@ static int OpenLogFile(wxFile& file, wxString *pFilename, wxWindow *parent) // open file // --------- - bool bOk = false; + bool bOk; if ( wxFile::Exists(filename) ) { bool bAppend = false; wxString strMsg;