KiCad PCB EDA Suite
DIALOG_DRC Class Reference

#include <dialog_drc.h>

Inheritance diagram for DIALOG_DRC:
DIALOG_DRC_BASE DIALOG_SHIM KIWAY_HOLDER

Public Types

enum  HOLDER_TYPE { DIALOG, FRAME, PANEL }
 

Public Member Functions

 DIALOG_DRC (DRC *aTester, PCB_EDIT_FRAME *aEditorFrame, wxWindow *aParent)
 Constructors. More...
 
 ~DIALOG_DRC ()
 
void SetMarkersProvider (RC_ITEMS_PROVIDER *aProvider)
 
void SetUnconnectedProvider (RC_ITEMS_PROVIDER *aProvider)
 
void SetFootprintsProvider (RC_ITEMS_PROVIDER *aProvider)
 
void SetInitialFocus (wxWindow *aWindow)
 Sets the window (usually a wxTextCtrl) that should be focused when the dialog is shown. More...
 
int ShowQuasiModal ()
 
void EndQuasiModal (int retCode)
 
bool IsQuasiModal ()
 
bool Show (bool show) override
 
bool Enable (bool enable) override
 
void OnPaint (wxPaintEvent &event)
 
EDA_UNITS GetUserUnits () const
 
HOLDER_TYPE GetType ()
 
KIWAYKiway () const
 Function Kiway returns a reference to the KIWAY that this object has an opportunity to participate in. More...
 
PROJECTPrj () const
 Function Prj returns a reference to the PROJECT "associated with" this KIWAY. More...
 
void SetKiway (wxWindow *aDest, KIWAY *aKiway)
 Function SetKiway. More...
 

Static Public Member Functions

static bool IsCtrl (int aChar, const wxKeyEvent &e)
 
static bool IsShiftCtrl (int aChar, const wxKeyEvent &e)
 
static void FixOSXCancelButtonIssue (wxWindow *aWindow)
 

Public Attributes

wxTextCtrl * m_MinWidthCtrl
 
wxTextCtrl * m_ViaMinCtrl
 
wxTextCtrl * m_uViaMinCtrl
 

Protected Member Functions

void FinishDialogSettings ()
 In all dialogs, we must call the same functions to fix minimal dlg size, the default position and perhaps some others to fix a few issues depending on Windows Managers this helper function does these calls. More...
 
void SetSizeInDU (int x, int y)
 Set the dialog to the given dimensions in "dialog units". More...
 
int HorizPixelsFromDU (int x)
 Convert an integer number of dialog units to pixels, horizontally. More...
 
int VertPixelsFromDU (int y)
 Convert an integer number of dialog units to pixels, vertically. More...
 
void ResetSize ()
 Clear the existing dialog size and position. More...
 

Protected Attributes

wxStaticText * m_MinWidthLabel
 
wxStaticText * m_MinWidthUnits
 
wxStaticText * m_ViaMinLabel
 
wxStaticText * m_ViaMinUnits
 
wxStaticText * m_uViaMinLabel
 
wxStaticText * m_uViaMinUnits
 
wxCheckBox * m_cbRefillZones
 
wxCheckBox * m_cbReportAllTrackErrors
 
wxCheckBox * m_cbReportTracksToZonesErrors
 
wxCheckBox * m_cbTestFootprints
 
wxTextCtrl * m_Messages
 
wxNotebook * m_Notebook
 
wxPanel * m_panelViolations
 
wxDataViewCtrl * m_markerDataView
 
wxDataViewCtrl * m_unconnectedDataView
 
wxPanel * m_panelFootprintWarnings
 
wxDataViewCtrl * m_footprintsDataView
 
wxStaticText * m_showLabel
 
wxCheckBox * m_showAll
 
wxCheckBox * m_showErrors
 
wxStaticBitmap * m_errorsBadge
 
wxCheckBox * m_showWarnings
 
wxStaticBitmap * m_warningsBadge
 
wxCheckBox * m_showExclusions
 
wxStaticBitmap * m_exclusionsBadge
 
wxButton * m_saveReport
 
wxStaticLine * m_staticline1
 
wxBoxSizer * m_sizerButtons
 
wxButton * m_DeleteCurrentMarkerButton
 
wxButton * m_DeleteAllMarkersButton
 
wxStdDialogButtonSizer * m_sdbSizer1
 
wxButton * m_sdbSizer1OK
 
wxButton * m_sdbSizer1Cancel
 
EDA_UNITS m_units
 
std::string m_hash_key
 
bool m_firstPaintEvent
 
wxWindow * m_initialFocusTarget
 
WX_EVENT_LOOPm_qmodal_loop
 
bool m_qmodal_showing
 
WDO_ENABLE_DISABLEm_qmodal_parent_disabler
 
EDA_BASE_FRAMEm_parentFrame
 
std::vector< wxWindow * > m_tabOrder
 

Private Member Functions

bool writeReport (const wxString &aFullFileName)
 Function writeReport outputs the MARKER items and unconnecte DRC_ITEMs with commentary to an open text file. More...
 
void initValues ()
 
void displayDRCValues ()
 
void setDRCParameters ()
 
void syncCheckboxes ()
 
void updateDisplayedCounts ()
 
void OnDRCItemSelected (wxDataViewEvent &aEvent) override
 
void OnDRCItemDClick (wxDataViewEvent &aEvent) override
 
void OnDRCItemRClick (wxDataViewEvent &aEvent) override
 
void OnSeverity (wxCommandEvent &aEvent) override
 
void OnSaveReport (wxCommandEvent &aEvent) override
 
void OnDeleteOneClick (wxCommandEvent &aEvent) override
 
void OnDeleteAllClick (wxCommandEvent &aEvent) override
 
void OnRunDRCClick (wxCommandEvent &aEvent) override
 
void OnCancelClick (wxCommandEvent &aEvent) override
 
void OnActivateDlg (wxActivateEvent &aEvent) override
 handler for activate event, updating data which can be modified outside the dialog (DRC parameters) More...
 
void OnChangingNotebookPage (wxNotebookEvent &aEvent) override
 
void deleteAllMarkers ()
 
void refreshBoardEditor ()
 
BOARD_DESIGN_SETTINGSbds ()
 

Private Attributes

BOARDm_currentBoard
 
DRCm_tester
 
PCB_EDIT_FRAMEm_brdEditor
 
wxString m_markersTitleTemplate
 
wxString m_unconnectedTitleTemplate
 
wxString m_footprintsTitleTemplate
 
UNIT_BINDER m_trackMinWidth
 
UNIT_BINDER m_viaMinSize
 
UNIT_BINDER m_uviaMinSize
 
RC_ITEMS_PROVIDERm_markersProvider
 
RC_TREE_MODELm_markerTreeModel
 
RC_ITEMS_PROVIDERm_unconnectedItemsProvider
 
RC_TREE_MODELm_unconnectedTreeModel
 
RC_ITEMS_PROVIDERm_footprintWarningsProvider
 
RC_TREE_MODELm_footprintWarningsTreeModel
 
int m_severities
 

Detailed Description

Definition at line 46 of file dialog_drc.h.

Member Enumeration Documentation

◆ HOLDER_TYPE

enum KIWAY_HOLDER::HOLDER_TYPE
inherited
Enumerator
DIALOG 
FRAME 
PANEL 

Definition at line 42 of file kiway_holder.h.

Constructor & Destructor Documentation

◆ DIALOG_DRC()

DIALOG_DRC::DIALOG_DRC ( DRC aTester,
PCB_EDIT_FRAME aEditorFrame,
wxWindow *  aParent 
)

Constructors.

Definition at line 45 of file dialog_drc.cpp.

45  :
46  DIALOG_DRC_BASE( aParent ),
48  m_viaMinSize( aEditorFrame, m_ViaMinLabel, m_ViaMinCtrl, m_ViaMinUnits, true ),
50  m_markersProvider( nullptr ),
51  m_markerTreeModel( nullptr ),
52  m_unconnectedItemsProvider( nullptr ),
53  m_unconnectedTreeModel( nullptr ),
54  m_footprintWarningsProvider( nullptr ),
57 {
58  SetName( DIALOG_DRC_WINDOW_NAME ); // Set a window name to be able to find it
59 
60  m_tester = aTester;
61  m_brdEditor = aEditorFrame;
63 
65  m_markerDataView->AssociateModel( m_markerTreeModel );
66 
69 
72 
73  m_Notebook->SetSelection( 0 );
74 
75  // We use a sdbSizer here to get the order right, which is platform-dependent
76  m_sdbSizer1OK->SetLabel( _( "Run DRC" ) );
77  m_sdbSizer1Cancel->SetLabel( _( "Close" ) );
78  m_sizerButtons->Layout();
79 
80  m_sdbSizer1OK->SetDefault();
81 
82  initValues();
84 
86 }
void initValues()
Definition: dialog_drc.cpp:136
UNIT_BINDER m_trackMinWidth
Definition: dialog_drc.h:105
void syncCheckboxes()
Definition: dialog_drc.cpp:173
wxButton * m_sdbSizer1Cancel
wxNotebook * m_Notebook
wxTextCtrl * m_ViaMinCtrl
RC_TREE_MODEL * m_markerTreeModel
Definition: dialog_drc.h:110
PCB_EDIT_FRAME * m_brdEditor
Definition: dialog_drc.h:99
void FinishDialogSettings()
In all dialogs, we must call the same functions to fix minimal dlg size, the default position and per...
UNIT_BINDER m_viaMinSize
Definition: dialog_drc.h:106
wxTextCtrl * m_MinWidthCtrl
RC_ITEMS_PROVIDER * m_markersProvider
Definition: dialog_drc.h:109
wxButton * m_sdbSizer1OK
BOARD * m_currentBoard
Definition: dialog_drc.h:97
RC_ITEMS_PROVIDER * m_unconnectedItemsProvider
Definition: dialog_drc.h:112
DRC * m_tester
Definition: dialog_drc.h:98
wxTextCtrl * m_uViaMinCtrl
wxStaticText * m_ViaMinUnits
wxDataViewCtrl * m_footprintsDataView
RC_ITEMS_PROVIDER * m_footprintWarningsProvider
Definition: dialog_drc.h:115
wxBoxSizer * m_sizerButtons
DIALOG_DRC_BASE(wxWindow *parent, wxWindowID id=wxID_ANY, const wxString &title=_("DRC Control"), const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxSize(-1,-1), long style=wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER)
wxStaticText * m_MinWidthLabel
RC_TREE_MODEL * m_footprintWarningsTreeModel
Definition: dialog_drc.h:116
#define DIALOG_DRC_WINDOW_NAME
Definition: dialog_drc.h:44
wxStaticText * m_MinWidthUnits
wxStaticText * m_ViaMinLabel
RC_TREE_MODEL * m_unconnectedTreeModel
Definition: dialog_drc.h:113
wxStaticText * m_uViaMinUnits
wxDataViewCtrl * m_unconnectedDataView
wxStaticText * m_uViaMinLabel
wxDataViewCtrl * m_markerDataView
UNIT_BINDER m_uviaMinSize
Definition: dialog_drc.h:107
#define _(s)
Definition: 3d_actions.cpp:33
int m_severities
Definition: dialog_drc.h:118
BOARD * GetBoard() const

References _, DIALOG_DRC_WINDOW_NAME, DIALOG_SHIM::FinishDialogSettings(), PCB_BASE_FRAME::GetBoard(), initValues(), m_brdEditor, m_currentBoard, DIALOG_DRC_BASE::m_footprintsDataView, m_footprintWarningsTreeModel, DIALOG_DRC_BASE::m_markerDataView, m_markerTreeModel, DIALOG_DRC_BASE::m_Notebook, DIALOG_DRC_BASE::m_sdbSizer1Cancel, DIALOG_DRC_BASE::m_sdbSizer1OK, DIALOG_DRC_BASE::m_sizerButtons, m_tester, DIALOG_DRC_BASE::m_unconnectedDataView, m_unconnectedTreeModel, and syncCheckboxes().

◆ ~DIALOG_DRC()

DIALOG_DRC::~DIALOG_DRC ( )

Definition at line 89 of file dialog_drc.cpp.

90 {
91  m_brdEditor->FocusOnItem( nullptr );
92 
94  settings->m_DrcDialog.refill_zones = m_cbRefillZones->GetValue();
96  settings->m_DrcDialog.test_footprints = m_cbTestFootprints->GetValue();
98 
99  m_markerTreeModel->DecRef();
100 }
wxCheckBox * m_cbTestFootprints
wxCheckBox * m_cbReportAllTrackErrors
RC_TREE_MODEL * m_markerTreeModel
Definition: dialog_drc.h:110
PCB_EDIT_FRAME * m_brdEditor
Definition: dialog_drc.h:99
PCBNEW_SETTINGS * GetPcbNewSettings()
wxCheckBox * m_cbRefillZones
int m_severities
Definition: dialog_drc.h:118
DIALOG_DRC m_DrcDialog
void FocusOnItem(BOARD_ITEM *aItem)

References PCB_BASE_FRAME::FocusOnItem(), PCB_BASE_FRAME::GetPcbNewSettings(), m_brdEditor, DIALOG_DRC_BASE::m_cbRefillZones, DIALOG_DRC_BASE::m_cbReportAllTrackErrors, DIALOG_DRC_BASE::m_cbTestFootprints, PCBNEW_SETTINGS::m_DrcDialog, m_markerTreeModel, m_severities, PCBNEW_SETTINGS::DIALOG_DRC::refill_zones, PCBNEW_SETTINGS::DIALOG_DRC::severities, PCBNEW_SETTINGS::DIALOG_DRC::test_footprints, and PCBNEW_SETTINGS::DIALOG_DRC::test_track_to_zone.

Member Function Documentation

◆ bds()

BOARD_DESIGN_SETTINGS& DIALOG_DRC::bds ( )
inlineprivate

Definition at line 95 of file dialog_drc.h.

95 { return m_currentBoard->GetDesignSettings(); }
BOARD_DESIGN_SETTINGS & GetDesignSettings() const
Function GetDesignSettings.
Definition: class_board.h:551
BOARD * m_currentBoard
Definition: dialog_drc.h:97

Referenced by displayDRCValues(), DRC::doTrackDrc(), OnDRCItemRClick(), and setDRCParameters().

◆ deleteAllMarkers()

void DIALOG_DRC::deleteAllMarkers ( )
private

Definition at line 511 of file dialog_drc.cpp.

512 {
513  // Clear current selection list to avoid selection of deleted items
515 
518 }
static TOOL_ACTION selectionClear
Clears the current selection.
Definition: pcb_actions.h:62
RC_TREE_MODEL * m_markerTreeModel
Definition: dialog_drc.h:110
PCB_EDIT_FRAME * m_brdEditor
Definition: dialog_drc.h:99
bool RunAction(const std::string &aActionName, bool aNow=false, T aParam=NULL)
Function RunAction() Runs the specified action.
Definition: tool_manager.h:140
RC_TREE_MODEL * m_unconnectedTreeModel
Definition: dialog_drc.h:113
void DeleteAllItems()
Definition: rc_item.cpp:406
TOOL_MANAGER * GetToolManager() const
Return the MVC controller.
Definition: tools_holder.h:74

References RC_TREE_MODEL::DeleteAllItems(), TOOLS_HOLDER::GetToolManager(), m_brdEditor, m_markerTreeModel, m_unconnectedTreeModel, TOOL_MANAGER::RunAction(), and PCB_ACTIONS::selectionClear.

Referenced by OnDeleteAllClick(), and OnRunDRCClick().

◆ displayDRCValues()

void DIALOG_DRC::displayDRCValues ( )
private

Definition at line 128 of file dialog_drc.cpp.

129 {
130  m_trackMinWidth.SetValue( bds().m_TrackMinWidth );
131  m_viaMinSize.SetValue( bds().m_ViasMinSize );
132  m_uviaMinSize.SetValue( bds().m_MicroViasMinSize );
133 }
UNIT_BINDER m_trackMinWidth
Definition: dialog_drc.h:105
BOARD_DESIGN_SETTINGS & bds()
Definition: dialog_drc.h:95
UNIT_BINDER m_viaMinSize
Definition: dialog_drc.h:106
UNIT_BINDER m_uviaMinSize
Definition: dialog_drc.h:107
virtual void SetValue(int aValue)
Function SetValue Sets new value (in Internal Units) for the text field, taking care of units convers...

References bds(), m_trackMinWidth, m_uviaMinSize, m_viaMinSize, and UNIT_BINDER::SetValue().

Referenced by initValues(), and OnActivateDlg().

◆ Enable()

bool DIALOG_SHIM::Enable ( bool  enable)
overrideinherited

Definition at line 267 of file dialog_shim.cpp.

268 {
269  // so we can do logging of this state change:
270 
271 #if 0 && defined(DEBUG)
272  const char* type_id = typeid( *this ).name();
273  printf( "DIALOG_SHIM %s: %s\n", type_id, enable ? "enabled" : "disabled" );
274  fflush(0); //Needed on msys2 to immediately print the message
275 #endif
276 
277  return wxDialog::Enable( enable );
278 }

◆ EndQuasiModal()

void DIALOG_SHIM::EndQuasiModal ( int  retCode)
inherited

Definition at line 397 of file dialog_shim.cpp.

398 {
399  // Hook up validator and transfer data from controls handling so quasi-modal dialogs
400  // handle validation in the same way as other dialogs.
401  if( ( retCode == wxID_OK ) && ( !Validate() || !TransferDataFromWindow() ) )
402  return;
403 
404  SetReturnCode( retCode );
405 
406  if( !IsQuasiModal() )
407  {
408  wxFAIL_MSG( "either DIALOG_SHIM::EndQuasiModal called twice or ShowQuasiModal"
409  "wasn't called" );
410  return;
411  }
412 
413  if( m_qmodal_loop )
414  {
415  if( m_qmodal_loop->IsRunning() )
416  m_qmodal_loop->Exit( 0 );
417  else
418  m_qmodal_loop->ScheduleExit( 0 );
419 
421  }
422 
425 
426  Show( false );
427 }
WX_EVENT_LOOP * m_qmodal_loop
Definition: dialog_shim.h:206
#define NULL
bool IsQuasiModal()
Definition: dialog_shim.h:123
bool Show(bool show) override
WDO_ENABLE_DISABLE * m_qmodal_parent_disabler
Definition: dialog_shim.h:209

References DIALOG_SHIM::IsQuasiModal(), DIALOG_SHIM::m_qmodal_loop, DIALOG_SHIM::m_qmodal_parent_disabler, NULL, and DIALOG_SHIM::Show().

Referenced by HK_PROMPT_DIALOG::EndFlexible(), DIALOG_SHIM::OnButton(), DIALOG_EDIT_COMPONENTS_LIBID::onCancel(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnCancelButtonClick(), DIALOG_EDIT_COMPONENT_IN_LIBRARY::OnCancelButtonClick(), DIALOG_LIB_EDIT_PIN_TABLE::OnClose(), DIALOG_PRINT_GENERIC::onCloseButton(), DIALOG_CHOOSE_FOOTPRINT::OnCloseTimer(), DIALOG_CHOOSE_COMPONENT::OnCloseTimer(), DIALOG_SHIM::OnCloseWindow(), HTML_MESSAGE_BOX::OnOKButtonClick(), DIALOG_CHOOSE_FOOTPRINT::OnUseBrowser(), DIALOG_CHOOSE_COMPONENT::OnUseBrowser(), and DIALOG_SHIM::~DIALOG_SHIM().

◆ FinishDialogSettings()

void DIALOG_SHIM::FinishDialogSettings ( )
protectedinherited

In all dialogs, we must call the same functions to fix minimal dlg size, the default position and perhaps some others to fix a few issues depending on Windows Managers this helper function does these calls.

FinishDialogSettings must be called from derived classes, when all widgets are initialized, and therefore their size fixed. If TransferDataToWindow() is used to initialize widgets, at end of TransferDataToWindow, or better at end of a wxInitDialogEvent handler

In any case, the best way is to call it in a wxInitDialogEvent handler after calling TransfertDataToWindow(), which is the default wxInitDialogEvent handler wxDialog

Definition at line 142 of file dialog_shim.cpp.

143 {
144  // must be called from the constructor of derived classes,
145  // when all widgets are initialized, and therefore their size fixed
146 
147  // SetSizeHints fixes the minimal size of sizers in the dialog
148  // (SetSizeHints calls Fit(), so no need to call it)
149  GetSizer()->SetSizeHints( this );
150 
151  // the default position, when calling the first time the dlg
152  Center();
153 }

References PCAD2KICAD::Center.

Referenced by DIALOG_3D_VIEW_OPTIONS::DIALOG_3D_VIEW_OPTIONS(), DIALOG_ANNOTATE::DIALOG_ANNOTATE(), DIALOG_BOARD_SETUP::DIALOG_BOARD_SETUP(), DIALOG_BOM::DIALOG_BOM(), DIALOG_COPPER_ZONE::DIALOG_COPPER_ZONE(), DIALOG_DRC(), DIALOG_EDIT_COMPONENT_IN_LIBRARY::DIALOG_EDIT_COMPONENT_IN_LIBRARY(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::DIALOG_EDIT_COMPONENT_IN_SCHEMATIC(), DIALOG_EDIT_COMPONENTS_LIBID::DIALOG_EDIT_COMPONENTS_LIBID(), DIALOG_EDIT_LINE_STYLE::DIALOG_EDIT_LINE_STYLE(), DIALOG_EDIT_SHEET_PIN::DIALOG_EDIT_SHEET_PIN(), DIALOG_EDITOR_DATA::DIALOG_EDITOR_DATA(), DIALOG_ENUM_PADS::DIALOG_ENUM_PADS(), DIALOG_ERC::DIALOG_ERC(), DIALOG_EXCHANGE_FOOTPRINTS::DIALOG_EXCHANGE_FOOTPRINTS(), DIALOG_EXPORT_3DFILE::DIALOG_EXPORT_3DFILE(), DIALOG_EXPORT_IDF3::DIALOG_EXPORT_IDF3(), DIALOG_EXPORT_STEP::DIALOG_EXPORT_STEP(), DIALOG_EXPORT_SVG::DIALOG_EXPORT_SVG(), DIALOG_FIELDS_EDITOR_GLOBAL::DIALOG_FIELDS_EDITOR_GLOBAL(), DIALOG_FOOTPRINT_BOARD_EDITOR::DIALOG_FOOTPRINT_BOARD_EDITOR(), DIALOG_FOOTPRINT_FP_EDITOR::DIALOG_FOOTPRINT_FP_EDITOR(), DIALOG_FOOTPRINT_WIZARD_LIST::DIALOG_FOOTPRINT_WIZARD_LIST(), DIALOG_GENCAD_EXPORT_OPTIONS::DIALOG_GENCAD_EXPORT_OPTIONS(), DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS::DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS(), DIALOG_GLOBAL_EDIT_TRACKS_AND_VIAS::DIALOG_GLOBAL_EDIT_TRACKS_AND_VIAS(), DIALOG_GLOBAL_LIB_TABLE_CONFIG::DIALOG_GLOBAL_LIB_TABLE_CONFIG(), DIALOG_GRID_SETTINGS::DIALOG_GRID_SETTINGS(), DIALOG_IMAGE_EDITOR::DIALOG_IMAGE_EDITOR(), DIALOG_INSPECTOR::DIALOG_INSPECTOR(), DIALOG_JUNCTION_PROPS::DIALOG_JUNCTION_PROPS(), DIALOG_KEEPOUT_AREA_PROPERTIES::DIALOG_KEEPOUT_AREA_PROPERTIES(), DIALOG_LABEL_EDITOR::DIALOG_LABEL_EDITOR(), DIALOG_LIB_EDIT_DRAW_ITEM::DIALOG_LIB_EDIT_DRAW_ITEM(), DIALOG_LIB_EDIT_PIN::DIALOG_LIB_EDIT_PIN(), DIALOG_LIB_EDIT_TEXT::DIALOG_LIB_EDIT_TEXT(), DIALOG_LIB_NEW_COMPONENT::DIALOG_LIB_NEW_COMPONENT(), DIALOG_LIST_HOTKEYS::DIALOG_LIST_HOTKEYS(), DIALOG_MOVE_EXACT::DIALOG_MOVE_EXACT(), DIALOG_NETLIST::DIALOG_NETLIST(), DIALOG_NON_COPPER_ZONES_EDITOR::DIALOG_NON_COPPER_ZONES_EDITOR(), DIALOG_PAD_PRIMITIVE_POLY_PROPS::DIALOG_PAD_PRIMITIVE_POLY_PROPS(), DIALOG_PAD_PRIMITIVES_PROPERTIES::DIALOG_PAD_PRIMITIVES_PROPERTIES(), DIALOG_PAD_PROPERTIES::DIALOG_PAD_PROPERTIES(), DIALOG_PASTE_SPECIAL::DIALOG_PASTE_SPECIAL(), DIALOG_PLOT_SCHEMATIC::DIALOG_PLOT_SCHEMATIC(), DIALOG_POSITION_RELATIVE::DIALOG_POSITION_RELATIVE(), DIALOG_PRINT_GENERIC::DIALOG_PRINT_GENERIC(), DIALOG_PRINT_USING_PRINTER::DIALOG_PRINT_USING_PRINTER(), DIALOG_PUSH_PAD_PROPERTIES::DIALOG_PUSH_PAD_PROPERTIES(), DIALOG_SCH_SHEET_PROPS::DIALOG_SCH_SHEET_PROPS(), DIALOG_SCHEMATIC_SETUP::DIALOG_SCHEMATIC_SETUP(), DIALOG_SELECT_NET_FROM_LIST::DIALOG_SELECT_NET_FROM_LIST(), DIALOG_SWAP_LAYERS::DIALOG_SWAP_LAYERS(), DIALOG_TARGET_PROPERTIES::DIALOG_TARGET_PROPERTIES(), DIALOG_TEXT_PROPERTIES::DIALOG_TEXT_PROPERTIES(), DIALOG_TRACK_VIA_PROPERTIES::DIALOG_TRACK_VIA_PROPERTIES(), DIALOG_TRACK_VIA_SIZE::DIALOG_TRACK_VIA_SIZE(), DIALOG_UPDATE_FROM_PCB::DIALOG_UPDATE_FROM_PCB(), DIALOG_UPDATE_PCB::DIALOG_UPDATE_PCB(), DLG_SELECT_3DMODEL::DLG_SELECT_3DMODEL(), PAGED_DIALOG::finishInitialization(), DIALOG_EDIT_ONE_FIELD::init(), DIALOG_EDIT_LIBRARY_TABLES::InstallPanel(), NETLIST_DIALOG::NETLIST_DIALOG(), DIALOG_GRAPHIC_ITEM_PROPERTIES::OnInitDlg(), DIALOG_SCH_SHEET_PROPS::OnInitDlg(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnInitDlg(), DIALOG_SIM_SETTINGS::onInitDlg(), DIALOG_SPICE_MODEL::onInitDlg(), DIALOG_SIGNAL_LIST::TransferDataToWindow(), DIALOG_UPDATE_FIELDS::TransferDataToWindow(), DIALOG_COLOR_PICKER::TransferDataToWindow(), and DIALOG_BOARD_STATISTICS::TransferDataToWindow().

◆ FixOSXCancelButtonIssue()

static void DIALOG_SHIM::FixOSXCancelButtonIssue ( wxWindow *  aWindow)
staticinherited

◆ GetType()

HOLDER_TYPE KIWAY_HOLDER::GetType ( )
inlineinherited

Definition at line 49 of file kiway_holder.h.

49 { return m_type; }
HOLDER_TYPE m_type
Definition: kiway_holder.h:82

References KIWAY_HOLDER::m_type.

Referenced by DIALOG_SHIM::DIALOG_SHIM().

◆ GetUserUnits()

◆ HorizPixelsFromDU()

int DIALOG_SHIM::HorizPixelsFromDU ( int  x)
protectedinherited

Convert an integer number of dialog units to pixels, horizontally.

See SetSizeInDU or wxDialog documentation for more information.

Definition at line 163 of file dialog_shim.cpp.

164 {
165  wxSize sz( x, 0 );
166  return ConvertDialogToPixels( sz ).x;
167 }

Referenced by DIALOG_CHOOSE_COMPONENT::DIALOG_CHOOSE_COMPONENT(), and DIALOG_CHOOSE_FOOTPRINT::DIALOG_CHOOSE_FOOTPRINT().

◆ initValues()

void DIALOG_DRC::initValues ( )
private

Definition at line 136 of file dialog_drc.cpp.

137 {
138  m_markersTitleTemplate = m_Notebook->GetPageText( 0 );
139  m_unconnectedTitleTemplate = m_Notebook->GetPageText( 1 );
140  m_footprintsTitleTemplate = m_Notebook->GetPageText( 2 );
141 
143 
144  auto cfg = m_brdEditor->GetPcbNewSettings();
145 
146  m_cbRefillZones->SetValue( cfg->m_DrcDialog.refill_zones );
147  m_cbReportAllTrackErrors->SetValue( cfg->m_DrcDialog.test_track_to_zone );
148  m_cbTestFootprints->SetValue( cfg->m_DrcDialog.test_footprints );
149 
150  m_severities = cfg->m_DrcDialog.severities;
154 
155  Layout(); // adding the units above expanded Clearance text, now resize.
156 
157  SetFocus();
158 }
wxCheckBox * m_cbTestFootprints
wxNotebook * m_Notebook
wxCheckBox * m_cbReportAllTrackErrors
RC_TREE_MODEL * m_markerTreeModel
Definition: dialog_drc.h:110
void displayDRCValues()
Definition: dialog_drc.cpp:128
PCB_EDIT_FRAME * m_brdEditor
Definition: dialog_drc.h:99
wxString m_footprintsTitleTemplate
Definition: dialog_drc.h:103
PCBNEW_SETTINGS * GetPcbNewSettings()
void SetSeverities(int aSeverities)
Definition: rc_item.cpp:212
wxString m_markersTitleTemplate
Definition: dialog_drc.h:101
wxCheckBox * m_cbRefillZones
RC_TREE_MODEL * m_footprintWarningsTreeModel
Definition: dialog_drc.h:116
RC_TREE_MODEL * m_unconnectedTreeModel
Definition: dialog_drc.h:113
int m_severities
Definition: dialog_drc.h:118
wxString m_unconnectedTitleTemplate
Definition: dialog_drc.h:102

References displayDRCValues(), PCB_BASE_FRAME::GetPcbNewSettings(), m_brdEditor, DIALOG_DRC_BASE::m_cbRefillZones, DIALOG_DRC_BASE::m_cbReportAllTrackErrors, DIALOG_DRC_BASE::m_cbTestFootprints, m_footprintsTitleTemplate, m_footprintWarningsTreeModel, m_markersTitleTemplate, m_markerTreeModel, DIALOG_DRC_BASE::m_Notebook, m_severities, m_unconnectedTitleTemplate, m_unconnectedTreeModel, and RC_TREE_MODEL::SetSeverities().

Referenced by DIALOG_DRC().

◆ IsCtrl()

static bool DIALOG_SHIM::IsCtrl ( int  aChar,
const wxKeyEvent &  e 
)
inlinestaticinherited

Definition at line 136 of file dialog_shim.h.

137  {
138  return e.GetKeyCode() == aChar && e.ControlDown() && !e.AltDown() &&
139  !e.ShiftDown() && !e.MetaDown();
140  }

Referenced by DIALOG_TEXT_PROPERTIES::OnCharHook().

◆ IsQuasiModal()

◆ IsShiftCtrl()

static bool DIALOG_SHIM::IsShiftCtrl ( int  aChar,
const wxKeyEvent &  e 
)
inlinestaticinherited

Definition at line 142 of file dialog_shim.h.

143  {
144  return e.GetKeyCode() == aChar && e.ControlDown() && !e.AltDown() &&
145  e.ShiftDown() && !e.MetaDown();
146  }

Referenced by DIALOG_TEXT_PROPERTIES::OnCharHook().

◆ Kiway()

KIWAY& KIWAY_HOLDER::Kiway ( ) const
inlineinherited

Function Kiway returns a reference to the KIWAY that this object has an opportunity to participate in.

A KIWAY_HOLDER is not necessarily a KIWAY_PLAYER.

Definition at line 56 of file kiway_holder.h.

57  {
58  wxASSERT( m_kiway ); // smoke out bugs in Debug build, then Release runs fine.
59  return *m_kiway;
60  }
KIWAY * m_kiway
Definition: kiway_holder.h:81

References KIWAY_HOLDER::m_kiway.

Referenced by TREEPROJECT_ITEM::Activate(), FOOTPRINT_VIEWER_FRAME::AddFootprintToPCB(), PCB_BASE_EDIT_FRAME::AddLibrary(), LIB_CONTROL::AddSymbolToSchematic(), CVPCB_MAINFRAME::BuildLIBRARY_LISTBOX(), COMMON_CONTROL::ConfigurePaths(), DIALOG_CHOOSE_FOOTPRINT::ConstructRightPanel(), DIALOG_CHOOSE_COMPONENT::ConstructRightPanel(), PCB_BASE_FRAME::CreateAndShow3D_Frame(), CVPCB_MAINFRAME::CVPCB_MAINFRAME(), DIALOG_RESCUE_EACH::DIALOG_RESCUE_EACH(), DIALOG_SHIM::DIALOG_SHIM(), CVPCB_MAINFRAME::DisplayStatus(), FIELDS_GRID_TRICKS::doPopupSelection(), FIELDS_EDITOR_GRID_TRICKS::doPopupSelection(), PCB_EDITOR_CONTROL::EditFpInFpEditor(), SCH_EDITOR_CONTROL::EditWithLibEdit(), BACK_ANNOTATE::FetchNetlistFromPCB(), DISPLAY_FOOTPRINTS_FRAME::GetModule(), PCB_EDIT_FRAME::importFile(), KICAD_MANAGER_FRAME::language_change(), KIWAY_PLAYER::language_change(), LIB_TREE_MODEL_ADAPTER::LIB_TREE_MODEL_ADAPTER(), CVPCB_MAINFRAME::LoadFootprintFiles(), KICAD_MANAGER_FRAME::LoadProject(), TEXT_BUTTON_SYMBOL_CHOOSER::OnButtonClick(), TEXT_BUTTON_FP_CHOOSER::OnButtonClick(), KICAD_MANAGER_FRAME::OnCloseWindow(), SCH_EDIT_FRAME::OnCloseWindow(), PL_EDITOR_FRAME::OnExit(), SCH_EDIT_FRAME::OnExit(), FOOTPRINT_EDIT_FRAME::OnExitKiCad(), FOOTPRINT_VIEWER_FRAME::OnExitKiCad(), LIB_EDIT_FRAME::OnExitKiCad(), SAVE_AS_TRAVERSER::OnFile(), KICAD_MANAGER_FRAME::OnImportEagleFiles(), DIALOG_CHOOSE_COMPONENT::OnInitDialog(), SCH_EDIT_FRAME::OnOpenCvpcb(), SCH_EDIT_FRAME::OnOpenPcbnew(), EDA_BASE_FRAME::OnPreferences(), DIALOG_SYMBOL_REMAP::OnRemapSymbols(), DIALOG_EDIT_ONE_FIELD::OnTextValueSelectButtonClick(), FOOTPRINT_EDIT_FRAME::OnUpdateInsertModuleInBoard(), FOOTPRINT_EDIT_FRAME::OnUpdateLoadModuleFromBoard(), SCH_EDIT_FRAME::OnUpdatePCB(), KIWAY_HOLDER::Prj(), CVPCB_MAINFRAME::ReadNetListAndFpFiles(), FOOTPRINT_VIEWER_FRAME::ReCreateFootprintList(), LIB_EDIT_FRAME::refreshSchematic(), SCH_EDITOR_CONTROL::rescueProject(), EE_INSPECTION_TOOL::RunSimulation(), CVPCB_MAINFRAME::SaveFootprintAssociation(), FOOTPRINT_EDIT_FRAME::SaveFootprintToBoard(), LIB_TREE_MODEL_ADAPTER::SavePinnedItems(), SCH_BASE_FRAME::SelectComponentFromLibBrowser(), SCH_EDIT_FRAME::SendCrossProbeClearHighlight(), SCH_EDIT_FRAME::SendCrossProbeNetName(), PCB_EDIT_FRAME::SendCrossProbeNetName(), CVPCB_MAINFRAME::SendMessageToEESCHEMA(), PCB_EDIT_FRAME::SendMessageToEESCHEMA(), SCH_EDIT_FRAME::SendMessageToPCBNEW(), SCH_EDIT_FRAME::sendNetlistToCvpcb(), SCH_EDIT_FRAME::SetCrossProbeConnection(), CVPCB_CONTROL::ShowFootprintViewer(), COMMON_CONTROL::ShowLibraryTable(), COMMON_CONTROL::ShowPlayer(), KICAD_MANAGER_CONTROL::ShowPlayer(), SIM_PLOT_FRAME::SIM_PLOT_FRAME(), PCB_EDITOR_CONTROL::UpdateSchematicFromPCB(), and DIALOG_EXCHANGE_FOOTPRINTS::ViewAndSelectFootprint().

◆ OnActivateDlg()

void DIALOG_DRC::OnActivateDlg ( wxActivateEvent &  aEvent)
overrideprivatevirtual

handler for activate event, updating data which can be modified outside the dialog (DRC parameters)

Reimplemented from DIALOG_DRC_BASE.

Definition at line 103 of file dialog_drc.cpp.

104 {
106  {
107  // If m_currentBoard is not the current parent board,
108  // (for instance because a new board was loaded),
109  // close the dialog, because many pointers are now invalid
110  // in lists
111  SetReturnCode( wxID_CANCEL );
112  Close();
113  m_tester->DestroyDRCDialog( wxID_CANCEL );
114  return;
115  }
116 
117  // updating data which can be modified outside the dialog (DRC parameters, units ...)
118  // because the dialog is not modal
120 
125 }
void DestroyDRCDialog(int aReason)
Deletes this ui dialog box and zeros out its pointer to remember the state of the dialog's existence.
void updateDisplayedCounts()
Definition: dialog_drc.cpp:604
void SetProvider(RC_ITEMS_PROVIDER *aProvider)
Definition: rc_item.cpp:206
RC_TREE_MODEL * m_markerTreeModel
Definition: dialog_drc.h:110
void displayDRCValues()
Definition: dialog_drc.cpp:128
PCB_EDIT_FRAME * m_brdEditor
Definition: dialog_drc.h:99
RC_ITEMS_PROVIDER * m_markersProvider
Definition: dialog_drc.h:109
BOARD * m_currentBoard
Definition: dialog_drc.h:97
RC_ITEMS_PROVIDER * m_unconnectedItemsProvider
Definition: dialog_drc.h:112
DRC * m_tester
Definition: dialog_drc.h:98
RC_ITEMS_PROVIDER * m_footprintWarningsProvider
Definition: dialog_drc.h:115
RC_TREE_MODEL * m_footprintWarningsTreeModel
Definition: dialog_drc.h:116
RC_TREE_MODEL * m_unconnectedTreeModel
Definition: dialog_drc.h:113
BOARD * GetBoard() const

References DRC::DestroyDRCDialog(), displayDRCValues(), PCB_BASE_FRAME::GetBoard(), m_brdEditor, m_currentBoard, m_footprintWarningsProvider, m_footprintWarningsTreeModel, m_markersProvider, m_markerTreeModel, m_tester, m_unconnectedItemsProvider, m_unconnectedTreeModel, RC_TREE_MODEL::SetProvider(), and updateDisplayedCounts().

◆ OnCancelClick()

void DIALOG_DRC::OnCancelClick ( wxCommandEvent &  aEvent)
overrideprivatevirtual

Reimplemented from DIALOG_DRC_BASE.

Definition at line 478 of file dialog_drc.cpp.

479 {
480  m_brdEditor->FocusOnItem( nullptr );
481 
482  SetReturnCode( wxID_CANCEL );
484 
485  // The dialog can be modal or not modal.
486  // Leave the DRC caller destroy (or not) the dialog
487  m_tester->DestroyDRCDialog( wxID_CANCEL );
488 }
void DestroyDRCDialog(int aReason)
Deletes this ui dialog box and zeros out its pointer to remember the state of the dialog's existence.
PCB_EDIT_FRAME * m_brdEditor
Definition: dialog_drc.h:99
DRC * m_tester
Definition: dialog_drc.h:98
void setDRCParameters()
Definition: dialog_drc.cpp:161
void FocusOnItem(BOARD_ITEM *aItem)

References DRC::DestroyDRCDialog(), PCB_BASE_FRAME::FocusOnItem(), m_brdEditor, m_tester, and setDRCParameters().

◆ OnChangingNotebookPage()

void DIALOG_DRC::OnChangingNotebookPage ( wxNotebookEvent &  aEvent)
overrideprivatevirtual

Reimplemented from DIALOG_DRC_BASE.

Definition at line 491 of file dialog_drc.cpp.

492 {
493  // Shouldn't be necessary, but is on at least OSX
494  if( aEvent.GetSelection() >= 0 )
495  m_Notebook->ChangeSelection( (unsigned) aEvent.GetSelection() );
496 
497  m_markerDataView->UnselectAll();
498  m_unconnectedDataView->UnselectAll();
499  m_footprintsDataView->UnselectAll();
500 }
wxNotebook * m_Notebook
wxDataViewCtrl * m_footprintsDataView
wxDataViewCtrl * m_unconnectedDataView
wxDataViewCtrl * m_markerDataView

References DIALOG_DRC_BASE::m_footprintsDataView, DIALOG_DRC_BASE::m_markerDataView, DIALOG_DRC_BASE::m_Notebook, and DIALOG_DRC_BASE::m_unconnectedDataView.

◆ OnDeleteAllClick()

void DIALOG_DRC::OnDeleteAllClick ( wxCommandEvent &  aEvent)
overrideprivatevirtual

Reimplemented from DIALOG_DRC_BASE.

Definition at line 595 of file dialog_drc.cpp.

596 {
598 
601 }
void updateDisplayedCounts()
Definition: dialog_drc.cpp:604
void refreshBoardEditor()
Definition: dialog_drc.cpp:503
void deleteAllMarkers()
Definition: dialog_drc.cpp:511

References deleteAllMarkers(), refreshBoardEditor(), and updateDisplayedCounts().

◆ OnDeleteOneClick()

void DIALOG_DRC::OnDeleteOneClick ( wxCommandEvent &  aEvent)
overrideprivatevirtual

Reimplemented from DIALOG_DRC_BASE.

Definition at line 570 of file dialog_drc.cpp.

571 {
572  if( m_Notebook->GetSelection() == 0 )
573  {
574  // Clear the selection. It may be the selected DRC marker.
576 
578 
579  // redraw the pcb
581  }
582  else if( m_Notebook->GetSelection() == 1 )
583  {
585  }
586  else if( m_Notebook->GetSelection() == 2 )
587  {
589  }
590 
592 }
static TOOL_ACTION selectionClear
Clears the current selection.
Definition: pcb_actions.h:62
wxNotebook * m_Notebook
void updateDisplayedCounts()
Definition: dialog_drc.cpp:604
RC_TREE_MODEL * m_markerTreeModel
Definition: dialog_drc.h:110
PCB_EDIT_FRAME * m_brdEditor
Definition: dialog_drc.h:99
void refreshBoardEditor()
Definition: dialog_drc.cpp:503
bool RunAction(const std::string &aActionName, bool aNow=false, T aParam=NULL)
Function RunAction() Runs the specified action.
Definition: tool_manager.h:140
void DeleteCurrentItem(bool aDeep)
Definition: rc_item.cpp:367
RC_TREE_MODEL * m_footprintWarningsTreeModel
Definition: dialog_drc.h:116
RC_TREE_MODEL * m_unconnectedTreeModel
Definition: dialog_drc.h:113
TOOL_MANAGER * GetToolManager() const
Return the MVC controller.
Definition: tools_holder.h:74

References RC_TREE_MODEL::DeleteCurrentItem(), TOOLS_HOLDER::GetToolManager(), m_brdEditor, m_footprintWarningsTreeModel, m_markerTreeModel, DIALOG_DRC_BASE::m_Notebook, m_unconnectedTreeModel, refreshBoardEditor(), TOOL_MANAGER::RunAction(), PCB_ACTIONS::selectionClear, and updateDisplayedCounts().

◆ OnDRCItemDClick()

void DIALOG_DRC::OnDRCItemDClick ( wxDataViewEvent &  aEvent)
overrideprivatevirtual

Reimplemented from DIALOG_DRC_BASE.

Definition at line 260 of file dialog_drc.cpp.

261 {
262  if( aEvent.GetItem().IsOk() )
263  {
264  // turn control over to m_brdEditor, hide this DIALOG_DRC window,
265  // no destruction so we can preserve listbox cursor
266  if( !IsModal() )
267  Show( false );
268  }
269 
270  aEvent.Skip();
271 }
bool Show(bool show) override

References DIALOG_SHIM::Show().

◆ OnDRCItemRClick()

void DIALOG_DRC::OnDRCItemRClick ( wxDataViewEvent &  aEvent)
overrideprivatevirtual

Reimplemented from DIALOG_DRC_BASE.

Definition at line 274 of file dialog_drc.cpp.

275 {
276  RC_TREE_NODE* node = RC_TREE_MODEL::ToNode( aEvent.GetItem() );
277 
278  if( !node )
279  return;
280 
281  RC_ITEM* rcItem = node->m_RcItem;
282  wxString listName;
283  wxMenu menu;
284  wxString msg;
285 
286  switch( bds().m_DRCSeverities[ rcItem->GetErrorCode() ] )
287  {
288  case RPT_SEVERITY_ERROR: listName = _( "errors" ); break;
289  case RPT_SEVERITY_WARNING: listName = _( "warnings" ); break;
290  default: listName = _( "appropriate" ); break;
291  }
292 
293  if( rcItem->GetParent()->IsExcluded() )
294  {
295  menu.Append( 1, _( "Remove exclusion for this violation" ),
296  wxString::Format( _( "It will be placed back in the %s list" ), listName ) );
297  }
298  else
299  {
300  menu.Append( 2, _( "Exclude this violation" ),
301  wxString::Format( _( "It will be excluded from the %s list" ), listName ) );
302  }
303 
304  menu.AppendSeparator();
305 
306  if( bds().m_DRCSeverities[ rcItem->GetErrorCode() ] == RPT_SEVERITY_WARNING )
307  {
308  msg.Printf( _( "Change severity to Error for all '%s' violations" ),
309  rcItem->GetErrorText(),
310  _( "Violation severities can also be edited in the Board Setup... dialog" ) );
311  menu.Append( 3, msg );
312  }
313  else
314  {
315  msg.Printf( _( "Change severity to Warning for all '%s' violations" ),
316  rcItem->GetErrorText(),
317  _( "Violation severities can also be edited in the Board Setup... dialog" ) );
318  menu.Append( 4, msg );
319  }
320 
321  msg.Printf( _( "Ignore all '%s' violations" ),
322  rcItem->GetErrorText(),
323  _( "Violations will not be checked or reported" ) );
324  menu.Append( 5, msg );
325 
326  menu.AppendSeparator();
327 
328  menu.Append( 6, _( "Edit violation severities..." ), _( "Open the Board Setup... dialog" ) );
329 
330  bool modified = false;
331 
332  switch( GetPopupMenuSelectionFromUser( menu ) )
333  {
334  case 1:
335  node->m_RcItem->GetParent()->SetExcluded( false );
336 
337  // Update view
338  static_cast<RC_TREE_MODEL*>( aEvent.GetModel() )->ValueChanged( node );
339  modified = true;
340  break;
341 
342  case 2:
343  node->m_RcItem->GetParent()->SetExcluded( true );
344 
345  // Update view
347  static_cast<RC_TREE_MODEL*>( aEvent.GetModel() )->ValueChanged( node );
348  else
349  static_cast<RC_TREE_MODEL*>( aEvent.GetModel() )->DeleteCurrentItem( false );
350 
351  modified = true;
352  break;
353 
354  case 3:
356 
357  // Rebuild model and view
358  static_cast<RC_TREE_MODEL*>( aEvent.GetModel() )->SetProvider( m_markersProvider );
359  modified = true;
360  break;
361 
362  case 4:
364 
365  // Rebuild model and view
366  static_cast<RC_TREE_MODEL*>( aEvent.GetModel() )->SetProvider( m_markersProvider );
367  modified = true;
368  break;
369 
370  case 5:
371  {
373 
374  std::vector<MARKER_PCB*>& markers = m_brdEditor->GetBoard()->Markers();
376 
377  for( unsigned i = 0; i < markers.size(); )
378  {
379  if( markers[i]->GetRCItem()->GetErrorCode() == rcItem->GetErrorCode() )
380  {
381  view->Remove( markers.at( i ) );
382  markers.erase( markers.begin() + i );
383  }
384  else
385  ++i;
386  }
387 
388  // Rebuild model and view
389  static_cast<RC_TREE_MODEL*>( aEvent.GetModel() )->SetProvider( m_markersProvider );
390  modified = true;
391  }
392  break;
393 
394  case 6:
395  m_brdEditor->ShowBoardSetupDialog( _( "Violation Severity" ) );
396  break;
397  }
398 
399  if( modified )
400  {
404  }
405 }
void OnModify() override
Function OnModify must be called after a board change to set the modified flag.
KIGFX::VIEW * GetView() const
Definition: tool_manager.h:284
void updateDisplayedCounts()
Definition: dialog_drc.cpp:604
BOARD_DESIGN_SETTINGS & bds()
Definition: dialog_drc.h:95
std::map< int, int > m_DRCSeverities
RC_ITEM is a holder for a DRC (in Pcbnew) or ERC (in Eeschema) error item.
Definition: rc_item.h:77
PCB_EDIT_FRAME * m_brdEditor
Definition: dialog_drc.h:99
MARKERS & Markers()
Definition: class_board.h:285
virtual void Remove(VIEW_ITEM *aItem)
Function Remove() Removes a VIEW_ITEM from the view.
Definition: view.cpp:376
RC_ITEMS_PROVIDER * m_markersProvider
Definition: dialog_drc.h:109
wxString GetErrorText() const
Definition: rc_item.h:169
void SetExcluded(bool aExcluded)
Definition: marker_base.h:109
static RC_TREE_NODE * ToNode(wxDataViewItem aItem)
Definition: rc_item.h:220
EDA_BASE_FRAME * m_parentFrame
Definition: dialog_shim.h:211
int GetErrorCode() const
Definition: rc_item.h:160
bool IsExcluded() const
Definition: marker_base.h:108
void SyncToolbars() override
Update the toolbars (mostly settings/check buttons/checkboxes) with the current controller state.
RC_ITEM * m_RcItem
Definition: rc_item.h:205
void Format(OUTPUTFORMATTER *out, int aNestLevel, int aCtl, CPTREE &aTree)
Function Format outputs a PTREE into s-expression format via an OUTPUTFORMATTER derivative.
Definition: ptree.cpp:205
#define _(s)
Definition: 3d_actions.cpp:33
MARKER_BASE * GetParent() const
Definition: rc_item.h:149
int m_severities
Definition: dialog_drc.h:118
TOOL_MANAGER * GetToolManager() const
Return the MVC controller.
Definition: tools_holder.h:74
BOARD * GetBoard() const
VIEW.
Definition: view.h:61
void ShowBoardSetupDialog(const wxString &aInitialPage=wxEmptyString, const wxString &aErrorMsg=wxEmptyString, int aErrorCtrlId=-1, int aErrorLine=-1, int aErrorCol=-1)
Function ShowBoardSetupDialog.

References _, bds(), Format(), PCB_BASE_FRAME::GetBoard(), RC_ITEM::GetErrorCode(), RC_ITEM::GetErrorText(), RC_ITEM::GetParent(), TOOLS_HOLDER::GetToolManager(), TOOL_MANAGER::GetView(), MARKER_BASE::IsExcluded(), m_brdEditor, BOARD_DESIGN_SETTINGS::m_DRCSeverities, m_markersProvider, DIALOG_SHIM::m_parentFrame, RC_TREE_NODE::m_RcItem, m_severities, BOARD::Markers(), PCB_EDIT_FRAME::OnModify(), KIGFX::VIEW::Remove(), RPT_SEVERITY_ERROR, RPT_SEVERITY_EXCLUSION, RPT_SEVERITY_IGNORE, RPT_SEVERITY_WARNING, MARKER_BASE::SetExcluded(), PCB_EDIT_FRAME::ShowBoardSetupDialog(), PCB_EDIT_FRAME::SyncToolbars(), RC_TREE_MODEL::ToNode(), and updateDisplayedCounts().

◆ OnDRCItemSelected()

void DIALOG_DRC::OnDRCItemSelected ( wxDataViewEvent &  aEvent)
overrideprivatevirtual

Reimplemented from DIALOG_DRC_BASE.

Definition at line 237 of file dialog_drc.cpp.

238 {
239  const KIID& itemID = RC_TREE_MODEL::ToUUID( aEvent.GetItem() );
240  BOARD_ITEM* item = m_brdEditor->GetBoard()->GetItem( itemID );
241  LSET visibleLayers = m_brdEditor->GetBoard()->GetVisibleLayers();
242  WINDOW_THAWER thawer( m_brdEditor );
243 
244  if( item && ( item->GetLayerSet() & visibleLayers ) == 0 )
245  {
246  if( IsOK( this, wxString::Format( _( "Item not currently visible.\nShow the '%s' layer?" ),
247  item->GetLayerName() ) ) )
248  {
249  m_brdEditor->GetLayerManager()->SetLayerVisible( item->GetLayer(), true );
250  }
251  }
252 
253  m_brdEditor->FocusOnItem( item );
255 
256  aEvent.Skip();
257 }
BOARD_ITEM is a base class for any item which can be embedded within the BOARD container class,...
PCB_EDIT_FRAME * m_brdEditor
Definition: dialog_drc.h:99
PCB_DRAW_PANEL_GAL * GetCanvas() const override
Return a pointer to GAL-based canvas of given EDA draw frame.
LSET GetVisibleLayers() const
Function GetVisibleLayers is a proxy function that calls the correspondent function in m_BoardSetting...
static KIID ToUUID(wxDataViewItem aItem)
Definition: rc_item.cpp:91
BOARD_ITEM * GetItem(const KIID &aID)
Definition: common.h:68
LSET is a set of PCB_LAYER_IDs.
PCB_LAYER_WIDGET * GetLayerManager()
virtual void Refresh(bool aEraseBackground=true, const wxRect *aRect=NULL) override
Update the board display after modifying it by a python script (note: it is automatically called by a...
void Format(OUTPUTFORMATTER *out, int aNestLevel, int aCtl, CPTREE &aTree)
Function Format outputs a PTREE into s-expression format via an OUTPUTFORMATTER derivative.
Definition: ptree.cpp:205
#define _(s)
Definition: 3d_actions.cpp:33
void SetLayerVisible(LAYER_NUM aLayer, bool isVisible)
Function SetLayerVisible sets aLayer visible or not.
BOARD * GetBoard() const
bool IsOK(wxWindow *aParent, const wxString &aMessage)
Display a yes/no dialog with aMessage and returns the user response.
Definition: confirm.cpp:283
void FocusOnItem(BOARD_ITEM *aItem)

References _, PCB_BASE_FRAME::FocusOnItem(), Format(), PCB_BASE_FRAME::GetBoard(), PCB_BASE_FRAME::GetCanvas(), BOARD::GetItem(), PCB_EDIT_FRAME::GetLayerManager(), BOARD::GetVisibleLayers(), IsOK(), m_brdEditor, EDA_DRAW_PANEL_GAL::Refresh(), LAYER_WIDGET::SetLayerVisible(), and RC_TREE_MODEL::ToUUID().

◆ OnPaint()

void DIALOG_SHIM::OnPaint ( wxPaintEvent &  event)
inherited

Definition at line 300 of file dialog_shim.cpp.

301 {
302  if( m_firstPaintEvent )
303  {
305 
306  selectAllInTextCtrls( GetChildren() );
307 
309  m_initialFocusTarget->SetFocus();
310  else
311  SetFocus(); // Focus the dialog itself
312 
313  m_firstPaintEvent = false;
314  }
315 
316  event.Skip();
317 }
wxWindow * m_initialFocusTarget
Definition: dialog_shim.h:204
bool m_firstPaintEvent
Definition: dialog_shim.h:203
void FixupCancelButtonCmdKeyCollision(wxWindow *aWindow)
Definition: gtk/ui.cpp:38
static void selectAllInTextCtrls(wxWindowList &children)

References KIPLATFORM::UI::FixupCancelButtonCmdKeyCollision(), DIALOG_SHIM::m_firstPaintEvent, DIALOG_SHIM::m_initialFocusTarget, and selectAllInTextCtrls().

Referenced by DIALOG_SHIM::DIALOG_SHIM().

◆ OnRunDRCClick()

void DIALOG_DRC::OnRunDRCClick ( wxCommandEvent &  aEvent)
overrideprivatevirtual

Reimplemented from DIALOG_DRC_BASE.

Definition at line 182 of file dialog_drc.cpp.

183 {
186  m_tester->m_refillZones = m_cbRefillZones->GetValue();
189 
192 
193  wxBeginBusyCursor();
194  wxWindowDisabler disabler;
195 
196  // run all the tests, with no UI at this time.
197  m_Messages->Clear();
198  wxSafeYield(); // Allows time slice to refresh the Messages
200 
201  m_Notebook->ChangeSelection( 0 ); // display the "Problems/Markers" tab
202 
203  wxEndBusyCursor();
204 
206 
207  wxSafeYield();
208  Raise();
209  m_Notebook->GetPage( m_Notebook->GetSelection() )->SetFocus();
210 }
bool m_refillZones
Definition: drc.h:120
wxCheckBox * m_cbTestFootprints
wxNotebook * m_Notebook
wxCheckBox * m_cbReportAllTrackErrors
PCB_EDIT_FRAME * m_brdEditor
Definition: dialog_drc.h:99
void refreshBoardEditor()
Definition: dialog_drc.cpp:503
void RecordDRCExclusions()
Scan existing markers and record data from any that are Excluded.
DRC * m_tester
Definition: dialog_drc.h:98
bool m_testFootprints
Definition: drc.h:122
wxCheckBox * m_cbRefillZones
void deleteAllMarkers()
Definition: dialog_drc.cpp:511
bool m_reportAllTrackErrors
Definition: drc.h:121
bool m_testTracksAgainstZones
Definition: drc.h:118
wxCheckBox * m_cbReportTracksToZonesErrors
void setDRCParameters()
Definition: dialog_drc.cpp:161
void RunTests(wxTextCtrl *aMessages=NULL)
Run all the tests specified with a previous call to SetSettings()
wxTextCtrl * m_Messages

References deleteAllMarkers(), m_brdEditor, DIALOG_DRC_BASE::m_cbRefillZones, DIALOG_DRC_BASE::m_cbReportAllTrackErrors, DIALOG_DRC_BASE::m_cbReportTracksToZonesErrors, DIALOG_DRC_BASE::m_cbTestFootprints, DIALOG_DRC_BASE::m_Messages, DIALOG_DRC_BASE::m_Notebook, DRC::m_refillZones, DRC::m_reportAllTrackErrors, m_tester, DRC::m_testFootprints, DRC::m_testTracksAgainstZones, PCB_EDIT_FRAME::RecordDRCExclusions(), refreshBoardEditor(), DRC::RunTests(), and setDRCParameters().

◆ OnSaveReport()

void DIALOG_DRC::OnSaveReport ( wxCommandEvent &  aEvent)
overrideprivatevirtual

Reimplemented from DIALOG_DRC_BASE.

Definition at line 444 of file dialog_drc.cpp.

445 {
446  wxFileName fn( "./DRC." + ReportFileExtension );
447 
448  wxFileDialog dlg( this, _( "Save Report to File" ), fn.GetPath(), fn.GetFullName(),
449  ReportFileWildcard(), wxFD_SAVE | wxFD_OVERWRITE_PROMPT );
450 
451  if( dlg.ShowModal() != wxID_OK )
452  return;
453 
454  fn = dlg.GetPath();
455 
456  if( fn.GetExt().IsEmpty() )
457  fn.SetExt( ReportFileExtension );
458 
459  if( !fn.IsAbsolute() )
460  {
461  wxString prj_path = Prj().GetProjectPath();
462  fn.MakeAbsolute( prj_path );
463  }
464 
465  if( writeReport( fn.GetFullPath() ) )
466  {
467  m_Messages->AppendText( wxString::Format( _( "Report file '%s' created\n" ),
468  fn.GetFullPath() ) );
469  }
470  else
471  {
472  DisplayError( this, wxString::Format( _( "Unable to create report file '%s'" ),
473  fn.GetFullPath() ) );
474  }
475 }
void DisplayError(wxWindow *aParent, const wxString &aText, int aDisplayTime)
Display an error or warning message box with aMessage.
Definition: confirm.cpp:239
bool writeReport(const wxString &aFullFileName)
Function writeReport outputs the MARKER items and unconnecte DRC_ITEMs with commentary to an open tex...
Definition: dialog_drc.cpp:521
VTBL_ENTRY const wxString GetProjectPath() const
Function GetProjectPath returns the full path of the project.
Definition: project.cpp:122
wxString ReportFileWildcard()
PROJECT & Prj() const
Function Prj returns a reference to the PROJECT "associated with" this KIWAY.
void Format(OUTPUTFORMATTER *out, int aNestLevel, int aCtl, CPTREE &aTree)
Function Format outputs a PTREE into s-expression format via an OUTPUTFORMATTER derivative.
Definition: ptree.cpp:205
const std::string ReportFileExtension
#define _(s)
Definition: 3d_actions.cpp:33
wxTextCtrl * m_Messages

References _, DisplayError(), Format(), PROJECT::GetProjectPath(), DIALOG_DRC_BASE::m_Messages, KIWAY_HOLDER::Prj(), ReportFileExtension, ReportFileWildcard(), and writeReport().

◆ OnSeverity()

void DIALOG_DRC::OnSeverity ( wxCommandEvent &  aEvent)
overrideprivatevirtual

Reimplemented from DIALOG_DRC_BASE.

Definition at line 408 of file dialog_drc.cpp.

409 {
410  int flag = 0;
411 
412  if( aEvent.GetEventObject() == m_showAll )
413  flag = RPT_SEVERITY_ALL;
414  else if( aEvent.GetEventObject() == m_showErrors )
415  flag = RPT_SEVERITY_ERROR;
416  else if( aEvent.GetEventObject() == m_showWarnings )
417  flag = RPT_SEVERITY_WARNING;
418  else if( aEvent.GetEventObject() == m_showExclusions )
419  flag = RPT_SEVERITY_EXCLUSION;
420 
421  if( aEvent.IsChecked() )
422  m_severities |= flag;
423  else if( aEvent.GetEventObject() == m_showAll )
425  else
426  m_severities &= ~flag;
427 
428  syncCheckboxes();
429 
430  // Set the provider's severity levels through the TreeModel so that the old tree
431  // can be torn down before the severity changes.
432  //
433  // It's not clear this is required, but we've had a lot of issues with wxDataView
434  // being cranky on various platforms.
435 
439 
441 }
wxCheckBox * m_showWarnings
void syncCheckboxes()
Definition: dialog_drc.cpp:173
void updateDisplayedCounts()
Definition: dialog_drc.cpp:604
static int RPT_SEVERITY_ALL
Definition: dialog_drc.cpp:170
RC_TREE_MODEL * m_markerTreeModel
Definition: dialog_drc.h:110
void SetSeverities(int aSeverities)
Definition: rc_item.cpp:212
wxCheckBox * m_showExclusions
RC_TREE_MODEL * m_footprintWarningsTreeModel
Definition: dialog_drc.h:116
RC_TREE_MODEL * m_unconnectedTreeModel
Definition: dialog_drc.h:113
wxCheckBox * m_showErrors
wxCheckBox * m_showAll
int m_severities
Definition: dialog_drc.h:118

References m_footprintWarningsTreeModel, m_markerTreeModel, m_severities, DIALOG_DRC_BASE::m_showAll, DIALOG_DRC_BASE::m_showErrors, DIALOG_DRC_BASE::m_showExclusions, DIALOG_DRC_BASE::m_showWarnings, m_unconnectedTreeModel, RPT_SEVERITY_ALL, RPT_SEVERITY_ERROR, RPT_SEVERITY_EXCLUSION, RPT_SEVERITY_WARNING, RC_TREE_MODEL::SetSeverities(), syncCheckboxes(), and updateDisplayedCounts().

◆ Prj()

PROJECT & KIWAY_HOLDER::Prj ( ) const
inherited

Function Prj returns a reference to the PROJECT "associated with" this KIWAY.

Definition at line 35 of file kiway_holder.cpp.

36 {
37  return Kiway().Prj();
38 }
KIWAY & Kiway() const
Function Kiway returns a reference to the KIWAY that this object has an opportunity to participate in...
Definition: kiway_holder.h:56
VTBL_ENTRY PROJECT & Prj() const
Function Prj returns the PROJECT associated with this KIWAY.
Definition: kiway.cpp:172

References KIWAY_HOLDER::Kiway(), and KIWAY::Prj().

Referenced by PCB_BASE_EDIT_FRAME::AddLibrary(), LIB_MANAGER::addLibrary(), SCH_EDIT_FRAME::AppendSchematic(), PCB_EDIT_FRAME::ArchiveModulesOnBoard(), DIALOG_SYMBOL_REMAP::backupProject(), CVPCB_MAINFRAME::buildEquivalenceList(), CVPCB_MAINFRAME::BuildLIBRARY_LISTBOX(), DIALOG_FOOTPRINT_FP_EDITOR::Cfg3DPath(), DIALOG_FOOTPRINT_BOARD_EDITOR::Cfg3DPath(), DIALOG_GEN_FOOTPRINT_POSITION::CreateGerberFiles(), PCB_BASE_EDIT_FRAME::CreateNewLibrary(), DIALOG_PLOT_SCHEMATIC::createPlotFileName(), DIALOG_SYMBOL_REMAP::createProjectSymbolLibTable(), SCH_EDIT_FRAME::CreateScreens(), FOOTPRINT_EDIT_FRAME::DeleteModuleFromLibrary(), DIALOG_BOARD_SETUP::DIALOG_BOARD_SETUP(), DIALOG_BOARD_STATISTICS::DIALOG_BOARD_STATISTICS(), DIALOG_CHOOSE_COMPONENT::DIALOG_CHOOSE_COMPONENT(), DIALOG_CHOOSE_FOOTPRINT::DIALOG_CHOOSE_FOOTPRINT(), DIALOG_CONFIG_EQUFILES::DIALOG_CONFIG_EQUFILES(), DIALOG_FOOTPRINT_BOARD_EDITOR::DIALOG_FOOTPRINT_BOARD_EDITOR(), DIALOG_FOOTPRINT_FP_EDITOR::DIALOG_FOOTPRINT_FP_EDITOR(), DIALOG_PAGES_SETTINGS::DIALOG_PAGES_SETTINGS(), DIALOG_SCHEMATIC_SETUP::DIALOG_SCHEMATIC_SETUP(), DIALOG_SYMBOL_REMAP::DIALOG_SYMBOL_REMAP(), LIB_VIEW_FRAME::DisplayLibInfos(), CVPCB_MAINFRAME::DisplayStatus(), PL_DRAW_PANEL_GAL::DisplayWorksheet(), PCB_EDIT_FRAME::doAutoSave(), FIELDS_GRID_TRICKS::doPopupSelection(), FIELDS_EDITOR_GRID_TRICKS::doPopupSelection(), KICAD_MANAGER_CONTROL::Execute(), PCB_EDIT_FRAME::Export_IDF3(), DIALOG_EXPORT_SVG::ExportSVGFile(), LIB_CONTROL::ExportSymbolAsSVG(), LIB_CONTROL::ExportView(), PCB_EDIT_FRAME::ExportVRML_File(), PCB_EDIT_FRAME::Files_io_from_id(), PCB_EDIT_FRAME::GenD356File(), DIALOG_GENDRILL::GenDrillAndMapFiles(), FOOTPRINT_VIEWER_FRAME::getCurFootprintName(), LIB_EDIT_FRAME::GetCurLib(), FOOTPRINT_VIEWER_FRAME::getCurNickname(), SCH_BASE_FRAME::GetLibPart(), DIALOG_SYMBOL_REMAP::getLibsNotInGlobalSymbolLibTable(), DISPLAY_FOOTPRINTS_FRAME::GetModule(), KICAD_MANAGER_FRAME::GetProjectFileName(), LIB_VIEW_FRAME::GetSelectedSymbol(), FP_THREAD_IFACE::GetTable(), PCB_EDIT_FRAME::importFile(), SCH_EDIT_FRAME::importFile(), SCH_EDITOR_CONTROL::ImportFPAssignments(), DIALOG_CONFIG_EQUFILES::Init(), FOOTPRINT_EDIT_FRAME::initLibraryTree(), LIB_EDIT_FRAME::KiwayMailIn(), EDA_DRAW_FRAME::LibraryFileBrowser(), LIB_EDIT_FRAME::LoadComponentFromCurrentLib(), CVPCB_MAINFRAME::LoadFootprintFiles(), DIALOG_SPICE_MODEL::loadLibrary(), LIB_EDIT_FRAME::LoadOneSymbol(), KICAD_MANAGER_FRAME::LoadProject(), SCH_EDIT_FRAME::LoadProject(), SCH_EDIT_FRAME::LoadProjectSettings(), PCB_EDIT_FRAME::LoadProjectSettings(), DRC::LoadRules(), SCH_EDIT_FRAME::LoadSheetFromFile(), DIALOG_FOOTPRINT_FP_EDITOR::On3DModelCellChanged(), DIALOG_FOOTPRINT_BOARD_EDITOR::On3DModelCellChanged(), FOOTPRINT_VIEWER_FRAME::OnActivate(), DIALOG_FOOTPRINT_FP_EDITOR::OnAdd3DModel(), DIALOG_FOOTPRINT_BOARD_EDITOR::OnAdd3DModel(), KICAD_MANAGER_FRAME::OnBrowseInFileExplorer(), TEXT_BUTTON_URL::OnButtonClick(), TEXT_BUTTON_FILE_BROWSER::OnButtonClick(), DIALOG_EDIT_COMPONENTS_LIBID::onClickOrphansButton(), SCH_EDIT_FRAME::OnCloseWindow(), DIALOG_GENDRILL::OnGenReportFile(), SCH_EDIT_FRAME::OnImportProject(), DIALOG_CHOOSE_COMPONENT::OnInitDialog(), DIALOG_CONFIG_EQUFILES::OnOkClick(), SCH_EDIT_FRAME::OnOpenCvpcb(), KICAD_MANAGER_FRAME::OnOpenFileInTextEditor(), DIALOG_NETLIST::OnOpenNetlistClick(), SCH_EDIT_FRAME::OnOpenPcbnew(), DIALOG_EXPORT_SVG::OnOutputDirectoryBrowseClicked(), DIALOG_PLOT::OnOutputDirectoryBrowseClicked(), DIALOG_PLOT_SCHEMATIC::OnOutputDirectoryBrowseClicked(), DIALOG_GEN_FOOTPRINT_POSITION::OnOutputDirectoryBrowseClicked(), DIALOG_GENDRILL::OnOutputDirectoryBrowseClicked(), DIALOG_SYMBOL_REMAP::OnRemapSymbols(), DIALOG_BOM::OnRunGenerator(), FOOTPRINT_EDIT_FRAME::OnSaveFootprintAsPng(), DIALOG_ERC::OnSaveReport(), OnSaveReport(), PROPERTIES_FRAME::onScintillaCharAdded(), DIALOG_LABEL_EDITOR::onScintillaCharAdded(), DIALOG_SCH_EDIT_ONE_FIELD::onScintillaCharAdded(), DIALOG_SPICE_MODEL::onSelectLibrary(), LIB_VIEW_FRAME::OnSelectSymbol(), KICAD_MANAGER_FRAME::OnUnarchiveFiles(), SCH_EDIT_FRAME::OnUpdatePCB(), SCH_EDIT_FRAME::OpenProjectFiles(), PCB_EDIT_FRAME::OpenProjectFiles(), PANEL_PREV_3D::PANEL_PREV_3D(), SCH_EDITOR_CONTROL::Paste(), FOOTPRINT_EDITOR_TOOLS::PasteFootprint(), PCB_BASE_EDIT_FRAME::PCB_BASE_EDIT_FRAME(), DIALOG_PLOT::Plot(), DIALOG_PLOT_SCHEMATIC::Plot_1_Page_HPGL(), DIALOG_PLOT_SCHEMATIC::PlotOneSheetDXF(), DIALOG_CHOOSE_COMPONENT::PopulateFootprintSelector(), SCH_EDITOR_CONTROL::Print(), SCH_EDIT_FRAME::PrintPage(), EDA_DRAW_FRAME::PrintWorkSheet(), CVPCB_MAINFRAME::ReadNetListAndFpFiles(), PCB_EDIT_FRAME::RecreateCmpFileFromBoard(), FOOTPRINT_VIEWER_FRAME::ReCreateFootprintList(), FOOTPRINT_VIEWER_FRAME::ReCreateLibraryList(), LIB_VIEW_FRAME::ReCreateListCmp(), LIB_VIEW_FRAME::ReCreateListLib(), EDA_3D_VIEWER::ReloadRequest(), DIALOG_SYMBOL_REMAP::remapSymbolToLibTable(), SCH_EDITOR_CONTROL::RescueLegacyProject(), SCH_EDITOR_CONTROL::RescueSymbolLibTableProject(), FOOTPRINT_EDIT_FRAME::restoreLastFootprint(), FOOTPRINT_EDIT_FRAME::retainLastFootprint(), DIALOG_EDIT_COMPONENTS_LIBID::revertChanges(), SCH_EDIT_FRAME::SaveEEFile(), FOOTPRINT_EDIT_FRAME::SaveFootprint(), FOOTPRINT_EDIT_FRAME::SaveFootprintAs(), FOOTPRINT_EDIT_FRAME::SaveFootprintInLibrary(), LIB_EDIT_FRAME::saveLibrary(), LIB_EDIT_FRAME::SaveOneSymbol(), LIB_EDIT_FRAME::savePartAs(), PCB_EDIT_FRAME::SavePcbFile(), SCH_EDIT_FRAME::SaveProject(), PCB_EDIT_FRAME::SaveProjectSettings(), DIALOG_BOARD_STATISTICS::saveReportClicked(), SCH_BASE_FRAME::saveSymbolLibTables(), FOOTPRINT_VIEWER_FRAME::SelectAndViewFootprint(), SCH_BASE_FRAME::SelectCompFromLibTree(), PCB_BASE_FRAME::SelectLibrary(), LIB_EDIT_FRAME::SelectLibraryFromList(), LIB_EDIT_FRAME::selectSymLibTable(), FOOTPRINT_VIEWER_FRAME::setCurFootprintName(), LIB_EDIT_FRAME::SetCurLib(), FOOTPRINT_VIEWER_FRAME::setCurNickname(), LIB_EDIT_FRAME::SetCurPart(), GERBVIEW_FRAME::SetPageSettings(), EE_INSPECTION_TOOL::ShowDatasheet(), DIALOG_CHOOSE_COMPONENT::ShowFootprintFor(), COMMON_CONTROL::ShowHelp(), LIB_VIEW_FRAME::ShowModal(), FOOTPRINT_VIEWER_FRAME::ShowModal(), SIM_PLOT_FRAME::SIM_PLOT_FRAME(), LIB_MANAGER::symTable(), SYMBOL_TREE_SYNCHRONIZING_ADAPTER::Sync(), FOOTPRINT_EDIT_FRAME::SyncLibraryTree(), EDA_3D_VIEWER::takeScreenshot(), PANEL_SETUP_RULES::TransferDataFromWindow(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::TransferDataFromWindow(), NETLIST_DIALOG::TransferDataFromWindow(), DIALOG_EDIT_COMPONENTS_LIBID::TransferDataFromWindow(), PANEL_SETUP_RULES::TransferDataToWindow(), DIALOG_FOOTPRINT_FP_EDITOR::TransferDataToWindow(), DIALOG_FOOTPRINT_BOARD_EDITOR::TransferDataToWindow(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::UpdateFieldsFromLibrary(), DIALOG_PAGES_SETTINGS::UpdatePageLayoutExample(), FOOTPRINT_VIEWER_FRAME::UpdateTitle(), FOOTPRINT_EDIT_FRAME::updateTitle(), SCH_EDIT_FRAME::UpdateTitle(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::Validate(), SCH_EDIT_FRAME::WriteNetListFile(), DIALOG_FOOTPRINT_BOARD_EDITOR::~DIALOG_FOOTPRINT_BOARD_EDITOR(), DIALOG_FOOTPRINT_FP_EDITOR::~DIALOG_FOOTPRINT_FP_EDITOR(), and PCB_BASE_EDIT_FRAME::~PCB_BASE_EDIT_FRAME().

◆ refreshBoardEditor()

void DIALOG_DRC::refreshBoardEditor ( )
private

Definition at line 503 of file dialog_drc.cpp.

504 {
505  WINDOW_THAWER thawer( m_brdEditor );
506 
508 }
PCB_EDIT_FRAME * m_brdEditor
Definition: dialog_drc.h:99
PCB_DRAW_PANEL_GAL * GetCanvas() const override
Return a pointer to GAL-based canvas of given EDA draw frame.
virtual void Refresh(bool aEraseBackground=true, const wxRect *aRect=NULL) override
Update the board display after modifying it by a python script (note: it is automatically called by a...

References PCB_BASE_FRAME::GetCanvas(), m_brdEditor, and EDA_DRAW_PANEL_GAL::Refresh().

Referenced by OnDeleteAllClick(), OnDeleteOneClick(), and OnRunDRCClick().

◆ ResetSize()

void DIALOG_SHIM::ResetSize ( )
protectedinherited

Clear the existing dialog size and position.

This will cause the dialog size to be clear so the next time the dialog is shown the sizers will layout the dialog accordingly. This useful when there are dialog windows that size changes due to layout dependency hidden controls.

Definition at line 242 of file dialog_shim.cpp.

243 {
244  const char* hash_key;
245 
246  if( m_hash_key.size() )
247  {
248  // a special case like EDA_LIST_DIALOG, which has multiple uses.
249  hash_key = m_hash_key.c_str();
250  }
251  else
252  {
253  hash_key = typeid(*this).name();
254  }
255 
256  RECT_MAP::iterator it = class_map.find( hash_key );
257 
258  if( it == class_map.end() )
259  return;
260 
261  EDA_RECT rect = it->second;
262  rect.SetSize( 0, 0 );
263  class_map[ hash_key ] = rect;
264 }
std::string m_hash_key
Definition: dialog_shim.h:198
static RECT_MAP class_map
void SetSize(const wxSize &size)
Definition: eda_rect.h:144
EDA_RECT handles the component boundary box.
Definition: eda_rect.h:44

References class_map, DIALOG_SHIM::m_hash_key, and EDA_RECT::SetSize().

Referenced by DIALOG_EDIT_COMPONENT_IN_LIBRARY::DIALOG_EDIT_COMPONENT_IN_LIBRARY().

◆ setDRCParameters()

void DIALOG_DRC::setDRCParameters ( )
private

Definition at line 161 of file dialog_drc.cpp.

162 {
166 }
UNIT_BINDER m_trackMinWidth
Definition: dialog_drc.h:105
BOARD_DESIGN_SETTINGS & bds()
Definition: dialog_drc.h:95
UNIT_BINDER m_viaMinSize
Definition: dialog_drc.h:106
UNIT_BINDER m_uviaMinSize
Definition: dialog_drc.h:107
virtual long long int GetValue()
Function GetValue Returns the current value in Internal Units.

References bds(), UNIT_BINDER::GetValue(), BOARD_DESIGN_SETTINGS::m_MicroViasMinSize, m_trackMinWidth, BOARD_DESIGN_SETTINGS::m_TrackMinWidth, m_uviaMinSize, m_viaMinSize, and BOARD_DESIGN_SETTINGS::m_ViasMinSize.

Referenced by OnCancelClick(), and OnRunDRCClick().

◆ SetFootprintsProvider()

void DIALOG_DRC::SetFootprintsProvider ( RC_ITEMS_PROVIDER aProvider)

Definition at line 229 of file dialog_drc.cpp.

230 {
231  m_footprintWarningsProvider = aProvider;
234 }
void updateDisplayedCounts()
Definition: dialog_drc.cpp:604
void SetProvider(RC_ITEMS_PROVIDER *aProvider)
Definition: rc_item.cpp:206
RC_ITEMS_PROVIDER * m_footprintWarningsProvider
Definition: dialog_drc.h:115
RC_TREE_MODEL * m_footprintWarningsTreeModel
Definition: dialog_drc.h:116

References m_footprintWarningsProvider, m_footprintWarningsTreeModel, RC_TREE_MODEL::SetProvider(), and updateDisplayedCounts().

Referenced by DRC::updatePointers().

◆ SetInitialFocus()

void DIALOG_SHIM::SetInitialFocus ( wxWindow *  aWindow)
inlineinherited

Sets the window (usually a wxTextCtrl) that should be focused when the dialog is shown.

Definition at line 114 of file dialog_shim.h.

115  {
116  m_initialFocusTarget = aWindow;
117  }
wxWindow * m_initialFocusTarget
Definition: dialog_shim.h:204

References DIALOG_SHIM::m_initialFocusTarget.

Referenced by DIALOG_BOM::DIALOG_BOM(), DIALOG_CHOOSE_COMPONENT::DIALOG_CHOOSE_COMPONENT(), DIALOG_CHOOSE_FOOTPRINT::DIALOG_CHOOSE_FOOTPRINT(), DIALOG_CONFIGURE_PATHS::DIALOG_CONFIGURE_PATHS(), DIALOG_EDIT_LINE_STYLE::DIALOG_EDIT_LINE_STYLE(), DIALOG_EDIT_SHEET_PIN::DIALOG_EDIT_SHEET_PIN(), DIALOG_FIELDS_EDITOR_GLOBAL::DIALOG_FIELDS_EDITOR_GLOBAL(), DIALOG_FIND::DIALOG_FIND(), DIALOG_FOOTPRINT_BOARD_EDITOR::DIALOG_FOOTPRINT_BOARD_EDITOR(), DIALOG_FOOTPRINT_FP_EDITOR::DIALOG_FOOTPRINT_FP_EDITOR(), DIALOG_FP_PLUGIN_OPTIONS::DIALOG_FP_PLUGIN_OPTIONS(), DIALOG_GRAPHIC_ITEM_PROPERTIES::DIALOG_GRAPHIC_ITEM_PROPERTIES(), DIALOG_GRID_SETTINGS::DIALOG_GRID_SETTINGS(), DIALOG_IMPORT_GFX::DIALOG_IMPORT_GFX(), DIALOG_JUNCTION_PROPS::DIALOG_JUNCTION_PROPS(), DIALOG_LABEL_EDITOR::DIALOG_LABEL_EDITOR(), DIALOG_LIB_EDIT_DRAW_ITEM::DIALOG_LIB_EDIT_DRAW_ITEM(), DIALOG_LIB_EDIT_PIN::DIALOG_LIB_EDIT_PIN(), DIALOG_LIB_EDIT_TEXT::DIALOG_LIB_EDIT_TEXT(), DIALOG_PAD_PRIMITIVES_PROPERTIES::DIALOG_PAD_PRIMITIVES_PROPERTIES(), DIALOG_PAD_PROPERTIES::DIALOG_PAD_PROPERTIES(), DIALOG_POSITION_RELATIVE::DIALOG_POSITION_RELATIVE(), DIALOG_SCH_FIND::DIALOG_SCH_FIND(), DIALOG_TARGET_PROPERTIES::DIALOG_TARGET_PROPERTIES(), DIALOG_TEXT_PROPERTIES::DIALOG_TEXT_PROPERTIES(), DIALOG_TRACK_VIA_PROPERTIES::DIALOG_TRACK_VIA_PROPERTIES(), DIALOG_EDIT_ONE_FIELD::init(), DIALOG_EXCHANGE_FOOTPRINTS::OnMatchAllClicked(), DIALOG_EXCHANGE_FOOTPRINTS::OnMatchIDClicked(), DIALOG_EXCHANGE_FOOTPRINTS::OnMatchRefClicked(), DIALOG_EXCHANGE_FOOTPRINTS::OnMatchSelectedClicked(), DIALOG_EXCHANGE_FOOTPRINTS::OnMatchValueClicked(), PANEL_FP_LIB_TABLE::PANEL_FP_LIB_TABLE(), PANEL_SYM_LIB_TABLE::PANEL_SYM_LIB_TABLE(), FOOTPRINT_EDIT_FRAME::SaveFootprintAs(), LIB_EDIT_FRAME::savePartAs(), DIALOG_KEEPOUT_AREA_PROPERTIES::TransferDataToWindow(), DIALOG_NON_COPPER_ZONES_EDITOR::TransferDataToWindow(), and DIALOG_COPPER_ZONE::TransferDataToWindow().

◆ SetKiway()

void KIWAY_HOLDER::SetKiway ( wxWindow *  aDest,
KIWAY aKiway 
)
inherited

Function SetKiway.

Parameters
aDestis the recipient of aKiway pointer. It is only used for debugging, since "this" is not a wxWindow*. "this" is a KIWAY_HOLDER mix-in.
aKiwayis often from a parent window, or from KIFACE::CreateWindow().

Definition at line 42 of file kiway_holder.cpp.

43 {
44 #if defined(DEBUG)
45  // offer a trap point for debugging most any window
46  wxASSERT( aDest );
47  if( !strcmp( typeid(aDest).name(), "DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB" ) )
48  {
49  int breakhere=1;
50  (void) breakhere;
51  }
52 #endif
53 
54  (void) aDest;
55 
56  m_kiway = aKiway;
57 }
KIWAY * m_kiway
Definition: kiway_holder.h:81
const char * name
Definition: DXF_plotter.cpp:60

References KIWAY_HOLDER::m_kiway, and name.

Referenced by BM2CMP_FRAME::BM2CMP_FRAME(), PCB::IFACE::CreateWindow(), InvokePcbLibTableEditor(), PCB_CALCULATOR_FRAME::PCB_CALCULATOR_FRAME(), and SIM_PLOT_FRAME::SIM_PLOT_FRAME().

◆ SetMarkersProvider()

void DIALOG_DRC::SetMarkersProvider ( RC_ITEMS_PROVIDER aProvider)

Definition at line 213 of file dialog_drc.cpp.

214 {
215  m_markersProvider = aProvider;
218 }
void updateDisplayedCounts()
Definition: dialog_drc.cpp:604
void SetProvider(RC_ITEMS_PROVIDER *aProvider)
Definition: rc_item.cpp:206
RC_TREE_MODEL * m_markerTreeModel
Definition: dialog_drc.h:110
RC_ITEMS_PROVIDER * m_markersProvider
Definition: dialog_drc.h:109

References m_markersProvider, m_markerTreeModel, RC_TREE_MODEL::SetProvider(), and updateDisplayedCounts().

Referenced by DRC::updatePointers().

◆ SetSizeInDU()

void DIALOG_SHIM::SetSizeInDU ( int  x,
int  y 
)
protectedinherited

Set the dialog to the given dimensions in "dialog units".

These are units equivalent to 4* the average character width and 8* the average character height, allowing a dialog to be sized in a way that scales it with the system font.

Definition at line 156 of file dialog_shim.cpp.

157 {
158  wxSize sz( x, y );
159  SetSize( ConvertDialogToPixels( sz ) );
160 }

Referenced by DIALOG_RESCUE_EACH::DIALOG_RESCUE_EACH(), HTML_MESSAGE_BOX::HTML_MESSAGE_BOX(), and HTML_MESSAGE_BOX::SetDialogSizeInDU().

◆ SetUnconnectedProvider()

void DIALOG_DRC::SetUnconnectedProvider ( RC_ITEMS_PROVIDER aProvider)

Definition at line 221 of file dialog_drc.cpp.

222 {
223  m_unconnectedItemsProvider = aProvider;
226 }
void updateDisplayedCounts()
Definition: dialog_drc.cpp:604
void SetProvider(RC_ITEMS_PROVIDER *aProvider)
Definition: rc_item.cpp:206
RC_ITEMS_PROVIDER * m_unconnectedItemsProvider
Definition: dialog_drc.h:112
RC_TREE_MODEL * m_unconnectedTreeModel
Definition: dialog_drc.h:113

References m_unconnectedItemsProvider, m_unconnectedTreeModel, RC_TREE_MODEL::SetProvider(), and updateDisplayedCounts().

Referenced by DRC::updatePointers().

◆ Show()

bool DIALOG_SHIM::Show ( bool  show)
overrideinherited

Definition at line 183 of file dialog_shim.cpp.

184 {
185  bool ret;
186  const char* hash_key;
187 
188  if( m_hash_key.size() )
189  {
190  // a special case like EDA_LIST_DIALOG, which has multiple uses.
191  hash_key = m_hash_key.c_str();
192  }
193  else
194  {
195  hash_key = typeid(*this).name();
196  }
197 
198  // Show or hide the window. If hiding, save current position and size.
199  // If showing, use previous position and size.
200  if( show )
201  {
202 #ifndef __WINDOWS__
203  wxDialog::Raise(); // Needed on OS X and some other window managers (i.e. Unity)
204 #endif
205  ret = wxDialog::Show( show );
206 
207  // classname is key, returns a zeroed out default EDA_RECT if none existed before.
208  EDA_RECT savedDialogRect = class_map[ hash_key ];
209 
210  if( savedDialogRect.GetSize().x != 0 && savedDialogRect.GetSize().y != 0 )
211  {
212  SetSize( savedDialogRect.GetPosition().x,
213  savedDialogRect.GetPosition().y,
214  std::max( wxDialog::GetSize().x, savedDialogRect.GetSize().x ),
215  std::max( wxDialog::GetSize().y, savedDialogRect.GetSize().y ),
216  0 );
217  }
218 
219  // Be sure that the dialog appears in a visible area
220  // (the dialog position might have been stored at the time when it was
221  // shown on another display)
222  if( wxDisplay::GetFromWindow( this ) == wxNOT_FOUND )
223  Centre();
224  }
225  else
226  {
227  // Save the dialog's position & size before hiding, using classname as key
228  class_map[ hash_key ] = EDA_RECT( wxDialog::GetPosition(), wxDialog::GetSize() );
229 
230 #ifdef __WXMAC__
231  if ( m_eventLoop )
232  m_eventLoop->Exit( GetReturnCode() ); // Needed for APP-MODAL dlgs on OSX
233 #endif
234 
235  ret = wxDialog::Show( show );
236  }
237 
238  return ret;
239 }
std::string m_hash_key
Definition: dialog_shim.h:198
static RECT_MAP class_map
const wxPoint GetPosition() const
Definition: eda_rect.h:115
EDA_RECT handles the component boundary box.
Definition: eda_rect.h:44
const wxSize GetSize() const
Definition: eda_rect.h:103

References class_map, EDA_RECT::GetPosition(), EDA_RECT::GetSize(), DIALOG_SHIM::m_hash_key, wxPoint::x, and wxPoint::y.

Referenced by DIALOG_SHIM::EndQuasiModal(), InvokeDialogERC(), SCH_EDIT_FRAME::OnAnnotate(), OnDRCItemDClick(), DIALOG_ERC::OnERCItemDClick(), DIALOG_CLEANUP_TRACKS_AND_VIAS::OnLeftDClickItem(), DIALOG_CLEANUP_GRAPHICS::OnLeftDClickItem(), POSITION_RELATIVE_TOOL::PositionRelative(), CVPCB_MAINFRAME::ReadNetListAndFpFiles(), DRC::ShowDRCDialog(), SCH_EDIT_FRAME::ShowFindReplaceDialog(), DIALOG_SHIM::ShowQuasiModal(), DIALOG_POSITION_RELATIVE::UpdateAnchor(), and SCH_EDIT_FRAME::UpdateHierarchyNavigator().

◆ ShowQuasiModal()

int DIALOG_SHIM::ShowQuasiModal ( )
inherited

Definition at line 343 of file dialog_shim.cpp.

344 {
345  // This is an exception safe way to zero a pointer before returning.
346  // Yes, even though DismissModal() clears this first normally, this is
347  // here in case there's an exception before the dialog is dismissed.
348  struct NULLER
349  {
350  void*& m_what;
351  NULLER( void*& aPtr ) : m_what( aPtr ) {}
352  ~NULLER() { m_what = 0; } // indeed, set it to NULL on destruction
353  } clear_this( (void*&) m_qmodal_loop );
354 
355  // release the mouse if it's currently captured as the window having it
356  // will be disabled when this dialog is shown -- but will still keep the
357  // capture making it impossible to do anything in the modal dialog itself
358  wxWindow* win = wxWindow::GetCapture();
359  if( win )
360  win->ReleaseMouse();
361 
362  // Get the optimal parent
363  wxWindow* parent = GetParentForModalDialog( GetParent(), GetWindowStyle() );
364 
365  // Show the optimal parent
366  DBG( if( parent ) printf( "%s: optimal parent: %s\n", __func__, typeid(*parent).name() );)
367 
368  wxASSERT_MSG( !m_qmodal_parent_disabler,
369  wxT( "Caller using ShowQuasiModal() twice on same window?" ) );
370 
371  // quasi-modal: disable only my "optimal" parent
373 
374 
375  // Apple in its infinite wisdom will raise a disabled window before even passing
376  // us the event, so we have no way to stop it. Instead, we must set an order on
377  // the windows so that the quasi-modal will be pushed in front of the disabled
378  // window when it is raised.
380 
381  Show( true );
382 
383  m_qmodal_showing = true;
384 
385  WX_EVENT_LOOP event_loop;
386 
387  m_qmodal_loop = &event_loop;
388 
389  event_loop.Run();
390 
391  m_qmodal_showing = false;
392 
393  return GetReturnCode();
394 }
bool m_qmodal_showing
Definition: dialog_shim.h:208
#define WX_EVENT_LOOP
Definition: kiway_player.h:41
WX_EVENT_LOOP * m_qmodal_loop
Definition: dialog_shim.h:206
bool Show(bool show) override
WDO_ENABLE_DISABLE * m_qmodal_parent_disabler
Definition: dialog_shim.h:209
Toggle a window's "enable" status to disabled, then enabled on destruction.
Definition: dialog_shim.cpp:38
#define DBG(x)
Definition: fctsys.h:33
void ReparentQuasiModal(wxNonOwnedWindow *aWindow)
Move a window's parent to be the top-level window and force the window to be on top.
Definition: gtk/ui.cpp:32

References DBG, DIALOG_SHIM::m_qmodal_loop, DIALOG_SHIM::m_qmodal_parent_disabler, DIALOG_SHIM::m_qmodal_showing, KIPLATFORM::UI::ReparentQuasiModal(), DIALOG_SHIM::Show(), and WX_EVENT_LOOP.

Referenced by LIB_EDIT_TOOL::editFieldProperties(), SCH_EDITOR_CONTROL::EditSymbolFields(), LIB_EDIT_TOOL::editSymbolProperties(), GLOBAL_EDIT_TOOL::EditTracksAndVias(), GLOBAL_EDIT_TOOL::ExchangeFootprints(), PCB_EDIT_FRAME::InstallExchangeModuleFrame(), PCB_BASE_FRAME::InstallPadOptionsFrame(), InvokeDialogEditComponentsLibId(), InvokeDialogRescueEach(), InvokeDialogUpdateFields(), LIB_VIEW_FRAME::OnSelectSymbol(), SCH_EDIT_FRAME::OpenProjectFiles(), SCH_EDIT_TOOL::Properties(), EDIT_TOOL::Properties(), SCH_EDITOR_CONTROL::RemapSymbols(), SCH_BASE_FRAME::SelectCompFromLibTree(), PCB_BASE_FRAME::SelectFootprintFromLibTree(), PCB_EDIT_FRAME::ShowBoardSetupDialog(), and SCH_EDIT_FRAME::ShowSchematicSetupDialog().

◆ syncCheckboxes()

◆ updateDisplayedCounts()

void DIALOG_DRC::updateDisplayedCounts ( )
private

Definition at line 604 of file dialog_drc.cpp.

605 {
606  wxString msg;
607 
608  // First the tab headers:
609  //
610 
611  if( m_tester->m_drcRun )
612  {
614  m_Notebook->SetPageText( 0, msg );
615 
617  m_Notebook->SetPageText( 1, msg );
618 
621  else
622  {
624  msg.Replace( wxT( "%d" ), _( "not run" ) );
625  }
626  m_Notebook->SetPageText( 2, msg );
627  }
628  else
629  {
631  msg.Replace( wxT( "(%d)" ), wxEmptyString );
632  m_Notebook->SetPageText( 0, msg );
633 
635  msg.Replace( wxT( "(%d)" ), wxEmptyString );
636  m_Notebook->SetPageText( 1, msg );
637 
639  msg.Replace( wxT( "(%d)" ), wxEmptyString );
640  m_Notebook->SetPageText( 2, msg );
641  }
642 
643  // And now the badges:
644  //
645 
646  int numErrors = 0;
647  int numWarnings = 0;
648  int numExcluded = 0;
649 
650  if( m_markersProvider )
651  {
655  }
656 
658  {
662  }
663 
665  {
669  }
670 
671  m_errorsBadge->SetBitmap( MakeBadge( RPT_SEVERITY_ERROR, numErrors, m_errorsBadge ) );
672  m_warningsBadge->SetBitmap( MakeBadge( RPT_SEVERITY_WARNING, numWarnings, m_warningsBadge ) );
674 }
wxNotebook * m_Notebook
RC_TREE_MODEL * m_markerTreeModel
Definition: dialog_drc.h:110
wxString m_footprintsTitleTemplate
Definition: dialog_drc.h:103
virtual int GetCount(int aSeverity=-1)=0
wxStaticBitmap * m_errorsBadge
RC_ITEMS_PROVIDER * m_markersProvider
Definition: dialog_drc.h:109
RC_ITEMS_PROVIDER * m_unconnectedItemsProvider
Definition: dialog_drc.h:112
DRC * m_tester
Definition: dialog_drc.h:98
wxString m_markersTitleTemplate
Definition: dialog_drc.h:101
int GetDRCItemCount() const
Definition: rc_item.h:236
wxStaticBitmap * m_warningsBadge
RC_ITEMS_PROVIDER * m_footprintWarningsProvider
Definition: dialog_drc.h:115
RC_TREE_MODEL * m_footprintWarningsTreeModel
Definition: dialog_drc.h:116
bool m_drcRun
Definition: drc.h:132
RC_TREE_MODEL * m_unconnectedTreeModel
Definition: dialog_drc.h:113
bool m_footprintsTested
Definition: drc.h:133
wxBitmap MakeBadge(SEVERITY aStyle, int aCount, wxWindow *aWindow, int aDepth)
Definition: ui_common.cpp:36
#define _(s)
Definition: 3d_actions.cpp:33
wxStaticBitmap * m_exclusionsBadge
wxString m_unconnectedTitleTemplate
Definition: dialog_drc.h:102

References _, RC_ITEMS_PROVIDER::GetCount(), RC_TREE_MODEL::GetDRCItemCount(), DRC::m_drcRun, DIALOG_DRC_BASE::m_errorsBadge, DIALOG_DRC_BASE::m_exclusionsBadge, DRC::m_footprintsTested, m_footprintsTitleTemplate, m_footprintWarningsProvider, m_footprintWarningsTreeModel, m_markersProvider, m_markersTitleTemplate, m_markerTreeModel, DIALOG_DRC_BASE::m_Notebook, m_tester, m_unconnectedItemsProvider, m_unconnectedTitleTemplate, m_unconnectedTreeModel, DIALOG_DRC_BASE::m_warningsBadge, MakeBadge(), RPT_SEVERITY_ERROR, RPT_SEVERITY_EXCLUSION, and RPT_SEVERITY_WARNING.

Referenced by OnActivateDlg(), OnDeleteAllClick(), OnDeleteOneClick(), OnDRCItemRClick(), OnSeverity(), SetFootprintsProvider(), SetMarkersProvider(), and SetUnconnectedProvider().

◆ VertPixelsFromDU()

int DIALOG_SHIM::VertPixelsFromDU ( int  y)
protectedinherited

Convert an integer number of dialog units to pixels, vertically.

See SetSizeInDU or wxDialog documentation for more information.

Definition at line 170 of file dialog_shim.cpp.

171 {
172  wxSize sz( 0, y );
173  return ConvertDialogToPixels( sz ).y;
174 }

Referenced by DIALOG_CHOOSE_COMPONENT::DIALOG_CHOOSE_COMPONENT().

◆ writeReport()

bool DIALOG_DRC::writeReport ( const wxString &  aFullFileName)
private

Function writeReport outputs the MARKER items and unconnecte DRC_ITEMs with commentary to an open text file.

Parameters
aFullFileNameThe text filename to write the report to.
Returns
true if OK, false on error

Definition at line 521 of file dialog_drc.cpp.

522 {
523  FILE* fp = wxFopen( aFullFileName, wxT( "w" ) );
524 
525  if( fp == NULL )
526  return false;
527 
528  std::map<KIID, EDA_ITEM*> itemMap;
529  m_brdEditor->GetBoard()->FillItemMap( itemMap );
530 
531  int count;
532  EDA_UNITS units = GetUserUnits();
533 
534  fprintf( fp, "** Drc report for %s **\n", TO_UTF8( m_brdEditor->GetBoard()->GetFileName() ) );
535 
536  wxDateTime now = wxDateTime::Now();
537 
538  fprintf( fp, "** Created on %s **\n", TO_UTF8( now.Format( wxT( "%F %T" ) ) ) );
539 
540  count = m_markersProvider->GetCount();
541 
542  fprintf( fp, "\n** Found %d DRC violations **\n", count );
543 
544  for( int i = 0; i < count; ++i )
545  fprintf( fp, "%s", TO_UTF8( m_markersProvider->GetItem( i )->ShowReport( units, itemMap ) ) );
546 
548 
549  fprintf( fp, "\n** Found %d unconnected pads **\n", count );
550 
551  for( int i = 0; i < count; ++i )
552  fprintf( fp, "%s", TO_UTF8( m_unconnectedItemsProvider->GetItem( i )->ShowReport( units, itemMap ) ) );
553 
555 
556  fprintf( fp, "\n** Found %d Footprint errors **\n", count );
557 
558  for( int i = 0; i < count; ++i )
559  fprintf( fp, "%s", TO_UTF8( m_footprintWarningsProvider->GetItem( i )->ShowReport( units, itemMap ) ) );
560 
561 
562  fprintf( fp, "\n** End of Report **\n" );
563 
564  fclose( fp );
565 
566  return true;
567 }
EDA_UNITS
Definition: common.h:198
PCB_EDIT_FRAME * m_brdEditor
Definition: dialog_drc.h:99
virtual int GetCount(int aSeverity=-1)=0
RC_ITEMS_PROVIDER * m_markersProvider
Definition: dialog_drc.h:109
const wxString & GetFileName() const
Definition: class_board.h:255
virtual RC_ITEM * GetItem(int aIndex)=0
Function GetItem retrieves a RC_ITEM by index.
EDA_UNITS GetUserUnits() const
Definition: dialog_shim.h:131
RC_ITEMS_PROVIDER * m_unconnectedItemsProvider
Definition: dialog_drc.h:112
virtual wxString ShowReport(EDA_UNITS aUnits, const std::map< KIID, EDA_ITEM * > &aItemMap) const
Function ShowReport translates this object into a text string suitable for saving to disk in a report...
Definition: rc_item.cpp:53
#define NULL
RC_ITEMS_PROVIDER * m_footprintWarningsProvider
Definition: dialog_drc.h:115
#define TO_UTF8(wxstring)
BOARD * GetBoard() const
void FillItemMap(std::map< KIID, EDA_ITEM * > &aMap)

References BOARD::FillItemMap(), PCB_BASE_FRAME::GetBoard(), RC_ITEMS_PROVIDER::GetCount(), BOARD::GetFileName(), RC_ITEMS_PROVIDER::GetItem(), DIALOG_SHIM::GetUserUnits(), m_brdEditor, m_footprintWarningsProvider, m_markersProvider, m_unconnectedItemsProvider, NULL, RC_ITEM::ShowReport(), and TO_UTF8.

Referenced by OnSaveReport().

Member Data Documentation

◆ m_brdEditor

◆ m_cbRefillZones

wxCheckBox* DIALOG_DRC_BASE::m_cbRefillZones
protectedinherited

◆ m_cbReportAllTrackErrors

wxCheckBox* DIALOG_DRC_BASE::m_cbReportAllTrackErrors
protectedinherited

◆ m_cbReportTracksToZonesErrors

wxCheckBox* DIALOG_DRC_BASE::m_cbReportTracksToZonesErrors
protectedinherited

Definition at line 56 of file dialog_drc_base.h.

Referenced by DIALOG_DRC_BASE::DIALOG_DRC_BASE(), and OnRunDRCClick().

◆ m_cbTestFootprints

wxCheckBox* DIALOG_DRC_BASE::m_cbTestFootprints
protectedinherited

◆ m_currentBoard

BOARD* DIALOG_DRC::m_currentBoard
private

Definition at line 97 of file dialog_drc.h.

Referenced by DIALOG_DRC(), and OnActivateDlg().

◆ m_DeleteAllMarkersButton

wxButton* DIALOG_DRC_BASE::m_DeleteAllMarkersButton
protectedinherited

◆ m_DeleteCurrentMarkerButton

wxButton* DIALOG_DRC_BASE::m_DeleteCurrentMarkerButton
protectedinherited

◆ m_errorsBadge

wxStaticBitmap* DIALOG_DRC_BASE::m_errorsBadge
protectedinherited

Definition at line 68 of file dialog_drc_base.h.

Referenced by DIALOG_DRC_BASE::DIALOG_DRC_BASE(), and updateDisplayedCounts().

◆ m_exclusionsBadge

wxStaticBitmap* DIALOG_DRC_BASE::m_exclusionsBadge
protectedinherited

Definition at line 72 of file dialog_drc_base.h.

Referenced by DIALOG_DRC_BASE::DIALOG_DRC_BASE(), and updateDisplayedCounts().

◆ m_firstPaintEvent

bool DIALOG_SHIM::m_firstPaintEvent
protectedinherited

Definition at line 203 of file dialog_shim.h.

Referenced by DIALOG_SHIM::OnPaint().

◆ m_footprintsDataView

wxDataViewCtrl* DIALOG_DRC_BASE::m_footprintsDataView
protectedinherited

◆ m_footprintsTitleTemplate

wxString DIALOG_DRC::m_footprintsTitleTemplate
private

Definition at line 103 of file dialog_drc.h.

Referenced by initValues(), and updateDisplayedCounts().

◆ m_footprintWarningsProvider

RC_ITEMS_PROVIDER* DIALOG_DRC::m_footprintWarningsProvider
private

◆ m_footprintWarningsTreeModel

RC_TREE_MODEL* DIALOG_DRC::m_footprintWarningsTreeModel
private

◆ m_hash_key

◆ m_initialFocusTarget

wxWindow* DIALOG_SHIM::m_initialFocusTarget
protectedinherited

Definition at line 204 of file dialog_shim.h.

Referenced by DIALOG_SHIM::OnPaint(), and DIALOG_SHIM::SetInitialFocus().

◆ m_markerDataView

wxDataViewCtrl* DIALOG_DRC_BASE::m_markerDataView
protectedinherited

◆ m_markersProvider

RC_ITEMS_PROVIDER* DIALOG_DRC::m_markersProvider
private

◆ m_markersTitleTemplate

wxString DIALOG_DRC::m_markersTitleTemplate
private

Definition at line 101 of file dialog_drc.h.

Referenced by initValues(), and updateDisplayedCounts().

◆ m_markerTreeModel

◆ m_Messages

wxTextCtrl* DIALOG_DRC_BASE::m_Messages
protectedinherited

Definition at line 58 of file dialog_drc_base.h.

Referenced by DIALOG_DRC_BASE::DIALOG_DRC_BASE(), OnRunDRCClick(), and OnSaveReport().

◆ m_MinWidthCtrl

wxTextCtrl* DIALOG_DRC_BASE::m_MinWidthCtrl
inherited

Definition at line 97 of file dialog_drc_base.h.

Referenced by DIALOG_DRC_BASE::DIALOG_DRC_BASE().

◆ m_MinWidthLabel

wxStaticText* DIALOG_DRC_BASE::m_MinWidthLabel
protectedinherited

Definition at line 48 of file dialog_drc_base.h.

Referenced by DIALOG_DRC_BASE::DIALOG_DRC_BASE().

◆ m_MinWidthUnits

wxStaticText* DIALOG_DRC_BASE::m_MinWidthUnits
protectedinherited

Definition at line 49 of file dialog_drc_base.h.

Referenced by DIALOG_DRC_BASE::DIALOG_DRC_BASE().

◆ m_Notebook

◆ m_panelFootprintWarnings

wxPanel* DIALOG_DRC_BASE::m_panelFootprintWarnings
protectedinherited

Definition at line 63 of file dialog_drc_base.h.

Referenced by DIALOG_DRC_BASE::DIALOG_DRC_BASE().

◆ m_panelViolations

wxPanel* DIALOG_DRC_BASE::m_panelViolations
protectedinherited

Definition at line 60 of file dialog_drc_base.h.

Referenced by DIALOG_DRC_BASE::DIALOG_DRC_BASE().

◆ m_parentFrame

EDA_BASE_FRAME* DIALOG_SHIM::m_parentFrame
protectedinherited

Definition at line 211 of file dialog_shim.h.

Referenced by DIALOG_SHIM::OnCharHook(), and OnDRCItemRClick().

◆ m_qmodal_loop

WX_EVENT_LOOP* DIALOG_SHIM::m_qmodal_loop
protectedinherited

Definition at line 206 of file dialog_shim.h.

Referenced by DIALOG_SHIM::EndQuasiModal(), and DIALOG_SHIM::ShowQuasiModal().

◆ m_qmodal_parent_disabler

WDO_ENABLE_DISABLE* DIALOG_SHIM::m_qmodal_parent_disabler
protectedinherited

◆ m_qmodal_showing

bool DIALOG_SHIM::m_qmodal_showing
protectedinherited

Definition at line 208 of file dialog_shim.h.

Referenced by DIALOG_SHIM::IsQuasiModal(), and DIALOG_SHIM::ShowQuasiModal().

◆ m_saveReport

wxButton* DIALOG_DRC_BASE::m_saveReport
protectedinherited

◆ m_sdbSizer1

wxStdDialogButtonSizer* DIALOG_DRC_BASE::m_sdbSizer1
protectedinherited

Definition at line 78 of file dialog_drc_base.h.

Referenced by DIALOG_DRC_BASE::DIALOG_DRC_BASE().

◆ m_sdbSizer1Cancel

wxButton* DIALOG_DRC_BASE::m_sdbSizer1Cancel
protectedinherited

◆ m_sdbSizer1OK

wxButton* DIALOG_DRC_BASE::m_sdbSizer1OK
protectedinherited

◆ m_severities

int DIALOG_DRC::m_severities
private

Definition at line 118 of file dialog_drc.h.

Referenced by initValues(), OnDRCItemRClick(), OnSeverity(), syncCheckboxes(), and ~DIALOG_DRC().

◆ m_showAll

wxCheckBox* DIALOG_DRC_BASE::m_showAll
protectedinherited

◆ m_showErrors

wxCheckBox* DIALOG_DRC_BASE::m_showErrors
protectedinherited

◆ m_showExclusions

wxCheckBox* DIALOG_DRC_BASE::m_showExclusions
protectedinherited

◆ m_showLabel

wxStaticText* DIALOG_DRC_BASE::m_showLabel
protectedinherited

Definition at line 65 of file dialog_drc_base.h.

Referenced by DIALOG_DRC_BASE::DIALOG_DRC_BASE().

◆ m_showWarnings

wxCheckBox* DIALOG_DRC_BASE::m_showWarnings
protectedinherited

◆ m_sizerButtons

wxBoxSizer* DIALOG_DRC_BASE::m_sizerButtons
protectedinherited

Definition at line 75 of file dialog_drc_base.h.

Referenced by DIALOG_DRC(), and DIALOG_DRC_BASE::DIALOG_DRC_BASE().

◆ m_staticline1

wxStaticLine* DIALOG_DRC_BASE::m_staticline1
protectedinherited

Definition at line 74 of file dialog_drc_base.h.

Referenced by DIALOG_DRC_BASE::DIALOG_DRC_BASE().

◆ m_tabOrder

◆ m_tester

DRC* DIALOG_DRC::m_tester
private

◆ m_trackMinWidth

UNIT_BINDER DIALOG_DRC::m_trackMinWidth
private

Definition at line 105 of file dialog_drc.h.

Referenced by displayDRCValues(), and setDRCParameters().

◆ m_unconnectedDataView

wxDataViewCtrl* DIALOG_DRC_BASE::m_unconnectedDataView
protectedinherited

◆ m_unconnectedItemsProvider

RC_ITEMS_PROVIDER* DIALOG_DRC::m_unconnectedItemsProvider
private

◆ m_unconnectedTitleTemplate

wxString DIALOG_DRC::m_unconnectedTitleTemplate
private

Definition at line 102 of file dialog_drc.h.

Referenced by initValues(), and updateDisplayedCounts().

◆ m_unconnectedTreeModel

RC_TREE_MODEL* DIALOG_DRC::m_unconnectedTreeModel
private

◆ m_units

◆ m_uViaMinCtrl

wxTextCtrl* DIALOG_DRC_BASE::m_uViaMinCtrl
inherited

Definition at line 99 of file dialog_drc_base.h.

Referenced by DIALOG_DRC_BASE::DIALOG_DRC_BASE().

◆ m_uViaMinLabel

wxStaticText* DIALOG_DRC_BASE::m_uViaMinLabel
protectedinherited

Definition at line 52 of file dialog_drc_base.h.

Referenced by DIALOG_DRC_BASE::DIALOG_DRC_BASE().

◆ m_uviaMinSize

UNIT_BINDER DIALOG_DRC::m_uviaMinSize
private

Definition at line 107 of file dialog_drc.h.

Referenced by displayDRCValues(), and setDRCParameters().

◆ m_uViaMinUnits

wxStaticText* DIALOG_DRC_BASE::m_uViaMinUnits
protectedinherited

Definition at line 53 of file dialog_drc_base.h.

Referenced by DIALOG_DRC_BASE::DIALOG_DRC_BASE().

◆ m_ViaMinCtrl

wxTextCtrl* DIALOG_DRC_BASE::m_ViaMinCtrl
inherited

Definition at line 98 of file dialog_drc_base.h.

Referenced by DIALOG_DRC_BASE::DIALOG_DRC_BASE().

◆ m_ViaMinLabel

wxStaticText* DIALOG_DRC_BASE::m_ViaMinLabel
protectedinherited

Definition at line 50 of file dialog_drc_base.h.

Referenced by DIALOG_DRC_BASE::DIALOG_DRC_BASE().

◆ m_viaMinSize

UNIT_BINDER DIALOG_DRC::m_viaMinSize
private

Definition at line 106 of file dialog_drc.h.

Referenced by displayDRCValues(), and setDRCParameters().

◆ m_ViaMinUnits

wxStaticText* DIALOG_DRC_BASE::m_ViaMinUnits
protectedinherited

Definition at line 51 of file dialog_drc_base.h.

Referenced by DIALOG_DRC_BASE::DIALOG_DRC_BASE().

◆ m_warningsBadge

wxStaticBitmap* DIALOG_DRC_BASE::m_warningsBadge
protectedinherited

Definition at line 70 of file dialog_drc_base.h.

Referenced by DIALOG_DRC_BASE::DIALOG_DRC_BASE(), and updateDisplayedCounts().


The documentation for this class was generated from the following files: