Copy some bug fixes from DRC dialog across to Footprint Checker.
This commit is contained in:
parent
4521091cc1
commit
5ea68c7694
|
@ -36,7 +36,6 @@
|
|||
#include <pcb_marker.h>
|
||||
#include <wx/wupdlock.h>
|
||||
#include <widgets/appearance_controls.h>
|
||||
#include <widgets/number_badge.h>
|
||||
#include <widgets/ui_common.h>
|
||||
#include <widgets/progress_reporter.h>
|
||||
#include <dialogs/wx_html_report_box.h>
|
||||
|
@ -52,7 +51,7 @@ DIALOG_DRC::DIALOG_DRC( PCB_EDIT_FRAME* aEditorFrame, wxWindow* aParent ) :
|
|||
m_drcRun( false ),
|
||||
m_footprintTestsRun( false ),
|
||||
m_markersProvider( nullptr ),
|
||||
m_markerTreeModel( nullptr ),
|
||||
m_markersTreeModel( nullptr ),
|
||||
m_unconnectedItemsProvider( nullptr ),
|
||||
m_unconnectedTreeModel( nullptr ),
|
||||
m_footprintWarningsProvider( nullptr ),
|
||||
|
@ -61,18 +60,18 @@ DIALOG_DRC::DIALOG_DRC( PCB_EDIT_FRAME* aEditorFrame, wxWindow* aParent ) :
|
|||
{
|
||||
SetName( DIALOG_DRC_WINDOW_NAME ); // Set a window name to be able to find it
|
||||
|
||||
m_brdEditor = aEditorFrame;
|
||||
m_currentBoard = m_brdEditor->GetBoard();
|
||||
m_frame = aEditorFrame;
|
||||
m_currentBoard = m_frame->GetBoard();
|
||||
|
||||
m_messages->SetImmediateMode();
|
||||
|
||||
m_markerTreeModel = new RC_TREE_MODEL( m_brdEditor, m_markerDataView );
|
||||
m_markerDataView->AssociateModel( m_markerTreeModel );
|
||||
m_markersTreeModel = new RC_TREE_MODEL( m_frame, m_markerDataView );
|
||||
m_markerDataView->AssociateModel( m_markersTreeModel );
|
||||
|
||||
m_unconnectedTreeModel = new RC_TREE_MODEL( m_brdEditor, m_unconnectedDataView );
|
||||
m_unconnectedTreeModel = new RC_TREE_MODEL( m_frame, m_unconnectedDataView );
|
||||
m_unconnectedDataView->AssociateModel( m_unconnectedTreeModel );
|
||||
|
||||
m_footprintWarningsTreeModel = new RC_TREE_MODEL( m_brdEditor, m_footprintsDataView );
|
||||
m_footprintWarningsTreeModel = new RC_TREE_MODEL( m_frame, m_footprintsDataView );
|
||||
m_footprintsDataView->AssociateModel( m_footprintWarningsTreeModel );
|
||||
|
||||
if( Kiface().IsSingle() )
|
||||
|
@ -94,9 +93,9 @@ DIALOG_DRC::DIALOG_DRC( PCB_EDIT_FRAME* aEditorFrame, wxWindow* aParent ) :
|
|||
|
||||
DIALOG_DRC::~DIALOG_DRC()
|
||||
{
|
||||
m_brdEditor->FocusOnItem( nullptr );
|
||||
m_frame->FocusOnItem( nullptr );
|
||||
|
||||
PCBNEW_SETTINGS* settings = m_brdEditor->GetPcbNewSettings();
|
||||
PCBNEW_SETTINGS* settings = m_frame->GetPcbNewSettings();
|
||||
settings->m_DrcDialog.refill_zones = m_cbRefillZones->GetValue();
|
||||
settings->m_DrcDialog.test_all_track_errors = m_cbReportAllTrackErrors->GetValue();
|
||||
|
||||
|
@ -105,20 +104,20 @@ DIALOG_DRC::~DIALOG_DRC()
|
|||
|
||||
settings->m_DrcDialog.severities = m_severities;
|
||||
|
||||
m_markerTreeModel->DecRef();
|
||||
m_markersTreeModel->DecRef();
|
||||
}
|
||||
|
||||
|
||||
void DIALOG_DRC::OnActivateDlg( wxActivateEvent& aEvent )
|
||||
{
|
||||
if( m_currentBoard != m_brdEditor->GetBoard() )
|
||||
if( m_currentBoard != m_frame->GetBoard() )
|
||||
{
|
||||
// If m_currentBoard is not the current board, (for instance because a new board
|
||||
// was loaded), close the dialog, because many pointers are now invalid in lists
|
||||
SetReturnCode( wxID_CANCEL );
|
||||
Close();
|
||||
|
||||
DRC_TOOL* drcTool = m_brdEditor->GetToolManager()->GetTool<DRC_TOOL>();
|
||||
DRC_TOOL* drcTool = m_frame->GetToolManager()->GetTool<DRC_TOOL>();
|
||||
drcTool->DestroyDRCDialog();
|
||||
}
|
||||
}
|
||||
|
@ -130,7 +129,7 @@ void DIALOG_DRC::initValues()
|
|||
m_unconnectedTitleTemplate = m_Notebook->GetPageText( 1 );
|
||||
m_footprintsTitleTemplate = m_Notebook->GetPageText( 2 );
|
||||
|
||||
auto cfg = m_brdEditor->GetPcbNewSettings();
|
||||
auto cfg = m_frame->GetPcbNewSettings();
|
||||
|
||||
m_cbRefillZones->SetValue( cfg->m_DrcDialog.refill_zones );
|
||||
m_cbReportAllTrackErrors->SetValue( cfg->m_DrcDialog.test_all_track_errors );
|
||||
|
@ -140,7 +139,7 @@ void DIALOG_DRC::initValues()
|
|||
m_cbTestFootprints->SetValue( cfg->m_DrcDialog.test_footprints );
|
||||
|
||||
m_severities = cfg->m_DrcDialog.severities;
|
||||
m_markerTreeModel->SetSeverities( m_severities );
|
||||
m_markersTreeModel->SetSeverities( m_severities );
|
||||
m_unconnectedTreeModel->SetSeverities( m_severities );
|
||||
m_footprintWarningsTreeModel->SetSeverities( m_severities );
|
||||
|
||||
|
@ -188,13 +187,13 @@ void DIALOG_DRC::syncCheckboxes()
|
|||
|
||||
void DIALOG_DRC::OnErrorLinkClicked( wxHtmlLinkEvent& event )
|
||||
{
|
||||
m_brdEditor->ShowBoardSetupDialog( _( "Rules" ) );
|
||||
m_frame->ShowBoardSetupDialog( _( "Rules" ) );
|
||||
}
|
||||
|
||||
|
||||
void DIALOG_DRC::OnRunDRCClick( wxCommandEvent& aEvent )
|
||||
{
|
||||
DRC_TOOL* drcTool = m_brdEditor->GetToolManager()->GetTool<DRC_TOOL>();
|
||||
DRC_TOOL* drcTool = m_frame->GetToolManager()->GetTool<DRC_TOOL>();
|
||||
bool refillZones = m_cbRefillZones->GetValue();
|
||||
bool reportAllTrackErrors = m_cbReportAllTrackErrors->GetValue();
|
||||
bool testFootprints = m_cbTestFootprints->GetValue();
|
||||
|
@ -203,7 +202,7 @@ void DIALOG_DRC::OnRunDRCClick( wxCommandEvent& aEvent )
|
|||
// and that they at least parse.
|
||||
try
|
||||
{
|
||||
drcTool->GetDRCEngine()->InitEngine( m_brdEditor->GetDesignRulesPath() );
|
||||
drcTool->GetDRCEngine()->InitEngine( m_frame->GetDesignRulesPath() );
|
||||
}
|
||||
catch( PARSE_ERROR& )
|
||||
{
|
||||
|
@ -227,7 +226,7 @@ void DIALOG_DRC::OnRunDRCClick( wxCommandEvent& aEvent )
|
|||
m_footprintTestsRun = false;
|
||||
m_cancelled = false;
|
||||
|
||||
m_brdEditor->RecordDRCExclusions();
|
||||
m_frame->RecordDRCExclusions();
|
||||
deleteAllMarkers( true );
|
||||
m_unconnectedTreeModel->DeleteItems( false, true, true );
|
||||
m_footprintWarningsTreeModel->DeleteItems( false, true, true );
|
||||
|
@ -269,14 +268,14 @@ void DIALOG_DRC::OnRunDRCClick( wxCommandEvent& aEvent )
|
|||
KIPLATFORM::UI::ForceFocus( m_markerDataView );
|
||||
}
|
||||
|
||||
refreshBoardEditor();
|
||||
refreshEditor();
|
||||
}
|
||||
|
||||
|
||||
void DIALOG_DRC::SetMarkersProvider( RC_ITEMS_PROVIDER* aProvider )
|
||||
{
|
||||
m_markersProvider = aProvider;
|
||||
m_markerTreeModel->SetProvider( m_markersProvider );
|
||||
m_markersTreeModel->SetProvider( m_markersProvider );
|
||||
updateDisplayedCounts();
|
||||
}
|
||||
|
||||
|
@ -299,7 +298,7 @@ void DIALOG_DRC::SetFootprintsProvider( RC_ITEMS_PROVIDER* aProvider )
|
|||
|
||||
void DIALOG_DRC::OnDRCItemSelected( wxDataViewEvent& aEvent )
|
||||
{
|
||||
BOARD* board = m_brdEditor->GetBoard();
|
||||
BOARD* board = m_frame->GetBoard();
|
||||
RC_TREE_NODE* node = RC_TREE_MODEL::ToNode( aEvent.GetItem() );
|
||||
const KIID& itemID = node ? RC_TREE_MODEL::ToUUID( aEvent.GetItem() ) : niluuid;
|
||||
BOARD_ITEM* item = board->GetItem( itemID );
|
||||
|
@ -326,7 +325,7 @@ void DIALOG_DRC::OnDRCItemSelected( wxDataViewEvent& aEvent )
|
|||
}
|
||||
};
|
||||
|
||||
if( item && node )
|
||||
if( node && item )
|
||||
{
|
||||
PCB_LAYER_ID principalLayer = item->GetLayer();
|
||||
LSET violationLayers;
|
||||
|
@ -378,19 +377,19 @@ void DIALOG_DRC::OnDRCItemSelected( wxDataViewEvent& aEvent )
|
|||
else
|
||||
violationLayers.set( principalLayer );
|
||||
|
||||
WINDOW_THAWER thawer( m_brdEditor );
|
||||
WINDOW_THAWER thawer( m_frame );
|
||||
|
||||
m_brdEditor->FocusOnItem( item );
|
||||
m_brdEditor->GetCanvas()->Refresh();
|
||||
m_frame->FocusOnItem( item );
|
||||
m_frame->GetCanvas()->Refresh();
|
||||
|
||||
if( ( violationLayers & board->GetVisibleLayers() ) == 0 )
|
||||
{
|
||||
m_brdEditor->GetAppearancePanel()->SetLayerVisible( principalLayer, true );
|
||||
m_brdEditor->GetCanvas()->Refresh();
|
||||
m_frame->GetAppearancePanel()->SetLayerVisible( principalLayer, true );
|
||||
m_frame->GetCanvas()->Refresh();
|
||||
}
|
||||
|
||||
if( board->GetVisibleLayers().test( principalLayer ) )
|
||||
m_brdEditor->SetActiveLayer( principalLayer );
|
||||
m_frame->SetActiveLayer( principalLayer );
|
||||
}
|
||||
|
||||
aEvent.Skip();
|
||||
|
@ -401,7 +400,7 @@ void DIALOG_DRC::OnDRCItemDClick( wxDataViewEvent& aEvent )
|
|||
{
|
||||
if( aEvent.GetItem().IsOk() )
|
||||
{
|
||||
// turn control over to m_brdEditor, hide this DIALOG_DRC window,
|
||||
// turn control over to m_frame, hide this DIALOG_DRC window,
|
||||
// no destruction so we can preserve listbox cursor
|
||||
if( !IsModal() )
|
||||
Show( false );
|
||||
|
@ -479,7 +478,7 @@ void DIALOG_DRC::OnDRCItemRClick( wxDataViewEvent& aEvent )
|
|||
if( marker )
|
||||
{
|
||||
marker->SetExcluded( false );
|
||||
m_brdEditor->GetCanvas()->GetView()->Update( marker );
|
||||
m_frame->GetCanvas()->GetView()->Update( marker );
|
||||
|
||||
// Update view
|
||||
static_cast<RC_TREE_MODEL*>( aEvent.GetModel() )->ValueChanged( node );
|
||||
|
@ -495,7 +494,7 @@ void DIALOG_DRC::OnDRCItemRClick( wxDataViewEvent& aEvent )
|
|||
if( marker )
|
||||
{
|
||||
marker->SetExcluded( true );
|
||||
m_brdEditor->GetCanvas()->GetView()->Update( marker );
|
||||
m_frame->GetCanvas()->GetView()->Update( marker );
|
||||
|
||||
// Update view
|
||||
if( m_severities & RPT_SEVERITY_EXCLUSION )
|
||||
|
@ -511,10 +510,10 @@ void DIALOG_DRC::OnDRCItemRClick( wxDataViewEvent& aEvent )
|
|||
case 3:
|
||||
bds().m_DRCSeverities[ rcItem->GetErrorCode() ] = RPT_SEVERITY_ERROR;
|
||||
|
||||
for( PCB_MARKER* marker : m_brdEditor->GetBoard()->Markers() )
|
||||
for( PCB_MARKER* marker : m_frame->GetBoard()->Markers() )
|
||||
{
|
||||
if( marker->GetRCItem()->GetErrorCode() == rcItem->GetErrorCode() )
|
||||
m_brdEditor->GetCanvas()->GetView()->Update( marker );
|
||||
m_frame->GetCanvas()->GetView()->Update( marker );
|
||||
}
|
||||
|
||||
// Rebuild model and view
|
||||
|
@ -525,10 +524,10 @@ void DIALOG_DRC::OnDRCItemRClick( wxDataViewEvent& aEvent )
|
|||
case 4:
|
||||
bds().m_DRCSeverities[ rcItem->GetErrorCode() ] = RPT_SEVERITY_WARNING;
|
||||
|
||||
for( PCB_MARKER* marker : m_brdEditor->GetBoard()->Markers() )
|
||||
for( PCB_MARKER* marker : m_frame->GetBoard()->Markers() )
|
||||
{
|
||||
if( marker->GetRCItem()->GetErrorCode() == rcItem->GetErrorCode() )
|
||||
m_brdEditor->GetCanvas()->GetView()->Update( marker );
|
||||
m_frame->GetCanvas()->GetView()->Update( marker );
|
||||
}
|
||||
|
||||
// Rebuild model and view
|
||||
|
@ -540,13 +539,13 @@ void DIALOG_DRC::OnDRCItemRClick( wxDataViewEvent& aEvent )
|
|||
{
|
||||
bds().m_DRCSeverities[ rcItem->GetErrorCode() ] = RPT_SEVERITY_IGNORE;
|
||||
|
||||
std::vector<PCB_MARKER*>& markers = m_brdEditor->GetBoard()->Markers();
|
||||
std::vector<PCB_MARKER*>& markers = m_frame->GetBoard()->Markers();
|
||||
|
||||
for( unsigned i = 0; i < markers.size(); )
|
||||
{
|
||||
if( markers[i]->GetRCItem()->GetErrorCode() == rcItem->GetErrorCode() )
|
||||
{
|
||||
m_brdEditor->GetCanvas()->GetView()->Remove( markers.at( i ) );
|
||||
m_frame->GetCanvas()->GetView()->Remove( markers.at( i ) );
|
||||
markers.erase( markers.begin() + i );
|
||||
}
|
||||
else
|
||||
|
@ -560,15 +559,15 @@ void DIALOG_DRC::OnDRCItemRClick( wxDataViewEvent& aEvent )
|
|||
break;
|
||||
|
||||
case 6:
|
||||
m_brdEditor->ShowBoardSetupDialog( _( "Violation Severity" ) );
|
||||
m_frame->ShowBoardSetupDialog( _( "Violation Severity" ) );
|
||||
break;
|
||||
}
|
||||
|
||||
if( modified )
|
||||
{
|
||||
updateDisplayedCounts();
|
||||
refreshBoardEditor();
|
||||
m_brdEditor->OnModify();
|
||||
refreshEditor();
|
||||
m_frame->OnModify();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -601,7 +600,7 @@ void DIALOG_DRC::OnSeverity( wxCommandEvent& aEvent )
|
|||
// It's not clear this is required, but we've had a lot of issues with wxDataView
|
||||
// being cranky on various platforms.
|
||||
|
||||
m_markerTreeModel->SetSeverities( m_severities );
|
||||
m_markersTreeModel->SetSeverities( m_severities );
|
||||
m_unconnectedTreeModel->SetSeverities( m_severities );
|
||||
m_footprintWarningsTreeModel->SetSeverities( m_severities );
|
||||
|
||||
|
@ -662,13 +661,13 @@ void DIALOG_DRC::OnCancelClick( wxCommandEvent& aEvent )
|
|||
return;
|
||||
}
|
||||
|
||||
m_brdEditor->FocusOnItem( nullptr );
|
||||
m_frame->FocusOnItem( nullptr );
|
||||
|
||||
SetReturnCode( wxID_CANCEL );
|
||||
|
||||
// The dialog can be modal or not modal.
|
||||
// Leave the DRC caller destroy (or not) the dialog
|
||||
DRC_TOOL* drcTool = m_brdEditor->GetToolManager()->GetTool<DRC_TOOL>();
|
||||
DRC_TOOL* drcTool = m_frame->GetToolManager()->GetTool<DRC_TOOL>();
|
||||
drcTool->DestroyDRCDialog();
|
||||
}
|
||||
|
||||
|
@ -685,11 +684,11 @@ void DIALOG_DRC::OnChangingNotebookPage( wxNotebookEvent& aEvent )
|
|||
}
|
||||
|
||||
|
||||
void DIALOG_DRC::refreshBoardEditor()
|
||||
void DIALOG_DRC::refreshEditor()
|
||||
{
|
||||
WINDOW_THAWER thawer( m_brdEditor );
|
||||
WINDOW_THAWER thawer( m_frame );
|
||||
|
||||
m_brdEditor->GetCanvas()->Refresh();
|
||||
m_frame->GetCanvas()->Refresh();
|
||||
}
|
||||
|
||||
|
||||
|
@ -699,7 +698,7 @@ void DIALOG_DRC::PrevMarker()
|
|||
{
|
||||
switch( m_Notebook->GetSelection() )
|
||||
{
|
||||
case 0: m_markerTreeModel->PrevMarker(); break;
|
||||
case 0: m_markersTreeModel->PrevMarker(); break;
|
||||
case 1: m_unconnectedTreeModel->PrevMarker(); break;
|
||||
case 2: m_footprintWarningsTreeModel->PrevMarker(); break;
|
||||
}
|
||||
|
@ -713,7 +712,7 @@ void DIALOG_DRC::NextMarker()
|
|||
{
|
||||
switch( m_Notebook->GetSelection() )
|
||||
{
|
||||
case 0: m_markerTreeModel->NextMarker(); break;
|
||||
case 0: m_markersTreeModel->NextMarker(); break;
|
||||
case 1: m_unconnectedTreeModel->NextMarker(); break;
|
||||
case 2: m_footprintWarningsTreeModel->NextMarker(); break;
|
||||
}
|
||||
|
@ -732,17 +731,17 @@ void DIALOG_DRC::ExcludeMarker()
|
|||
if( marker && !marker->IsExcluded() )
|
||||
{
|
||||
marker->SetExcluded( true );
|
||||
m_brdEditor->GetCanvas()->GetView()->Update( marker );
|
||||
m_frame->GetCanvas()->GetView()->Update( marker );
|
||||
|
||||
// Update view
|
||||
if( m_severities & RPT_SEVERITY_EXCLUSION )
|
||||
m_markerTreeModel->ValueChanged( node );
|
||||
m_markersTreeModel->ValueChanged( node );
|
||||
else
|
||||
m_markerTreeModel->DeleteCurrentItem( false );
|
||||
m_markersTreeModel->DeleteCurrentItem( false );
|
||||
|
||||
updateDisplayedCounts();
|
||||
refreshBoardEditor();
|
||||
m_brdEditor->OnModify();
|
||||
refreshEditor();
|
||||
m_frame->OnModify();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -750,9 +749,9 @@ void DIALOG_DRC::ExcludeMarker()
|
|||
void DIALOG_DRC::deleteAllMarkers( bool aIncludeExclusions )
|
||||
{
|
||||
// Clear current selection list to avoid selection of deleted items
|
||||
m_brdEditor->GetToolManager()->RunAction( PCB_ACTIONS::selectionClear, true );
|
||||
m_frame->GetToolManager()->RunAction( PCB_ACTIONS::selectionClear, true );
|
||||
|
||||
m_markerTreeModel->DeleteItems( false, aIncludeExclusions, true );
|
||||
m_markersTreeModel->DeleteItems( false, aIncludeExclusions, true );
|
||||
}
|
||||
|
||||
|
||||
|
@ -764,13 +763,13 @@ bool DIALOG_DRC::writeReport( const wxString& aFullFileName )
|
|||
return false;
|
||||
|
||||
std::map<KIID, EDA_ITEM*> itemMap;
|
||||
m_brdEditor->GetBoard()->FillItemMap( itemMap );
|
||||
m_frame->GetBoard()->FillItemMap( itemMap );
|
||||
|
||||
EDA_UNITS units = GetUserUnits();
|
||||
BOARD_DESIGN_SETTINGS& bds = m_brdEditor->GetBoard()->GetDesignSettings();
|
||||
BOARD_DESIGN_SETTINGS& bds = m_frame->GetBoard()->GetDesignSettings();
|
||||
int count;
|
||||
|
||||
fprintf( fp, "** Drc report for %s **\n", TO_UTF8( m_brdEditor->GetBoard()->GetFileName() ) );
|
||||
fprintf( fp, "** Drc report for %s **\n", TO_UTF8( m_frame->GetBoard()->GetFileName() ) );
|
||||
|
||||
wxDateTime now = wxDateTime::Now();
|
||||
|
||||
|
@ -826,12 +825,12 @@ void DIALOG_DRC::OnDeleteOneClick( wxCommandEvent& aEvent )
|
|||
if( m_Notebook->GetSelection() == 0 )
|
||||
{
|
||||
// Clear the selection. It may be the selected DRC marker.
|
||||
m_brdEditor->GetToolManager()->RunAction( PCB_ACTIONS::selectionClear, true );
|
||||
m_frame->GetToolManager()->RunAction( PCB_ACTIONS::selectionClear, true );
|
||||
|
||||
m_markerTreeModel->DeleteCurrentItem( true );
|
||||
m_markersTreeModel->DeleteCurrentItem( true );
|
||||
|
||||
// redraw the pcb
|
||||
refreshBoardEditor();
|
||||
refreshEditor();
|
||||
}
|
||||
else if( m_Notebook->GetSelection() == 1 )
|
||||
{
|
||||
|
@ -879,7 +878,7 @@ void DIALOG_DRC::OnDeleteAllClick( wxCommandEvent& aEvent )
|
|||
deleteAllMarkers( s_includeExclusions );
|
||||
|
||||
m_drcRun = false;
|
||||
refreshBoardEditor();
|
||||
refreshEditor();
|
||||
updateDisplayedCounts();
|
||||
}
|
||||
|
||||
|
|
|
@ -96,7 +96,7 @@ private:
|
|||
void OnChangingNotebookPage( wxNotebookEvent& aEvent ) override;
|
||||
|
||||
void deleteAllMarkers( bool aIncludeExclusions );
|
||||
void refreshBoardEditor();
|
||||
void refreshEditor();
|
||||
|
||||
// PROGRESS_REPORTER calls
|
||||
bool updateUI() override;
|
||||
|
@ -105,7 +105,7 @@ private:
|
|||
BOARD_DESIGN_SETTINGS& bds() { return m_currentBoard->GetDesignSettings(); }
|
||||
|
||||
BOARD* m_currentBoard; // the board currently on test
|
||||
PCB_EDIT_FRAME* m_brdEditor;
|
||||
PCB_EDIT_FRAME* m_frame;
|
||||
bool m_running;
|
||||
std::atomic<bool> m_cancelled;
|
||||
bool m_drcRun;
|
||||
|
@ -116,7 +116,7 @@ private:
|
|||
wxString m_footprintsTitleTemplate;
|
||||
|
||||
RC_ITEMS_PROVIDER* m_markersProvider;
|
||||
RC_TREE_MODEL* m_markerTreeModel;
|
||||
RC_TREE_MODEL* m_markersTreeModel;
|
||||
|
||||
RC_ITEMS_PROVIDER* m_unconnectedItemsProvider;
|
||||
RC_TREE_MODEL* m_unconnectedTreeModel;
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
|
||||
#include <wx/wx.h>
|
||||
#include <dialog_footprint_checker.h>
|
||||
#include <widgets/appearance_controls.h>
|
||||
#include <tool/tool_manager.h>
|
||||
#include <tools/pcb_actions.h>
|
||||
#include <pcb_marker.h>
|
||||
|
@ -34,7 +35,10 @@
|
|||
|
||||
DIALOG_FOOTPRINT_CHECKER::DIALOG_FOOTPRINT_CHECKER( FOOTPRINT_EDIT_FRAME* aParent ) :
|
||||
DIALOG_FOOTPRINT_CHECKER_BASE( aParent ),
|
||||
m_frame( aParent )
|
||||
m_frame( aParent ),
|
||||
m_checksRun( false ),
|
||||
m_markersProvider( nullptr ),
|
||||
m_severities( RPT_SEVERITY_ERROR | RPT_SEVERITY_WARNING )
|
||||
{
|
||||
m_markersTreeModel = new RC_TREE_MODEL( m_frame, m_markersDataView );
|
||||
m_markersDataView->AssociateModel( m_markersTreeModel );
|
||||
|
@ -47,9 +51,10 @@ DIALOG_FOOTPRINT_CHECKER::DIALOG_FOOTPRINT_CHECKER( FOOTPRINT_EDIT_FRAME* aParen
|
|||
m_sdbSizerCancel->SetLabel( _( "Close" ) );
|
||||
|
||||
m_sdbSizerOK->SetDefault();
|
||||
m_sdbSizer->SetSizeHints( this );
|
||||
GetSizer()->SetSizeHints(this);
|
||||
Centre();
|
||||
|
||||
syncCheckboxes();
|
||||
|
||||
finishDialogSettings();
|
||||
}
|
||||
|
||||
|
||||
|
@ -73,6 +78,19 @@ bool DIALOG_FOOTPRINT_CHECKER::TransferDataFromWindow()
|
|||
}
|
||||
|
||||
|
||||
// Don't globally define this; different facilities use different definitions of "ALL"
|
||||
static int RPT_SEVERITY_ALL = RPT_SEVERITY_WARNING | RPT_SEVERITY_ERROR | RPT_SEVERITY_EXCLUSION;
|
||||
|
||||
|
||||
void DIALOG_FOOTPRINT_CHECKER::syncCheckboxes()
|
||||
{
|
||||
m_showAll->SetValue( m_severities == RPT_SEVERITY_ALL );
|
||||
m_showErrors->SetValue( m_severities & RPT_SEVERITY_ERROR );
|
||||
m_showWarnings->SetValue( m_severities & RPT_SEVERITY_WARNING );
|
||||
m_showExclusions->SetValue( m_severities & RPT_SEVERITY_EXCLUSION );
|
||||
}
|
||||
|
||||
|
||||
void DIALOG_FOOTPRINT_CHECKER::runChecks()
|
||||
{
|
||||
BOARD* board = m_frame->GetBoard();
|
||||
|
@ -102,26 +120,156 @@ void DIALOG_FOOTPRINT_CHECKER::runChecks()
|
|||
|
||||
footprint->BuildPolyCourtyards( &errorHandler );
|
||||
|
||||
m_checksRun = true;
|
||||
|
||||
SetMarkersProvider( new BOARD_DRC_ITEMS_PROVIDER( m_frame->GetBoard() ) );
|
||||
|
||||
WINDOW_THAWER thawer( m_frame );
|
||||
|
||||
m_frame->GetCanvas()->Refresh();
|
||||
refreshEditor();
|
||||
}
|
||||
|
||||
|
||||
void DIALOG_FOOTPRINT_CHECKER::SetMarkersProvider( RC_ITEMS_PROVIDER* aProvider )
|
||||
{
|
||||
m_markersTreeModel->SetProvider( aProvider );
|
||||
updateDisplayedCounts();
|
||||
}
|
||||
|
||||
|
||||
void DIALOG_FOOTPRINT_CHECKER::OnRunChecksClick( wxCommandEvent& aEvent )
|
||||
{
|
||||
m_checksRun = false;
|
||||
|
||||
runChecks();
|
||||
}
|
||||
|
||||
|
||||
void DIALOG_FOOTPRINT_CHECKER::OnSelectItem( wxDataViewEvent& aEvent )
|
||||
{
|
||||
BOARD* board = m_frame->GetBoard();
|
||||
RC_TREE_NODE* node = RC_TREE_MODEL::ToNode( aEvent.GetItem() );
|
||||
const KIID& itemID = node ? RC_TREE_MODEL::ToUUID( aEvent.GetItem() ) : niluuid;
|
||||
BOARD_ITEM* item = board->GetItem( itemID );
|
||||
|
||||
if( node && item )
|
||||
{
|
||||
PCB_LAYER_ID principalLayer = item->GetLayer();
|
||||
LSET violationLayers;
|
||||
std::shared_ptr<RC_ITEM> rc_item = node->m_RcItem;
|
||||
|
||||
if( rc_item->GetErrorCode() == DRCE_MALFORMED_COURTYARD )
|
||||
{
|
||||
BOARD_ITEM* a = board->GetItem( rc_item->GetMainItemID() );
|
||||
|
||||
if( a && ( a->GetFlags() & MALFORMED_B_COURTYARD ) > 0
|
||||
&& ( a->GetFlags() & MALFORMED_F_COURTYARD ) == 0 )
|
||||
{
|
||||
principalLayer = B_CrtYd;
|
||||
}
|
||||
else
|
||||
{
|
||||
principalLayer = F_CrtYd;
|
||||
}
|
||||
}
|
||||
else if (rc_item->GetErrorCode() == DRCE_INVALID_OUTLINE )
|
||||
{
|
||||
principalLayer = Edge_Cuts;
|
||||
}
|
||||
else
|
||||
{
|
||||
BOARD_ITEM* a = board->GetItem( rc_item->GetMainItemID() );
|
||||
BOARD_ITEM* b = board->GetItem( rc_item->GetAuxItemID() );
|
||||
BOARD_ITEM* c = board->GetItem( rc_item->GetAuxItem2ID() );
|
||||
BOARD_ITEM* d = board->GetItem( rc_item->GetAuxItem3ID() );
|
||||
|
||||
if( a || b || c || d )
|
||||
violationLayers = LSET::AllLayersMask();
|
||||
|
||||
if( a )
|
||||
violationLayers &= a->GetLayerSet();
|
||||
|
||||
if( b )
|
||||
violationLayers &= b->GetLayerSet();
|
||||
|
||||
if( c )
|
||||
violationLayers &= c->GetLayerSet();
|
||||
|
||||
if( d )
|
||||
violationLayers &= d->GetLayerSet();
|
||||
}
|
||||
|
||||
if( violationLayers.count() )
|
||||
principalLayer = violationLayers.Seq().front();
|
||||
else
|
||||
violationLayers.set( principalLayer );
|
||||
|
||||
WINDOW_THAWER thawer( m_frame );
|
||||
|
||||
m_frame->FocusOnItem( item );
|
||||
m_frame->GetCanvas()->Refresh();
|
||||
|
||||
if( ( violationLayers & board->GetVisibleLayers() ) == 0 )
|
||||
{
|
||||
m_frame->GetAppearancePanel()->SetLayerVisible( principalLayer, true );
|
||||
m_frame->GetCanvas()->Refresh();
|
||||
}
|
||||
|
||||
if( board->GetVisibleLayers().test( principalLayer ) )
|
||||
m_frame->SetActiveLayer( principalLayer );
|
||||
}
|
||||
|
||||
aEvent.Skip();
|
||||
}
|
||||
|
||||
|
||||
void DIALOG_FOOTPRINT_CHECKER::OnLeftDClickItem( wxMouseEvent& event )
|
||||
{
|
||||
if( m_markersDataView->GetCurrentItem().IsOk() )
|
||||
{
|
||||
// turn control over to m_frame, hide this DIALOG_FOOTPRINT_CHECKER window,
|
||||
// no destruction so we can preserve listbox cursor
|
||||
if( !IsModal() )
|
||||
Show( false );
|
||||
}
|
||||
|
||||
// Do not skip aVent here: tihs is not useful, and Pcbnew crashes
|
||||
// if skipped (at least on Windows)
|
||||
}
|
||||
|
||||
|
||||
void DIALOG_FOOTPRINT_CHECKER::OnSeverity( wxCommandEvent& aEvent )
|
||||
{
|
||||
int flag = 0;
|
||||
|
||||
if( aEvent.GetEventObject() == m_showAll )
|
||||
flag = RPT_SEVERITY_ALL;
|
||||
else if( aEvent.GetEventObject() == m_showErrors )
|
||||
flag = RPT_SEVERITY_ERROR;
|
||||
else if( aEvent.GetEventObject() == m_showWarnings )
|
||||
flag = RPT_SEVERITY_WARNING;
|
||||
else if( aEvent.GetEventObject() == m_showExclusions )
|
||||
flag = RPT_SEVERITY_EXCLUSION;
|
||||
|
||||
if( aEvent.IsChecked() )
|
||||
m_severities |= flag;
|
||||
else if( aEvent.GetEventObject() == m_showAll )
|
||||
m_severities = RPT_SEVERITY_ERROR;
|
||||
else
|
||||
m_severities &= ~flag;
|
||||
|
||||
syncCheckboxes();
|
||||
|
||||
// Set the provider's severity levels through the TreeModel so that the old tree
|
||||
// can be torn down before the severity changes.
|
||||
//
|
||||
// It's not clear this is required, but we've had a lot of issues with wxDataView
|
||||
// being cranky on various platforms.
|
||||
|
||||
m_markersTreeModel->SetSeverities( m_severities );
|
||||
|
||||
updateDisplayedCounts();
|
||||
}
|
||||
|
||||
|
||||
void DIALOG_FOOTPRINT_CHECKER::OnCancelClick( wxCommandEvent& aEvent )
|
||||
{
|
||||
m_frame->FocusOnItem( nullptr );
|
||||
|
@ -141,28 +289,25 @@ void DIALOG_FOOTPRINT_CHECKER::OnClose( wxCloseEvent& aEvent )
|
|||
}
|
||||
|
||||
|
||||
void DIALOG_FOOTPRINT_CHECKER::OnSelectItem( wxDataViewEvent& aEvent )
|
||||
void DIALOG_FOOTPRINT_CHECKER::refreshEditor()
|
||||
{
|
||||
const KIID& itemID = RC_TREE_MODEL::ToUUID( aEvent.GetItem() );
|
||||
BOARD_ITEM* item = m_frame->GetBoard()->GetItem( itemID );
|
||||
WINDOW_THAWER thawer( m_frame );
|
||||
|
||||
m_frame->FocusOnItem( item );
|
||||
m_frame->GetCanvas()->Refresh();
|
||||
|
||||
aEvent.Skip();
|
||||
}
|
||||
|
||||
|
||||
void DIALOG_FOOTPRINT_CHECKER::OnLeftDClickItem( wxMouseEvent& event )
|
||||
void DIALOG_FOOTPRINT_CHECKER::OnDeleteOneClick( wxCommandEvent& aEvent )
|
||||
{
|
||||
event.Skip();
|
||||
// Clear the selection. It may be the selected DRC marker.
|
||||
m_frame->GetToolManager()->RunAction( PCB_ACTIONS::selectionClear, true );
|
||||
|
||||
if( m_markersDataView->GetCurrentItem().IsOk() )
|
||||
{
|
||||
if( !IsModal() )
|
||||
Show( false );
|
||||
}
|
||||
m_markersTreeModel->DeleteCurrentItem( true );
|
||||
|
||||
// redraw the pcb
|
||||
refreshEditor();
|
||||
|
||||
updateDisplayedCounts();
|
||||
}
|
||||
|
||||
|
||||
|
@ -170,9 +315,9 @@ void DIALOG_FOOTPRINT_CHECKER::OnDeleteAllClick( wxCommandEvent& event )
|
|||
{
|
||||
deleteAllMarkers();
|
||||
|
||||
WINDOW_THAWER thawer( m_frame );
|
||||
|
||||
m_frame->GetCanvas()->Refresh();
|
||||
m_checksRun = false;
|
||||
refreshEditor();
|
||||
updateDisplayedCounts();
|
||||
}
|
||||
|
||||
|
||||
|
@ -185,3 +330,36 @@ void DIALOG_FOOTPRINT_CHECKER::deleteAllMarkers()
|
|||
}
|
||||
|
||||
|
||||
void DIALOG_FOOTPRINT_CHECKER::updateDisplayedCounts()
|
||||
{
|
||||
// Collect counts:
|
||||
|
||||
int numErrors = 0;
|
||||
int numWarnings = 0;
|
||||
int numExcluded = 0;
|
||||
|
||||
if( m_markersProvider )
|
||||
{
|
||||
numErrors += m_markersProvider->GetCount( RPT_SEVERITY_ERROR );
|
||||
numWarnings += m_markersProvider->GetCount( RPT_SEVERITY_WARNING );
|
||||
numExcluded += m_markersProvider->GetCount( RPT_SEVERITY_EXCLUSION );
|
||||
}
|
||||
|
||||
// Update badges:
|
||||
|
||||
if( !m_checksRun && numErrors == 0 )
|
||||
numErrors = -1;
|
||||
|
||||
if( !m_checksRun && numWarnings == 0 )
|
||||
numWarnings = -1;
|
||||
|
||||
m_errorsBadge->SetMaximumNumber( numErrors );
|
||||
m_errorsBadge->UpdateNumber( numErrors, RPT_SEVERITY_ERROR );
|
||||
|
||||
m_warningsBadge->SetMaximumNumber( numWarnings );
|
||||
m_warningsBadge->UpdateNumber( numWarnings, RPT_SEVERITY_WARNING );
|
||||
|
||||
m_exclusionsBadge->SetMaximumNumber( numExcluded );
|
||||
m_exclusionsBadge->UpdateNumber( numExcluded, RPT_SEVERITY_EXCLUSION );
|
||||
}
|
||||
|
||||
|
|
|
@ -33,28 +33,43 @@ class FOOTPRINT_EDIT_FRAME;
|
|||
|
||||
class DIALOG_FOOTPRINT_CHECKER: public DIALOG_FOOTPRINT_CHECKER_BASE
|
||||
{
|
||||
FOOTPRINT_EDIT_FRAME* m_frame;
|
||||
RC_TREE_MODEL* m_markersTreeModel;
|
||||
|
||||
void runChecks();
|
||||
void deleteAllMarkers();
|
||||
|
||||
void OnRunChecksClick( wxCommandEvent& aEvent ) override;
|
||||
void OnCancelClick( wxCommandEvent& aEvent ) override;
|
||||
void OnClose( wxCloseEvent& event ) override;
|
||||
|
||||
void OnSelectItem( wxDataViewEvent& event ) override;
|
||||
void OnLeftDClickItem( wxMouseEvent& event ) override;
|
||||
void OnDeleteAllClick( wxCommandEvent& event ) override;
|
||||
|
||||
bool TransferDataToWindow() override;
|
||||
bool TransferDataFromWindow() override;
|
||||
|
||||
public:
|
||||
DIALOG_FOOTPRINT_CHECKER( FOOTPRINT_EDIT_FRAME* aParent );
|
||||
~DIALOG_FOOTPRINT_CHECKER();
|
||||
|
||||
void SetMarkersProvider( RC_ITEMS_PROVIDER* aProvider );
|
||||
|
||||
private:
|
||||
void syncCheckboxes();
|
||||
void updateDisplayedCounts();
|
||||
|
||||
void runChecks();
|
||||
|
||||
void deleteAllMarkers();
|
||||
void refreshEditor();
|
||||
|
||||
void OnRunChecksClick( wxCommandEvent& aEvent ) override;
|
||||
void OnCancelClick( wxCommandEvent& aEvent ) override;
|
||||
void OnClose( wxCloseEvent& event ) override;
|
||||
|
||||
void OnSeverity( wxCommandEvent& aEvent ) override;
|
||||
|
||||
void OnSelectItem( wxDataViewEvent& event ) override;
|
||||
void OnLeftDClickItem( wxMouseEvent& event ) override;
|
||||
void OnDeleteOneClick( wxCommandEvent& event ) override;
|
||||
void OnDeleteAllClick( wxCommandEvent& event ) override;
|
||||
|
||||
bool TransferDataToWindow() override;
|
||||
bool TransferDataFromWindow() override;
|
||||
|
||||
private:
|
||||
FOOTPRINT_EDIT_FRAME* m_frame;
|
||||
bool m_checksRun;
|
||||
|
||||
RC_TREE_MODEL* m_markersTreeModel;
|
||||
RC_ITEMS_PROVIDER* m_markersProvider;
|
||||
|
||||
int m_severities;
|
||||
};
|
||||
|
||||
#endif // DIALOG_FOOTPRINT_CHECKER_H
|
||||
|
|
|
@ -23,12 +23,62 @@ DIALOG_FOOTPRINT_CHECKER_BASE::DIALOG_FOOTPRINT_CHECKER_BASE( wxWindow* parent,
|
|||
m_markersDataView = new wxDataViewCtrl( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxDV_NO_HEADER );
|
||||
bUpperSizer->Add( m_markersDataView, 1, wxALL|wxEXPAND, 5 );
|
||||
|
||||
wxBoxSizer* bSizer9;
|
||||
bSizer9 = new wxBoxSizer( wxVERTICAL );
|
||||
|
||||
wxBoxSizer* bSeveritySizer;
|
||||
bSeveritySizer = new wxBoxSizer( wxHORIZONTAL );
|
||||
|
||||
m_showLabel = new wxStaticText( this, wxID_ANY, _("Show:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_showLabel->Wrap( -1 );
|
||||
bSeveritySizer->Add( m_showLabel, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
|
||||
|
||||
m_showAll = new wxCheckBox( this, wxID_ANY, _("All"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_showAll->SetValue(true);
|
||||
bSeveritySizer->Add( m_showAll, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
|
||||
|
||||
|
||||
bSeveritySizer->Add( 35, 0, 0, wxEXPAND, 5 );
|
||||
|
||||
m_showErrors = new wxCheckBox( this, wxID_ANY, _("Errors"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
bSeveritySizer->Add( m_showErrors, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
|
||||
|
||||
m_errorsBadge = new NUMBER_BADGE( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
|
||||
bSeveritySizer->Add( m_errorsBadge, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 25 );
|
||||
|
||||
m_showWarnings = new wxCheckBox( this, wxID_ANY, _("Warnings"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
bSeveritySizer->Add( m_showWarnings, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
|
||||
|
||||
m_warningsBadge = new NUMBER_BADGE( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
|
||||
bSeveritySizer->Add( m_warningsBadge, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 25 );
|
||||
|
||||
m_showExclusions = new wxCheckBox( this, wxID_ANY, _("Exclusions"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
bSeveritySizer->Add( m_showExclusions, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
|
||||
|
||||
m_exclusionsBadge = new NUMBER_BADGE( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
|
||||
bSeveritySizer->Add( m_exclusionsBadge, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 25 );
|
||||
|
||||
|
||||
bSeveritySizer->Add( 5, 0, 1, wxEXPAND, 5 );
|
||||
|
||||
|
||||
bSizer9->Add( bSeveritySizer, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
|
||||
|
||||
m_staticline1 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
|
||||
bSizer9->Add( m_staticline1, 0, wxEXPAND|wxTOP, 8 );
|
||||
|
||||
|
||||
bUpperSizer->Add( bSizer9, 0, wxEXPAND|wxTOP, 3 );
|
||||
|
||||
|
||||
bSizerMain->Add( bUpperSizer, 1, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 10 );
|
||||
|
||||
wxBoxSizer* bLowerSizer;
|
||||
bLowerSizer = new wxBoxSizer( wxHORIZONTAL );
|
||||
|
||||
m_DeleteCurrentMarkerButton = new wxButton( this, wxID_ANY, _("Delete Marker"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
bLowerSizer->Add( m_DeleteCurrentMarkerButton, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
|
||||
|
||||
m_DeleteAllMarkersButton = new wxButton( this, wxID_ANY, _("Delete All Markers"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
bLowerSizer->Add( m_DeleteAllMarkersButton, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
|
||||
|
||||
|
@ -55,6 +105,11 @@ DIALOG_FOOTPRINT_CHECKER_BASE::DIALOG_FOOTPRINT_CHECKER_BASE( wxWindow* parent,
|
|||
this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_FOOTPRINT_CHECKER_BASE::OnClose ) );
|
||||
m_markersDataView->Connect( wxEVT_COMMAND_DATAVIEW_SELECTION_CHANGED, wxDataViewEventHandler( DIALOG_FOOTPRINT_CHECKER_BASE::OnSelectItem ), NULL, this );
|
||||
m_markersDataView->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( DIALOG_FOOTPRINT_CHECKER_BASE::OnLeftDClickItem ), NULL, this );
|
||||
m_showAll->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_FOOTPRINT_CHECKER_BASE::OnSeverity ), NULL, this );
|
||||
m_showErrors->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_FOOTPRINT_CHECKER_BASE::OnSeverity ), NULL, this );
|
||||
m_showWarnings->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_FOOTPRINT_CHECKER_BASE::OnSeverity ), NULL, this );
|
||||
m_showExclusions->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_FOOTPRINT_CHECKER_BASE::OnSeverity ), NULL, this );
|
||||
m_DeleteCurrentMarkerButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FOOTPRINT_CHECKER_BASE::OnDeleteOneClick ), NULL, this );
|
||||
m_DeleteAllMarkersButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FOOTPRINT_CHECKER_BASE::OnDeleteAllClick ), NULL, this );
|
||||
m_sdbSizerCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FOOTPRINT_CHECKER_BASE::OnCancelClick ), NULL, this );
|
||||
m_sdbSizerOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FOOTPRINT_CHECKER_BASE::OnRunChecksClick ), NULL, this );
|
||||
|
@ -66,6 +121,11 @@ DIALOG_FOOTPRINT_CHECKER_BASE::~DIALOG_FOOTPRINT_CHECKER_BASE()
|
|||
this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_FOOTPRINT_CHECKER_BASE::OnClose ) );
|
||||
m_markersDataView->Disconnect( wxEVT_COMMAND_DATAVIEW_SELECTION_CHANGED, wxDataViewEventHandler( DIALOG_FOOTPRINT_CHECKER_BASE::OnSelectItem ), NULL, this );
|
||||
m_markersDataView->Disconnect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( DIALOG_FOOTPRINT_CHECKER_BASE::OnLeftDClickItem ), NULL, this );
|
||||
m_showAll->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_FOOTPRINT_CHECKER_BASE::OnSeverity ), NULL, this );
|
||||
m_showErrors->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_FOOTPRINT_CHECKER_BASE::OnSeverity ), NULL, this );
|
||||
m_showWarnings->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_FOOTPRINT_CHECKER_BASE::OnSeverity ), NULL, this );
|
||||
m_showExclusions->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_FOOTPRINT_CHECKER_BASE::OnSeverity ), NULL, this );
|
||||
m_DeleteCurrentMarkerButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FOOTPRINT_CHECKER_BASE::OnDeleteOneClick ), NULL, this );
|
||||
m_DeleteAllMarkersButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FOOTPRINT_CHECKER_BASE::OnDeleteAllClick ), NULL, this );
|
||||
m_sdbSizerCancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FOOTPRINT_CHECKER_BASE::OnCancelClick ), NULL, this );
|
||||
m_sdbSizerOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FOOTPRINT_CHECKER_BASE::OnRunChecksClick ), NULL, this );
|
||||
|
|
|
@ -97,6 +97,613 @@
|
|||
<event name="OnLeftDClick">OnLeftDClickItem</event>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem" expanded="1">
|
||||
<property name="border">3</property>
|
||||
<property name="flag">wxEXPAND|wxTOP</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="wxBoxSizer" expanded="1">
|
||||
<property name="minimum_size"></property>
|
||||
<property name="name">bSizer9</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|wxBOTTOM|wxRIGHT|wxLEFT</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="wxBoxSizer" expanded="1">
|
||||
<property name="minimum_size"></property>
|
||||
<property name="name">bSeveritySizer</property>
|
||||
<property name="orient">wxHORIZONTAL</property>
|
||||
<property name="permission">none</property>
|
||||
<object class="sizeritem" expanded="1">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxALIGN_CENTER_VERTICAL|wxRIGHT</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">Show:</property>
|
||||
<property name="markup">0</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_showLabel</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">; ; forward_declare</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>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem" expanded="1">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="wxCheckBox" 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="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_showAll</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">; ; forward_declare</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="OnCheckBox">OnSeverity</event>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem" expanded="1">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxEXPAND</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="spacer" expanded="1">
|
||||
<property name="height">0</property>
|
||||
<property name="permission">protected</property>
|
||||
<property name="width">35</property>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem" expanded="1">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="wxCheckBox" 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="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">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">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_showErrors</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">; ; forward_declare</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="OnCheckBox">OnSeverity</event>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem" expanded="1">
|
||||
<property name="border">25</property>
|
||||
<property name="flag">wxALIGN_CENTER_VERTICAL|wxRIGHT</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="CustomControl" 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="class">NUMBER_BADGE</property>
|
||||
<property name="close_button">1</property>
|
||||
<property name="construction"></property>
|
||||
<property name="context_help"></property>
|
||||
<property name="context_menu">1</property>
|
||||
<property name="declaration"></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="include">#include <widgets/number_badge.h></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_errorsBadge</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="settings"></property>
|
||||
<property name="show">1</property>
|
||||
<property name="size"></property>
|
||||
<property name="subclass">; ; forward_declare</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>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem" expanded="1">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="wxCheckBox" 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="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">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">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_showWarnings</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">; ; forward_declare</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="OnCheckBox">OnSeverity</event>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem" expanded="1">
|
||||
<property name="border">25</property>
|
||||
<property name="flag">wxALIGN_CENTER_VERTICAL|wxRIGHT</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="CustomControl" 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="class">NUMBER_BADGE</property>
|
||||
<property name="close_button">1</property>
|
||||
<property name="construction"></property>
|
||||
<property name="context_help"></property>
|
||||
<property name="context_menu">1</property>
|
||||
<property name="declaration"></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="include">#include <widgets/number_badge.h></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_warningsBadge</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="settings"></property>
|
||||
<property name="show">1</property>
|
||||
<property name="size"></property>
|
||||
<property name="subclass">; ; forward_declare</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>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem" expanded="1">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="wxCheckBox" 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="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">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">Exclusions</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_showExclusions</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">; ; forward_declare</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="OnCheckBox">OnSeverity</event>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem" expanded="1">
|
||||
<property name="border">25</property>
|
||||
<property name="flag">wxALIGN_CENTER_VERTICAL|wxRIGHT</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="CustomControl" 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="class">NUMBER_BADGE</property>
|
||||
<property name="close_button">1</property>
|
||||
<property name="construction"></property>
|
||||
<property name="context_help"></property>
|
||||
<property name="context_menu">1</property>
|
||||
<property name="declaration"></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="include">#include <widgets/number_badge.h></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_exclusionsBadge</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="settings"></property>
|
||||
<property name="show">1</property>
|
||||
<property name="size"></property>
|
||||
<property name="subclass">; ; forward_declare</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>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem" expanded="1">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxEXPAND</property>
|
||||
<property name="proportion">1</property>
|
||||
<object class="spacer" expanded="1">
|
||||
<property name="height">0</property>
|
||||
<property name="permission">protected</property>
|
||||
<property name="width">5</property>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem" expanded="1">
|
||||
<property name="border">8</property>
|
||||
<property name="flag">wxEXPAND|wxTOP</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="wxStaticLine" 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"></property>
|
||||
<property name="moveable">1</property>
|
||||
<property name="name">m_staticline1</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">wxLI_HORIZONTAL</property>
|
||||
<property name="subclass">; ; forward_declare</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>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem" expanded="1">
|
||||
|
@ -108,6 +715,79 @@
|
|||
<property name="name">bLowerSizer</property>
|
||||
<property name="orient">wxHORIZONTAL</property>
|
||||
<property name="permission">none</property>
|
||||
<object class="sizeritem" expanded="1">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxALIGN_CENTER_VERTICAL|wxALL</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="wxButton" 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="bitmap"></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="current"></property>
|
||||
<property name="default">0</property>
|
||||
<property name="default_pane">0</property>
|
||||
<property name="disabled"></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="focus"></property>
|
||||
<property name="font"></property>
|
||||
<property name="gripper">0</property>
|
||||
<property name="hidden">0</property>
|
||||
<property name="id">wxID_ANY</property>
|
||||
<property name="label">Delete Marker</property>
|
||||
<property name="margins"></property>
|
||||
<property name="markup">0</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_DeleteCurrentMarkerButton</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="position"></property>
|
||||
<property name="pressed"></property>
|
||||
<property name="resize">Resizable</property>
|
||||
<property name="show">1</property>
|
||||
<property name="size"></property>
|
||||
<property name="style"></property>
|
||||
<property name="subclass">; forward_declare</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">OnDeleteOneClick</event>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem" expanded="1">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxALL|wxALIGN_CENTER_VERTICAL</property>
|
||||
|
|
|
@ -17,7 +17,11 @@
|
|||
#include <wx/colour.h>
|
||||
#include <wx/settings.h>
|
||||
#include <wx/string.h>
|
||||
#include <wx/stattext.h>
|
||||
#include <wx/checkbox.h>
|
||||
#include <widgets/number_badge.h>
|
||||
#include <wx/sizer.h>
|
||||
#include <wx/statline.h>
|
||||
#include <wx/bitmap.h>
|
||||
#include <wx/image.h>
|
||||
#include <wx/icon.h>
|
||||
|
@ -36,6 +40,16 @@ class DIALOG_FOOTPRINT_CHECKER_BASE : public DIALOG_SHIM
|
|||
|
||||
protected:
|
||||
wxDataViewCtrl* m_markersDataView;
|
||||
wxStaticText* m_showLabel;
|
||||
wxCheckBox* m_showAll;
|
||||
wxCheckBox* m_showErrors;
|
||||
NUMBER_BADGE* m_errorsBadge;
|
||||
wxCheckBox* m_showWarnings;
|
||||
NUMBER_BADGE* m_warningsBadge;
|
||||
wxCheckBox* m_showExclusions;
|
||||
NUMBER_BADGE* m_exclusionsBadge;
|
||||
wxStaticLine* m_staticline1;
|
||||
wxButton* m_DeleteCurrentMarkerButton;
|
||||
wxButton* m_DeleteAllMarkersButton;
|
||||
wxStdDialogButtonSizer* m_sdbSizer;
|
||||
wxButton* m_sdbSizerOK;
|
||||
|
@ -45,6 +59,8 @@ class DIALOG_FOOTPRINT_CHECKER_BASE : public DIALOG_SHIM
|
|||
virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
|
||||
virtual void OnSelectItem( wxDataViewEvent& event ) { event.Skip(); }
|
||||
virtual void OnLeftDClickItem( wxMouseEvent& event ) { event.Skip(); }
|
||||
virtual void OnSeverity( wxCommandEvent& event ) { event.Skip(); }
|
||||
virtual void OnDeleteOneClick( wxCommandEvent& event ) { event.Skip(); }
|
||||
virtual void OnDeleteAllClick( wxCommandEvent& event ) { event.Skip(); }
|
||||
virtual void OnCancelClick( wxCommandEvent& event ) { event.Skip(); }
|
||||
virtual void OnRunChecksClick( wxCommandEvent& event ) { event.Skip(); }
|
||||
|
|
Loading…
Reference in New Issue