28#include <wx/clipbrd.h>
32#include <wx/filedlg.h>
35#include <wx/textctrl.h>
41 const wxSize& size,
long style ) :
51 Connect( wxEVT_COMMAND_MENU_SELECTED,
76 GetSizer()->SetSizeHints(
this );
123 return a.severity < b.severity;
143 int x, y, xUnit, yUnit;
146 m_htmlView->GetScrollPixelsPerUnit( &xUnit, &yUnit );
169 for(
const REPORT_LINE& reportLine : reportLineArray )
171 if( severityMask & reportLine.severity )
192 retv = wxS(
"<font color=#F04040 size=3>" ) +
_(
"Error:" ) + wxS(
" </font>" )
193 wxS(
"<font size=3>" ) + aLine.
message + wxS(
"</font><br>" );
196 retv = wxS(
"<font size=3>" ) +
_(
"Warning:" ) + wxS(
" " ) + aLine.
message + wxS(
"</font><br>" );
199 retv = wxS(
"<font color=#909090 size=3>" ) + aLine.
message + wxS(
"</font><br>" );
202 retv = wxS(
"<font color=#60D060 size=3>" ) + aLine.
message + wxS(
"</font><br>" );
205 retv = wxS(
"<font size=3>" ) + aLine.
message + wxS(
"</font><br>" );
213 retv = wxS(
"<font color=#D00000 size=3>" ) +
_(
"Error:" ) + wxS(
" </font>" )
214 wxS(
"<font size=3>" ) + aLine.
message + wxS(
"</font><br>" );
217 retv = wxS(
"<font size=3>" ) +
_(
"Warning:" ) + wxS(
" " ) + aLine.
message + wxS(
"</font><br>" );
220 retv = wxS(
"<font color=#808080 size=3>" ) + aLine.
message + wxS(
"</font><br>" );
223 retv = wxS(
"<font color=#008000 size=3>" ) + aLine.
message + wxS(
"</font><br>" );
226 retv = wxS(
"<font size=3>" ) + aLine.
message + wxS(
"</font><br>" );
232 retv.Replace( wxS(
" " ), wxS(
" " ) );
245 default:
return aLine.
message + wxT(
"\n" );
253 popup.Append( wxID_COPY,
"Copy" );
260 if( event.GetId() == wxID_COPY )
264 if( wxTheClipboard->Open() )
266 bool primarySelection = wxTheClipboard->IsUsingPrimarySelection();
267 wxTheClipboard->UsePrimarySelection(
false );
268 wxTheClipboard->SetData(
new wxTextDataObject(
m_htmlView->SelectionToText() ) );
269 wxTheClipboard->Flush();
270 wxTheClipboard->Close();
271 wxTheClipboard->UsePrimarySelection( primarySelection );
284 if( event.IsChecked() )
306 if( event.IsChecked() )
318 if( event.IsChecked() )
330 if( event.IsChecked() )
342 if( event.IsChecked() )
358 fn = wxT(
"report.txt" );
368 wxFileDialog dlg(
this,
_(
"Save Report to File" ), fn.GetPath(), fn.GetFullName(),
371 if( dlg.ShowModal() != wxID_OK )
376 if( fn.GetExt().IsEmpty() )
379 wxFFile f( fn.GetFullPath(),
"wb" );
385 msg.Printf(
_(
"Cannot write report to file '%s'." ),
386 fn.GetFullPath().GetData() );
387 wxMessageBox( msg,
_(
"File save error" ), wxOK | wxICON_ERROR,
this );
417 m_box->GetStaticBox()->SetLabel( aLabel );
423 if( aSeverities < 0 )
bool SetPage(const wxString &aSource) override
bool AppendToPage(const wxString &aSource)
A mix in class which holds the location of a wxWindow's KIWAY.
PROJECT & Prj() const
Return a reference to the PROJECT associated with this KIWAY.
void UpdateNumber(int aNumber, SEVERITY aSeverity)
Update the number displayed on the badge.
virtual const wxString GetProjectPath() const
Return the full path of the project.
A pure virtual class used to derive REPORTER objects from.
LOCATION
Location where the message is to be reported.
Class WX_HTML_REPORT_PANEL_BASE.
wxCheckBox * m_checkBoxShowAll
NUMBER_BADGE * m_warningsBadge
NUMBER_BADGE * m_errorsBadge
wxFlexGridSizer * m_fgSizer
wxCheckBox * m_checkBoxShowActions
wxCheckBox * m_checkBoxShowWarnings
wxCheckBox * m_checkBoxShowErrors
wxCheckBox * m_checkBoxShowInfos
wxString & GetFileName(void)
void Clear()
return the number of messages matching the given severity mask.
void onCheckBoxShowErrors(wxCommandEvent &event) override
wxString m_reportFileName
defaults to the not very useful /bin/report.txt
void onThemeChanged(wxSysColourChangedEvent &aEvent)
void onCheckBoxShowActions(wxCommandEvent &event) override
REPORT_LINES m_report
copy of the report, stored for filtering
void onRightClick(wxMouseEvent &event) override
int m_severities
message severities to display (mask)
int Count(int severityMask)
sets the frame label
void SetLazyUpdate(bool aLazyUpdate)
Forces updating the HTML page, after the report is built in lazy mode If aSort = true,...
WX_HTML_PANEL_REPORTER m_reporter
void SetLabel(const wxString &aLabel) override
Sets the lazy update.
std::vector< REPORT_LINE > REPORT_LINES
int GetVisibleSeverities() const
void MsgPanelSetMinSize(const wxSize &aMinSize)
returns the reporter object that reports to this panel
void SetFileName(const wxString &aReportFileName)
wxString generateHtml(const REPORT_LINE &aLine)
void Report(const wxString &aText, SEVERITY aSeverity, REPORTER::LOCATION aLocation=REPORTER::LOC_BODY)
Reports the string.
void onCheckBoxShowAll(wxCommandEvent &event) override
void SetShowSeverity(SEVERITY aSeverity, bool aValue)
Set the report full file name to the string.
void SetVisibleSeverities(int aSeverities)
void Flush(bool aSort=false)
Set the visible severity filter.
void onCheckBoxShowWarnings(wxCommandEvent &event) override
void onMenuEvent(wxMenuEvent &event)
wxString generatePlainText(const REPORT_LINE &aLine)
void onBtnSaveToFile(wxCommandEvent &event) override
REPORT_LINES m_reportHead
... and at the beginning, regardless of sorting
~WX_HTML_REPORT_PANEL()
Set the min size of the area which displays html messages:
void onCheckBoxShowInfos(wxCommandEvent &event) override
REPORT_LINES m_reportTail
Lines to print at the end, regardless of sorting.
WX_HTML_REPORT_PANEL(wxWindow *parent, wxWindowID id=wxID_ANY, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxSize(500, 300), long style=wxTAB_TRAVERSAL)
wxString TextFileWildcard()
wxFont GetInfoFont(wxWindow *aWindow)
bool ConvertSmartQuotesAndDashes(wxString *aString)
Convert curly quotes and em/en dashes to straight quotes and dashes.
Definition of file extensions used in Kicad.
static int RPT_SEVERITY_ALL