mirror of
https://gitlab.com/kicad/code/kicad.git
synced 2025-09-14 02:03:12 +02:00
CHANGED: progressive disclosure in DRC dialog.
CHANGED: moved Report All Track Errors to config menu. ADDED: menu items to control cross-probing from DRC dialog. Fixes https://gitlab.com/kicad/code/kicad/-/issues/17916
This commit is contained in:
parent
11cc86e586
commit
3c5fb9d90d
@ -1059,32 +1059,35 @@ std::vector<wxWindow*> EDA_DRAW_FRAME::findDialogs()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void EDA_DRAW_FRAME::FocusOnLocation( const VECTOR2I& aPos )
|
void EDA_DRAW_FRAME::FocusOnLocation( const VECTOR2I& aPos, bool aAllowScroll )
|
||||||
{
|
{
|
||||||
bool centerView = false;
|
bool centerView = false;
|
||||||
BOX2D r = GetCanvas()->GetView()->GetViewport();
|
|
||||||
|
|
||||||
// Center if we're off the current view, or within 10% of its edge
|
|
||||||
r.Inflate( - r.GetWidth() / 10.0 );
|
|
||||||
|
|
||||||
if( !r.Contains( aPos ) )
|
|
||||||
centerView = true;
|
|
||||||
|
|
||||||
std::vector<BOX2D> dialogScreenRects;
|
std::vector<BOX2D> dialogScreenRects;
|
||||||
|
|
||||||
for( wxWindow* dialog : findDialogs() )
|
if( aAllowScroll )
|
||||||
{
|
{
|
||||||
dialogScreenRects.emplace_back( ToVECTOR2D( GetCanvas()->ScreenToClient( dialog->GetScreenPosition() ) ),
|
BOX2D r = GetCanvas()->GetView()->GetViewport();
|
||||||
ToVECTOR2D( dialog->GetSize() ) );
|
|
||||||
}
|
|
||||||
|
|
||||||
// Center if we're behind an obscuring dialog, or within 10% of its edge
|
// Center if we're off the current view, or within 10% of its edge
|
||||||
for( BOX2D rect : dialogScreenRects )
|
r.Inflate( - r.GetWidth() / 10.0 );
|
||||||
{
|
|
||||||
rect.Inflate( rect.GetWidth() / 10 );
|
|
||||||
|
|
||||||
if( rect.Contains( GetCanvas()->GetView()->ToScreen( aPos ) ) )
|
if( !r.Contains( aPos ) )
|
||||||
centerView = true;
|
centerView = true;
|
||||||
|
|
||||||
|
for( wxWindow* dialog : findDialogs() )
|
||||||
|
{
|
||||||
|
dialogScreenRects.emplace_back( ToVECTOR2D( GetCanvas()->ScreenToClient( dialog->GetScreenPosition() ) ),
|
||||||
|
ToVECTOR2D( dialog->GetSize() ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
// Center if we're behind an obscuring dialog, or within 10% of its edge
|
||||||
|
for( BOX2D rect : dialogScreenRects )
|
||||||
|
{
|
||||||
|
rect.Inflate( rect.GetWidth() / 10 );
|
||||||
|
|
||||||
|
if( rect.Contains( GetCanvas()->GetView()->ToScreen( aPos ) ) )
|
||||||
|
centerView = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if( centerView )
|
if( centerView )
|
||||||
|
@ -921,16 +921,28 @@ void DIALOG_SYMBOL_FIELDS_TABLE::OnMenu( wxCommandEvent& event )
|
|||||||
// Build a pop menu:
|
// Build a pop menu:
|
||||||
wxMenu menu;
|
wxMenu menu;
|
||||||
|
|
||||||
menu.Append( 4204, _( "Include 'DNP' Symbols" ), wxEmptyString, wxITEM_CHECK );
|
menu.Append( 4204, _( "Include 'DNP' Symbols" ),
|
||||||
menu.Append( 4205, _( "Include 'Exclude from BOM' Symbols" ), wxEmptyString, wxITEM_CHECK );
|
_( "Show symbols marked 'DNP' in the table. This setting also controls whether or not 'DNP' "
|
||||||
menu.AppendSeparator();
|
"symbols are included on export." ),
|
||||||
menu.Append( 4206, _( "Highlight on Cross Probe" ), wxEmptyString, wxITEM_CHECK );
|
wxITEM_CHECK );
|
||||||
menu.Append( 4207, _( "Select on Cross Probe" ), wxEmptyString, wxITEM_CHECK );
|
|
||||||
|
|
||||||
menu.Check( 4204, !m_dataModel->GetExcludeDNP() );
|
menu.Check( 4204, !m_dataModel->GetExcludeDNP() );
|
||||||
|
|
||||||
|
menu.Append( 4205, _( "Include 'Exclude from BOM' Symbols" ),
|
||||||
|
_( "Show symbols marked 'Exclude from BOM' in the table. Symbols marked 'Exclude from BOM' "
|
||||||
|
"are never included on export." ),
|
||||||
|
wxITEM_CHECK );
|
||||||
menu.Check( 4205, m_dataModel->GetIncludeExcludedFromBOM() );
|
menu.Check( 4205, m_dataModel->GetIncludeExcludedFromBOM() );
|
||||||
|
|
||||||
|
menu.AppendSeparator();
|
||||||
|
|
||||||
|
menu.Append( 4206, _( "Highlight on Cross-probe" ),
|
||||||
|
_( "Highlight corresponding item on canvas when it is selected in the table" ),
|
||||||
|
wxITEM_CHECK );
|
||||||
menu.Check( 4206, cfg.selection_mode == 0 );
|
menu.Check( 4206, cfg.selection_mode == 0 );
|
||||||
|
|
||||||
|
menu.Append( 4207, _( "Select on Cross-probe" ),
|
||||||
|
_( "Select corresponding item on canvas when it is selected in the table" ),
|
||||||
|
wxITEM_CHECK );
|
||||||
menu.Check( 4207, cfg.selection_mode == 1 );
|
menu.Check( 4207, cfg.selection_mode == 1 );
|
||||||
|
|
||||||
// menu_id is the selected submenu id from the popup menu or wxID_NONE
|
// menu_id is the selected submenu id from the popup menu or wxID_NONE
|
||||||
|
@ -306,7 +306,7 @@ public:
|
|||||||
*
|
*
|
||||||
* @param aPos is the point to go to.
|
* @param aPos is the point to go to.
|
||||||
*/
|
*/
|
||||||
void FocusOnLocation( const VECTOR2I& aPos );
|
void FocusOnLocation( const VECTOR2I& aPos, bool aAllowScroll = true );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Focus on a particular canvas item.
|
* Focus on a particular canvas item.
|
||||||
|
@ -221,8 +221,9 @@ public:
|
|||||||
EDA_ITEM* ResolveItem( const KIID& aId, bool aAllowNullptrReturn = false ) const override;
|
EDA_ITEM* ResolveItem( const KIID& aId, bool aAllowNullptrReturn = false ) const override;
|
||||||
|
|
||||||
void FocusOnItem( EDA_ITEM* aItem ) override;
|
void FocusOnItem( EDA_ITEM* aItem ) override;
|
||||||
void FocusOnItem( BOARD_ITEM* aItem, PCB_LAYER_ID aLayer = UNDEFINED_LAYER );
|
void FocusOnItem( BOARD_ITEM* aItem, PCB_LAYER_ID aLayer = UNDEFINED_LAYER, bool aAllowScroll = true );
|
||||||
void FocusOnItems( std::vector<BOARD_ITEM*> aItems, PCB_LAYER_ID aLayer = UNDEFINED_LAYER );
|
void FocusOnItems( std::vector<BOARD_ITEM*> aItems, PCB_LAYER_ID aLayer = UNDEFINED_LAYER,
|
||||||
|
bool aAllowScroll = true );
|
||||||
|
|
||||||
void HideSolderMask();
|
void HideSolderMask();
|
||||||
void ShowSolderMask();
|
void ShowSolderMask();
|
||||||
|
@ -46,8 +46,10 @@
|
|||||||
#include <wx/wupdlock.h>
|
#include <wx/wupdlock.h>
|
||||||
#include <widgets/appearance_controls.h>
|
#include <widgets/appearance_controls.h>
|
||||||
#include <widgets/ui_common.h>
|
#include <widgets/ui_common.h>
|
||||||
|
#include <widgets/std_bitmap_button.h>
|
||||||
#include <widgets/progress_reporter_base.h>
|
#include <widgets/progress_reporter_base.h>
|
||||||
#include <widgets/wx_html_report_box.h>
|
#include <widgets/wx_html_report_box.h>
|
||||||
|
#include <view/view_controls.h>
|
||||||
#include <dialogs/panel_setup_rules_base.h>
|
#include <dialogs/panel_setup_rules_base.h>
|
||||||
#include <dialogs/dialog_text_entry.h>
|
#include <dialogs/dialog_text_entry.h>
|
||||||
#include <tools/drc_tool.h>
|
#include <tools/drc_tool.h>
|
||||||
@ -74,6 +76,9 @@ DIALOG_DRC::DIALOG_DRC( PCB_EDIT_FRAME* aEditorFrame, wxWindow* aParent ) :
|
|||||||
m_running( false ),
|
m_running( false ),
|
||||||
m_drcRun( false ),
|
m_drcRun( false ),
|
||||||
m_footprintTestsRun( false ),
|
m_footprintTestsRun( false ),
|
||||||
|
m_report_all_track_errors( false ),
|
||||||
|
m_crossprobe( true ),
|
||||||
|
m_scroll_on_crossprobe( true ),
|
||||||
m_markersTreeModel( nullptr ),
|
m_markersTreeModel( nullptr ),
|
||||||
m_unconnectedTreeModel( nullptr ),
|
m_unconnectedTreeModel( nullptr ),
|
||||||
m_fpWarningsTreeModel( nullptr ),
|
m_fpWarningsTreeModel( nullptr ),
|
||||||
@ -85,6 +90,15 @@ DIALOG_DRC::DIALOG_DRC( PCB_EDIT_FRAME* aEditorFrame, wxWindow* aParent ) :
|
|||||||
m_frame = aEditorFrame;
|
m_frame = aEditorFrame;
|
||||||
m_currentBoard = m_frame->GetBoard();
|
m_currentBoard = m_frame->GetBoard();
|
||||||
|
|
||||||
|
m_bMenu->SetBitmap( KiBitmapBundle( BITMAPS::config ) );
|
||||||
|
|
||||||
|
if( PCBNEW_SETTINGS* cfg = m_frame->GetPcbNewSettings() )
|
||||||
|
{
|
||||||
|
m_report_all_track_errors = cfg->m_DRCDialog.report_all_track_errors;
|
||||||
|
m_crossprobe = cfg->m_DRCDialog.crossprobe;
|
||||||
|
m_scroll_on_crossprobe = cfg->m_DRCDialog.scroll_on_crossprobe;
|
||||||
|
}
|
||||||
|
|
||||||
m_messages->SetImmediateMode();
|
m_messages->SetImmediateMode();
|
||||||
|
|
||||||
m_markersProvider = std::make_shared<DRC_ITEMS_PROVIDER>( m_currentBoard,
|
m_markersProvider = std::make_shared<DRC_ITEMS_PROVIDER>( m_currentBoard,
|
||||||
@ -147,6 +161,13 @@ DIALOG_DRC::DIALOG_DRC( PCB_EDIT_FRAME* aEditorFrame, wxWindow* aParent ) :
|
|||||||
|
|
||||||
DIALOG_DRC::~DIALOG_DRC()
|
DIALOG_DRC::~DIALOG_DRC()
|
||||||
{
|
{
|
||||||
|
if( PCBNEW_SETTINGS* cfg = m_frame->GetPcbNewSettings() )
|
||||||
|
{
|
||||||
|
cfg->m_DRCDialog.report_all_track_errors = m_report_all_track_errors;
|
||||||
|
cfg->m_DRCDialog.crossprobe = m_crossprobe;
|
||||||
|
cfg->m_DRCDialog.scroll_on_crossprobe = m_scroll_on_crossprobe;
|
||||||
|
}
|
||||||
|
|
||||||
m_frame->ClearFocus();
|
m_frame->ClearFocus();
|
||||||
|
|
||||||
g_lastDRCBoard = m_currentBoard;
|
g_lastDRCBoard = m_currentBoard;
|
||||||
@ -240,6 +261,46 @@ int DIALOG_DRC::getSeverities()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void DIALOG_DRC::OnMenu( wxCommandEvent& event )
|
||||||
|
{
|
||||||
|
// Build a pop menu:
|
||||||
|
wxMenu menu;
|
||||||
|
|
||||||
|
menu.Append( 4205, _( "Report All Errors for Each Track" ),
|
||||||
|
_( "If unchecked, only the first error will be reported for each track" ),
|
||||||
|
wxITEM_CHECK );
|
||||||
|
menu.Check( 4205, m_report_all_track_errors );
|
||||||
|
|
||||||
|
menu.AppendSeparator();
|
||||||
|
|
||||||
|
menu.Append( 4206, _( "Cross-probe Selected Items" ),
|
||||||
|
_( "Highlight corresponding items on canvas when selected in the DRC list" ),
|
||||||
|
wxITEM_CHECK );
|
||||||
|
menu.Check( 4206, m_crossprobe );
|
||||||
|
|
||||||
|
menu.Append( 4207, _( "Center on Cross-probe" ),
|
||||||
|
_( "When cross-probing, scroll the canvas so that the item is visible" ),
|
||||||
|
wxITEM_CHECK );
|
||||||
|
menu.Check( 4207, m_scroll_on_crossprobe );
|
||||||
|
|
||||||
|
// menu_id is the selected submenu id from the popup menu or wxID_NONE
|
||||||
|
int menu_id = m_bMenu->GetPopupMenuSelectionFromUser( menu );
|
||||||
|
|
||||||
|
if( menu_id == 0 || menu_id == 4205 )
|
||||||
|
{
|
||||||
|
m_report_all_track_errors = !m_report_all_track_errors;
|
||||||
|
}
|
||||||
|
else if( menu_id == 2 || menu_id == 4206 )
|
||||||
|
{
|
||||||
|
m_crossprobe = !m_crossprobe;
|
||||||
|
}
|
||||||
|
else if( menu_id == 3 || menu_id == 4207 )
|
||||||
|
{
|
||||||
|
m_scroll_on_crossprobe = !m_scroll_on_crossprobe;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void DIALOG_DRC::OnErrorLinkClicked( wxHtmlLinkEvent& event )
|
void DIALOG_DRC::OnErrorLinkClicked( wxHtmlLinkEvent& event )
|
||||||
{
|
{
|
||||||
m_frame->ShowBoardSetupDialog( _( "Custom Rules" ) );
|
m_frame->ShowBoardSetupDialog( _( "Custom Rules" ) );
|
||||||
@ -252,7 +313,6 @@ void DIALOG_DRC::OnRunDRCClick( wxCommandEvent& aEvent )
|
|||||||
DRC_TOOL* drcTool = toolMgr->GetTool<DRC_TOOL>();
|
DRC_TOOL* drcTool = toolMgr->GetTool<DRC_TOOL>();
|
||||||
ZONE_FILLER_TOOL* zoneFillerTool = toolMgr->GetTool<ZONE_FILLER_TOOL>();
|
ZONE_FILLER_TOOL* zoneFillerTool = toolMgr->GetTool<ZONE_FILLER_TOOL>();
|
||||||
bool refillZones = m_cbRefillZones->GetValue();
|
bool refillZones = m_cbRefillZones->GetValue();
|
||||||
bool reportAllTrackErrors = m_cbReportAllTrackErrors->GetValue();
|
|
||||||
bool testFootprints = m_cbTestFootprints->GetValue();
|
bool testFootprints = m_cbTestFootprints->GetValue();
|
||||||
|
|
||||||
if( zoneFillerTool->IsBusy() )
|
if( zoneFillerTool->IsBusy() )
|
||||||
@ -326,7 +386,7 @@ void DIALOG_DRC::OnRunDRCClick( wxCommandEvent& aEvent )
|
|||||||
|
|
||||||
{
|
{
|
||||||
wxBusyCursor dummy;
|
wxBusyCursor dummy;
|
||||||
drcTool->RunTests( this, refillZones, reportAllTrackErrors, testFootprints );
|
drcTool->RunTests( this, refillZones, m_report_all_track_errors, testFootprints );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( m_cancelled )
|
if( m_cancelled )
|
||||||
@ -378,6 +438,12 @@ void DIALOG_DRC::UpdateData()
|
|||||||
|
|
||||||
void DIALOG_DRC::OnDRCItemSelected( wxDataViewEvent& aEvent )
|
void DIALOG_DRC::OnDRCItemSelected( wxDataViewEvent& aEvent )
|
||||||
{
|
{
|
||||||
|
if( !m_crossprobe )
|
||||||
|
{
|
||||||
|
aEvent.Skip();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
BOARD* board = m_frame->GetBoard();
|
BOARD* board = m_frame->GetBoard();
|
||||||
RC_TREE_NODE* node = RC_TREE_MODEL::ToNode( aEvent.GetItem() );
|
RC_TREE_NODE* node = RC_TREE_MODEL::ToNode( aEvent.GetItem() );
|
||||||
|
|
||||||
@ -408,11 +474,8 @@ void DIALOG_DRC::OnDRCItemSelected( wxDataViewEvent& aEvent )
|
|||||||
{
|
{
|
||||||
VECTOR2D selectedItemPos = aSelectedMarkerItem->GetPosition() / PCB_IU_PER_MM;
|
VECTOR2D selectedItemPos = aSelectedMarkerItem->GetPosition() / PCB_IU_PER_MM;
|
||||||
VECTOR2D unSelectedItemPos = aUnSelectedMarkerItem->GetPosition() / PCB_IU_PER_MM;
|
VECTOR2D unSelectedItemPos = aUnSelectedMarkerItem->GetPosition() / PCB_IU_PER_MM;
|
||||||
|
double dist = selectedItemPos.Distance( unSelectedItemPos );
|
||||||
double dist = selectedItemPos.Distance( unSelectedItemPos );
|
double minimumMarkerSeparationDistance = ADVANCED_CFG::GetCfg().m_MinimumMarkerSeparationDistance;
|
||||||
|
|
||||||
double minimumMarkerSeparationDistance =
|
|
||||||
ADVANCED_CFG::GetCfg().m_MinimumMarkerSeparationDistance;
|
|
||||||
|
|
||||||
return dist <= minimumMarkerSeparationDistance;
|
return dist <= minimumMarkerSeparationDistance;
|
||||||
};
|
};
|
||||||
@ -430,7 +493,7 @@ void DIALOG_DRC::OnDRCItemSelected( wxDataViewEvent& aEvent )
|
|||||||
if( rc_item->GetErrorCode() == DRCE_UNRESOLVED_VARIABLE
|
if( rc_item->GetErrorCode() == DRCE_UNRESOLVED_VARIABLE
|
||||||
&& rc_item->GetParent()->GetMarkerType() == MARKER_BASE::MARKER_DRAWING_SHEET )
|
&& rc_item->GetParent()->GetMarkerType() == MARKER_BASE::MARKER_DRAWING_SHEET )
|
||||||
{
|
{
|
||||||
m_frame->FocusOnLocation( node->m_RcItem->GetParent()->GetPos() );
|
m_frame->FocusOnLocation( node->m_RcItem->GetParent()->GetPos(), m_scroll_on_crossprobe );
|
||||||
|
|
||||||
aEvent.Skip();
|
aEvent.Skip();
|
||||||
return;
|
return;
|
||||||
@ -512,7 +575,7 @@ void DIALOG_DRC::OnDRCItemSelected( wxDataViewEvent& aEvent )
|
|||||||
|
|
||||||
if( item->Type() == PCB_ZONE_T )
|
if( item->Type() == PCB_ZONE_T )
|
||||||
{
|
{
|
||||||
m_frame->FocusOnItem( item, principalLayer );
|
m_frame->FocusOnItem( item, principalLayer, m_scroll_on_crossprobe );
|
||||||
|
|
||||||
m_frame->GetBoard()->GetConnectivity()->RunOnUnconnectedEdges(
|
m_frame->GetBoard()->GetConnectivity()->RunOnUnconnectedEdges(
|
||||||
[&]( CN_EDGE& edge )
|
[&]( CN_EDGE& edge )
|
||||||
@ -541,7 +604,7 @@ void DIALOG_DRC::OnDRCItemSelected( wxDataViewEvent& aEvent )
|
|||||||
: edge.GetTargetPos();
|
: edge.GetTargetPos();
|
||||||
}
|
}
|
||||||
|
|
||||||
m_frame->FocusOnLocation( focusPos );
|
m_frame->FocusOnLocation( focusPos, m_scroll_on_crossprobe );
|
||||||
m_frame->RefreshCanvas();
|
m_frame->RefreshCanvas();
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
@ -552,7 +615,7 @@ void DIALOG_DRC::OnDRCItemSelected( wxDataViewEvent& aEvent )
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
m_frame->FocusOnItem( item, principalLayer );
|
m_frame->FocusOnItem( item, principalLayer, m_scroll_on_crossprobe );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if( rc_item->GetErrorCode() == DRCE_DIFF_PAIR_UNCOUPLED_LENGTH_TOO_LONG )
|
else if( rc_item->GetErrorCode() == DRCE_DIFF_PAIR_UNCOUPLED_LENGTH_TOO_LONG )
|
||||||
@ -579,7 +642,7 @@ void DIALOG_DRC::OnDRCItemSelected( wxDataViewEvent& aEvent )
|
|||||||
items.push_back( item );
|
items.push_back( item );
|
||||||
}
|
}
|
||||||
|
|
||||||
m_frame->FocusOnItems( items, principalLayer );
|
m_frame->FocusOnItems( items, principalLayer, m_scroll_on_crossprobe );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -594,11 +657,11 @@ void DIALOG_DRC::OnDRCItemSelected( wxDataViewEvent& aEvent )
|
|||||||
}
|
}
|
||||||
|
|
||||||
items.push_back( item );
|
items.push_back( item );
|
||||||
m_frame->FocusOnItems( items, principalLayer );
|
m_frame->FocusOnItems( items, principalLayer, m_scroll_on_crossprobe );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
m_frame->FocusOnItem( item, principalLayer );
|
m_frame->FocusOnItem( item, principalLayer, m_scroll_on_crossprobe );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -77,6 +77,7 @@ private:
|
|||||||
|
|
||||||
bool TransferDataToWindow() override;
|
bool TransferDataToWindow() override;
|
||||||
|
|
||||||
|
void OnMenu( wxCommandEvent& aEvent ) override;
|
||||||
void OnDRCItemSelected( wxDataViewEvent& aEvent ) override;
|
void OnDRCItemSelected( wxDataViewEvent& aEvent ) override;
|
||||||
void OnDRCItemDClick( wxDataViewEvent& aEvent ) override;
|
void OnDRCItemDClick( wxDataViewEvent& aEvent ) override;
|
||||||
void OnDRCItemRClick( wxDataViewEvent& aEvent ) override;
|
void OnDRCItemRClick( wxDataViewEvent& aEvent ) override;
|
||||||
@ -117,6 +118,10 @@ private:
|
|||||||
bool m_drcRun;
|
bool m_drcRun;
|
||||||
bool m_footprintTestsRun;
|
bool m_footprintTestsRun;
|
||||||
|
|
||||||
|
bool m_report_all_track_errors;
|
||||||
|
bool m_crossprobe;
|
||||||
|
bool m_scroll_on_crossprobe;
|
||||||
|
|
||||||
wxString m_markersTitleTemplate;
|
wxString m_markersTitleTemplate;
|
||||||
wxString m_unconnectedTitleTemplate;
|
wxString m_unconnectedTitleTemplate;
|
||||||
wxString m_footprintsTitleTemplate;
|
wxString m_footprintsTitleTemplate;
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
// PLEASE DO *NOT* EDIT THIS FILE!
|
// PLEASE DO *NOT* EDIT THIS FILE!
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#include "widgets/std_bitmap_button.h"
|
||||||
#include "widgets/wx_html_report_box.h"
|
#include "widgets/wx_html_report_box.h"
|
||||||
|
|
||||||
#include "dialog_drc_base.h"
|
#include "dialog_drc_base.h"
|
||||||
@ -24,30 +25,43 @@ DIALOG_DRC_BASE::DIALOG_DRC_BASE( wxWindow* parent, wxWindowID id, const wxStrin
|
|||||||
wxBoxSizer* bSizer12;
|
wxBoxSizer* bSizer12;
|
||||||
bSizer12 = new wxBoxSizer( wxVERTICAL );
|
bSizer12 = new wxBoxSizer( wxVERTICAL );
|
||||||
|
|
||||||
m_cbRefillZones = new wxCheckBox( this, wxID_ANY, _("Refill all zones before performing DRC"), wxDefaultPosition, wxDefaultSize, 0 );
|
|
||||||
m_cbRefillZones->SetValue(true);
|
|
||||||
bSizer12->Add( m_cbRefillZones, 0, wxALL, 5 );
|
|
||||||
|
|
||||||
m_cbReportAllTrackErrors = new wxCheckBox( this, wxID_ANY, _("Report all errors for each track"), wxDefaultPosition, wxDefaultSize, 0 );
|
|
||||||
m_cbReportAllTrackErrors->SetToolTip( _("If selected, all DRC violations for tracks will be reported. This can be slow for complicated designs.\n\nIf unselected, only the first DRC violation will be reported for each track connection.") );
|
|
||||||
|
|
||||||
bSizer12->Add( m_cbReportAllTrackErrors, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
|
|
||||||
|
|
||||||
|
|
||||||
bSizerOptions->Add( bSizer12, 1, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
|
bSizerOptions->Add( bSizer12, 1, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
|
||||||
|
|
||||||
wxBoxSizer* bSizerOptSettings;
|
wxBoxSizer* bSizerOptSettings;
|
||||||
bSizerOptSettings = new wxBoxSizer( wxVERTICAL );
|
bSizerOptSettings = new wxBoxSizer( wxVERTICAL );
|
||||||
|
|
||||||
m_cbTestFootprints = new wxCheckBox( this, wxID_ANY, _("Test for parity between PCB and schematic"), wxDefaultPosition, wxDefaultSize, 0 );
|
|
||||||
bSizerOptSettings->Add( m_cbTestFootprints, 0, wxALL, 5 );
|
|
||||||
|
|
||||||
|
|
||||||
bSizerOptions->Add( bSizerOptSettings, 1, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
|
bSizerOptions->Add( bSizerOptSettings, 1, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
|
||||||
|
|
||||||
|
|
||||||
m_MainSizer->Add( bSizerOptions, 0, wxEXPAND|wxTOP|wxBOTTOM|wxLEFT, 3 );
|
m_MainSizer->Add( bSizerOptions, 0, wxEXPAND|wxTOP|wxBOTTOM|wxLEFT, 3 );
|
||||||
|
|
||||||
|
wxGridBagSizer* gbSizerOptions;
|
||||||
|
gbSizerOptions = new wxGridBagSizer( 0, 0 );
|
||||||
|
gbSizerOptions->SetFlexibleDirection( wxBOTH );
|
||||||
|
gbSizerOptions->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
|
||||||
|
|
||||||
|
m_cbRefillZones = new wxCheckBox( this, wxID_ANY, _("Refill all zones before performing DRC"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
m_cbRefillZones->SetValue(true);
|
||||||
|
gbSizerOptions->Add( m_cbRefillZones, wxGBPosition( 0, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT|wxLEFT, 5 );
|
||||||
|
|
||||||
|
m_cbTestFootprints = new wxCheckBox( this, wxID_ANY, _("Test for parity between PCB and schematic"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
gbSizerOptions->Add( m_cbTestFootprints, wxGBPosition( 0, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT|wxLEFT, 5 );
|
||||||
|
|
||||||
|
m_bMenu = new STD_BITMAP_BUTTON( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW|0 );
|
||||||
|
m_bMenu->SetMinSize( wxSize( 30,30 ) );
|
||||||
|
|
||||||
|
gbSizerOptions->Add( m_bMenu, wxGBPosition( 0, 2 ), wxGBSpan( 2, 1 ), wxALIGN_CENTER_VERTICAL, 5 );
|
||||||
|
|
||||||
|
|
||||||
|
gbSizerOptions->AddGrowableCol( 0 );
|
||||||
|
gbSizerOptions->AddGrowableCol( 1 );
|
||||||
|
gbSizerOptions->AddGrowableRow( 0 );
|
||||||
|
gbSizerOptions->AddGrowableRow( 1 );
|
||||||
|
|
||||||
|
m_MainSizer->Add( gbSizerOptions, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 10 );
|
||||||
|
|
||||||
m_runningResultsBook = new wxSimplebook( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
|
m_runningResultsBook = new wxSimplebook( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
running = new wxPanel( m_runningResultsBook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
|
running = new wxPanel( m_runningResultsBook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
|
||||||
wxBoxSizer* bSizer14;
|
wxBoxSizer* bSizer14;
|
||||||
@ -242,6 +256,7 @@ DIALOG_DRC_BASE::DIALOG_DRC_BASE( wxWindow* parent, wxWindowID id, const wxStrin
|
|||||||
// Connect Events
|
// Connect Events
|
||||||
this->Connect( wxEVT_ACTIVATE, wxActivateEventHandler( DIALOG_DRC_BASE::OnActivateDlg ) );
|
this->Connect( wxEVT_ACTIVATE, wxActivateEventHandler( DIALOG_DRC_BASE::OnActivateDlg ) );
|
||||||
this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_DRC_BASE::OnClose ) );
|
this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_DRC_BASE::OnClose ) );
|
||||||
|
m_bMenu->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_DRC_BASE::OnMenu ), NULL, this );
|
||||||
m_messages->Connect( wxEVT_COMMAND_HTML_LINK_CLICKED, wxHtmlLinkEventHandler( DIALOG_DRC_BASE::OnErrorLinkClicked ), NULL, this );
|
m_messages->Connect( wxEVT_COMMAND_HTML_LINK_CLICKED, wxHtmlLinkEventHandler( DIALOG_DRC_BASE::OnErrorLinkClicked ), NULL, this );
|
||||||
m_Notebook->Connect( wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, wxNotebookEventHandler( DIALOG_DRC_BASE::OnChangingNotebookPage ), NULL, this );
|
m_Notebook->Connect( wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, wxNotebookEventHandler( DIALOG_DRC_BASE::OnChangingNotebookPage ), NULL, this );
|
||||||
m_markerDataView->Connect( wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED, wxDataViewEventHandler( DIALOG_DRC_BASE::OnDRCItemDClick ), NULL, this );
|
m_markerDataView->Connect( wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED, wxDataViewEventHandler( DIALOG_DRC_BASE::OnDRCItemDClick ), NULL, this );
|
||||||
@ -271,6 +286,7 @@ DIALOG_DRC_BASE::~DIALOG_DRC_BASE()
|
|||||||
// Disconnect Events
|
// Disconnect Events
|
||||||
this->Disconnect( wxEVT_ACTIVATE, wxActivateEventHandler( DIALOG_DRC_BASE::OnActivateDlg ) );
|
this->Disconnect( wxEVT_ACTIVATE, wxActivateEventHandler( DIALOG_DRC_BASE::OnActivateDlg ) );
|
||||||
this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_DRC_BASE::OnClose ) );
|
this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_DRC_BASE::OnClose ) );
|
||||||
|
m_bMenu->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_DRC_BASE::OnMenu ), NULL, this );
|
||||||
m_messages->Disconnect( wxEVT_COMMAND_HTML_LINK_CLICKED, wxHtmlLinkEventHandler( DIALOG_DRC_BASE::OnErrorLinkClicked ), NULL, this );
|
m_messages->Disconnect( wxEVT_COMMAND_HTML_LINK_CLICKED, wxHtmlLinkEventHandler( DIALOG_DRC_BASE::OnErrorLinkClicked ), NULL, this );
|
||||||
m_Notebook->Disconnect( wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, wxNotebookEventHandler( DIALOG_DRC_BASE::OnChangingNotebookPage ), NULL, this );
|
m_Notebook->Disconnect( wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, wxNotebookEventHandler( DIALOG_DRC_BASE::OnChangingNotebookPage ), NULL, this );
|
||||||
m_markerDataView->Disconnect( wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED, wxDataViewEventHandler( DIALOG_DRC_BASE::OnDRCItemDClick ), NULL, this );
|
m_markerDataView->Disconnect( wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED, wxDataViewEventHandler( DIALOG_DRC_BASE::OnDRCItemDClick ), NULL, this );
|
||||||
|
@ -84,136 +84,6 @@
|
|||||||
<property name="name">bSizer12</property>
|
<property name="name">bSizer12</property>
|
||||||
<property name="orient">wxVERTICAL</property>
|
<property name="orient">wxVERTICAL</property>
|
||||||
<property name="permission">none</property>
|
<property name="permission">none</property>
|
||||||
<object class="sizeritem" expanded="false">
|
|
||||||
<property name="border">5</property>
|
|
||||||
<property name="flag">wxALL</property>
|
|
||||||
<property name="proportion">0</property>
|
|
||||||
<object class="wxCheckBox" expanded="false">
|
|
||||||
<property name="BottomDockable">1</property>
|
|
||||||
<property name="LeftDockable">1</property>
|
|
||||||
<property name="RightDockable">1</property>
|
|
||||||
<property name="TopDockable">1</property>
|
|
||||||
<property name="aui_layer">0</property>
|
|
||||||
<property name="aui_name"></property>
|
|
||||||
<property name="aui_position">0</property>
|
|
||||||
<property name="aui_row">0</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="drag_accept_files">0</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">Refill all zones before performing DRC</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_cbRefillZones</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>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="sizeritem" expanded="false">
|
|
||||||
<property name="border">5</property>
|
|
||||||
<property name="flag">wxBOTTOM|wxRIGHT|wxLEFT</property>
|
|
||||||
<property name="proportion">0</property>
|
|
||||||
<object class="wxCheckBox" expanded="false">
|
|
||||||
<property name="BottomDockable">1</property>
|
|
||||||
<property name="LeftDockable">1</property>
|
|
||||||
<property name="RightDockable">1</property>
|
|
||||||
<property name="TopDockable">1</property>
|
|
||||||
<property name="aui_layer">0</property>
|
|
||||||
<property name="aui_name"></property>
|
|
||||||
<property name="aui_position">0</property>
|
|
||||||
<property name="aui_row">0</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="drag_accept_files">0</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">Report all errors for each track</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_cbReportAllTrackErrors</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">If selected, all DRC violations for tracks will be reported. This can be slow for complicated designs.

If unselected, only the first DRC violation will be reported for each track connection.</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>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
<object class="sizeritem" expanded="true">
|
<object class="sizeritem" expanded="true">
|
||||||
@ -225,71 +95,237 @@
|
|||||||
<property name="name">bSizerOptSettings</property>
|
<property name="name">bSizerOptSettings</property>
|
||||||
<property name="orient">wxVERTICAL</property>
|
<property name="orient">wxVERTICAL</property>
|
||||||
<property name="permission">none</property>
|
<property name="permission">none</property>
|
||||||
<object class="sizeritem" expanded="false">
|
</object>
|
||||||
<property name="border">5</property>
|
</object>
|
||||||
<property name="flag">wxALL</property>
|
</object>
|
||||||
<property name="proportion">0</property>
|
</object>
|
||||||
<object class="wxCheckBox" expanded="false">
|
<object class="sizeritem" expanded="true">
|
||||||
<property name="BottomDockable">1</property>
|
<property name="border">10</property>
|
||||||
<property name="LeftDockable">1</property>
|
<property name="flag">wxEXPAND|wxTOP|wxRIGHT|wxLEFT</property>
|
||||||
<property name="RightDockable">1</property>
|
<property name="proportion">0</property>
|
||||||
<property name="TopDockable">1</property>
|
<object class="wxGridBagSizer" expanded="true">
|
||||||
<property name="aui_layer">0</property>
|
<property name="empty_cell_size"></property>
|
||||||
<property name="aui_name"></property>
|
<property name="flexible_direction">wxBOTH</property>
|
||||||
<property name="aui_position">0</property>
|
<property name="growablecols">0,1</property>
|
||||||
<property name="aui_row">0</property>
|
<property name="growablerows">0,1</property>
|
||||||
<property name="best_size"></property>
|
<property name="hgap">0</property>
|
||||||
<property name="bg"></property>
|
<property name="minimum_size"></property>
|
||||||
<property name="caption"></property>
|
<property name="name">gbSizerOptions</property>
|
||||||
<property name="caption_visible">1</property>
|
<property name="non_flexible_grow_mode">wxFLEX_GROWMODE_SPECIFIED</property>
|
||||||
<property name="center_pane">0</property>
|
<property name="permission">none</property>
|
||||||
<property name="checked">0</property>
|
<property name="vgap">0</property>
|
||||||
<property name="close_button">1</property>
|
<object class="gbsizeritem" expanded="true">
|
||||||
<property name="context_help"></property>
|
<property name="border">5</property>
|
||||||
<property name="context_menu">1</property>
|
<property name="colspan">1</property>
|
||||||
<property name="default_pane">0</property>
|
<property name="column">0</property>
|
||||||
<property name="dock">Dock</property>
|
<property name="flag">wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT|wxLEFT</property>
|
||||||
<property name="dock_fixed">0</property>
|
<property name="row">0</property>
|
||||||
<property name="docking">Left</property>
|
<property name="rowspan">1</property>
|
||||||
<property name="drag_accept_files">0</property>
|
<object class="wxCheckBox" expanded="false">
|
||||||
<property name="enabled">1</property>
|
<property name="BottomDockable">1</property>
|
||||||
<property name="fg"></property>
|
<property name="LeftDockable">1</property>
|
||||||
<property name="floatable">1</property>
|
<property name="RightDockable">1</property>
|
||||||
<property name="font"></property>
|
<property name="TopDockable">1</property>
|
||||||
<property name="gripper">0</property>
|
<property name="aui_layer">0</property>
|
||||||
<property name="hidden">0</property>
|
<property name="aui_name"></property>
|
||||||
<property name="id">wxID_ANY</property>
|
<property name="aui_position">0</property>
|
||||||
<property name="label">Test for parity between PCB and schematic</property>
|
<property name="aui_row">0</property>
|
||||||
<property name="max_size"></property>
|
<property name="best_size"></property>
|
||||||
<property name="maximize_button">0</property>
|
<property name="bg"></property>
|
||||||
<property name="maximum_size"></property>
|
<property name="caption"></property>
|
||||||
<property name="min_size"></property>
|
<property name="caption_visible">1</property>
|
||||||
<property name="minimize_button">0</property>
|
<property name="center_pane">0</property>
|
||||||
<property name="minimum_size"></property>
|
<property name="checked">1</property>
|
||||||
<property name="moveable">1</property>
|
<property name="close_button">1</property>
|
||||||
<property name="name">m_cbTestFootprints</property>
|
<property name="context_help"></property>
|
||||||
<property name="pane_border">1</property>
|
<property name="context_menu">1</property>
|
||||||
<property name="pane_position"></property>
|
<property name="default_pane">0</property>
|
||||||
<property name="pane_size"></property>
|
<property name="dock">Dock</property>
|
||||||
<property name="permission">protected</property>
|
<property name="dock_fixed">0</property>
|
||||||
<property name="pin_button">1</property>
|
<property name="docking">Left</property>
|
||||||
<property name="pos"></property>
|
<property name="drag_accept_files">0</property>
|
||||||
<property name="resize">Resizable</property>
|
<property name="enabled">1</property>
|
||||||
<property name="show">1</property>
|
<property name="fg"></property>
|
||||||
<property name="size"></property>
|
<property name="floatable">1</property>
|
||||||
<property name="style"></property>
|
<property name="font"></property>
|
||||||
<property name="subclass">; forward_declare</property>
|
<property name="gripper">0</property>
|
||||||
<property name="toolbar_pane">0</property>
|
<property name="hidden">0</property>
|
||||||
<property name="tooltip"></property>
|
<property name="id">wxID_ANY</property>
|
||||||
<property name="validator_data_type"></property>
|
<property name="label">Refill all zones before performing DRC</property>
|
||||||
<property name="validator_style">wxFILTER_NONE</property>
|
<property name="max_size"></property>
|
||||||
<property name="validator_type">wxDefaultValidator</property>
|
<property name="maximize_button">0</property>
|
||||||
<property name="validator_variable"></property>
|
<property name="maximum_size"></property>
|
||||||
<property name="window_extra_style"></property>
|
<property name="min_size"></property>
|
||||||
<property name="window_name"></property>
|
<property name="minimize_button">0</property>
|
||||||
<property name="window_style"></property>
|
<property name="minimum_size"></property>
|
||||||
</object>
|
<property name="moveable">1</property>
|
||||||
</object>
|
<property name="name">m_cbRefillZones</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>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="gbsizeritem" expanded="true">
|
||||||
|
<property name="border">5</property>
|
||||||
|
<property name="colspan">1</property>
|
||||||
|
<property name="column">1</property>
|
||||||
|
<property name="flag">wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT|wxLEFT</property>
|
||||||
|
<property name="row">0</property>
|
||||||
|
<property name="rowspan">1</property>
|
||||||
|
<object class="wxCheckBox" expanded="false">
|
||||||
|
<property name="BottomDockable">1</property>
|
||||||
|
<property name="LeftDockable">1</property>
|
||||||
|
<property name="RightDockable">1</property>
|
||||||
|
<property name="TopDockable">1</property>
|
||||||
|
<property name="aui_layer">0</property>
|
||||||
|
<property name="aui_name"></property>
|
||||||
|
<property name="aui_position">0</property>
|
||||||
|
<property name="aui_row">0</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="drag_accept_files">0</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">Test for parity between PCB and schematic</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_cbTestFootprints</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>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="gbsizeritem" expanded="true">
|
||||||
|
<property name="border">5</property>
|
||||||
|
<property name="colspan">1</property>
|
||||||
|
<property name="column">2</property>
|
||||||
|
<property name="flag">wxALIGN_CENTER_VERTICAL</property>
|
||||||
|
<property name="row">0</property>
|
||||||
|
<property name="rowspan">2</property>
|
||||||
|
<object class="wxBitmapButton" expanded="true">
|
||||||
|
<property name="BottomDockable">1</property>
|
||||||
|
<property name="LeftDockable">1</property>
|
||||||
|
<property name="RightDockable">1</property>
|
||||||
|
<property name="TopDockable">1</property>
|
||||||
|
<property name="aui_layer">0</property>
|
||||||
|
<property name="aui_name"></property>
|
||||||
|
<property name="aui_position">0</property>
|
||||||
|
<property name="aui_row">0</property>
|
||||||
|
<property name="auth_needed">0</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="drag_accept_files">0</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">Refresh Grouping</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">30,30</property>
|
||||||
|
<property name="moveable">1</property>
|
||||||
|
<property name="name">m_bMenu</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">STD_BITMAP_BUTTON; widgets/std_bitmap_button.h; 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">OnMenu</event>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
|
@ -10,22 +10,26 @@
|
|||||||
#include <wx/artprov.h>
|
#include <wx/artprov.h>
|
||||||
#include <wx/xrc/xmlres.h>
|
#include <wx/xrc/xmlres.h>
|
||||||
#include <wx/intl.h>
|
#include <wx/intl.h>
|
||||||
|
class STD_BITMAP_BUTTON;
|
||||||
class WX_HTML_REPORT_BOX;
|
class WX_HTML_REPORT_BOX;
|
||||||
|
|
||||||
#include "dialog_shim.h"
|
#include "dialog_shim.h"
|
||||||
|
#include <wx/sizer.h>
|
||||||
|
#include <wx/gdicmn.h>
|
||||||
#include <wx/string.h>
|
#include <wx/string.h>
|
||||||
#include <wx/checkbox.h>
|
#include <wx/checkbox.h>
|
||||||
#include <wx/gdicmn.h>
|
|
||||||
#include <wx/font.h>
|
#include <wx/font.h>
|
||||||
#include <wx/colour.h>
|
#include <wx/colour.h>
|
||||||
#include <wx/settings.h>
|
#include <wx/settings.h>
|
||||||
#include <wx/sizer.h>
|
#include <wx/bmpbuttn.h>
|
||||||
#include <wx/html/htmlwin.h>
|
|
||||||
#include <wx/gauge.h>
|
|
||||||
#include <wx/panel.h>
|
|
||||||
#include <wx/bitmap.h>
|
#include <wx/bitmap.h>
|
||||||
#include <wx/image.h>
|
#include <wx/image.h>
|
||||||
#include <wx/icon.h>
|
#include <wx/icon.h>
|
||||||
|
#include <wx/button.h>
|
||||||
|
#include <wx/gbsizer.h>
|
||||||
|
#include <wx/html/htmlwin.h>
|
||||||
|
#include <wx/gauge.h>
|
||||||
|
#include <wx/panel.h>
|
||||||
#include <wx/notebook.h>
|
#include <wx/notebook.h>
|
||||||
#include <wx/dataview.h>
|
#include <wx/dataview.h>
|
||||||
#include <wx/listctrl.h>
|
#include <wx/listctrl.h>
|
||||||
@ -33,7 +37,6 @@ class WX_HTML_REPORT_BOX;
|
|||||||
#include <wx/simplebook.h>
|
#include <wx/simplebook.h>
|
||||||
#include <wx/stattext.h>
|
#include <wx/stattext.h>
|
||||||
#include <widgets/number_badge.h>
|
#include <widgets/number_badge.h>
|
||||||
#include <wx/button.h>
|
|
||||||
#include <wx/dialog.h>
|
#include <wx/dialog.h>
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
@ -48,8 +51,8 @@ class DIALOG_DRC_BASE : public DIALOG_SHIM
|
|||||||
|
|
||||||
protected:
|
protected:
|
||||||
wxCheckBox* m_cbRefillZones;
|
wxCheckBox* m_cbRefillZones;
|
||||||
wxCheckBox* m_cbReportAllTrackErrors;
|
|
||||||
wxCheckBox* m_cbTestFootprints;
|
wxCheckBox* m_cbTestFootprints;
|
||||||
|
STD_BITMAP_BUTTON* m_bMenu;
|
||||||
wxSimplebook* m_runningResultsBook;
|
wxSimplebook* m_runningResultsBook;
|
||||||
wxPanel* running;
|
wxPanel* running;
|
||||||
wxNotebook* m_runningNotebook;
|
wxNotebook* m_runningNotebook;
|
||||||
@ -85,6 +88,7 @@ class DIALOG_DRC_BASE : public DIALOG_SHIM
|
|||||||
// Virtual event handlers, override them in your derived class
|
// Virtual event handlers, override them in your derived class
|
||||||
virtual void OnActivateDlg( wxActivateEvent& event ) { event.Skip(); }
|
virtual void OnActivateDlg( wxActivateEvent& event ) { event.Skip(); }
|
||||||
virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
|
virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
|
||||||
|
virtual void OnMenu( wxCommandEvent& event ) { event.Skip(); }
|
||||||
virtual void OnErrorLinkClicked( wxHtmlLinkEvent& event ) { event.Skip(); }
|
virtual void OnErrorLinkClicked( wxHtmlLinkEvent& event ) { event.Skip(); }
|
||||||
virtual void OnChangingNotebookPage( wxNotebookEvent& event ) { event.Skip(); }
|
virtual void OnChangingNotebookPage( wxNotebookEvent& event ) { event.Skip(); }
|
||||||
virtual void OnDRCItemDClick( wxDataViewEvent& event ) { event.Skip(); }
|
virtual void OnDRCItemDClick( wxDataViewEvent& event ) { event.Skip(); }
|
||||||
|
@ -262,18 +262,18 @@ void PCB_BASE_FRAME::FocusOnItem( EDA_ITEM* aItem )
|
|||||||
FocusOnItem( static_cast<BOARD_ITEM*>( aItem ), UNDEFINED_LAYER );
|
FocusOnItem( static_cast<BOARD_ITEM*>( aItem ), UNDEFINED_LAYER );
|
||||||
}
|
}
|
||||||
|
|
||||||
void PCB_BASE_FRAME::FocusOnItem( BOARD_ITEM* aItem, PCB_LAYER_ID aLayer )
|
void PCB_BASE_FRAME::FocusOnItem( BOARD_ITEM* aItem, PCB_LAYER_ID aLayer, bool aAllowScroll )
|
||||||
{
|
{
|
||||||
std::vector<BOARD_ITEM*> items;
|
std::vector<BOARD_ITEM*> items;
|
||||||
|
|
||||||
if( aItem )
|
if( aItem )
|
||||||
items.push_back( aItem );
|
items.push_back( aItem );
|
||||||
|
|
||||||
FocusOnItems( items, aLayer );
|
FocusOnItems( items, aLayer, aAllowScroll );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void PCB_BASE_FRAME::FocusOnItems( std::vector<BOARD_ITEM*> aItems, PCB_LAYER_ID aLayer )
|
void PCB_BASE_FRAME::FocusOnItems( std::vector<BOARD_ITEM*> aItems, PCB_LAYER_ID aLayer, bool aAllowScroll )
|
||||||
{
|
{
|
||||||
static std::vector<KIID> lastBrightenedItemIDs;
|
static std::vector<KIID> lastBrightenedItemIDs;
|
||||||
|
|
||||||
@ -361,7 +361,7 @@ void PCB_BASE_FRAME::FocusOnItems( std::vector<BOARD_ITEM*> aItems, PCB_LAYER_ID
|
|||||||
case PCB_PAD_T:
|
case PCB_PAD_T:
|
||||||
case PCB_MARKER_T:
|
case PCB_MARKER_T:
|
||||||
case PCB_VIA_T:
|
case PCB_VIA_T:
|
||||||
FocusOnLocation( item->GetFocusPosition() );
|
FocusOnLocation( item->GetFocusPosition(), aAllowScroll );
|
||||||
GetCanvas()->Refresh();
|
GetCanvas()->Refresh();
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@ -449,7 +449,7 @@ void PCB_BASE_FRAME::FocusOnItems( std::vector<BOARD_ITEM*> aItems, PCB_LAYER_ID
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
FocusOnLocation( focusPt );
|
FocusOnLocation( focusPt, aAllowScroll );
|
||||||
|
|
||||||
GetCanvas()->Refresh();
|
GetCanvas()->Refresh();
|
||||||
}
|
}
|
||||||
|
@ -349,6 +349,15 @@ PCBNEW_SETTINGS::PCBNEW_SETTINGS()
|
|||||||
m_params.emplace_back( new PARAM<wxString>( "system.last_footprint3d_dir",
|
m_params.emplace_back( new PARAM<wxString>( "system.last_footprint3d_dir",
|
||||||
&m_LastFootprint3dDir, "" ) );
|
&m_LastFootprint3dDir, "" ) );
|
||||||
|
|
||||||
|
m_params.emplace_back( new PARAM<bool>( "DRC.report_all_track_errors",
|
||||||
|
&m_DRCDialog.report_all_track_errors, false ) );
|
||||||
|
|
||||||
|
m_params.emplace_back( new PARAM<bool>( "DRC.crossprobe",
|
||||||
|
&m_DRCDialog.crossprobe, true ) );
|
||||||
|
|
||||||
|
m_params.emplace_back( new PARAM<bool>( "DRC.scroll_on_crossprobe",
|
||||||
|
&m_DRCDialog.scroll_on_crossprobe, true ) );
|
||||||
|
|
||||||
registerMigration( 0, 1,
|
registerMigration( 0, 1,
|
||||||
[&]()
|
[&]()
|
||||||
{
|
{
|
||||||
|
@ -168,6 +168,13 @@ public:
|
|||||||
bool doNotExportUnconnectedPads;
|
bool doNotExportUnconnectedPads;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct DIALOG_DRC
|
||||||
|
{
|
||||||
|
bool report_all_track_errors;
|
||||||
|
bool crossprobe;
|
||||||
|
bool scroll_on_crossprobe;
|
||||||
|
};
|
||||||
|
|
||||||
struct FOOTPRINT_CHOOSER
|
struct FOOTPRINT_CHOOSER
|
||||||
{
|
{
|
||||||
// Footprint chooser is a FRAME, so there's no DIALOG_SHIM to save/restore control state
|
// Footprint chooser is a FRAME, so there's no DIALOG_SHIM to save/restore control state
|
||||||
@ -227,6 +234,7 @@ public:
|
|||||||
AUI_PANELS m_AuiPanels;
|
AUI_PANELS m_AuiPanels;
|
||||||
|
|
||||||
DIALOG_EXPORT_D356 m_ExportD356;
|
DIALOG_EXPORT_D356 m_ExportD356;
|
||||||
|
DIALOG_DRC m_DRCDialog;
|
||||||
FOOTPRINT_CHOOSER m_FootprintChooser;
|
FOOTPRINT_CHOOSER m_FootprintChooser;
|
||||||
|
|
||||||
ZONES m_Zones;
|
ZONES m_Zones;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user