kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #18632
Re: Feature freeze.
On 03/30/2015 12:00 AM, Tomasz Wlostowski wrote:
> Hi Wayne,
>
> Some time ago I modified a bit the REPORTER class: added message
> severity levels & a wxHtmlView widget to filter/display them (see
> attached drawing showing the new report panel integrated with the
> netlist dialog). Do you agree to merge it?
>
> Cheers,
> Tom
I enclose Tom's patch rebased on the current revision. I can merge it,
if there are no further objections.
Regards,
Orson
=== modified file '3d-viewer/3d_draw.cpp'
--- old/3d-viewer/3d_draw.cpp 2015-04-17 13:12:59.042999000 +0200
+++ new/3d-viewer/3d_draw.cpp 2015-06-15 16:24:55.273999000 +0200
@@ -86,13 +86,10 @@ public:
REPORTER(),
m_frame( aFrame ), m_position( aPosition )
{
- SetReportAll( true );
- SetReportWarnings( true );
- SetReportErrors( true );
m_hasMessage = false;
}
- REPORTER& Report( const wxString& aText )
+ REPORTER& Report( const wxString& aText, SEVERITY aSeverity = UNDEFINED )
{
if( !aText.IsEmpty() )
m_hasMessage = true;
@@ -298,8 +295,6 @@ void EDA_3D_CANVAS::Redraw()
wxString err_messages;
WX_STRING_REPORTER errorReporter( &err_messages );
STATUS_TEXT_REPORTER activityReporter( Parent(), 0 );
- errorReporter.SetReportAll( false );
- errorReporter.SetReportWarnings( m_reportWarnings );
// Display build time at the end of build
unsigned strtime = GetRunningMicroSecs();
@@ -622,7 +617,6 @@ void EDA_3D_CANVAS::Redraw()
if( !err_messages.IsEmpty() )
wxLogMessage( err_messages );
- ReportWarnings( false );
}
@@ -730,11 +724,13 @@ void EDA_3D_CANVAS::buildBoard3DView( GL
if( !pcb->GetBoardPolygonOutlines( bufferPcbOutlines, allLayerHoles, &msg ) )
{
- if( aErrorMessages && aErrorMessages->ReportWarnings() )
+ if( aErrorMessages )
{
- *aErrorMessages << msg << wxT("\n") <<
+ msg << wxT("\n") <<
_("Unable to calculate the board outlines.\n"
"Therefore use the board boundary box.") << wxT("\n\n");
+
+ aErrorMessages->Report( msg, REPORTER::WARNING );
}
}
@@ -1082,11 +1078,12 @@ void EDA_3D_CANVAS::buildTechLayers3DVie
if( !pcb->GetBoardPolygonOutlines( bufferPcbOutlines, allLayerHoles, &msg ) )
{
- if( aErrorMessages && aErrorMessages->ReportWarnings() )
+ if( aErrorMessages )
{
- *aErrorMessages << msg << wxT("\n") <<
+ msg << wxT("\n") <<
_("Unable to calculate the board outlines.\n"
"Therefore use the board boundary box.") << wxT("\n\n");
+ aErrorMessages->Report( msg, REPORTER::WARNING );
}
}
@@ -1432,10 +1429,7 @@ void EDA_3D_CANVAS::CreateDrawGL_List( R
glNewList( m_glLists[GL_ID_TECH_LAYERS], GL_COMPILE );
// when calling BuildTechLayers3DView,
// do not show warnings, which are the same as buildBoard3DView
- bool report_warn = aErrorMessages->ReportWarnings();
- aErrorMessages->SetReportWarnings( false );
buildTechLayers3DView( aErrorMessages, aActivity );
- aErrorMessages->SetReportWarnings( report_warn );
glEndList();
CheckGLError( __FILE__, __LINE__ );
=== modified file 'common/CMakeLists.txt'
--- old/common/CMakeLists.txt 2015-06-12 17:12:02.325999000 +0200
+++ new/common/CMakeLists.txt 2015-06-15 16:24:55.273999000 +0200
@@ -130,6 +130,8 @@ set( COMMON_ABOUT_DLG_SRCS
dialogs/dialog_page_settings_base.cpp
dialogs/dialog_env_var_config_base.cpp
dialogs/dialog_env_var_config.cpp
+ dialogs/wx_html_report_panel_base.cpp
+ dialogs/wx_html_report_panel.cpp
)
set( COMMON_PAGE_LAYOUT_SRCS
=== modified file 'common/common.cpp'
--- old/common/common.cpp 2015-06-14 19:58:57.180000000 +0200
+++ new/common/common.cpp 2015-06-15 16:24:55.273999000 +0200
@@ -415,10 +415,10 @@ bool EnsureFileDirectoryExists( wxFileNa
{
if( aReporter )
{
- msg.Printf( _( "*** Error: cannot make path '%s' absolute with respect to '%s'! ***" ),
+ msg.Printf( _( "Cannot make path '%s' absolute with respect to '%s'." ),
GetChars( aTargetFullFileName->GetPath() ),
GetChars( baseFilePath ) );
- aReporter->Report( msg );
+ aReporter->Report( msg, REPORTER::ERROR );
}
return false;
@@ -434,7 +434,7 @@ bool EnsureFileDirectoryExists( wxFileNa
if( aReporter )
{
msg.Printf( _( "Output directory '%s' created.\n" ), GetChars( outputPath ) );
- aReporter->Report( msg );
+ aReporter->Report( msg, REPORTER::INFO );
return true;
}
}
@@ -442,9 +442,9 @@ bool EnsureFileDirectoryExists( wxFileNa
{
if( aReporter )
{
- msg.Printf( _( "*** Error: cannot create output directory '%s'! ***\n" ),
+ msg.Printf( _( "Cannot create output directory '%s'.\n" ),
GetChars( outputPath ) );
- aReporter->Report( msg );
+ aReporter->Report( msg, REPORTER::ERROR );
}
return false;
=== added file 'common/dialogs/wx_html_report_panel.cpp'
--- common/dialogs/wx_html_report_panel.cpp 1970-01-01 00:00:00 +0000
+++ common/dialogs/wx_html_report_panel.cpp 2015-06-15 14:24:55 +0000
@@ -0,0 +1,232 @@
+/*
+ * This program source code file is part of KiCad, a free EDA CAD application.
+ *
+ * Copyright (C) 2015 CERN
+ * Copyright (C) 2015 KiCad Developers, see change_log.txt for contributors.
+ * Author: Tomasz Wlostowski <tomasz.wlostowski@xxxxxxx>
+ *
+ * This program is free software: you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation, either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "wx_html_report_panel.h"
+
+#include <wildcards_and_files_ext.h>
+#include <boost/foreach.hpp>
+
+WX_HTML_REPORT_PANEL::WX_HTML_REPORT_PANEL( wxWindow* parent,
+ wxWindowID id,
+ const wxPoint& pos,
+ const wxSize& size,
+ long style ) :
+ WX_HTML_REPORT_PANEL_BASE( parent, id, pos, size, style ),
+ m_reporter( this ),
+ m_severities( -1 ),
+ m_showAll( true )
+{
+ syncCheckboxes();
+}
+
+
+WX_HTML_REPORT_PANEL::~WX_HTML_REPORT_PANEL()
+{
+}
+
+
+REPORTER& WX_HTML_REPORT_PANEL::Reporter()
+{
+ return m_reporter;
+}
+
+
+void WX_HTML_REPORT_PANEL::Report( const wxString& aText, REPORTER::SEVERITY aSeverity )
+{
+ REPORT_LINE line;
+ line.message = aText;
+ line.severity = aSeverity;
+
+ m_report.push_back( line );
+ m_htmlView->AppendToPage( generateHtml( line ) );
+ scrollToBottom();
+}
+
+
+void WX_HTML_REPORT_PANEL::scrollToBottom()
+{
+ int x, y, xUnit, yUnit;
+ m_htmlView->GetVirtualSize( &x, &y );
+ m_htmlView->GetScrollPixelsPerUnit( &xUnit, &yUnit );
+ m_htmlView->Scroll( 0, y / yUnit );
+}
+
+
+void WX_HTML_REPORT_PANEL::refreshView()
+{
+ wxString html;
+
+ BOOST_FOREACH( REPORT_LINE l, m_report )
+ {
+ html += generateHtml( l );
+ }
+
+ m_htmlView->SetPage( html );
+ scrollToBottom();
+}
+
+
+wxString WX_HTML_REPORT_PANEL::generateHtml( const REPORT_LINE& aLine )
+{
+ if( !m_showAll && ! ( m_severities & aLine.severity ) )
+ return wxEmptyString;
+
+ switch( aLine.severity )
+ {
+ case REPORTER::ERROR:
+ return wxString( "<font color=\"red\" size=2>" ) + _( "<b>Error: </b></font><font size=2>" ) + aLine.message + wxString( "</font><br>" );
+ case REPORTER::WARNING:
+ return wxString( "<font color=\"orange\" size=2>" ) + _( "<b>Warning: </b></font><font size=2>" ) + aLine.message + wxString( "</font><br>" );
+ case REPORTER::INFO:
+ return wxString( "<font color=\"gray\" size=2>" ) + _( "<b>Info: </b>" ) + aLine.message + wxString( "</font><br>" );
+ case REPORTER::ACTION:
+ return wxString( "<font color=\"darkgreen\" size=2>" ) + aLine.message + wxString( "</font><br>" );
+ default:
+ return wxString( "<font size=2>" ) + aLine.message + wxString( "</font><br>" );
+ }
+}
+
+
+wxString WX_HTML_REPORT_PANEL::generatePlainText( const REPORT_LINE& aLine )
+{
+ switch( aLine.severity )
+ {
+ case REPORTER::ERROR:
+ return _( "Error: " ) + aLine.message + wxT( "\n" );
+ case REPORTER::WARNING:
+ return _( "Warning: " ) + aLine.message + wxT( "\n" );
+ case REPORTER::INFO:
+ return _( "Info: " ) + aLine.message + wxT( "\n" );
+ default:
+ return aLine.message + wxT( "\n" );
+ }
+}
+
+
+void WX_HTML_REPORT_PANEL::onCheckBoxShowAll( wxCommandEvent& event )
+{
+ if ( event.IsChecked() )
+ m_showAll = true;
+ else
+ m_showAll = false;
+
+ syncCheckboxes();
+ refreshView();
+}
+
+
+void WX_HTML_REPORT_PANEL::syncCheckboxes()
+{
+ m_checkBoxShowWarnings->Enable( ! m_showAll );
+ m_checkBoxShowWarnings->SetValue( m_severities & REPORTER::WARNING );
+ m_checkBoxShowErrors->Enable( ! m_showAll );
+ m_checkBoxShowErrors->SetValue( m_severities & REPORTER::ERROR );
+ m_checkBoxShowInfos->Enable( ! m_showAll );
+ m_checkBoxShowInfos->SetValue( m_severities & REPORTER::INFO );
+ m_checkBoxShowActions->Enable( ! m_showAll );
+ m_checkBoxShowActions->SetValue( m_severities & REPORTER::ACTION );
+}
+
+
+void WX_HTML_REPORT_PANEL::onCheckBoxShowWarnings( wxCommandEvent& event )
+{
+ if ( event.IsChecked() )
+ m_severities |= REPORTER::WARNING;
+ else
+ m_severities &= ~REPORTER::WARNING;
+
+ refreshView();
+}
+
+
+void WX_HTML_REPORT_PANEL::onCheckBoxShowErrors( wxCommandEvent& event )
+{
+ if ( event.IsChecked() )
+ m_severities |= REPORTER::ERROR;
+ else
+ m_severities &= ~REPORTER::ERROR;
+
+ refreshView();
+}
+
+
+void WX_HTML_REPORT_PANEL::onCheckBoxShowInfos( wxCommandEvent& event )
+{
+ if ( event.IsChecked() )
+ m_severities |= REPORTER::INFO;
+ else
+ m_severities &= ~REPORTER::INFO;
+
+ refreshView();
+}
+
+
+void WX_HTML_REPORT_PANEL::onCheckBoxShowActions( wxCommandEvent& event )
+{
+ if ( event.IsChecked() )
+ m_severities |= REPORTER::ACTION;
+ else
+ m_severities &= ~REPORTER::ACTION;
+
+ refreshView();
+}
+
+
+void WX_HTML_REPORT_PANEL::onBtnSaveToFile( wxCommandEvent& event )
+{
+ wxFileName fn( "./report.txt" );
+
+ wxFileDialog dlg( this, _( "Save report to file" ), fn.GetPath(), fn.GetName(),
+ TextWildcard, wxFD_SAVE | wxFD_OVERWRITE_PROMPT );
+
+ if( dlg.ShowModal() != wxID_OK )
+ return;
+
+ fn = dlg.GetPath();
+
+ if( fn.GetExt().IsEmpty() )
+ fn.SetExt( wxT( "txt" ) );
+
+ wxFile f( fn.GetFullPath(), wxFile::write );
+
+ if( !f.IsOpened() )
+ {
+ wxString msg;
+
+ msg.Printf( _( "Cannot write report to file '%s'." ),
+ (const char *)( fn.GetFullPath() ) );
+ wxMessageBox( msg, _( "File save error" ), wxOK | wxICON_ERROR, this );
+ return;
+ }
+
+ BOOST_FOREACH( REPORT_LINE l, m_report )
+ {
+ f.Write( generatePlainText( l ) );
+ }
+
+ f.Close();
+}
+
+
+void WX_HTML_REPORT_PANEL::Clear()
+{
+ m_report.clear();
+}
=== added file 'common/dialogs/wx_html_report_panel.h'
--- common/dialogs/wx_html_report_panel.h 1970-01-01 00:00:00 +0000
+++ common/dialogs/wx_html_report_panel.h 2015-06-15 14:24:55 +0000
@@ -0,0 +1,95 @@
+/*
+ * This program source code file is part of KiCad, a free EDA CAD application.
+ *
+ * Copyright (C) 2015 CERN
+ * Copyright (C) 2015 KiCad Developers, see change_log.txt for contributors.
+ * Author: Tomasz Wlostowski <tomasz.wlostowski@xxxxxxx>
+ *
+ * This program is free software: you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation, either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __WX_HTML_REPORT_PANEL_H__
+#define __WX_HTML_REPORT_PANEL_H__
+
+#include <wx/wx.h>
+#include <reporter.h>
+#include <vector>
+
+#include "wx_html_report_panel_base.h"
+
+
+/**
+ * Class WX_HTML_REPORT_PANEL
+ *
+ * A widget for browsing a rich text error/status report. Used in numerous
+ * dialogs in eeschema and pcbnew. Provides error filtering functionality
+ * and saving report files.
+ *
+ * The messages are reported throuth a REPORTER object
+ */
+class WX_HTML_REPORT_PANEL : public WX_HTML_REPORT_PANEL_BASE
+{
+public:
+ WX_HTML_REPORT_PANEL( wxWindow* parent, wxWindowID id = wxID_ANY,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxSize( 500,300 ), long style = wxTAB_TRAVERSAL );
+ ~WX_HTML_REPORT_PANEL();
+
+ ///> returns the reporter object that reports to this panel
+ REPORTER& Reporter();
+
+ ///> reports a string directly.
+ void Report( const wxString& aText, REPORTER::SEVERITY aSeverity );
+
+ ///> clears the report panel
+ void Clear();
+
+private:
+ struct REPORT_LINE
+ {
+ REPORTER::SEVERITY severity;
+ wxString message;
+ };
+
+ typedef std::vector<REPORT_LINE> REPORT_LINES;
+
+ wxString generateHtml( const REPORT_LINE& aLine );
+ wxString generatePlainText( const REPORT_LINE& aLine );
+
+ void refreshView();
+ void scrollToBottom();
+ void syncCheckboxes();
+
+ void onCheckBoxShowAll( wxCommandEvent& event );
+ void onCheckBoxShowWarnings( wxCommandEvent& event );
+ void onCheckBoxShowErrors( wxCommandEvent& event );
+ void onCheckBoxShowInfos( wxCommandEvent& event );
+ void onCheckBoxShowActions( wxCommandEvent& event );
+
+ void onBtnSaveToFile( wxCommandEvent& event );
+
+ ///> copy of the report, stored for filtering
+ REPORT_LINES m_report;
+
+ ///> the reporter
+ WX_HTML_PANEL_REPORTER m_reporter;
+
+ ///> message severities to display (mask)
+ int m_severities;
+
+ ///> show all messages flag (overrides m_severities)
+ bool m_showAll;
+};
+
+#endif //__WX_HTML_REPORT_PANEL_H__
=== added file 'common/dialogs/wx_html_report_panel_base.cpp'
--- common/dialogs/wx_html_report_panel_base.cpp 1970-01-01 00:00:00 +0000
+++ common/dialogs/wx_html_report_panel_base.cpp 2015-06-15 14:24:55 +0000
@@ -0,0 +1,95 @@
+///////////////////////////////////////////////////////////////////////////
+// C++ code generated with wxFormBuilder (version Mar 9 2015)
+// http://www.wxformbuilder.org/
+//
+// PLEASE DO "NOT" EDIT THIS FILE!
+///////////////////////////////////////////////////////////////////////////
+
+#include "wx_html_report_panel_base.h"
+
+///////////////////////////////////////////////////////////////////////////
+
+WX_HTML_REPORT_PANEL_BASE::WX_HTML_REPORT_PANEL_BASE( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style ) : wxPanel( parent, id, pos, size, style )
+{
+ wxStaticBoxSizer* sbSizer3;
+ sbSizer3 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, wxT("Messages:") ), wxVERTICAL );
+
+ wxFlexGridSizer* fgSizer4;
+ fgSizer4 = new wxFlexGridSizer( 2, 1, 0, 0 );
+ fgSizer4->AddGrowableCol( 0 );
+ fgSizer4->AddGrowableRow( 0 );
+ fgSizer4->SetFlexibleDirection( wxBOTH );
+ fgSizer4->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
+
+ m_htmlView = new wxHtmlWindow( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxHW_SCROLLBAR_AUTO );
+ m_htmlView->SetFont( wxFont( 10, 70, 90, 90, false, wxEmptyString ) );
+
+ fgSizer4->Add( m_htmlView, 1, wxEXPAND, 5 );
+
+ wxFlexGridSizer* fgSizer3;
+ fgSizer3 = new wxFlexGridSizer( 1, 7, 0, 0 );
+ fgSizer3->AddGrowableCol( 6 );
+ fgSizer3->SetFlexibleDirection( wxBOTH );
+ fgSizer3->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
+
+ m_staticText3 = new wxStaticText( this, wxID_ANY, wxT("Filter:"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_staticText3->Wrap( -1 );
+ fgSizer3->Add( m_staticText3, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 );
+
+ m_checkBoxShowAll = new wxCheckBox( this, wxID_ANY, wxT("All"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_checkBoxShowAll->SetValue(true);
+ fgSizer3->Add( m_checkBoxShowAll, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT|wxLEFT, 5 );
+
+ m_checkBoxShowWarnings = new wxCheckBox( this, wxID_ANY, wxT("Warnings"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_checkBoxShowWarnings->Enable( false );
+
+ fgSizer3->Add( m_checkBoxShowWarnings, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT|wxLEFT, 5 );
+
+ m_checkBoxShowErrors = new wxCheckBox( this, wxID_ANY, wxT("Errors"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_checkBoxShowErrors->Enable( false );
+
+ fgSizer3->Add( m_checkBoxShowErrors, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT|wxLEFT, 5 );
+
+ m_checkBoxShowInfos = new wxCheckBox( this, wxID_ANY, wxT("Infos"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_checkBoxShowInfos->Enable( false );
+
+ fgSizer3->Add( m_checkBoxShowInfos, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT|wxLEFT, 5 );
+
+ m_checkBoxShowActions = new wxCheckBox( this, wxID_ANY, wxT("Actions"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_checkBoxShowActions->Enable( false );
+
+ fgSizer3->Add( m_checkBoxShowActions, 0, wxTOP|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
+
+ m_btnSaveReportToFile = new wxButton( this, wxID_ANY, wxT("Save report to file..."), wxDefaultPosition, wxDefaultSize, 0 );
+ fgSizer3->Add( m_btnSaveReportToFile, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxTOP|wxLEFT, 5 );
+
+
+ fgSizer4->Add( fgSizer3, 1, wxEXPAND, 5 );
+
+
+ sbSizer3->Add( fgSizer4, 1, wxEXPAND|wxALL, 5 );
+
+
+ this->SetSizer( sbSizer3 );
+ this->Layout();
+
+ // Connect Events
+ m_checkBoxShowAll->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( WX_HTML_REPORT_PANEL_BASE::onCheckBoxShowAll ), NULL, this );
+ m_checkBoxShowWarnings->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( WX_HTML_REPORT_PANEL_BASE::onCheckBoxShowWarnings ), NULL, this );
+ m_checkBoxShowErrors->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( WX_HTML_REPORT_PANEL_BASE::onCheckBoxShowErrors ), NULL, this );
+ m_checkBoxShowInfos->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( WX_HTML_REPORT_PANEL_BASE::onCheckBoxShowInfos ), NULL, this );
+ m_checkBoxShowActions->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( WX_HTML_REPORT_PANEL_BASE::onCheckBoxShowActions ), NULL, this );
+ m_btnSaveReportToFile->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( WX_HTML_REPORT_PANEL_BASE::onBtnSaveToFile ), NULL, this );
+}
+
+WX_HTML_REPORT_PANEL_BASE::~WX_HTML_REPORT_PANEL_BASE()
+{
+ // Disconnect Events
+ m_checkBoxShowAll->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( WX_HTML_REPORT_PANEL_BASE::onCheckBoxShowAll ), NULL, this );
+ m_checkBoxShowWarnings->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( WX_HTML_REPORT_PANEL_BASE::onCheckBoxShowWarnings ), NULL, this );
+ m_checkBoxShowErrors->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( WX_HTML_REPORT_PANEL_BASE::onCheckBoxShowErrors ), NULL, this );
+ m_checkBoxShowInfos->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( WX_HTML_REPORT_PANEL_BASE::onCheckBoxShowInfos ), NULL, this );
+ m_checkBoxShowActions->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( WX_HTML_REPORT_PANEL_BASE::onCheckBoxShowActions ), NULL, this );
+ m_btnSaveReportToFile->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( WX_HTML_REPORT_PANEL_BASE::onBtnSaveToFile ), NULL, this );
+
+}
=== added file 'common/dialogs/wx_html_report_panel_base.fbp'
--- common/dialogs/wx_html_report_panel_base.fbp 1970-01-01 00:00:00 +0000
+++ common/dialogs/wx_html_report_panel_base.fbp 2015-06-15 14:24:55 +0000
@@ -0,0 +1,823 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
+<wxFormBuilder_Project>
+ <FileVersion major="1" minor="13" />
+ <object class="Project" expanded="1">
+ <property name="class_decoration"></property>
+ <property name="code_generation">C++</property>
+ <property name="disconnect_events">1</property>
+ <property name="disconnect_mode">source_name</property>
+ <property name="disconnect_php_events">0</property>
+ <property name="disconnect_python_events">0</property>
+ <property name="embedded_files_path">res</property>
+ <property name="encoding">UTF-8</property>
+ <property name="event_generation">connect</property>
+ <property name="file">wx_html_report_panel_base</property>
+ <property name="first_id">1000</property>
+ <property name="help_provider">none</property>
+ <property name="internationalize">0</property>
+ <property name="name">WX_HTML_REPORT_PANEL_BASE</property>
+ <property name="namespace"></property>
+ <property name="path">.</property>
+ <property name="precompiled_header"></property>
+ <property name="relative_path">1</property>
+ <property name="skip_lua_events">1</property>
+ <property name="skip_php_events">1</property>
+ <property name="skip_python_events">1</property>
+ <property name="ui_table">UI</property>
+ <property name="use_enum">0</property>
+ <property name="use_microsoft_bom">0</property>
+ <object class="Panel" expanded="1">
+ <property name="aui_managed">0</property>
+ <property name="aui_manager_style">wxAUI_MGR_DEFAULT</property>
+ <property name="bg"></property>
+ <property name="context_help"></property>
+ <property name="context_menu">1</property>
+ <property name="enabled">1</property>
+ <property name="event_handler">impl_virtual</property>
+ <property name="fg"></property>
+ <property name="font"></property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="maximum_size"></property>
+ <property name="minimum_size"></property>
+ <property name="name">WX_HTML_REPORT_PANEL_BASE</property>
+ <property name="pos"></property>
+ <property name="size">500,300</property>
+ <property name="subclass"></property>
+ <property name="tooltip"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style">wxTAB_TRAVERSAL</property>
+ <event name="OnAuiFindManager"></event>
+ <event name="OnAuiPaneButton"></event>
+ <event name="OnAuiPaneClose"></event>
+ <event name="OnAuiPaneMaximize"></event>
+ <event name="OnAuiPaneRestore"></event>
+ <event name="OnAuiRender"></event>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnInitDialog"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ <object class="wxStaticBoxSizer" expanded="1">
+ <property name="id">wxID_ANY</property>
+ <property name="label">Messages:</property>
+ <property name="minimum_size"></property>
+ <property name="name">sbSizer3</property>
+ <property name="orient">wxVERTICAL</property>
+ <property name="permission">none</property>
+ <event name="OnUpdateUI"></event>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxEXPAND|wxALL</property>
+ <property name="proportion">1</property>
+ <object class="wxFlexGridSizer" expanded="0">
+ <property name="cols">1</property>
+ <property name="flexible_direction">wxBOTH</property>
+ <property name="growablecols">0</property>
+ <property name="growablerows">0</property>
+ <property name="hgap">0</property>
+ <property name="minimum_size"></property>
+ <property name="name">fgSizer4</property>
+ <property name="non_flexible_grow_mode">wxFLEX_GROWMODE_SPECIFIED</property>
+ <property name="permission">none</property>
+ <property name="rows">2</property>
+ <property name="vgap">0</property>
+ <object class="sizeritem" expanded="0">
+ <property name="border">5</property>
+ <property name="flag">wxEXPAND</property>
+ <property name="proportion">1</property>
+ <object class="wxHtmlWindow" expanded="0">
+ <property name="BottomDockable">1</property>
+ <property name="LeftDockable">1</property>
+ <property name="RightDockable">1</property>
+ <property name="TopDockable">1</property>
+ <property name="aui_layer"></property>
+ <property name="aui_name"></property>
+ <property name="aui_position"></property>
+ <property name="aui_row"></property>
+ <property name="best_size"></property>
+ <property name="bg"></property>
+ <property name="caption"></property>
+ <property name="caption_visible">1</property>
+ <property name="center_pane">0</property>
+ <property name="close_button">1</property>
+ <property name="context_help"></property>
+ <property name="context_menu">0</property>
+ <property name="default_pane">0</property>
+ <property name="dock">Dock</property>
+ <property name="dock_fixed">0</property>
+ <property name="docking">Left</property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="floatable">1</property>
+ <property name="font">,90,90,10,70,0</property>
+ <property name="gripper">0</property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="max_size"></property>
+ <property name="maximize_button">0</property>
+ <property name="maximum_size"></property>
+ <property name="min_size"></property>
+ <property name="minimize_button">0</property>
+ <property name="minimum_size"></property>
+ <property name="moveable">1</property>
+ <property name="name">m_htmlView</property>
+ <property name="pane_border">1</property>
+ <property name="pane_position"></property>
+ <property name="pane_size"></property>
+ <property name="permission">protected</property>
+ <property name="pin_button">1</property>
+ <property name="pos"></property>
+ <property name="resize">Resizable</property>
+ <property name="show">1</property>
+ <property name="size"></property>
+ <property name="style">wxHW_SCROLLBAR_AUTO</property>
+ <property name="subclass"></property>
+ <property name="toolbar_pane">0</property>
+ <property name="tooltip"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnHtmlCellClicked"></event>
+ <event name="OnHtmlCellHover"></event>
+ <event name="OnHtmlLinkClicked"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="0">
+ <property name="border">5</property>
+ <property name="flag">wxEXPAND</property>
+ <property name="proportion">1</property>
+ <object class="wxFlexGridSizer" expanded="0">
+ <property name="cols">7</property>
+ <property name="flexible_direction">wxBOTH</property>
+ <property name="growablecols">6</property>
+ <property name="growablerows"></property>
+ <property name="hgap">0</property>
+ <property name="minimum_size"></property>
+ <property name="name">fgSizer3</property>
+ <property name="non_flexible_grow_mode">wxFLEX_GROWMODE_SPECIFIED</property>
+ <property name="permission">none</property>
+ <property name="rows">1</property>
+ <property name="vgap">0</property>
+ <object class="sizeritem" expanded="0">
+ <property name="border">5</property>
+ <property name="flag">wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT</property>
+ <property name="proportion">0</property>
+ <object class="wxStaticText" expanded="0">
+ <property name="BottomDockable">1</property>
+ <property name="LeftDockable">1</property>
+ <property name="RightDockable">1</property>
+ <property name="TopDockable">1</property>
+ <property name="aui_layer"></property>
+ <property name="aui_name"></property>
+ <property name="aui_position"></property>
+ <property name="aui_row"></property>
+ <property name="best_size"></property>
+ <property name="bg"></property>
+ <property name="caption"></property>
+ <property name="caption_visible">1</property>
+ <property name="center_pane">0</property>
+ <property name="close_button">1</property>
+ <property name="context_help"></property>
+ <property name="context_menu">1</property>
+ <property name="default_pane">0</property>
+ <property name="dock">Dock</property>
+ <property name="dock_fixed">0</property>
+ <property name="docking">Left</property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="floatable">1</property>
+ <property name="font"></property>
+ <property name="gripper">0</property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="label">Filter:</property>
+ <property name="max_size"></property>
+ <property name="maximize_button">0</property>
+ <property name="maximum_size"></property>
+ <property name="min_size"></property>
+ <property name="minimize_button">0</property>
+ <property name="minimum_size"></property>
+ <property name="moveable">1</property>
+ <property name="name">m_staticText3</property>
+ <property name="pane_border">1</property>
+ <property name="pane_position"></property>
+ <property name="pane_size"></property>
+ <property name="permission">protected</property>
+ <property name="pin_button">1</property>
+ <property name="pos"></property>
+ <property name="resize">Resizable</property>
+ <property name="show">1</property>
+ <property name="size"></property>
+ <property name="style"></property>
+ <property name="subclass"></property>
+ <property name="toolbar_pane">0</property>
+ <property name="tooltip"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <property name="wrap">-1</property>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="0">
+ <property name="border">5</property>
+ <property name="flag">wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT|wxLEFT</property>
+ <property name="proportion">0</property>
+ <object class="wxCheckBox" expanded="0">
+ <property name="BottomDockable">1</property>
+ <property name="LeftDockable">1</property>
+ <property name="RightDockable">1</property>
+ <property name="TopDockable">1</property>
+ <property name="aui_layer"></property>
+ <property name="aui_name"></property>
+ <property name="aui_position"></property>
+ <property name="aui_row"></property>
+ <property name="best_size"></property>
+ <property name="bg"></property>
+ <property name="caption"></property>
+ <property name="caption_visible">1</property>
+ <property name="center_pane">0</property>
+ <property name="checked">1</property>
+ <property name="close_button">1</property>
+ <property name="context_help"></property>
+ <property name="context_menu">1</property>
+ <property name="default_pane">0</property>
+ <property name="dock">Dock</property>
+ <property name="dock_fixed">0</property>
+ <property name="docking">Left</property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="floatable">1</property>
+ <property name="font"></property>
+ <property name="gripper">0</property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="label">All</property>
+ <property name="max_size"></property>
+ <property name="maximize_button">0</property>
+ <property name="maximum_size"></property>
+ <property name="min_size"></property>
+ <property name="minimize_button">0</property>
+ <property name="minimum_size"></property>
+ <property name="moveable">1</property>
+ <property name="name">m_checkBoxShowAll</property>
+ <property name="pane_border">1</property>
+ <property name="pane_position"></property>
+ <property name="pane_size"></property>
+ <property name="permission">protected</property>
+ <property name="pin_button">1</property>
+ <property name="pos"></property>
+ <property name="resize">Resizable</property>
+ <property name="show">1</property>
+ <property name="size"></property>
+ <property name="style"></property>
+ <property name="subclass"></property>
+ <property name="toolbar_pane">0</property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnChar"></event>
+ <event name="OnCheckBox">onCheckBoxShowAll</event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="0">
+ <property name="border">5</property>
+ <property name="flag">wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT|wxLEFT</property>
+ <property name="proportion">0</property>
+ <object class="wxCheckBox" expanded="0">
+ <property name="BottomDockable">1</property>
+ <property name="LeftDockable">1</property>
+ <property name="RightDockable">1</property>
+ <property name="TopDockable">1</property>
+ <property name="aui_layer"></property>
+ <property name="aui_name"></property>
+ <property name="aui_position"></property>
+ <property name="aui_row"></property>
+ <property name="best_size"></property>
+ <property name="bg"></property>
+ <property name="caption"></property>
+ <property name="caption_visible">1</property>
+ <property name="center_pane">0</property>
+ <property name="checked">0</property>
+ <property name="close_button">1</property>
+ <property name="context_help"></property>
+ <property name="context_menu">1</property>
+ <property name="default_pane">0</property>
+ <property name="dock">Dock</property>
+ <property name="dock_fixed">0</property>
+ <property name="docking">Left</property>
+ <property name="enabled">0</property>
+ <property name="fg"></property>
+ <property name="floatable">1</property>
+ <property name="font"></property>
+ <property name="gripper">0</property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="label">Warnings</property>
+ <property name="max_size"></property>
+ <property name="maximize_button">0</property>
+ <property name="maximum_size"></property>
+ <property name="min_size"></property>
+ <property name="minimize_button">0</property>
+ <property name="minimum_size"></property>
+ <property name="moveable">1</property>
+ <property name="name">m_checkBoxShowWarnings</property>
+ <property name="pane_border">1</property>
+ <property name="pane_position"></property>
+ <property name="pane_size"></property>
+ <property name="permission">protected</property>
+ <property name="pin_button">1</property>
+ <property name="pos"></property>
+ <property name="resize">Resizable</property>
+ <property name="show">1</property>
+ <property name="size"></property>
+ <property name="style"></property>
+ <property name="subclass"></property>
+ <property name="toolbar_pane">0</property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnChar"></event>
+ <event name="OnCheckBox">onCheckBoxShowWarnings</event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="0">
+ <property name="border">5</property>
+ <property name="flag">wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT|wxLEFT</property>
+ <property name="proportion">0</property>
+ <object class="wxCheckBox" expanded="0">
+ <property name="BottomDockable">1</property>
+ <property name="LeftDockable">1</property>
+ <property name="RightDockable">1</property>
+ <property name="TopDockable">1</property>
+ <property name="aui_layer"></property>
+ <property name="aui_name"></property>
+ <property name="aui_position"></property>
+ <property name="aui_row"></property>
+ <property name="best_size"></property>
+ <property name="bg"></property>
+ <property name="caption"></property>
+ <property name="caption_visible">1</property>
+ <property name="center_pane">0</property>
+ <property name="checked">0</property>
+ <property name="close_button">1</property>
+ <property name="context_help"></property>
+ <property name="context_menu">1</property>
+ <property name="default_pane">0</property>
+ <property name="dock">Dock</property>
+ <property name="dock_fixed">0</property>
+ <property name="docking">Left</property>
+ <property name="enabled">0</property>
+ <property name="fg"></property>
+ <property name="floatable">1</property>
+ <property name="font"></property>
+ <property name="gripper">0</property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="label">Errors</property>
+ <property name="max_size"></property>
+ <property name="maximize_button">0</property>
+ <property name="maximum_size"></property>
+ <property name="min_size"></property>
+ <property name="minimize_button">0</property>
+ <property name="minimum_size"></property>
+ <property name="moveable">1</property>
+ <property name="name">m_checkBoxShowErrors</property>
+ <property name="pane_border">1</property>
+ <property name="pane_position"></property>
+ <property name="pane_size"></property>
+ <property name="permission">protected</property>
+ <property name="pin_button">1</property>
+ <property name="pos"></property>
+ <property name="resize">Resizable</property>
+ <property name="show">1</property>
+ <property name="size"></property>
+ <property name="style"></property>
+ <property name="subclass"></property>
+ <property name="toolbar_pane">0</property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnChar"></event>
+ <event name="OnCheckBox">onCheckBoxShowErrors</event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="0">
+ <property name="border">5</property>
+ <property name="flag">wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT|wxLEFT</property>
+ <property name="proportion">0</property>
+ <object class="wxCheckBox" expanded="0">
+ <property name="BottomDockable">1</property>
+ <property name="LeftDockable">1</property>
+ <property name="RightDockable">1</property>
+ <property name="TopDockable">1</property>
+ <property name="aui_layer"></property>
+ <property name="aui_name"></property>
+ <property name="aui_position"></property>
+ <property name="aui_row"></property>
+ <property name="best_size"></property>
+ <property name="bg"></property>
+ <property name="caption"></property>
+ <property name="caption_visible">1</property>
+ <property name="center_pane">0</property>
+ <property name="checked">0</property>
+ <property name="close_button">1</property>
+ <property name="context_help"></property>
+ <property name="context_menu">1</property>
+ <property name="default_pane">0</property>
+ <property name="dock">Dock</property>
+ <property name="dock_fixed">0</property>
+ <property name="docking">Left</property>
+ <property name="enabled">0</property>
+ <property name="fg"></property>
+ <property name="floatable">1</property>
+ <property name="font"></property>
+ <property name="gripper">0</property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="label">Infos</property>
+ <property name="max_size"></property>
+ <property name="maximize_button">0</property>
+ <property name="maximum_size"></property>
+ <property name="min_size"></property>
+ <property name="minimize_button">0</property>
+ <property name="minimum_size"></property>
+ <property name="moveable">1</property>
+ <property name="name">m_checkBoxShowInfos</property>
+ <property name="pane_border">1</property>
+ <property name="pane_position"></property>
+ <property name="pane_size"></property>
+ <property name="permission">protected</property>
+ <property name="pin_button">1</property>
+ <property name="pos"></property>
+ <property name="resize">Resizable</property>
+ <property name="show">1</property>
+ <property name="size"></property>
+ <property name="style"></property>
+ <property name="subclass"></property>
+ <property name="toolbar_pane">0</property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnChar"></event>
+ <event name="OnCheckBox">onCheckBoxShowInfos</event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="0">
+ <property name="border">5</property>
+ <property name="flag">wxTOP|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL</property>
+ <property name="proportion">0</property>
+ <object class="wxCheckBox" expanded="0">
+ <property name="BottomDockable">1</property>
+ <property name="LeftDockable">1</property>
+ <property name="RightDockable">1</property>
+ <property name="TopDockable">1</property>
+ <property name="aui_layer"></property>
+ <property name="aui_name"></property>
+ <property name="aui_position"></property>
+ <property name="aui_row"></property>
+ <property name="best_size"></property>
+ <property name="bg"></property>
+ <property name="caption"></property>
+ <property name="caption_visible">1</property>
+ <property name="center_pane">0</property>
+ <property name="checked">0</property>
+ <property name="close_button">1</property>
+ <property name="context_help"></property>
+ <property name="context_menu">1</property>
+ <property name="default_pane">0</property>
+ <property name="dock">Dock</property>
+ <property name="dock_fixed">0</property>
+ <property name="docking">Left</property>
+ <property name="enabled">0</property>
+ <property name="fg"></property>
+ <property name="floatable">1</property>
+ <property name="font"></property>
+ <property name="gripper">0</property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="label">Actions</property>
+ <property name="max_size"></property>
+ <property name="maximize_button">0</property>
+ <property name="maximum_size"></property>
+ <property name="min_size"></property>
+ <property name="minimize_button">0</property>
+ <property name="minimum_size"></property>
+ <property name="moveable">1</property>
+ <property name="name">m_checkBoxShowActions</property>
+ <property name="pane_border">1</property>
+ <property name="pane_position"></property>
+ <property name="pane_size"></property>
+ <property name="permission">protected</property>
+ <property name="pin_button">1</property>
+ <property name="pos"></property>
+ <property name="resize">Resizable</property>
+ <property name="show">1</property>
+ <property name="size"></property>
+ <property name="style"></property>
+ <property name="subclass"></property>
+ <property name="toolbar_pane">0</property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnChar"></event>
+ <event name="OnCheckBox">onCheckBoxShowActions</event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="0">
+ <property name="border">5</property>
+ <property name="flag">wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxTOP|wxLEFT</property>
+ <property name="proportion">0</property>
+ <object class="wxButton" expanded="0">
+ <property name="BottomDockable">1</property>
+ <property name="LeftDockable">1</property>
+ <property name="RightDockable">1</property>
+ <property name="TopDockable">1</property>
+ <property name="aui_layer"></property>
+ <property name="aui_name"></property>
+ <property name="aui_position"></property>
+ <property name="aui_row"></property>
+ <property name="best_size"></property>
+ <property name="bg"></property>
+ <property name="caption"></property>
+ <property name="caption_visible">1</property>
+ <property name="center_pane">0</property>
+ <property name="close_button">1</property>
+ <property name="context_help"></property>
+ <property name="context_menu">1</property>
+ <property name="default">0</property>
+ <property name="default_pane">0</property>
+ <property name="dock">Dock</property>
+ <property name="dock_fixed">0</property>
+ <property name="docking">Left</property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="floatable">1</property>
+ <property name="font"></property>
+ <property name="gripper">0</property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="label">Save report to file...</property>
+ <property name="max_size"></property>
+ <property name="maximize_button">0</property>
+ <property name="maximum_size">-1,-1</property>
+ <property name="min_size"></property>
+ <property name="minimize_button">0</property>
+ <property name="minimum_size"></property>
+ <property name="moveable">1</property>
+ <property name="name">m_btnSaveReportToFile</property>
+ <property name="pane_border">1</property>
+ <property name="pane_position"></property>
+ <property name="pane_size"></property>
+ <property name="permission">protected</property>
+ <property name="pin_button">1</property>
+ <property name="pos"></property>
+ <property name="resize">Resizable</property>
+ <property name="show">1</property>
+ <property name="size"></property>
+ <property name="style"></property>
+ <property name="subclass"></property>
+ <property name="toolbar_pane">0</property>
+ <property name="tooltip"></property>
+ <property name="validator_data_type"></property>
+ <property name="validator_style">wxFILTER_NONE</property>
+ <property name="validator_type">wxDefaultValidator</property>
+ <property name="validator_variable"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <event name="OnButtonClick">onBtnSaveToFile</event>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
+ </object>
+ </object>
+ </object>
+ </object>
+ </object>
+ </object>
+ </object>
+</wxFormBuilder_Project>
=== added file 'common/dialogs/wx_html_report_panel_base.h'
--- common/dialogs/wx_html_report_panel_base.h 1970-01-01 00:00:00 +0000
+++ common/dialogs/wx_html_report_panel_base.h 2015-06-15 14:24:55 +0000
@@ -0,0 +1,62 @@
+///////////////////////////////////////////////////////////////////////////
+// C++ code generated with wxFormBuilder (version Mar 9 2015)
+// http://www.wxformbuilder.org/
+//
+// PLEASE DO "NOT" EDIT THIS FILE!
+///////////////////////////////////////////////////////////////////////////
+
+#ifndef __WX_HTML_REPORT_PANEL_BASE_H__
+#define __WX_HTML_REPORT_PANEL_BASE_H__
+
+#include <wx/artprov.h>
+#include <wx/xrc/xmlres.h>
+#include <wx/html/htmlwin.h>
+#include <wx/gdicmn.h>
+#include <wx/font.h>
+#include <wx/colour.h>
+#include <wx/settings.h>
+#include <wx/string.h>
+#include <wx/stattext.h>
+#include <wx/checkbox.h>
+#include <wx/button.h>
+#include <wx/sizer.h>
+#include <wx/statbox.h>
+#include <wx/panel.h>
+
+///////////////////////////////////////////////////////////////////////////
+
+
+///////////////////////////////////////////////////////////////////////////////
+/// Class WX_HTML_REPORT_PANEL_BASE
+///////////////////////////////////////////////////////////////////////////////
+class WX_HTML_REPORT_PANEL_BASE : public wxPanel
+{
+ private:
+
+ protected:
+ wxHtmlWindow* m_htmlView;
+ wxStaticText* m_staticText3;
+ wxCheckBox* m_checkBoxShowAll;
+ wxCheckBox* m_checkBoxShowWarnings;
+ wxCheckBox* m_checkBoxShowErrors;
+ wxCheckBox* m_checkBoxShowInfos;
+ wxCheckBox* m_checkBoxShowActions;
+ wxButton* m_btnSaveReportToFile;
+
+ // Virtual event handlers, overide them in your derived class
+ virtual void onCheckBoxShowAll( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onCheckBoxShowWarnings( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onCheckBoxShowErrors( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onCheckBoxShowInfos( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onCheckBoxShowActions( wxCommandEvent& event ) { event.Skip(); }
+ virtual void onBtnSaveToFile( wxCommandEvent& event ) { event.Skip(); }
+
+
+ public:
+
+ WX_HTML_REPORT_PANEL_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 500,300 ), long style = wxTAB_TRAVERSAL );
+ ~WX_HTML_REPORT_PANEL_BASE();
+
+};
+
+#endif //__WX_HTML_REPORT_PANEL_BASE_H__
=== modified file 'common/reporter.cpp'
--- old/common/reporter.cpp 2013-09-14 22:33:22.127000000 +0200
+++ new/common/reporter.cpp 2015-06-15 16:24:55.273999000 +0200
@@ -5,7 +5,7 @@
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2013 Wayne Stambaugh <stambaughw@xxxxxxxxxxx>
- * Copyright (C) 1992-2013 KiCad Developers, see change_log.txt for contributors.
+ * Copyright (C) 1992-2015 KiCad Developers, see change_log.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -27,15 +27,16 @@
#include <macros.h>
#include <reporter.h>
+#include <wx_html_report_panel.h>
-REPORTER& REPORTER::Report( const char* aText )
+REPORTER& REPORTER::Report( const char* aText, REPORTER::SEVERITY aSeverity )
{
Report( FROM_UTF8( aText ) );
return *this;
}
-REPORTER& WX_TEXT_CTRL_REPORTER::Report( const wxString& aText )
+REPORTER& WX_TEXT_CTRL_REPORTER::Report( const wxString& aText, REPORTER::SEVERITY aSeverity )
{
wxCHECK_MSG( m_textCtrl != NULL, *this,
wxT( "No wxTextCtrl object defined in WX_TEXT_CTRL_REPORTER." ) );
@@ -44,8 +45,7 @@ REPORTER& WX_TEXT_CTRL_REPORTER::Report(
return *this;
}
-
-REPORTER& WX_STRING_REPORTER::Report( const wxString& aText )
+REPORTER& WX_STRING_REPORTER::Report( const wxString& aText, REPORTER::SEVERITY aSeverity )
{
wxCHECK_MSG( m_string != NULL, *this,
wxT( "No wxString object defined in WX_STRING_REPORTER." ) );
@@ -53,3 +53,12 @@ REPORTER& WX_STRING_REPORTER::Report( co
*m_string << aText;
return *this;
}
+
+REPORTER& WX_HTML_PANEL_REPORTER::Report( const wxString& aText, SEVERITY aSeverity )
+{
+ wxCHECK_MSG( m_panel != NULL, *this,
+ wxT( "No WX_HTML_REPORT_PANEL object defined in WX_HTML_PANEL_REPORTER." ) );
+
+ m_panel->Report( aText, aSeverity );
+ return *this;
+}
=== modified file 'eeschema/dialogs/dialog_bom.cpp'
--- old/eeschema/dialogs/dialog_bom.cpp 2015-06-12 09:02:06.285000000 +0200
+++ new/eeschema/dialogs/dialog_bom.cpp 2015-06-15 16:24:55.273999000 +0200
@@ -391,7 +391,6 @@ void DIALOG_BOM::OnRunPlugin( wxCommandE
wxString reportmsg;
WX_STRING_REPORTER reporter( &reportmsg );
- reporter.SetReportAll( true );
m_parent->SetNetListerCommand( m_textCtrlCommand->GetValue() );
m_parent->CreateNetlist( -1, fullfilename, 0, &reporter );
=== modified file 'eeschema/dialogs/dialog_plot_schematic.cpp'
--- old/eeschema/dialogs/dialog_plot_schematic.cpp 2015-03-03 13:41:43.368000000 +0100
+++ new/eeschema/dialogs/dialog_plot_schematic.cpp 2015-06-15 16:24:55.273999000 +0200
@@ -38,6 +38,7 @@
#include <base_units.h>
#include <sch_sheet.h>
#include <dialog_plot_schematic.h>
+#include <wx_html_report_panel.h>
// Keys for configuration
#define PLOT_FORMAT_KEY wxT( "PlotFormat" )
@@ -329,8 +330,6 @@ void DIALOG_PLOT_SCHEMATIC::PlotSchemati
break;
}
-
- m_MessagesBox->AppendText( wxT( "****\n" ) );
}
wxFileName DIALOG_PLOT_SCHEMATIC::createPlotFileName( wxTextCtrl* aOutputDirectoryName,
@@ -346,10 +345,9 @@ wxFileName DIALOG_PLOT_SCHEMATIC::create
if( !EnsureFileDirectoryExists( &outputDir, plotFileName, aReporter ) )
{
wxString msg;
- msg.Printf( _( "Could not write plot files to folder \"%s\"." ),
+ msg.Printf( _( "Could not write plot files to folder '%s'." ),
GetChars( outputDir.GetPath() ) );
- msg << wxT( "\n" );
- aReporter->Report( msg );
+ aReporter->Report( msg, REPORTER::ERROR );
}
wxFileName fn( plotFileName );
=== modified file 'eeschema/dialogs/dialog_plot_schematic.h'
--- old/eeschema/dialogs/dialog_plot_schematic.h 2015-02-26 11:33:15.437000000 +0100
+++ new/eeschema/dialogs/dialog_plot_schematic.h 2015-06-15 16:24:55.273999000 +0200
@@ -100,10 +100,8 @@ private:
* Everything done, close the plot and restore the environment
* @param aPlotter the plotter to close and destroy
* @param aOldsheetpath the stored old sheet path for the current sheet before the plot started
- * @param aMsg the message which is print to the message box
*/
- void restoreEnvironment( PDF_PLOTTER* aPlotter, SCH_SHEET_PATH& aOldsheetpath,
- const wxString& aMsg );
+ void restoreEnvironment( PDF_PLOTTER* aPlotter, SCH_SHEET_PATH& aOldsheetpath );
// DXF
void CreateDXFFile( bool aPlotAll, bool aPlotFrameRef );
=== modified file 'eeschema/dialogs/dialog_plot_schematic_base.cpp'
--- old/eeschema/dialogs/dialog_plot_schematic_base.cpp 2015-06-15 15:54:58.331000000 +0200
+++ new/eeschema/dialogs/dialog_plot_schematic_base.cpp 2015-06-15 16:24:55.273999000 +0200
@@ -1,10 +1,12 @@
///////////////////////////////////////////////////////////////////////////
-// C++ code generated with wxFormBuilder (version Jun 5 2014)
+// C++ code generated with wxFormBuilder (version Jun 6 2014)
// http://www.wxformbuilder.org/
//
// PLEASE DO "NOT" EDIT THIS FILE!
///////////////////////////////////////////////////////////////////////////
+#include "wx_html_report_panel.h"
+
#include "dialog_plot_schematic_base.h"
///////////////////////////////////////////////////////////////////////////
@@ -48,7 +50,7 @@ DIALOG_PLOT_SCHEMATIC_BASE::DIALOG_PLOT_
wxString m_PaperSizeOptionChoices[] = { _("Schematic size"), _("Force size A4"), _("Force size A") };
int m_PaperSizeOptionNChoices = sizeof( m_PaperSizeOptionChoices ) / sizeof( wxString );
m_PaperSizeOption = new wxRadioBox( this, wxID_ANY, _("Page Size:"), wxDefaultPosition, wxDefaultSize, m_PaperSizeOptionNChoices, m_PaperSizeOptionChoices, 1, wxRA_SPECIFY_COLS );
- m_PaperSizeOption->SetSelection( 0 );
+ m_PaperSizeOption->SetSelection( 1 );
m_paperOptionsSizer->Add( m_PaperSizeOption, 0, wxALL|wxEXPAND, 5 );
m_paperHPGLSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("HPGL Options") ), wxVERTICAL );
@@ -86,7 +88,7 @@ DIALOG_PLOT_SCHEMATIC_BASE::DIALOG_PLOT_
wxString m_plotFormatOptChoices[] = { _("Postscript"), _("PDF"), _("SVG"), _("DXF"), _("HPGL") };
int m_plotFormatOptNChoices = sizeof( m_plotFormatOptChoices ) / sizeof( wxString );
m_plotFormatOpt = new wxRadioBox( this, wxID_ANY, _("Format"), wxDefaultPosition, wxDefaultSize, m_plotFormatOptNChoices, m_plotFormatOptChoices, 1, wxRA_SPECIFY_COLS );
- m_plotFormatOpt->SetSelection( 0 );
+ m_plotFormatOpt->SetSelection( 1 );
m_optionsSizer->Add( m_plotFormatOpt, 0, wxEXPAND|wxLEFT, 5 );
wxStaticBoxSizer* sbSizerPlotFormat;
@@ -145,10 +147,10 @@ DIALOG_PLOT_SCHEMATIC_BASE::DIALOG_PLOT_
m_staticText2->Wrap( -1 );
bSizer4->Add( m_staticText2, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
- m_MessagesBox = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE );
- m_MessagesBox->SetMinSize( wxSize( -1,80 ) );
+ m_MessagesBox = new WX_HTML_REPORT_PANEL( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_MessagesBox->SetMinSize( wxSize( 300,150 ) );
- bSizer4->Add( m_MessagesBox, 1, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 );
+ bSizer4->Add( m_MessagesBox, 1, wxEXPAND | wxALL, 5 );
bMainSizer->Add( bSizer4, 1, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 );
=== modified file 'eeschema/dialogs/dialog_plot_schematic_base.fbp'
--- old/eeschema/dialogs/dialog_plot_schematic_base.fbp 2015-06-15 15:54:58.331000000 +0200
+++ new/eeschema/dialogs/dialog_plot_schematic_base.fbp 2015-06-15 16:24:55.273999000 +0200
@@ -448,7 +448,7 @@
<property name="pin_button">1</property>
<property name="pos"></property>
<property name="resize">Resizable</property>
- <property name="selection">0</property>
+ <property name="selection">1</property>
<property name="show">1</property>
<property name="size"></property>
<property name="style">wxRA_SPECIFY_COLS</property>
@@ -989,7 +989,7 @@
<property name="pin_button">1</property>
<property name="pos"></property>
<property name="resize">Resizable</property>
- <property name="selection">0</property>
+ <property name="selection">1</property>
<property name="show">1</property>
<property name="size"></property>
<property name="style">wxRA_SPECIFY_COLS</property>
@@ -1766,9 +1766,9 @@
</object>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
- <property name="flag">wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT</property>
+ <property name="flag">wxEXPAND | wxALL</property>
<property name="proportion">1</property>
- <object class="wxTextCtrl" expanded="1">
+ <object class="wxPanel" expanded="1">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
@@ -1799,10 +1799,9 @@
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
- <property name="maxlength"></property>
<property name="min_size"></property>
<property name="minimize_button">0</property>
- <property name="minimum_size">-1,80</property>
+ <property name="minimum_size">300,150</property>
<property name="moveable">1</property>
<property name="name">m_MessagesBox</property>
<property name="pane_border">1</property>
@@ -1814,18 +1813,12 @@
<property name="resize">Resizable</property>
<property name="show">1</property>
<property name="size"></property>
- <property name="style">wxTE_MULTILINE</property>
- <property name="subclass"></property>
+ <property name="subclass">WX_HTML_REPORT_PANEL; wx_html_report_panel.h</property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
- <property name="validator_data_type"></property>
- <property name="validator_style">wxFILTER_NONE</property>
- <property name="validator_type">wxDefaultValidator</property>
- <property name="validator_variable"></property>
- <property name="value"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
- <property name="window_style"></property>
+ <property name="window_style">wxTAB_TRAVERSAL</property>
<event name="OnChar"></event>
<event name="OnEnterWindow"></event>
<event name="OnEraseBackground"></event>
@@ -1848,10 +1841,6 @@
<event name="OnRightUp"></event>
<event name="OnSetFocus"></event>
<event name="OnSize"></event>
- <event name="OnText"></event>
- <event name="OnTextEnter"></event>
- <event name="OnTextMaxLen"></event>
- <event name="OnTextURL"></event>
<event name="OnUpdateUI"></event>
</object>
</object>
=== modified file 'eeschema/dialogs/dialog_plot_schematic_base.h'
--- old/eeschema/dialogs/dialog_plot_schematic_base.h 2014-11-02 17:25:04.232000000 +0100
+++ new/eeschema/dialogs/dialog_plot_schematic_base.h 2015-06-15 16:24:55.273999000 +0200
@@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////////
-// C++ code generated with wxFormBuilder (version Jun 5 2014)
+// C++ code generated with wxFormBuilder (version Jun 6 2014)
// http://www.wxformbuilder.org/
//
// PLEASE DO "NOT" EDIT THIS FILE!
@@ -12,6 +12,7 @@
#include <wx/xrc/xmlres.h>
#include <wx/intl.h>
class DIALOG_SHIM;
+class WX_HTML_REPORT_PANEL;
#include "dialog_shim.h"
#include <wx/string.h>
@@ -27,6 +28,7 @@ class DIALOG_SHIM;
#include <wx/choice.h>
#include <wx/statbox.h>
#include <wx/checkbox.h>
+#include <wx/panel.h>
#include <wx/dialog.h>
///////////////////////////////////////////////////////////////////////////
@@ -67,7 +69,7 @@ class DIALOG_PLOT_SCHEMATIC_BASE : publi
wxButton* m_buttonPlotAll;
wxButton* m_buttonQuit;
wxStaticText* m_staticText2;
- wxTextCtrl* m_MessagesBox;
+ WX_HTML_REPORT_PANEL* m_MessagesBox;
// Virtual event handlers, overide them in your derived class
virtual void OnCloseWindow( wxCloseEvent& event ) { event.Skip(); }
=== modified file 'eeschema/netform.cpp'
--- old/eeschema/netform.cpp 2015-06-12 09:02:06.285000000 +0200
+++ new/eeschema/netform.cpp 2015-06-15 16:24:55.273999000 +0200
@@ -106,30 +106,36 @@ bool SCH_EDIT_FRAME::WriteNetListFile( N
wxArrayString output, errors;
int diag = wxExecute (commandLine, output, errors, wxEXEC_SYNC );
- aReporter->Report( _("Run command:") );
- *aReporter << wxT("\n") << commandLine << wxT("\n\n");
+ wxString msg;
+
+ msg << _("Run command:") << wxT("\n") << commandLine << wxT("\n\n");
+
+ aReporter->Report( msg, REPORTER::ACTION );
if( diag != 0 )
- aReporter->Report( wxString::Format( _("Command error. Return code %d"), diag ) );
+ aReporter->Report( wxString::Format( _("Command error. Return code %d"), diag ), REPORTER::ERROR );
else
- aReporter->Report( _("Success") );
+ aReporter->Report( _("Success"), REPORTER::INFO );
*aReporter << wxT("\n");
- if( output.GetCount() && aReporter->ReportWarnings() )
+ if( output.GetCount() )
{
- *aReporter << wxT("\n") << _("Info messages:") << wxT("\n");
+ msg << wxT("\n") << _("Info messages:") << wxT("\n");
+ aReporter->Report( msg, REPORTER::INFO );
for( unsigned ii = 0; ii < output.GetCount(); ii++ )
- *aReporter << output[ii] << wxT("\n");
+ aReporter->Report( output[ii], REPORTER::INFO );
}
- if( errors.GetCount() && aReporter->ReportErrors() )
+ if( errors.GetCount() )
{
- *aReporter << wxT("\n") << _("Error messages:") << wxT("\n");
+ msg << wxT("\n") << _("Error messages:") << wxT("\n");
+ aReporter->Report( msg, REPORTER::INFO );
for( unsigned ii = 0; ii < errors.GetCount(); ii++ )
- *aReporter << errors[ii] << wxT("\n");
+ aReporter->Report( errors[ii], REPORTER::ERROR );
+
}
}
else
=== modified file 'eeschema/plot_schematic_DXF.cpp'
--- old/eeschema/plot_schematic_DXF.cpp 2015-02-21 10:46:44.178999000 +0100
+++ new/eeschema/plot_schematic_DXF.cpp 2015-06-15 16:24:55.273999000 +0200
@@ -30,9 +30,11 @@
#include <class_sch_screen.h>
#include <schframe.h>
#include <sch_sheet_path.h>
-#include <dialog_plot_schematic.h>
#include <project.h>
+#include <dialog_plot_schematic.h>
+#include <wx_html_report_panel.h>
+
void DIALOG_PLOT_SCHEMATIC::CreateDXFFile( bool aPlotAll, bool aPlotFrameRef )
{
@@ -51,7 +53,7 @@ void DIALOG_PLOT_SCHEMATIC::CreateDXFFil
sheetpath = SheetList.GetFirst();
SCH_SHEET_PATH list;
- WX_TEXT_CTRL_REPORTER reporter(m_MessagesBox);
+ REPORTER& reporter = m_MessagesBox->Reporter();
while( true )
{
@@ -89,19 +91,19 @@ void DIALOG_PLOT_SCHEMATIC::CreateDXFFil
if( PlotOneSheetDXF( plotFileName.GetFullPath(), screen, plot_offset, 1.0, aPlotFrameRef ) )
{
- msg.Printf( _( "Plot: '%s' OK\n" ), GetChars( plotFileName.GetFullPath() ) );
+ msg.Printf( _( "Plot: '%s' OK.\n" ), GetChars( plotFileName.GetFullPath() ) );
+ reporter.Report( msg, REPORTER::ACTION );
}
else // Error
{
- msg.Printf( _( "Unable to create '%s'\n" ), GetChars( plotFileName.GetFullPath() ) );
+ msg.Printf( _( "Unable to create file '%s'.\n" ), GetChars( plotFileName.GetFullPath() ) );
+ reporter.Report( msg, REPORTER::ERROR );
}
- m_MessagesBox->AppendText( msg );
-
}
catch( IO_ERROR& e )
{
- msg.Printf( wxT( "DXF Plotter Exception : '%s'"), GetChars( e.errorText ) );
- m_MessagesBox->AppendText( msg );
+ msg.Printf( wxT( "DXF Plotter exception: %s"), GetChars( e.errorText ) );
+ reporter.Report( msg, REPORTER::ERROR );
schframe->SetCurrentSheet( oldsheetpath );
schframe->GetCurrentSheet().UpdateAllScreenReferences();
schframe->SetSheetNumberAndCount();
=== modified file 'eeschema/plot_schematic_HPGL.cpp'
--- old/eeschema/plot_schematic_HPGL.cpp 2015-02-21 10:46:44.178999000 +0100
+++ new/eeschema/plot_schematic_HPGL.cpp 2015-06-15 16:24:55.273999000 +0200
@@ -34,7 +34,7 @@
#include <project.h>
#include <dialog_plot_schematic.h>
-
+#include <wx_html_report_panel.h>
enum HPGL_PAGEZ_T {
PAGE_DEFAULT = 0,
@@ -124,7 +124,7 @@ void DIALOG_PLOT_SCHEMATIC::createHPGLFi
sheetpath = SheetList.GetFirst();
SCH_SHEET_PATH list;
- WX_TEXT_CTRL_REPORTER reporter(m_MessagesBox);
+ REPORTER& reporter = m_MessagesBox->Reporter();
SetHPGLPenWidth();
@@ -186,19 +186,23 @@ void DIALOG_PLOT_SCHEMATIC::createHPGLFi
if( Plot_1_Page_HPGL( plotFileName.GetFullPath(), screen, plotPage, plotOffset,
plot_scale, aPlotFrameRef ) )
- msg.Printf( _( "Plot: '%s' OK\n" ), GetChars( plotFileName.GetFullPath() ) );
- else // Error
- msg.Printf( _( "Unable to create '%s'\n" ), GetChars( plotFileName.GetFullPath() ) );
-
- m_MessagesBox->AppendText( msg );
+ {
+ msg.Printf( _( "Plot: '%s' OK.\n" ), GetChars( plotFileName.GetFullPath() ) );
+ reporter.Report( msg, REPORTER::ACTION );
+ }
+ else
+ {
+ msg.Printf( _( "Unable to create file '%s'.\n" ), GetChars( plotFileName.GetFullPath() ) );
+ reporter.Report( msg, REPORTER::ERROR );
+ }
if( !aPlotAll )
break;
}
catch( IO_ERROR& e )
{
- msg.Printf( wxT( "HPGL Plotter Exception : '%s'"), GetChars( e.errorText ) );
- m_MessagesBox->AppendText( msg );
+ msg.Printf( wxT( "HPGL Plotter exception: %s"), GetChars( e.errorText ) );
+ reporter.Report( msg, REPORTER::ERROR );
}
}
=== modified file 'eeschema/plot_schematic_PDF.cpp'
--- old/eeschema/plot_schematic_PDF.cpp 2015-02-26 11:33:15.437000000 +0100
+++ new/eeschema/plot_schematic_PDF.cpp 2015-06-15 16:24:55.273999000 +0200
@@ -31,9 +31,12 @@
#include <schframe.h>
#include <base_units.h>
#include <sch_sheet_path.h>
-#include <dialog_plot_schematic.h>
#include <project.h>
+#include <reporter.h>
+
+#include <dialog_plot_schematic.h>
+#include <wx_html_report_panel.h>
void DIALOG_PLOT_SCHEMATIC::createPDFFile( bool aPlotAll, bool aPlotFrameRef )
{
@@ -61,7 +64,7 @@ void DIALOG_PLOT_SCHEMATIC::createPDFFil
wxString msg;
wxFileName plotFileName;
- WX_TEXT_CTRL_REPORTER reporter(m_MessagesBox);
+ REPORTER& reporter = m_MessagesBox->Reporter();
// First page handling is different
bool first_page = true;
@@ -97,8 +100,8 @@ void DIALOG_PLOT_SCHEMATIC::createPDFFil
if( !plotter->OpenFile( plotFileName.GetFullPath() ) )
{
- msg.Printf( _( "Unable to create '%s'\n" ), GetChars( plotFileName.GetFullPath() ) );
- m_MessagesBox->AppendText( msg );
+ msg.Printf( _( "Unable to create file '%s'.\n" ), GetChars( plotFileName.GetFullPath() ) );
+ reporter.Report( msg, REPORTER::ERROR );
delete plotter;
return;
}
@@ -113,8 +116,10 @@ void DIALOG_PLOT_SCHEMATIC::createPDFFil
catch( const IO_ERROR& e )
{
// Cannot plot PDF file
- msg.Printf( wxT( "PDF Plotter Exception : <%s>"), GetChars( e.errorText ) );
- restoreEnvironment(plotter, oldsheetpath, msg);
+ msg.Printf( wxT( "PDF Plotter exception: %s" ), GetChars( e.errorText ) );
+ reporter.Report( msg, REPORTER::ERROR );
+
+ restoreEnvironment( plotter, oldsheetpath );
return;
}
@@ -132,14 +137,17 @@ void DIALOG_PLOT_SCHEMATIC::createPDFFil
} while( aPlotAll && sheetpath );
// Everything done, close the plot and restore the environment
- msg.Printf( _( "Plot: <%s> OK\n" ), GetChars( plotFileName.GetFullPath() ) );
- restoreEnvironment(plotter, oldsheetpath, msg);
+ msg.Printf( _( "Plot: '%s' OK.\n" ), GetChars( plotFileName.GetFullPath() ) );
+ reporter.Report( msg, REPORTER::ACTION );
+
+
+ restoreEnvironment(plotter, oldsheetpath );
}
void DIALOG_PLOT_SCHEMATIC::restoreEnvironment( PDF_PLOTTER* aPlotter,
- SCH_SHEET_PATH& aOldsheetpath, const wxString& aMsg )
+ SCH_SHEET_PATH& aOldsheetpath )
{
aPlotter->EndPlot();
delete aPlotter;
@@ -149,8 +157,6 @@ void DIALOG_PLOT_SCHEMATIC::restoreEnvir
m_parent->SetCurrentSheet( aOldsheetpath );
m_parent->GetCurrentSheet().UpdateAllScreenReferences();
m_parent->SetSheetNumberAndCount();
-
- m_MessagesBox->AppendText( aMsg );
}
=== modified file 'eeschema/plot_schematic_PS.cpp'
--- old/eeschema/plot_schematic_PS.cpp 2015-02-21 10:46:44.178999000 +0100
+++ new/eeschema/plot_schematic_PS.cpp 2015-06-15 16:24:55.273999000 +0200
@@ -30,10 +30,11 @@
#include <schframe.h>
#include <base_units.h>
#include <sch_sheet_path.h>
-#include <dialog_plot_schematic.h>
#include <project.h>
#include <reporter.h>
+#include <dialog_plot_schematic.h>
+#include <wx_html_report_panel.h>
void DIALOG_PLOT_SCHEMATIC::createPSFile( bool aPlotAll, bool aPlotFrameRef )
{
@@ -107,7 +108,7 @@ void DIALOG_PLOT_SCHEMATIC::createPSFile
wxFileName outputDir = wxFileName::DirName( outputDirName );
wxString msg;
- WX_TEXT_CTRL_REPORTER reporter(m_MessagesBox);
+ REPORTER& reporter = m_MessagesBox->Reporter();
try
{
@@ -119,20 +120,21 @@ void DIALOG_PLOT_SCHEMATIC::createPSFile
if( plotOneSheetPS( plotFileName.GetFullPath(), screen, plotPage, plot_offset,
scale, aPlotFrameRef ) )
{
- msg.Printf( _( "Plot: '%s' OK\n" ), GetChars( plotFileName.GetFullPath() ) );
+ msg.Printf( _( "Plot: '%s' OK.\n" ), GetChars( plotFileName.GetFullPath() ) );
+ reporter.Report( msg, REPORTER::ACTION );
}
else
{
// Error
- msg.Printf( _( "Unable to create '%s'\n" ), GetChars( plotFileName.GetFullPath() ) );
+ msg.Printf( _( "Unable to create file '%s'.\n" ), GetChars( plotFileName.GetFullPath() ) );
+ reporter.Report( msg, REPORTER::ERROR );
}
- m_MessagesBox->AppendText( msg );
}
catch( IO_ERROR& e )
{
- msg.Printf( wxT( "PS Plotter Exception : '%s'"), GetChars( e.errorText ) );
- m_MessagesBox->AppendText( msg );
+ msg.Printf( wxT( "PS Plotter exception: %s"), GetChars( e.errorText ) );
+ reporter.Report( msg, REPORTER::ERROR );
}
if( !aPlotAll )
=== modified file 'eeschema/plot_schematic_SVG.cpp'
--- old/eeschema/plot_schematic_SVG.cpp 2015-02-21 10:46:44.178999000 +0100
+++ new/eeschema/plot_schematic_SVG.cpp 2015-06-15 16:24:55.273999000 +0200
@@ -36,13 +36,15 @@
#include <libeditframe.h>
#include <sch_sheet_path.h>
#include <project.h>
+#include <reporter.h>
#include <dialog_plot_schematic.h>
-
+#include <wx_html_report_panel.h>
void DIALOG_PLOT_SCHEMATIC::createSVGFile( bool aPrintAll, bool aPrintFrameRef )
{
wxString msg;
+ REPORTER& reporter = m_MessagesBox->Reporter();
if( aPrintAll )
{
@@ -51,7 +53,6 @@ void DIALOG_PLOT_SCHEMATIC::createSVGFil
SCH_SHEET_LIST SheetList( NULL );
sheetpath = SheetList.GetFirst();
SCH_SHEET_PATH list;
- WX_TEXT_CTRL_REPORTER reporter(m_MessagesBox);
for( ; ; )
{
@@ -90,22 +91,22 @@ void DIALOG_PLOT_SCHEMATIC::createSVGFil
if( !success )
{
- msg.Printf( _( "Error creating file '%s'\n" ),
+ msg.Printf( _( "Cannot create file '%s'.\n" ),
GetChars( plotFileName.GetFullPath() ) );
+ reporter.Report( msg, REPORTER::ERROR );
}
else
{
- msg.Printf( _( "File '%s' OK\n" ),
- GetChars( plotFileName.GetFullPath() ) );
+ msg.Printf( _( "Plot: '%s' OK.\n" ),
+ GetChars( plotFileName.GetFullPath() ) );
+ reporter.Report( msg, REPORTER::ACTION );
}
-
- m_MessagesBox->AppendText( msg );
}
catch( const IO_ERROR& e )
{
// Cannot plot SVG file
- msg.Printf( wxT( "SVG Plotter Exception : '%s'" ), GetChars( e.errorText ) );
- m_MessagesBox->AppendText( msg );
+ msg.Printf( wxT( "SVG Plotter exception: %s" ), GetChars( e.errorText ) );
+ reporter.Report( msg, REPORTER::ERROR );
m_parent->SetCurrentSheet( oldsheetpath );
m_parent->GetCurrentSheet().UpdateAllScreenReferences();
@@ -133,21 +134,23 @@ void DIALOG_PLOT_SCHEMATIC::createSVGFil
aPrintFrameRef );
if( success )
{
- msg.Printf( _( "Plot: <%s> OK\n" ),
+ msg.Printf( _( "Plot: '%s' OK.\n" ),
GetChars( fn.GetFullPath() ) );
+ reporter.Report( msg, REPORTER::ACTION );
+
}
else // Error
{
- msg.Printf( _( "Unable to create <%s>\n" ),
+ msg.Printf( _( "Unable to create file '%s'.\n" ),
GetChars( fn.GetFullPath() ) );
+ reporter.Report( msg, REPORTER::ERROR );
}
- m_MessagesBox->AppendText( msg );
}
catch( const IO_ERROR& e )
{
// Cannot plot SVG file
- msg.Printf( wxT( "SVG Plotter Exception : <%s>"), GetChars( e.errorText ) );
- m_MessagesBox->AppendText( msg );
+ msg.Printf( wxT( "SVG Plotter exception: %s."), GetChars( e.errorText ) );
+ reporter.Report( msg, REPORTER::ERROR );
return;
}
}
=== modified file 'include/reporter.h'
--- old/include/reporter.h 2015-04-14 17:12:35.177000000 +0200
+++ new/include/reporter.h 2015-06-15 16:24:55.273999000 +0200
@@ -35,6 +35,8 @@
class wxString;
class wxTextCtrl;
+class wxHtmlListbox;
+class WX_HTML_REPORT_PANEL;
/**
@@ -47,28 +49,36 @@ class wxTextCtrl;
* <li> know too much about the caller's UI, i.e. wx. </li>
* <li> stop after the first error </li>
* </ul>
- * the reporter has 3 levels (flags) for filtering:
- * no filter
- * report warning
- * report errors
- * They are indicators for the calling code, filtering is not made here
+ * the reporter has 4 severity levels (flags) tagging the messages:
+ * - information
+ * - warning
+ * - error
+ * - action (i.e. indication of changes - add component, change footprint, etc. )
+ * They are indicators for the message formatting and displaying code,
+ * filtering is not made here.
*/
-class REPORTER
-{
- bool m_reportAll; // Filter flag: set to true to report all messages
- bool m_reportWarnings; // Filter flag: set to true to report warning
- bool m_reportErrors; // Filter flag: set to true to report errors
+class REPORTER {
public:
+ ///> Severity of the reported messages. Prov
+ enum SEVERITY {
+ UNDEFINED = 0x0,
+ INFO = 0x1,
+ WARNING = 0x2,
+ ERROR = 0x4,
+ ACTION = 0x8
+ };
+
/**
* Function Report
* is a pure virtual function to override in the derived object.
*
* @param aText is the string to report.
*/
- virtual REPORTER& Report( const wxString& aText ) = 0;
- REPORTER& Report( const char* aText );
+ virtual REPORTER& Report( const wxString& aText, SEVERITY aSeverity = UNDEFINED ) = 0;
+
+ REPORTER& Report( const char* aText, SEVERITY aSeverity = UNDEFINED );
REPORTER& operator <<( const wxString& aText ) { return Report( aText ); }
@@ -77,41 +87,6 @@ public:
REPORTER& operator <<( wxChar aChar ) { return Report( wxString( aChar ) ); }
REPORTER& operator <<( const char* aText ) { return Report( aText ); }
-
- /**
- * Returns true if all messages should be reported
- */
- bool ReportAll() { return m_reportAll; }
-
- /**
- * Returns true if all messages or warning messages should be reported
- */
- bool ReportWarnings() { return m_reportAll | m_reportWarnings; }
-
- /**
- * Returns true if all messages or error messages should be reported
- */
- bool ReportErrors() { return m_reportAll | m_reportErrors; }
-
- /**
- * Set the report filter state, for all messages
- * @param aEnable = filter state (true/false)
- */
- void SetReportAll( bool aEnable) { m_reportAll = aEnable; }
-
- /**
- * Set the report filter state, for warning messages
- * note: report can be disable only if m_reportAll = false
- * @param aEnable = filter state (true/false)
- */
- void SetReportWarnings( bool aEnable) { m_reportWarnings = aEnable; }
-
- /**
- * Set the report filter state, for error messages
- * note: report can be disable only if m_reportAll = false
- * @param aEnable = filter state (true/false)
- */
- void SetReportErrors( bool aEnable) { m_reportErrors = aEnable; }
};
@@ -128,12 +103,9 @@ public:
REPORTER(),
m_textCtrl( aTextCtrl )
{
- SetReportAll( true );
- SetReportWarnings( true );
- SetReportErrors( true );
}
- REPORTER& Report( const wxString& aText );
+ REPORTER& Report( const wxString& aText, SEVERITY aSeverity = UNDEFINED );
};
@@ -152,7 +124,26 @@ public:
{
}
- REPORTER& Report( const wxString& aText );
+ REPORTER& Report( const wxString& aText, SEVERITY aSeverity = UNDEFINED );
+};
+
+
+/**
+ * Class WX_HTML_PANEL_REPORTER
+ * is a wrapper for reporting to a wx HTML window
+ */
+class WX_HTML_PANEL_REPORTER : public REPORTER
+{
+ WX_HTML_REPORT_PANEL* m_panel;
+
+public:
+ WX_HTML_PANEL_REPORTER( WX_HTML_REPORT_PANEL* aPanel ) :
+ REPORTER(),
+ m_panel( aPanel )
+ {
+ }
+
+ REPORTER& Report( const wxString& aText, SEVERITY aSeverity = UNDEFINED );
};
#endif // _REPORTER_H_
=== modified file 'pcbnew/class_board.cpp'
--- old/pcbnew/class_board.cpp 2015-06-04 14:54:07.809000000 +0200
+++ new/pcbnew/class_board.cpp 2015-06-15 16:24:55.273999000 +0200
@@ -2231,21 +2231,14 @@ void BOARD::ReplaceNetlist( NETLIST& aNe
{
COMPONENT* component = aNetlist.GetComponent( i );
- if( aReporter && aReporter->ReportAll() )
+ if( aReporter )
{
-#if defined(DEBUG)
- if( component->GetReference() == wxT( "D2" ) )
- {
- int breakhere = 1;
- (void) breakhere;
- }
-#endif
msg.Printf( _( "Checking netlist component footprint \"%s:%s:%s\".\n" ),
GetChars( component->GetReference() ),
GetChars( component->GetTimeStamp() ),
GetChars( component->GetFPID().Format() ) );
- aReporter->Report( msg );
+ aReporter->Report( msg, REPORTER::INFO );
}
if( aNetlist.IsFindByTimeStamp() )
@@ -2264,8 +2257,7 @@ void BOARD::ReplaceNetlist( NETLIST& aNe
GetChars( component->GetTimeStamp() ),
GetChars( component->GetFPID().Format() ) );
- if( aReporter->ReportWarnings() )
- aReporter->Report( msg );
+ aReporter->Report( msg, REPORTER::ACTION );
}
else
{
@@ -2275,8 +2267,7 @@ void BOARD::ReplaceNetlist( NETLIST& aNe
GetChars( component->GetTimeStamp() ),
GetChars( component->GetFPID().Format() ) );
- if( aReporter->ReportErrors() )
- aReporter->Report( msg );
+ aReporter->Report( msg, REPORTER::ERROR );
}
}
@@ -2298,7 +2289,7 @@ void BOARD::ReplaceNetlist( NETLIST& aNe
{
if( aNetlist.GetReplaceFootprints() )
{
- if( aReporter )
+ if( aReporter )
{
if( component->GetModule() != NULL )
{
@@ -2309,8 +2300,7 @@ void BOARD::ReplaceNetlist( NETLIST& aNe
GetChars( footprint->GetFPID().Format() ),
GetChars( component->GetFPID().Format() ) );
- if( aReporter->ReportWarnings() )
- aReporter->Report( msg );
+ aReporter->Report( msg, REPORTER::ACTION );
}
else
{
@@ -2320,8 +2310,7 @@ void BOARD::ReplaceNetlist( NETLIST& aNe
GetChars( footprint->GetPath() ),
GetChars( component->GetFPID().Format() ) );
- if( aReporter->ReportErrors() )
- aReporter->Report( msg );
+ aReporter->Report( msg, REPORTER::ERROR );
}
}
@@ -2343,16 +2332,16 @@ void BOARD::ReplaceNetlist( NETLIST& aNe
}
}
- // Test for reference designator field change.
+ // Test for reference designator field change.
if( footprint->GetReference() != component->GetReference() )
{
- if( aReporter && aReporter->ReportWarnings())
+ if( aReporter )
{
- msg.Printf( _( "Changing footprint \"%s:%s\" reference to \"%s\".\n" ),
+ msg.Printf( _( "Changing component \"%s:%s\" reference to \"%s\".\n" ),
GetChars( footprint->GetReference() ),
GetChars( footprint->GetPath() ),
GetChars( component->GetReference() ) );
- aReporter->Report( msg );
+ aReporter->Report( msg, REPORTER::ACTION );
}
if( !aNetlist.IsDryRun() )
@@ -2362,30 +2351,30 @@ void BOARD::ReplaceNetlist( NETLIST& aNe
// Test for value field change.
if( footprint->GetValue() != component->GetValue() )
{
- if( aReporter && aReporter->ReportAll() )
+ if( aReporter )
{
- msg.Printf( _( "Changing footprint \"%s:%s\" value from \"%s\" to \"%s\".\n" ),
+ msg.Printf( _( "Changing component \"%s:%s\" value from \"%s\" to \"%s\".\n" ),
GetChars( footprint->GetReference() ),
GetChars( footprint->GetPath() ),
GetChars( footprint->GetValue() ),
GetChars( component->GetValue() ) );
- aReporter->Report( msg );
+ aReporter->Report( msg, REPORTER::ACTION );
}
if( !aNetlist.IsDryRun() )
footprint->SetValue( component->GetValue() );
}
- // Test for time stamp change.
+ // Test for time stamp change.
if( footprint->GetPath() != component->GetTimeStamp() )
{
- if( aReporter && aReporter->ReportWarnings() )
+ if( aReporter )
{
- msg.Printf( _( "Changing footprint path \"%s:%s\" to \"%s\".\n" ),
+ msg.Printf( _( "Changing component path \"%s:%s\" to \"%s\".\n" ),
GetChars( footprint->GetReference() ),
GetChars( footprint->GetPath() ),
GetChars( component->GetTimeStamp() ) );
- aReporter->Report( msg );
+ aReporter->Report( msg, REPORTER::INFO );
}
if( !aNetlist.IsDryRun() )
@@ -2396,20 +2385,20 @@ void BOARD::ReplaceNetlist( NETLIST& aNe
if( footprint == NULL )
continue;
- // At this point, the component footprint is updated. Now update the nets.
+ // At this point, the component footprint is updated. Now update the nets.
for( pad = footprint->Pads(); pad; pad = pad->Next() )
{
COMPONENT_NET net = component->GetNet( pad->GetPadName() );
if( !net.IsValid() ) // Footprint pad had no net.
{
- if( aReporter && aReporter->ReportAll() && !pad->GetNetname().IsEmpty() )
+ if( aReporter && !pad->GetNetname().IsEmpty() )
{
msg.Printf( _( "Clearing component \"%s:%s\" pin \"%s\" net name.\n" ),
GetChars( footprint->GetReference() ),
GetChars( footprint->GetPath() ),
GetChars( pad->GetPadName() ) );
- aReporter->Report( msg );
+ aReporter->Report( msg, REPORTER::ACTION );
}
if( !aNetlist.IsDryRun() )
@@ -2419,7 +2408,7 @@ void BOARD::ReplaceNetlist( NETLIST& aNe
{
if( net.GetNetName() != pad->GetNetname() )
{
- if( aReporter && aReporter->ReportAll() )
+ if( aReporter )
{
msg.Printf( _( "Changing component \"%s:%s\" pin \"%s\" net name from "
"\"%s\" to \"%s\".\n" ),
@@ -2428,7 +2417,7 @@ void BOARD::ReplaceNetlist( NETLIST& aNe
GetChars( pad->GetPadName() ),
GetChars( pad->GetNetname() ),
GetChars( net.GetNetName() ) );
- aReporter->Report( msg );
+ aReporter->Report( msg, REPORTER::ACTION );
}
if( !aNetlist.IsDryRun() )
@@ -2468,12 +2457,12 @@ void BOARD::ReplaceNetlist( NETLIST& aNe
if( component == NULL )
{
- if( aReporter && aReporter->ReportWarnings() )
+ if( aReporter )
{
- msg.Printf( _( "Removing footprint \"%s:%s\".\n" ),
+ msg.Printf( _( "Removing unused component \"%s:%s\".\n" ),
GetChars( module->GetReference() ),
GetChars( module->GetPath() ) );
- aReporter->Report( msg );
+ aReporter->Report( msg, REPORTER::ACTION );
}
if( !aNetlist.IsDryRun() )
@@ -2528,13 +2517,13 @@ void BOARD::ReplaceNetlist( NETLIST& aNe
if( count == 1 ) // Really one pad, and nothing else
{
- if( aReporter && aReporter->ReportAll() )
+ if( aReporter )
{
msg.Printf( _( "Remove single pad net \"%s\" on \"%s\" pad '%s'\n" ),
GetChars( previouspad->GetNetname() ),
GetChars( previouspad->GetParent()->GetReference() ),
GetChars( previouspad->GetPadName() ) );
- aReporter->Report( msg );
+ aReporter->Report( msg, REPORTER::ACTION );
}
previouspad->SetNetCode( NETINFO_LIST::UNCONNECTED );
@@ -2566,7 +2555,7 @@ void BOARD::ReplaceNetlist( NETLIST& aNe
// Also verify if zones have acceptable nets, i.e. nets with pads.
// Zone with no pad belongs to a "dead" net which happens after changes in schematic
// when no more pad use this net name.
- if( aReporter && aReporter->ReportErrors() )
+ if( aReporter )
{
wxString padname;
for( i = 0; i < aNetlist.GetCount(); i++ )
@@ -2587,11 +2576,11 @@ void BOARD::ReplaceNetlist( NETLIST& aNe
continue; // OK, pad found
// not found: bad footprint, report error
- msg.Printf( _( "*** Error: Component '%s' pad '%s' not found in footprint '%s' ***\n" ),
+ msg.Printf( _( "Component '%s' pad '%s' not found in footprint '%s'\n" ),
GetChars( component->GetReference() ),
GetChars( padname ),
GetChars( footprint->GetFPID().Format() ) );
- aReporter->Report( msg );
+ aReporter->Report( msg, REPORTER::ERROR );
}
}
@@ -2605,9 +2594,9 @@ void BOARD::ReplaceNetlist( NETLIST& aNe
if( zone->GetNet()->GetNodesCount() == 0 )
{
- msg.Printf( _( "* Warning: copper zone (net name '%s'): net has no pad*\n" ),
+ msg.Printf( _( "Copper zone (net name '%s'): net has no pads connected." ),
GetChars( zone->GetNet()->GetNetname() ) );
- aReporter->Report( msg );
+ aReporter->Report( msg, REPORTER::WARNING );
}
}
}
=== modified file 'pcbnew/dialogs/dialog_SVG_print.cpp'
--- old/pcbnew/dialogs/dialog_SVG_print.cpp 2014-10-26 14:59:01.313999000 +0100
+++ new/pcbnew/dialogs/dialog_SVG_print.cpp 2015-06-15 16:24:55.273999000 +0200
@@ -46,6 +46,7 @@
#include <class_board.h>
#include <dialog_SVG_print_base.h>
#include <invoke_pcb_dialog.h>
+#include <wx_html_report_panel.h>
class DIALOG_SVG_PRINT : public DIALOG_SVG_PRINT_base
@@ -266,7 +267,7 @@ void DIALOG_SVG_PRINT::ExportSVGFile( bo
wxFileName outputDir = wxFileName::DirName( m_outputDirectory );
wxString boardFilename = m_board->GetFileName();
- WX_TEXT_CTRL_REPORTER reporter( m_messagesBox );
+ REPORTER& reporter = m_messagesPanel->Reporter();
if( !EnsureFileDirectoryExists( &outputDir, boardFilename, &reporter ) )
{
@@ -301,15 +302,15 @@ void DIALOG_SVG_PRINT::ExportSVGFile( bo
if( CreateSVGFile( fn.GetFullPath(), aOnlyOneFile ) )
{
- m_messagesBox->AppendText(
- wxString::Format( _( "Plot: '%s' OK\n" ), GetChars( fn.GetFullPath() ) )
- );
+ reporter.Report (
+ wxString::Format( _( "Plot: '%s' OK." ), GetChars( fn.GetFullPath() ) ),
+ REPORTER::ACTION );
}
else // Error
{
- m_messagesBox->AppendText(
- wxString::Format( _( "** Unable to create '%s'**\n" ), GetChars( fn.GetFullPath() ) )
- );
+ reporter.Report (
+ wxString::Format( _( "Unable to create file '%s'." ), GetChars( fn.GetFullPath() ) ),
+ REPORTER::ERROR );
}
if( aOnlyOneFile )
=== modified file 'pcbnew/dialogs/dialog_SVG_print_base.cpp'
--- old/pcbnew/dialogs/dialog_SVG_print_base.cpp 2015-06-15 15:54:58.331000000 +0200
+++ new/pcbnew/dialogs/dialog_SVG_print_base.cpp 2015-06-15 16:24:55.273999000 +0200
@@ -1,10 +1,12 @@
///////////////////////////////////////////////////////////////////////////
-// C++ code generated with wxFormBuilder (version Nov 6 2013)
+// C++ code generated with wxFormBuilder (version Jun 6 2014)
// http://www.wxformbuilder.org/
//
// PLEASE DO "NOT" EDIT THIS FILE!
///////////////////////////////////////////////////////////////////////////
+#include "wx_html_report_panel.h"
+
#include "dialog_SVG_print_base.h"
///////////////////////////////////////////////////////////////////////////
@@ -117,14 +119,16 @@ DIALOG_SVG_PRINT_base::DIALOG_SVG_PRINT_
bMainSizer->Add( bUpperSizer, 0, wxEXPAND, 5 );
- m_staticText2 = new wxStaticText( this, wxID_ANY, _("Messages:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText2->Wrap( -1 );
- bMainSizer->Add( m_staticText2, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
+ wxBoxSizer* bSizer5;
+ bSizer5 = new wxBoxSizer( wxVERTICAL );
+
+ m_messagesPanel = new WX_HTML_REPORT_PANEL( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_messagesPanel->SetMinSize( wxSize( 300,150 ) );
+
+ bSizer5->Add( m_messagesPanel, 1, wxEXPAND | wxALL, 5 );
- m_messagesBox = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxTE_READONLY );
- m_messagesBox->SetMinSize( wxSize( -1,150 ) );
- bMainSizer->Add( m_messagesBox, 1, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
+ bMainSizer->Add( bSizer5, 1, wxEXPAND, 5 );
this->SetSizer( bMainSizer );
=== modified file 'pcbnew/dialogs/dialog_SVG_print_base.fbp'
--- old/pcbnew/dialogs/dialog_SVG_print_base.fbp 2015-06-15 15:54:58.331000000 +0200
+++ new/pcbnew/dialogs/dialog_SVG_print_base.fbp 2015-06-15 16:24:55.273999000 +0200
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<wxFormBuilder_Project>
- <FileVersion major="1" minor="11" />
+ <FileVersion major="1" minor="13" />
<object class="Project" expanded="1">
<property name="class_decoration"></property>
<property name="code_generation">C++</property>
@@ -1242,176 +1242,93 @@
</object>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
- <property name="flag">wxTOP|wxRIGHT|wxLEFT</property>
- <property name="proportion">0</property>
- <object class="wxStaticText" expanded="1">
- <property name="BottomDockable">1</property>
- <property name="LeftDockable">1</property>
- <property name="RightDockable">1</property>
- <property name="TopDockable">1</property>
- <property name="aui_layer"></property>
- <property name="aui_name"></property>
- <property name="aui_position"></property>
- <property name="aui_row"></property>
- <property name="best_size"></property>
- <property name="bg"></property>
- <property name="caption"></property>
- <property name="caption_visible">1</property>
- <property name="center_pane">0</property>
- <property name="close_button">1</property>
- <property name="context_help"></property>
- <property name="context_menu">1</property>
- <property name="default_pane">0</property>
- <property name="dock">Dock</property>
- <property name="dock_fixed">0</property>
- <property name="docking">Left</property>
- <property name="enabled">1</property>
- <property name="fg"></property>
- <property name="floatable">1</property>
- <property name="font"></property>
- <property name="gripper">0</property>
- <property name="hidden">0</property>
- <property name="id">wxID_ANY</property>
- <property name="label">Messages:</property>
- <property name="max_size"></property>
- <property name="maximize_button">0</property>
- <property name="maximum_size"></property>
- <property name="min_size"></property>
- <property name="minimize_button">0</property>
- <property name="minimum_size"></property>
- <property name="moveable">1</property>
- <property name="name">m_staticText2</property>
- <property name="pane_border">1</property>
- <property name="pane_position"></property>
- <property name="pane_size"></property>
- <property name="permission">protected</property>
- <property name="pin_button">1</property>
- <property name="pos"></property>
- <property name="resize">Resizable</property>
- <property name="show">1</property>
- <property name="size"></property>
- <property name="style"></property>
- <property name="subclass"></property>
- <property name="toolbar_pane">0</property>
- <property name="tooltip"></property>
- <property name="window_extra_style"></property>
- <property name="window_name"></property>
- <property name="window_style"></property>
- <property name="wrap">-1</property>
- <event name="OnChar"></event>
- <event name="OnEnterWindow"></event>
- <event name="OnEraseBackground"></event>
- <event name="OnKeyDown"></event>
- <event name="OnKeyUp"></event>
- <event name="OnKillFocus"></event>
- <event name="OnLeaveWindow"></event>
- <event name="OnLeftDClick"></event>
- <event name="OnLeftDown"></event>
- <event name="OnLeftUp"></event>
- <event name="OnMiddleDClick"></event>
- <event name="OnMiddleDown"></event>
- <event name="OnMiddleUp"></event>
- <event name="OnMotion"></event>
- <event name="OnMouseEvents"></event>
- <event name="OnMouseWheel"></event>
- <event name="OnPaint"></event>
- <event name="OnRightDClick"></event>
- <event name="OnRightDown"></event>
- <event name="OnRightUp"></event>
- <event name="OnSetFocus"></event>
- <event name="OnSize"></event>
- <event name="OnUpdateUI"></event>
- </object>
- </object>
- <object class="sizeritem" expanded="1">
- <property name="border">5</property>
- <property name="flag">wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND</property>
+ <property name="flag">wxEXPAND</property>
<property name="proportion">1</property>
- <object class="wxTextCtrl" expanded="1">
- <property name="BottomDockable">1</property>
- <property name="LeftDockable">1</property>
- <property name="RightDockable">1</property>
- <property name="TopDockable">1</property>
- <property name="aui_layer"></property>
- <property name="aui_name"></property>
- <property name="aui_position"></property>
- <property name="aui_row"></property>
- <property name="best_size"></property>
- <property name="bg"></property>
- <property name="caption"></property>
- <property name="caption_visible">1</property>
- <property name="center_pane">0</property>
- <property name="close_button">1</property>
- <property name="context_help"></property>
- <property name="context_menu">1</property>
- <property name="default_pane">0</property>
- <property name="dock">Dock</property>
- <property name="dock_fixed">0</property>
- <property name="docking">Left</property>
- <property name="enabled">1</property>
- <property name="fg"></property>
- <property name="floatable">1</property>
- <property name="font"></property>
- <property name="gripper">0</property>
- <property name="hidden">0</property>
- <property name="id">wxID_ANY</property>
- <property name="max_size"></property>
- <property name="maximize_button">0</property>
- <property name="maximum_size"></property>
- <property name="maxlength"></property>
- <property name="min_size"></property>
- <property name="minimize_button">0</property>
- <property name="minimum_size">-1,150</property>
- <property name="moveable">1</property>
- <property name="name">m_messagesBox</property>
- <property name="pane_border">1</property>
- <property name="pane_position"></property>
- <property name="pane_size"></property>
- <property name="permission">protected</property>
- <property name="pin_button">1</property>
- <property name="pos"></property>
- <property name="resize">Resizable</property>
- <property name="show">1</property>
- <property name="size"></property>
- <property name="style">wxTE_MULTILINE|wxTE_READONLY</property>
- <property name="subclass"></property>
- <property name="toolbar_pane">0</property>
- <property name="tooltip"></property>
- <property name="validator_data_type"></property>
- <property name="validator_style">wxFILTER_NONE</property>
- <property name="validator_type">wxDefaultValidator</property>
- <property name="validator_variable"></property>
- <property name="value"></property>
- <property name="window_extra_style"></property>
- <property name="window_name"></property>
- <property name="window_style"></property>
- <event name="OnChar"></event>
- <event name="OnEnterWindow"></event>
- <event name="OnEraseBackground"></event>
- <event name="OnKeyDown"></event>
- <event name="OnKeyUp"></event>
- <event name="OnKillFocus"></event>
- <event name="OnLeaveWindow"></event>
- <event name="OnLeftDClick"></event>
- <event name="OnLeftDown"></event>
- <event name="OnLeftUp"></event>
- <event name="OnMiddleDClick"></event>
- <event name="OnMiddleDown"></event>
- <event name="OnMiddleUp"></event>
- <event name="OnMotion"></event>
- <event name="OnMouseEvents"></event>
- <event name="OnMouseWheel"></event>
- <event name="OnPaint"></event>
- <event name="OnRightDClick"></event>
- <event name="OnRightDown"></event>
- <event name="OnRightUp"></event>
- <event name="OnSetFocus"></event>
- <event name="OnSize"></event>
- <event name="OnText"></event>
- <event name="OnTextEnter"></event>
- <event name="OnTextMaxLen"></event>
- <event name="OnTextURL"></event>
- <event name="OnUpdateUI"></event>
+ <object class="wxBoxSizer" expanded="1">
+ <property name="minimum_size"></property>
+ <property name="name">bSizer5</property>
+ <property name="orient">wxVERTICAL</property>
+ <property name="permission">none</property>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxEXPAND | wxALL</property>
+ <property name="proportion">1</property>
+ <object class="wxPanel" expanded="1">
+ <property name="BottomDockable">1</property>
+ <property name="LeftDockable">1</property>
+ <property name="RightDockable">1</property>
+ <property name="TopDockable">1</property>
+ <property name="aui_layer"></property>
+ <property name="aui_name"></property>
+ <property name="aui_position"></property>
+ <property name="aui_row"></property>
+ <property name="best_size"></property>
+ <property name="bg"></property>
+ <property name="caption"></property>
+ <property name="caption_visible">1</property>
+ <property name="center_pane">0</property>
+ <property name="close_button">1</property>
+ <property name="context_help"></property>
+ <property name="context_menu">1</property>
+ <property name="default_pane">0</property>
+ <property name="dock">Dock</property>
+ <property name="dock_fixed">0</property>
+ <property name="docking">Left</property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="floatable">1</property>
+ <property name="font"></property>
+ <property name="gripper">0</property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="max_size"></property>
+ <property name="maximize_button">0</property>
+ <property name="maximum_size"></property>
+ <property name="min_size"></property>
+ <property name="minimize_button">0</property>
+ <property name="minimum_size">300,150</property>
+ <property name="moveable">1</property>
+ <property name="name">m_messagesPanel</property>
+ <property name="pane_border">1</property>
+ <property name="pane_position"></property>
+ <property name="pane_size"></property>
+ <property name="permission">protected</property>
+ <property name="pin_button">1</property>
+ <property name="pos"></property>
+ <property name="resize">Resizable</property>
+ <property name="show">1</property>
+ <property name="size"></property>
+ <property name="subclass">WX_HTML_REPORT_PANEL; wx_html_report_panel.h</property>
+ <property name="toolbar_pane">0</property>
+ <property name="tooltip"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style">wxTAB_TRAVERSAL</property>
+ <event name="OnChar"></event>
+ <event name="OnEnterWindow"></event>
+ <event name="OnEraseBackground"></event>
+ <event name="OnKeyDown"></event>
+ <event name="OnKeyUp"></event>
+ <event name="OnKillFocus"></event>
+ <event name="OnLeaveWindow"></event>
+ <event name="OnLeftDClick"></event>
+ <event name="OnLeftDown"></event>
+ <event name="OnLeftUp"></event>
+ <event name="OnMiddleDClick"></event>
+ <event name="OnMiddleDown"></event>
+ <event name="OnMiddleUp"></event>
+ <event name="OnMotion"></event>
+ <event name="OnMouseEvents"></event>
+ <event name="OnMouseWheel"></event>
+ <event name="OnPaint"></event>
+ <event name="OnRightDClick"></event>
+ <event name="OnRightDown"></event>
+ <event name="OnRightUp"></event>
+ <event name="OnSetFocus"></event>
+ <event name="OnSize"></event>
+ <event name="OnUpdateUI"></event>
+ </object>
+ </object>
</object>
</object>
</object>
=== modified file 'pcbnew/dialogs/dialog_SVG_print_base.h'
--- old/pcbnew/dialogs/dialog_SVG_print_base.h 2014-06-30 21:19:58.592999000 +0200
+++ new/pcbnew/dialogs/dialog_SVG_print_base.h 2015-06-15 16:24:55.273999000 +0200
@@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////////
-// C++ code generated with wxFormBuilder (version Nov 6 2013)
+// C++ code generated with wxFormBuilder (version Jun 6 2014)
// http://www.wxformbuilder.org/
//
// PLEASE DO "NOT" EDIT THIS FILE!
@@ -12,6 +12,7 @@
#include <wx/xrc/xmlres.h>
#include <wx/intl.h>
class DIALOG_SHIM;
+class WX_HTML_REPORT_PANEL;
#include "dialog_shim.h"
#include <wx/string.h>
@@ -26,6 +27,7 @@ class DIALOG_SHIM;
#include <wx/statbox.h>
#include <wx/radiobox.h>
#include <wx/checkbox.h>
+#include <wx/panel.h>
#include <wx/dialog.h>
///////////////////////////////////////////////////////////////////////////
@@ -57,8 +59,7 @@ class DIALOG_SVG_PRINT_base : public DIA
wxRadioBox* m_rbFileOpt;
wxButton* m_buttonCreateFile;
wxButton* m_buttonQuit;
- wxStaticText* m_staticText2;
- wxTextCtrl* m_messagesBox;
+ WX_HTML_REPORT_PANEL* m_messagesPanel;
// Virtual event handlers, overide them in your derived class
virtual void OnCloseWindow( wxCloseEvent& event ) { event.Skip(); }
=== modified file 'pcbnew/dialogs/dialog_gen_module_position_file_base.cpp'
--- old/pcbnew/dialogs/dialog_gen_module_position_file_base.cpp 2015-06-15 15:54:58.331000000 +0200
+++ new/pcbnew/dialogs/dialog_gen_module_position_file_base.cpp 2015-06-15 16:24:55.273999000 +0200
@@ -5,6 +5,8 @@
// PLEASE DO "NOT" EDIT THIS FILE!
///////////////////////////////////////////////////////////////////////////
+#include "wx_html_report_panel.h"
+
#include "dialog_gen_module_position_file_base.h"
///////////////////////////////////////////////////////////////////////////
@@ -29,6 +31,7 @@ DIALOG_GEN_MODULE_POSITION_BASE::DIALOG_
bSizerdirBrowse = new wxBoxSizer( wxHORIZONTAL );
m_outputDirectoryName = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
+ m_outputDirectoryName->SetMaxLength( 0 );
m_outputDirectoryName->SetToolTip( _("Target directory for plot files. Can be absolute or relative to the board file location.") );
m_outputDirectoryName->SetMinSize( wxSize( 350,-1 ) );
@@ -74,16 +77,16 @@ DIALOG_GEN_MODULE_POSITION_BASE::DIALOG_
m_MainSizer->Add( bSizerOptions, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 );
- wxStaticBoxSizer* sbSizerMsg;
- sbSizerMsg = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Messages:") ), wxVERTICAL );
+ wxBoxSizer* bSizer7;
+ bSizer7 = new wxBoxSizer( wxVERTICAL );
- m_messagesBox = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,-1 ), wxTE_MULTILINE|wxTE_READONLY );
- m_messagesBox->SetMinSize( wxSize( -1,150 ) );
+ m_messagesPanel = new WX_HTML_REPORT_PANEL( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_messagesPanel->SetMinSize( wxSize( 300,150 ) );
- sbSizerMsg->Add( m_messagesBox, 1, wxEXPAND, 5 );
+ bSizer7->Add( m_messagesPanel, 1, wxEXPAND | wxALL, 5 );
- m_MainSizer->Add( sbSizerMsg, 1, wxEXPAND, 5 );
+ m_MainSizer->Add( bSizer7, 1, wxEXPAND, 5 );
m_sdbSizerButtons = new wxStdDialogButtonSizer();
m_sdbSizerButtonsOK = new wxButton( this, wxID_OK );
@@ -101,6 +104,8 @@ DIALOG_GEN_MODULE_POSITION_BASE::DIALOG_
this->Centre( wxBOTH );
// Connect Events
+ this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_GEN_MODULE_POSITION_BASE::OnClose ) );
+ this->Connect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( DIALOG_GEN_MODULE_POSITION_BASE::OnInitDialog ) );
m_browseButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GEN_MODULE_POSITION_BASE::OnOutputDirectoryBrowseClicked ), NULL, this );
m_sdbSizerButtonsOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GEN_MODULE_POSITION_BASE::OnOKButton ), NULL, this );
}
@@ -108,6 +113,8 @@ DIALOG_GEN_MODULE_POSITION_BASE::DIALOG_
DIALOG_GEN_MODULE_POSITION_BASE::~DIALOG_GEN_MODULE_POSITION_BASE()
{
// Disconnect Events
+ this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_GEN_MODULE_POSITION_BASE::OnClose ) );
+ this->Disconnect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( DIALOG_GEN_MODULE_POSITION_BASE::OnInitDialog ) );
m_browseButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GEN_MODULE_POSITION_BASE::OnOutputDirectoryBrowseClicked ), NULL, this );
m_sdbSizerButtonsOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GEN_MODULE_POSITION_BASE::OnOKButton ), NULL, this );
=== modified file 'pcbnew/dialogs/dialog_gen_module_position_file_base.fbp'
--- old/pcbnew/dialogs/dialog_gen_module_position_file_base.fbp 2015-06-15 15:54:58.331000000 +0200
+++ new/pcbnew/dialogs/dialog_gen_module_position_file_base.fbp 2015-06-15 16:24:55.273999000 +0200
@@ -47,7 +47,7 @@
<property name="size">510,351</property>
<property name="style">wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER</property>
<property name="subclass">DIALOG_SHIM; dialog_shim.h</property>
- <property name="title">Position Files:</property>
+ <property name="title">Generate Component Position Files</property>
<property name="tooltip"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
@@ -61,13 +61,13 @@
<event name="OnAuiPaneRestore"></event>
<event name="OnAuiRender"></event>
<event name="OnChar"></event>
- <event name="OnClose"></event>
+ <event name="OnClose">OnClose</event>
<event name="OnEnterWindow"></event>
<event name="OnEraseBackground"></event>
<event name="OnHibernate"></event>
<event name="OnIconize"></event>
<event name="OnIdle"></event>
- <event name="OnInitDialog"></event>
+ <event name="OnInitDialog">OnInitDialog</event>
<event name="OnKeyDown"></event>
<event name="OnKeyUp"></event>
<event name="OnKillFocus"></event>
@@ -238,7 +238,7 @@
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
- <property name="maxlength"></property>
+ <property name="maxlength">0</property>
<property name="min_size"></property>
<property name="minimize_button">0</property>
<property name="minimum_size">350,-1</property>
@@ -673,19 +673,16 @@
<property name="border">5</property>
<property name="flag">wxEXPAND</property>
<property name="proportion">1</property>
- <object class="wxStaticBoxSizer" expanded="1">
- <property name="id">wxID_ANY</property>
- <property name="label">Messages:</property>
+ <object class="wxBoxSizer" expanded="1">
<property name="minimum_size"></property>
- <property name="name">sbSizerMsg</property>
+ <property name="name">bSizer7</property>
<property name="orient">wxVERTICAL</property>
<property name="permission">none</property>
- <event name="OnUpdateUI"></event>
- <object class="sizeritem" expanded="0">
+ <object class="sizeritem" expanded="1">
<property name="border">5</property>
- <property name="flag">wxEXPAND</property>
+ <property name="flag">wxEXPAND | wxALL</property>
<property name="proportion">1</property>
- <object class="wxTextCtrl" expanded="0">
+ <object class="wxPanel" expanded="1">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
@@ -716,12 +713,11 @@
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
- <property name="maxlength"></property>
<property name="min_size"></property>
<property name="minimize_button">0</property>
- <property name="minimum_size">-1,150</property>
+ <property name="minimum_size">300,150</property>
<property name="moveable">1</property>
- <property name="name">m_messagesBox</property>
+ <property name="name">m_messagesPanel</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
@@ -730,19 +726,13 @@
<property name="pos"></property>
<property name="resize">Resizable</property>
<property name="show">1</property>
- <property name="size">-1,-1</property>
- <property name="style">wxTE_MULTILINE|wxTE_READONLY</property>
- <property name="subclass"></property>
+ <property name="size"></property>
+ <property name="subclass">WX_HTML_REPORT_PANEL; wx_html_report_panel.h</property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
- <property name="validator_data_type"></property>
- <property name="validator_style">wxFILTER_NONE</property>
- <property name="validator_type">wxDefaultValidator</property>
- <property name="validator_variable"></property>
- <property name="value"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
- <property name="window_style"></property>
+ <property name="window_style">wxTAB_TRAVERSAL</property>
<event name="OnChar"></event>
<event name="OnEnterWindow"></event>
<event name="OnEraseBackground"></event>
@@ -765,10 +755,6 @@
<event name="OnRightUp"></event>
<event name="OnSetFocus"></event>
<event name="OnSize"></event>
- <event name="OnText"></event>
- <event name="OnTextEnter"></event>
- <event name="OnTextMaxLen"></event>
- <event name="OnTextURL"></event>
<event name="OnUpdateUI"></event>
</object>
</object>
=== modified file 'pcbnew/dialogs/dialog_gen_module_position_file_base.h'
--- old/pcbnew/dialogs/dialog_gen_module_position_file_base.h 2015-06-15 15:54:58.331000000 +0200
+++ new/pcbnew/dialogs/dialog_gen_module_position_file_base.h 2015-06-15 16:24:55.273999000 +0200
@@ -12,6 +12,7 @@
#include <wx/xrc/xmlres.h>
#include <wx/intl.h>
class DIALOG_SHIM;
+class WX_HTML_REPORT_PANEL;
#include "dialog_shim.h"
#include <wx/string.h>
@@ -24,7 +25,7 @@ class DIALOG_SHIM;
#include <wx/button.h>
#include <wx/sizer.h>
#include <wx/radiobox.h>
-#include <wx/statbox.h>
+#include <wx/panel.h>
#include <wx/dialog.h>
///////////////////////////////////////////////////////////////////////////
@@ -44,19 +45,21 @@ class DIALOG_GEN_MODULE_POSITION_BASE :
wxRadioBox* m_radioBoxUnits;
wxRadioBox* m_radioBoxFilesCount;
wxRadioBox* m_radioBoxForceSmd;
- wxTextCtrl* m_messagesBox;
+ WX_HTML_REPORT_PANEL* m_messagesPanel;
wxStdDialogButtonSizer* m_sdbSizerButtons;
wxButton* m_sdbSizerButtonsOK;
wxButton* m_sdbSizerButtonsCancel;
// Virtual event handlers, overide them in your derived class
+ virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
+ virtual void OnInitDialog( wxInitDialogEvent& event ) { event.Skip(); }
virtual void OnOutputDirectoryBrowseClicked( wxCommandEvent& event ) { event.Skip(); }
virtual void OnOKButton( wxCommandEvent& event ) { event.Skip(); }
public:
- DIALOG_GEN_MODULE_POSITION_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Position Files:"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 510,351 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
+ DIALOG_GEN_MODULE_POSITION_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Generate Component Position Files"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 510,351 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
~DIALOG_GEN_MODULE_POSITION_BASE();
};
=== modified file 'pcbnew/dialogs/dialog_netlist.cpp'
--- old/pcbnew/dialogs/dialog_netlist.cpp 2015-06-12 14:46:41.878000000 +0200
+++ new/pcbnew/dialogs/dialog_netlist.cpp 2015-06-15 16:24:55.273999000 +0200
@@ -47,6 +47,7 @@
#include <wildcards_and_files_ext.h>
#include <dialog_netlist.h>
+#include <wx_html_report_panel.h>
#define NETLIST_SILENTMODE_KEY wxT("SilentMode")
#define NETLIST_FULLMESSAGES_KEY wxT("NetlistReportAllMsg")
@@ -158,21 +159,20 @@ void DIALOG_NETLIST::OnReadNetlistFileCl
"sure you want to read the netlist?" ) ) )
return;
- wxBusyCursor busy;
m_MessageWindow->Clear();
+ REPORTER& reporter = m_MessageWindow->Reporter();
+
+ wxBusyCursor busy;
msg.Printf( _( "Reading netlist file \"%s\".\n" ), GetChars( netlistFileName ) );
- m_MessageWindow->AppendText( msg );
+ reporter.Report( msg, REPORTER::INFO );
if( m_Select_By_Timestamp->GetSelection() == 1 )
msg = _( "Using time stamps to match components and footprints.\n" );
else
msg = _( "Using references to match components and footprints.\n" );
- m_MessageWindow->AppendText( msg );
-
- WX_TEXT_CTRL_REPORTER reporter( m_MessageWindow );
- reporter.SetReportAll( m_reportAll );
+ reporter.Report( msg, REPORTER::INFO );
m_parent->ReadPcbNetlist( netlistFileName, wxEmptyString, &reporter,
m_ChangeExistingFootprintCtrl->GetSelection() == 1,
@@ -357,13 +357,13 @@ void DIALOG_NETLIST::OnSaveMessagesToFil
return;
}
- f.Write( m_MessageWindow->GetValue() );
+ //f.Write( m_MessageWindow->GetValue() );
}
void DIALOG_NETLIST::OnUpdateUISaveMessagesToFile( wxUpdateUIEvent& aEvent )
{
- aEvent.Enable( !m_MessageWindow->IsEmpty() );
+ //aEvent.Enable( !m_MessageWindow->IsEmpty() );
}
@@ -409,19 +409,6 @@ bool DIALOG_NETLIST::verifyFootprints( c
return false;
}
-#if defined( DEBUG )
- {
- m_MessageWindow->Clear();
- WX_TEXT_CTRL_REPORTER rpt( m_MessageWindow );
-
- STRING_FORMATTER sf;
-
- netlist.Format( "netlist_stuff", &sf, 0 );
-
- rpt.Report( FROM_UTF8( sf.GetString().c_str() ) );
- }
-#endif
-
BOARD* pcb = m_parent->GetBoard();
// Search for duplicate footprints.
=== modified file 'pcbnew/dialogs/dialog_netlist_fbp.cpp'
--- old/pcbnew/dialogs/dialog_netlist_fbp.cpp 2015-06-12 14:46:41.878000000 +0200
+++ new/pcbnew/dialogs/dialog_netlist_fbp.cpp 2015-06-15 16:24:55.273999000 +0200
@@ -5,6 +5,8 @@
// PLEASE DO "NOT" EDIT THIS FILE!
///////////////////////////////////////////////////////////////////////////
+#include "wx_html_report_panel.h"
+
#include "dialog_netlist_fbp.h"
///////////////////////////////////////////////////////////////////////////
@@ -159,14 +161,10 @@ DIALOG_NETLIST_FBP::DIALOG_NETLIST_FBP(
bLowerSizer->Add( bSizerNetlistFilename, 0, wxEXPAND, 5 );
- m_staticText1 = new wxStaticText( this, wxID_ANY, _("Messages:"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText1->Wrap( -1 );
- bLowerSizer->Add( m_staticText1, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
-
- m_MessageWindow = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_CHARWRAP|wxTE_MULTILINE|wxTE_READONLY|wxTE_WORDWRAP );
- m_MessageWindow->SetMinSize( wxSize( 300,150 ) );
+ m_MessageWindow = new WX_HTML_REPORT_PANEL( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_MessageWindow->SetMinSize( wxSize( -300,150 ) );
- bLowerSizer->Add( m_MessageWindow, 1, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+ bLowerSizer->Add( m_MessageWindow, 1, wxEXPAND | wxALL, 5 );
bMainSizer->Add( bLowerSizer, 1, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 );
=== modified file 'pcbnew/dialogs/dialog_netlist_fbp.fbp'
--- old/pcbnew/dialogs/dialog_netlist_fbp.fbp 2015-06-12 14:46:41.878000000 +0200
+++ new/pcbnew/dialogs/dialog_netlist_fbp.fbp 2015-06-15 16:24:55.273999000 +0200
@@ -1770,92 +1770,9 @@
</object>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
- <property name="flag">wxTOP|wxRIGHT|wxLEFT</property>
- <property name="proportion">0</property>
- <object class="wxStaticText" expanded="1">
- <property name="BottomDockable">1</property>
- <property name="LeftDockable">1</property>
- <property name="RightDockable">1</property>
- <property name="TopDockable">1</property>
- <property name="aui_layer"></property>
- <property name="aui_name"></property>
- <property name="aui_position"></property>
- <property name="aui_row"></property>
- <property name="best_size"></property>
- <property name="bg"></property>
- <property name="caption"></property>
- <property name="caption_visible">1</property>
- <property name="center_pane">0</property>
- <property name="close_button">1</property>
- <property name="context_help"></property>
- <property name="context_menu">1</property>
- <property name="default_pane">0</property>
- <property name="dock">Dock</property>
- <property name="dock_fixed">0</property>
- <property name="docking">Left</property>
- <property name="enabled">1</property>
- <property name="fg"></property>
- <property name="floatable">1</property>
- <property name="font"></property>
- <property name="gripper">0</property>
- <property name="hidden">0</property>
- <property name="id">wxID_ANY</property>
- <property name="label">Messages:</property>
- <property name="max_size"></property>
- <property name="maximize_button">0</property>
- <property name="maximum_size"></property>
- <property name="min_size"></property>
- <property name="minimize_button">0</property>
- <property name="minimum_size"></property>
- <property name="moveable">1</property>
- <property name="name">m_staticText1</property>
- <property name="pane_border">1</property>
- <property name="pane_position"></property>
- <property name="pane_size"></property>
- <property name="permission">protected</property>
- <property name="pin_button">1</property>
- <property name="pos"></property>
- <property name="resize">Resizable</property>
- <property name="show">1</property>
- <property name="size"></property>
- <property name="style"></property>
- <property name="subclass"></property>
- <property name="toolbar_pane">0</property>
- <property name="tooltip"></property>
- <property name="window_extra_style"></property>
- <property name="window_name"></property>
- <property name="window_style"></property>
- <property name="wrap">-1</property>
- <event name="OnChar"></event>
- <event name="OnEnterWindow"></event>
- <event name="OnEraseBackground"></event>
- <event name="OnKeyDown"></event>
- <event name="OnKeyUp"></event>
- <event name="OnKillFocus"></event>
- <event name="OnLeaveWindow"></event>
- <event name="OnLeftDClick"></event>
- <event name="OnLeftDown"></event>
- <event name="OnLeftUp"></event>
- <event name="OnMiddleDClick"></event>
- <event name="OnMiddleDown"></event>
- <event name="OnMiddleUp"></event>
- <event name="OnMotion"></event>
- <event name="OnMouseEvents"></event>
- <event name="OnMouseWheel"></event>
- <event name="OnPaint"></event>
- <event name="OnRightDClick"></event>
- <event name="OnRightDown"></event>
- <event name="OnRightUp"></event>
- <event name="OnSetFocus"></event>
- <event name="OnSize"></event>
- <event name="OnUpdateUI"></event>
- </object>
- </object>
- <object class="sizeritem" expanded="1">
- <property name="border">5</property>
- <property name="flag">wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT</property>
+ <property name="flag">wxEXPAND | wxALL</property>
<property name="proportion">1</property>
- <object class="wxTextCtrl" expanded="1">
+ <object class="wxPanel" expanded="1">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
@@ -1886,10 +1803,9 @@
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
- <property name="maxlength"></property>
<property name="min_size"></property>
<property name="minimize_button">0</property>
- <property name="minimum_size">300,150</property>
+ <property name="minimum_size">-300,150</property>
<property name="moveable">1</property>
<property name="name">m_MessageWindow</property>
<property name="pane_border">1</property>
@@ -1901,18 +1817,12 @@
<property name="resize">Resizable</property>
<property name="show">1</property>
<property name="size"></property>
- <property name="style">wxTE_CHARWRAP|wxTE_MULTILINE|wxTE_READONLY|wxTE_WORDWRAP</property>
- <property name="subclass"></property>
+ <property name="subclass">WX_HTML_REPORT_PANEL; wx_html_report_panel.h</property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
- <property name="validator_data_type"></property>
- <property name="validator_style">wxFILTER_NONE</property>
- <property name="validator_type">wxDefaultValidator</property>
- <property name="validator_variable"></property>
- <property name="value"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
- <property name="window_style"></property>
+ <property name="window_style">wxTAB_TRAVERSAL</property>
<event name="OnChar"></event>
<event name="OnEnterWindow"></event>
<event name="OnEraseBackground"></event>
@@ -1935,10 +1845,6 @@
<event name="OnRightUp"></event>
<event name="OnSetFocus"></event>
<event name="OnSize"></event>
- <event name="OnText"></event>
- <event name="OnTextEnter"></event>
- <event name="OnTextMaxLen"></event>
- <event name="OnTextURL"></event>
<event name="OnUpdateUI"></event>
</object>
</object>
=== modified file 'pcbnew/dialogs/dialog_netlist_fbp.h'
--- old/pcbnew/dialogs/dialog_netlist_fbp.h 2015-06-12 14:46:41.878000000 +0200
+++ new/pcbnew/dialogs/dialog_netlist_fbp.h 2015-06-15 16:24:55.273999000 +0200
@@ -12,6 +12,7 @@
#include <wx/xrc/xmlres.h>
#include <wx/intl.h>
class DIALOG_SHIM;
+class WX_HTML_REPORT_PANEL;
#include "dialog_shim.h"
#include <wx/string.h>
@@ -26,6 +27,7 @@ class DIALOG_SHIM;
#include <wx/checkbox.h>
#include <wx/stattext.h>
#include <wx/textctrl.h>
+#include <wx/panel.h>
#include <wx/dialog.h>
///////////////////////////////////////////////////////////////////////////
@@ -64,8 +66,7 @@ class DIALOG_NETLIST_FBP : public DIALOG
wxStaticText* m_staticTextNetfilename;
wxTextCtrl* m_NetlistFilenameCtrl;
wxButton* m_buttonBrowse;
- wxStaticText* m_staticText1;
- wxTextCtrl* m_MessageWindow;
+ WX_HTML_REPORT_PANEL* m_MessageWindow;
// Virtual event handlers, overide them in your derived class
virtual void OnReadNetlistFileClick( wxCommandEvent& event ) { event.Skip(); }
=== modified file 'pcbnew/dialogs/dialog_plot.cpp'
--- old/pcbnew/dialogs/dialog_plot.cpp 2015-03-03 11:50:50.000000000 +0100
+++ new/pcbnew/dialogs/dialog_plot.cpp 2015-06-15 16:24:55.273999000 +0200
@@ -38,7 +38,7 @@
#include <class_board.h>
#include <wx/ffile.h>
#include <dialog_plot.h>
-
+#include <wx_html_report_panel.h>
DIALOG_PLOT::DIALOG_PLOT( PCB_EDIT_FRAME* aParent ) :
DIALOG_PLOT_BASE( aParent ), m_parent( aParent ),
@@ -107,7 +107,7 @@ void DIALOG_PLOT::Init_Dialog()
// Set units and value for HPGL pen size (this param in in mils).
AddUnitSymbol( *m_textPenSize, g_UserUnit );
msg = StringFromValue( g_UserUnit,
- m_plotOpts.GetHPGLPenDiameter() * IU_PER_MILS );
+ m_plotOpts.GetHPGLPenDiameter() * IU_PER_MILS );
m_HPGLPenSizeOpt->AppendText( msg );
// Set units and value for HPGL pen overlay (this param in in mils).
@@ -562,6 +562,8 @@ static bool setInt( int* aResult, int aV
void DIALOG_PLOT::applyPlotSettings()
{
+ REPORTER& reporter = m_messagesPanel->Reporter();
+
PCB_PLOT_PARAMS tempOptions;
tempOptions.SetExcludeEdgeLayer( m_excludeEdgeLayerOpt->GetValue() );
@@ -590,8 +592,8 @@ void DIALOG_PLOT::applyPlotSettings()
{
msg = StringFromValue( g_UserUnit, tempOptions.GetHPGLPenDiameter() * IU_PER_MILS );
m_HPGLPenSizeOpt->SetValue( msg );
- msg.Printf( _( "HPGL pen size constrained!\n" ) );
- m_messagesBox->AppendText( msg );
+ msg.Printf( _( "HPGL pen size constrained." ) );
+ reporter.Report( msg, REPORTER::INFO );
}
// Read HPGL pen overlay (this param is stored in mils)
@@ -603,8 +605,8 @@ void DIALOG_PLOT::applyPlotSettings()
msg = StringFromValue( g_UserUnit,
tempOptions.GetHPGLPenOverlay() * IU_PER_MILS );
m_HPGLPenOverlayOpt->SetValue( msg );
- msg.Printf( _( "HPGL pen overlay constrained!\n" ) );
- m_messagesBox->AppendText( msg );
+ msg.Printf( _( "HPGL pen overlay constrained." ) );
+ reporter.Report( msg, REPORTER::INFO );
}
// Default linewidth
@@ -615,8 +617,8 @@ void DIALOG_PLOT::applyPlotSettings()
{
msg = StringFromValue( g_UserUnit, tempOptions.GetLineWidth() );
m_linesWidth->SetValue( msg );
- msg.Printf( _( "Default line width constrained!\n" ) );
- m_messagesBox->AppendText( msg );
+ msg.Printf( _( "Default line width constrained." ) );
+ reporter.Report( msg, REPORTER::INFO );
}
// X scale
@@ -628,8 +630,8 @@ void DIALOG_PLOT::applyPlotSettings()
{
msg.Printf( wxT( "%f" ), m_XScaleAdjust );
m_fineAdjustXscaleOpt->SetValue( msg );
- msg.Printf( _( "X scale constrained!\n" ) );
- m_messagesBox->AppendText( msg );
+ msg.Printf( _( "X scale constrained." ) );
+ reporter.Report( msg, REPORTER::INFO );
}
ConfigBaseWriteDouble( m_config, OPTKEY_PLOT_X_FINESCALE_ADJ, m_XScaleAdjust );
@@ -642,8 +644,8 @@ void DIALOG_PLOT::applyPlotSettings()
{
msg.Printf( wxT( "%f" ), m_YScaleAdjust );
m_fineAdjustYscaleOpt->SetValue( msg );
- msg.Printf( _( "Y scale constrained!\n" ) );
- m_messagesBox->AppendText( msg );
+ msg.Printf( _( "Y scale constrained." ) );
+ reporter.Report( msg, REPORTER::INFO );
}
ConfigBaseWriteDouble( m_config, OPTKEY_PLOT_Y_FINESCALE_ADJ, m_YScaleAdjust );
@@ -656,13 +658,13 @@ void DIALOG_PLOT::applyPlotSettings()
{
msg = StringFromValue( g_UserUnit, m_PSWidthAdjust );
m_PSFineAdjustWidthOpt->SetValue( msg );
- msg.Printf( _( "Width correction constrained!\n"
- "The reasonable width correction value must be in a range of\n"
- " [%+f; %+f] (%s) for current design rules!\n" ),
+ msg.Printf( _( "Width correction constrained. "
+ "The reasonable width correction value must be in a range of "
+ " [%+f; %+f] (%s) for current design rules. " ),
To_User_Unit( g_UserUnit, m_widthAdjustMinValue ),
To_User_Unit( g_UserUnit, m_widthAdjustMaxValue ),
( g_UserUnit == INCHES ) ? wxT( "\"" ) : wxT( "mm" ) );
- m_messagesBox->AppendText( msg );
+ reporter.Report( msg, REPORTER::WARNING );
}
// Store m_PSWidthAdjust in mm in user config
@@ -708,9 +710,9 @@ void DIALOG_PLOT::Plot( wxCommandEvent&
// Create output directory if it does not exist (also transform it in
// absolute form). Bail if it fails
- wxFileName outputDir = wxFileName::DirName( m_plotOpts.GetOutputDirectory() );
- wxString boardFilename = m_parent->GetBoard()->GetFileName();
- WX_TEXT_CTRL_REPORTER reporter( m_messagesBox );
+ wxFileName outputDir = wxFileName::DirName( m_plotOpts.GetOutputDirectory() );
+ wxString boardFilename = m_parent->GetBoard()->GetFileName();
+ REPORTER& reporter = m_messagesPanel->Reporter();
if( !EnsureFileDirectoryExists( &outputDir, boardFilename, &reporter ) )
{
@@ -809,13 +811,14 @@ void DIALOG_PLOT::Plot( wxCommandEvent&
plotter->EndPlot();
delete plotter;
- msg.Printf( _( "Plot file <%s> created" ), GetChars( fn.GetFullPath() ) );
+ msg.Printf( _( "Plot file '%s' created." ), GetChars( fn.GetFullPath() ) );
+ reporter.Report( msg, REPORTER::ACTION );
}
else
- msg.Printf( _( "Unable to create <%s>" ), GetChars( fn.GetFullPath() ) );
-
- msg << wxT( "\n" );
- m_messagesBox->AppendText( msg );
+ {
+ msg.Printf( _( "Unable to create file '%s'." ), GetChars( fn.GetFullPath() ) );
+ reporter.Report( msg, REPORTER::ERROR );
+ }
}
// If no layer selected, we have nothing plotted.
=== modified file 'pcbnew/dialogs/dialog_plot_base.cpp'
--- old/pcbnew/dialogs/dialog_plot_base.cpp 2015-06-15 15:54:58.331000000 +0200
+++ new/pcbnew/dialogs/dialog_plot_base.cpp 2015-06-15 16:24:55.273999000 +0200
@@ -1,10 +1,12 @@
///////////////////////////////////////////////////////////////////////////
-// C++ code generated with wxFormBuilder (version Jun 5 2014)
+// C++ code generated with wxFormBuilder (version Jun 6 2014)
// http://www.wxformbuilder.org/
//
// PLEASE DO "NOT" EDIT THIS FILE!
///////////////////////////////////////////////////////////////////////////
+#include "wx_html_report_panel.h"
+
#include "dialog_plot_base.h"
///////////////////////////////////////////////////////////////////////////
@@ -363,13 +365,13 @@ DIALOG_PLOT_BASE::DIALOG_PLOT_BASE( wxWi
bSizer12->Add( bUpperSizer, 0, wxEXPAND, 5 );
- wxStaticBoxSizer* sbSizerMsg;
- sbSizerMsg = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Messages:") ), wxVERTICAL );
+ wxBoxSizer* sbSizerMsg;
+ sbSizerMsg = new wxBoxSizer( wxVERTICAL );
- m_messagesBox = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxTE_READONLY );
- m_messagesBox->SetMinSize( wxSize( -1,150 ) );
+ m_messagesPanel = new WX_HTML_REPORT_PANEL( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
+ m_messagesPanel->SetMinSize( wxSize( -300,150 ) );
- sbSizerMsg->Add( m_messagesBox, 1, wxEXPAND, 5 );
+ sbSizerMsg->Add( m_messagesPanel, 1, wxEXPAND | wxALL, 5 );
bSizer12->Add( sbSizerMsg, 1, wxEXPAND, 5 );
@@ -390,6 +392,12 @@ DIALOG_PLOT_BASE::DIALOG_PLOT_BASE( wxWi
bSizer12->Add( bSizerButtons, 0, wxALIGN_RIGHT|wxRIGHT|wxLEFT, 5 );
+ wxBoxSizer* bSizer221;
+ bSizer221 = new wxBoxSizer( wxVERTICAL );
+
+
+ bSizer12->Add( bSizer221, 1, wxEXPAND, 5 );
+
m_MainSizer->Add( bSizer12, 1, wxALL|wxEXPAND, 5 );
=== modified file 'pcbnew/dialogs/dialog_plot_base.fbp'
--- old/pcbnew/dialogs/dialog_plot_base.fbp 2015-06-15 15:54:58.331000000 +0200
+++ new/pcbnew/dialogs/dialog_plot_base.fbp 2015-06-15 16:24:55.273999000 +0200
@@ -88,16 +88,16 @@
<event name="OnSetFocus"></event>
<event name="OnSize"></event>
<event name="OnUpdateUI"></event>
- <object class="wxBoxSizer" expanded="0">
+ <object class="wxBoxSizer" expanded="1">
<property name="minimum_size"></property>
<property name="name">m_MainSizer</property>
<property name="orient">wxHORIZONTAL</property>
<property name="permission">protected</property>
- <object class="sizeritem" expanded="0">
+ <object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxALL|wxEXPAND</property>
<property name="proportion">1</property>
- <object class="wxBoxSizer" expanded="0">
+ <object class="wxBoxSizer" expanded="1">
<property name="minimum_size"></property>
<property name="name">bSizer12</property>
<property name="orient">wxVERTICAL</property>
@@ -4124,23 +4124,20 @@
</object>
</object>
</object>
- <object class="sizeritem" expanded="0">
+ <object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxEXPAND</property>
<property name="proportion">1</property>
- <object class="wxStaticBoxSizer" expanded="0">
- <property name="id">wxID_ANY</property>
- <property name="label">Messages:</property>
+ <object class="wxBoxSizer" expanded="1">
<property name="minimum_size"></property>
<property name="name">sbSizerMsg</property>
<property name="orient">wxVERTICAL</property>
<property name="permission">none</property>
- <event name="OnUpdateUI"></event>
- <object class="sizeritem" expanded="0">
+ <object class="sizeritem" expanded="1">
<property name="border">5</property>
- <property name="flag">wxEXPAND</property>
+ <property name="flag">wxEXPAND | wxALL</property>
<property name="proportion">1</property>
- <object class="wxTextCtrl" expanded="0">
+ <object class="wxPanel" expanded="1">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
@@ -4171,12 +4168,11 @@
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
- <property name="maxlength"></property>
<property name="min_size"></property>
<property name="minimize_button">0</property>
- <property name="minimum_size">-1,150</property>
+ <property name="minimum_size">-300,150</property>
<property name="moveable">1</property>
- <property name="name">m_messagesBox</property>
+ <property name="name">m_messagesPanel</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
@@ -4186,18 +4182,12 @@
<property name="resize">Resizable</property>
<property name="show">1</property>
<property name="size"></property>
- <property name="style">wxTE_MULTILINE|wxTE_READONLY</property>
- <property name="subclass"></property>
+ <property name="subclass">WX_HTML_REPORT_PANEL; wx_html_report_panel.h</property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
- <property name="validator_data_type"></property>
- <property name="validator_style">wxFILTER_NONE</property>
- <property name="validator_type">wxDefaultValidator</property>
- <property name="validator_variable"></property>
- <property name="value"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
- <property name="window_style"></property>
+ <property name="window_style">wxTAB_TRAVERSAL</property>
<event name="OnChar"></event>
<event name="OnEnterWindow"></event>
<event name="OnEraseBackground"></event>
@@ -4220,20 +4210,16 @@
<event name="OnRightUp"></event>
<event name="OnSetFocus"></event>
<event name="OnSize"></event>
- <event name="OnText"></event>
- <event name="OnTextEnter"></event>
- <event name="OnTextMaxLen"></event>
- <event name="OnTextURL"></event>
<event name="OnUpdateUI"></event>
</object>
</object>
</object>
</object>
- <object class="sizeritem" expanded="0">
+ <object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxALIGN_RIGHT|wxRIGHT|wxLEFT</property>
<property name="proportion">0</property>
- <object class="wxBoxSizer" expanded="0">
+ <object class="wxBoxSizer" expanded="1">
<property name="minimum_size"></property>
<property name="name">bSizerButtons</property>
<property name="orient">wxHORIZONTAL</property>
@@ -4504,6 +4490,17 @@
</object>
</object>
</object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxEXPAND</property>
+ <property name="proportion">1</property>
+ <object class="wxBoxSizer" expanded="1">
+ <property name="minimum_size"></property>
+ <property name="name">bSizer221</property>
+ <property name="orient">wxVERTICAL</property>
+ <property name="permission">none</property>
+ </object>
+ </object>
</object>
</object>
</object>
=== modified file 'pcbnew/dialogs/dialog_plot_base.h'
--- old/pcbnew/dialogs/dialog_plot_base.h 2015-03-03 11:50:50.000000000 +0100
+++ new/pcbnew/dialogs/dialog_plot_base.h 2015-06-15 16:24:55.273999000 +0200
@@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////////
-// C++ code generated with wxFormBuilder (version Jun 5 2014)
+// C++ code generated with wxFormBuilder (version Jun 6 2014)
// http://www.wxformbuilder.org/
//
// PLEASE DO "NOT" EDIT THIS FILE!
@@ -12,6 +12,7 @@
#include <wx/xrc/xmlres.h>
#include <wx/intl.h>
class DIALOG_SHIM;
+class WX_HTML_REPORT_PANEL;
#include "dialog_shim.h"
#include <wx/string.h>
@@ -28,6 +29,7 @@ class DIALOG_SHIM;
#include <wx/statbox.h>
#include <wx/checkbox.h>
#include <wx/radiobox.h>
+#include <wx/panel.h>
#include <wx/bitmap.h>
#include <wx/image.h>
#include <wx/icon.h>
@@ -106,7 +108,7 @@ class DIALOG_PLOT_BASE : public DIALOG_S
wxStaticText* m_textPSFineAdjustWidth;
wxTextCtrl* m_PSFineAdjustWidthOpt;
wxCheckBox* m_forcePSA4OutputOpt;
- wxTextCtrl* m_messagesBox;
+ WX_HTML_REPORT_PANEL* m_messagesPanel;
wxButton* m_plotButton;
wxButton* m_buttonDrill;
wxButton* m_buttonQuit;
=== modified file 'pcbnew/exporters/gen_drill_report_files.cpp'
--- old/pcbnew/exporters/gen_drill_report_files.cpp 2015-04-29 17:37:37.055999000 +0200
+++ new/pcbnew/exporters/gen_drill_report_files.cpp 2015-06-15 16:24:55.273999000 +0200
@@ -269,10 +269,10 @@ bool EXCELLON_WRITER::GenDrillMapFile( c
GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER,
TextWidth, false, false );
- intervalle = KiROUND( (( charSize * charScale ) + TextWidth) * 1.2);
+ intervalle = KiROUND( ( ( charSize * charScale ) + TextWidth ) * 1.2 );
- if( intervalle < (plot_diam + (1 * IU_PER_MM / scale) + TextWidth) )
- intervalle = plot_diam + (1 * IU_PER_MM / scale) + TextWidth;
+ if( intervalle < ( plot_diam + ( 1 * IU_PER_MM / scale ) + TextWidth ) )
+ intervalle = plot_diam + ( 1 * IU_PER_MM / scale ) + TextWidth;
}
plotter->EndPlot();
=== modified file 'pcbnew/exporters/gen_modules_placefile.cpp'
--- old/pcbnew/exporters/gen_modules_placefile.cpp 2015-05-01 17:01:09.638999000 +0200
+++ new/pcbnew/exporters/gen_modules_placefile.cpp 2015-06-15 16:24:55.273999000 +0200
@@ -50,6 +50,8 @@
#include <pcb_plot_params.h>
#include <wildcards_and_files_ext.h>
#include <kiface_i.h>
+#include <wx_html_report_panel.h>
+
#include <dialog_gen_module_position_file_base.h>
/*
@@ -107,11 +109,12 @@ private:
PCB_EDIT_FRAME* m_parent;
PCB_PLOT_PARAMS m_plotOpts;
wxConfigBase* m_config;
+ REPORTER* m_reporter;
static int m_unitsOpt;
static int m_fileOpt;
- void initDialog();
+ void initDialog();
void OnOutputDirectoryBrowseClicked( wxCommandEvent& event );
void OnOKButton( wxCommandEvent& event );
@@ -137,11 +140,6 @@ private:
{
return m_radioBoxForceSmd->GetSelection() == 1;
}
-
- void AddMessage( const wxString & aMessage )
- {
- m_messagesBox->AppendText( aMessage );
- }
};
@@ -241,9 +239,10 @@ bool DIALOG_GEN_MODULE_POSITION::CreateF
// absolute form). Bail if it fails
wxFileName outputDir = wxFileName::DirName( m_plotOpts.GetOutputDirectory() );
wxString boardFilename = m_parent->GetBoard()->GetFileName();
- WX_TEXT_CTRL_REPORTER reporter( m_messagesBox );
- if( !EnsureFileDirectoryExists( &outputDir, boardFilename, &reporter ) )
+ m_reporter = &m_messagesPanel->Reporter();
+
+ if( !EnsureFileDirectoryExists( &outputDir, boardFilename, m_reporter ) )
{
msg.Printf( _( "Could not write plot files to folder \"%s\"." ),
GetChars( outputDir.GetPath() ) );
@@ -272,24 +271,27 @@ bool DIALOG_GEN_MODULE_POSITION::CreateF
ForceAllSmd(), side );
if( fpcount < 0 )
{
- msg.Printf( _( "Unable to create '%s'" ), GetChars( fn.GetFullPath() ) );
+ msg.Printf( _( "Unable to create '%s'." ), GetChars( fn.GetFullPath() ) );
wxMessageBox( msg );
- AddMessage( msg + wxT("\n") );
+ m_reporter->Report( msg, REPORTER::ERROR );
return false;
}
if( singleFile )
- msg.Printf( _( "Place file: '%s'\n" ), GetChars( fn.GetFullPath() ) );
+ msg.Printf( _( "Place file: '%s'." ), GetChars( fn.GetFullPath() ) );
else
- msg.Printf( _( "Front side (top side) place file: '%s'\n" ),
+ msg.Printf( _( "Front side (top side) place file: '%s'." ),
GetChars( fn.GetFullPath() ) );
+ m_reporter->Report( msg, REPORTER::INFO );
- AddMessage( msg );
- msg.Printf( _( "Footprint count %d\n" ), fpcount );
- AddMessage( msg );
+ msg.Printf( _( "Component count: %d." ), fpcount );
+ m_reporter->Report( msg, REPORTER::INFO );
if( singleFile )
+ {
+ m_reporter->Report( _( "Componment Placement File generation OK." ), REPORTER::ACTION );
return true;
+ }
// Create the Back or Bottom side placement file
fullcount = fpcount;
@@ -304,8 +306,8 @@ bool DIALOG_GEN_MODULE_POSITION::CreateF
if( fpcount < 0 )
{
- msg.Printf( _( "Unable to create '%s'" ), GetChars( fn.GetFullPath() ) );
- AddMessage( msg + wxT("\n") );
+ msg.Printf( _( "Unable to create file '%s'." ), GetChars( fn.GetFullPath() ) );
+ m_reporter->Report( msg, REPORTER::ERROR );
wxMessageBox( msg );
return false;
}
@@ -313,19 +315,23 @@ bool DIALOG_GEN_MODULE_POSITION::CreateF
// Display results
if( !singleFile )
{
- msg.Printf( _( "Back side (bottom side) place file: '%s'\n" ), GetChars( fn.GetFullPath() ) );
- AddMessage( msg );
- msg.Printf( _( "Footprint count %d\n" ), fpcount );
- AddMessage( msg );
+ msg.Printf( _( "Back side (bottom side) place file: '%s'." ), GetChars( fn.GetFullPath() ) );
+ m_reporter->Report( msg, REPORTER::INFO );
+
+ msg.Printf( _( "Component count: %d." ), fpcount );
+
+ m_reporter->Report( msg, REPORTER::INFO );
}
if( !singleFile )
{
fullcount += fpcount;
- msg.Printf( _( "Full footprint count %d\n" ), fullcount );
- AddMessage( msg );
+ msg.Printf( _( "Full component count: %d\n" ), fullcount );
+ m_reporter->Report( msg, REPORTER::INFO );
}
+ m_reporter->Report( _( "Componment Placement File generation OK." ), REPORTER::ACTION );
+
return true;
}
=== modified file 'pcbnew/netlist.cpp'
--- old/pcbnew/netlist.cpp 2015-06-12 14:46:41.878000000 +0200
+++ new/pcbnew/netlist.cpp 2015-06-15 16:24:55.273999000 +0200
@@ -224,7 +224,7 @@ void PCB_EDIT_FRAME::loadFootprints( NET
{
msg.Printf( _( "No footprint defined for component '%s'.\n" ),
GetChars( component->GetReference() ) );
- aReporter->Report( msg );
+ aReporter->Report( msg, REPORTER::ERROR );
}
continue;
@@ -273,11 +273,11 @@ void PCB_EDIT_FRAME::loadFootprints( NET
{
if( aReporter )
{
- msg.Printf( _( "*** Warning: Component '%s' footprint ID '%s' is not "
- "valid. ***\n" ),
+ msg.Printf( _( "Component '%s' footprint ID '%s' is not "
+ "valid.\n" ),
GetChars( component->GetReference() ),
GetChars( component->GetFPID().Format() ) );
- aReporter->Report( msg );
+ aReporter->Report( msg, REPORTER::ERROR );
}
continue;
@@ -295,11 +295,11 @@ void PCB_EDIT_FRAME::loadFootprints( NET
if( aReporter )
{
wxString msg;
- msg.Printf( _( "*** Warning: component '%s' footprint '%s' was not found in "
- "any libraries in the footprint library table. ***\n" ),
+ msg.Printf( _( "Component '%s' footprint '%s' was not found in "
+ "any libraries in the footprint library table.\n" ),
GetChars( component->GetReference() ),
GetChars( component->GetFPID().GetFootprintName() ) );
- aReporter->Report( msg );
+ aReporter->Report( msg, REPORTER::ERROR );
}
continue;
Attachment:
signature.asc
Description: OpenPGP digital signature
Follow ups
References