KiCad PCB EDA Suite
DIALOG_ERC Class Reference

#include <dialog_erc.h>

Inheritance diagram for DIALOG_ERC:
DIALOG_ERC_BASE PROGRESS_REPORTER_BASE DIALOG_SHIM KIWAY_HOLDER

Public Types

enum  HOLDER_TYPE { DIALOG , FRAME , PANEL }
 

Public Member Functions

 DIALOG_ERC (SCH_EDIT_FRAME *parent)
 
 ~DIALOG_ERC ()
 
bool updateUI () override
 
void AdvancePhase (const wxString &aMessage) override
 Use the next available virtual zone of the dialog progress bar and updates the message. More...
 
void Report (const wxString &aMessage) override
 Display aMessage in the progress bar dialog. More...
 
void PrevMarker ()
 
void NextMarker ()
 
void SelectMarker (const SCH_MARKER *aMarker)
 
void ExcludeMarker (SCH_MARKER *aMarker=nullptr)
 Exclude aMarker from the ERC list. More...
 
void UpdateAnnotationWarning ()
 
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 () const
 
bool Show (bool show) override
 
bool Enable (bool enable) override
 
void OnPaint (wxPaintEvent &event)
 
void OnModify ()
 
void SetPosition (const wxPoint &aNewPosition)
 Force the position of the dialog to a new position. More...
 
EDA_UNITS GetUserUnits () const
 
void SetupStandardButtons (std::map< int, wxString > aLabels={})
 
HOLDER_TYPE GetType () const
 
KIWAYKiway () const
 Return a reference to the KIWAY that this object has an opportunity to participate in. More...
 
bool HasKiway () const
 Safety check before asking for the Kiway reference. More...
 
PROJECTPrj () const
 Return a reference to the PROJECT associated with this KIWAY. More...
 
void SetKiway (wxWindow *aDest, KIWAY *aKiway)
 It is only used for debugging, since "this" is not a wxWindow*. More...
 

Static Public Member Functions

static bool IsCtrl (int aChar, const wxKeyEvent &e)
 
static bool IsShiftCtrl (int aChar, const wxKeyEvent &e)
 

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) const
 Convert an integer number of dialog units to pixels, horizontally. More...
 
int vertPixelsFromDU (int y) const
 Convert an integer number of dialog units to pixels, vertically. More...
 
void resetSize ()
 Clear the existing dialog size and position. More...
 
virtual void OnCharHook (wxKeyEvent &aEvt)
 

Protected Attributes

WX_INFOBARm_infoBar
 
wxSimplebook * m_runningResultsBook
 
wxPanel * running
 
wxNotebook * m_runningNotebook
 
wxPanel * m_panelMessages
 
WX_HTML_REPORT_BOXm_messages
 
wxGauge * m_gauge
 
wxPanel * results
 
wxNotebook * m_notebook
 
wxPanel * violationsPanel
 
wxDataViewCtrl * m_markerDataView
 
wxPanel * m_panelIgnored
 
wxListCtrl * m_ignoredList
 
wxStaticText * m_showLabel
 
wxCheckBox * m_showAll
 
wxCheckBox * m_showErrors
 
NUMBER_BADGEm_errorsBadge
 
wxCheckBox * m_showWarnings
 
NUMBER_BADGEm_warningsBadge
 
wxCheckBox * m_showExclusions
 
NUMBER_BADGEm_exclusionsBadge
 
wxButton * m_saveReport
 
wxBoxSizer * m_buttonsSizer
 
wxButton * m_deleteOneMarker
 
wxButton * m_deleteAllMarkers
 
wxStdDialogButtonSizer * m_sdbSizer1
 
wxButton * m_sdbSizer1OK
 
wxButton * m_sdbSizer1Cancel
 
EDA_UNITS m_units
 
std::string m_hash_key
 
bool m_useCalculatedSize
 
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
 
wxSize m_initialSize
 

Private Member Functions

void OnCloseErcDialog (wxCloseEvent &event) override
 
void OnRunERCClick (wxCommandEvent &event) override
 
void OnDeleteOneClick (wxCommandEvent &event) override
 
void OnDeleteAllClick (wxCommandEvent &event) override
 
void OnERCItemSelected (wxDataViewEvent &aEvent) override
 
void OnERCItemDClick (wxDataViewEvent &aEvent) override
 
void OnERCItemRClick (wxDataViewEvent &aEvent) override
 
void OnIgnoreItemRClick (wxListEvent &event) override
 
void OnLinkClicked (wxHtmlLinkEvent &event) override
 
void OnSeverity (wxCommandEvent &aEvent) override
 
void OnSaveReport (wxCommandEvent &aEvent) override
 
void OnCancelClick (wxCommandEvent &event) override
 
void centerMarkerIdleHandler (wxIdleEvent &aEvent)
 
void redrawDrawPanel ()
 
void testErc ()
 
bool writeReport (const wxString &aFullFileName)
 
void deleteAllMarkers (bool aIncludeExclusions)
 
void syncCheckboxes ()
 
void updateDisplayedCounts ()
 
void OnCloseWindow (wxCloseEvent &aEvent)
 Properly handle the wxCloseEvent when in the quasimodal mode when not calling EndQuasiModal which is possible with any dialog derived from DIALOG_SHIM. More...
 
void OnButton (wxCommandEvent &aEvent)
 Properly handle the default button events when in the quasimodal mode when not calling EndQuasiModal which is possible with any dialog derived from DIALOG_SHIM. More...
 
void OnGridEditorShown (wxGridEvent &event)
 
void OnGridEditorHidden (wxGridEvent &event)
 
 DECLARE_EVENT_TABLE ()
 
void SetNumPhases (int aNumPhases) override
 Set the number of phases. More...
 
void AddPhases (int aNumPhases) override
 
virtual void BeginPhase (int aPhase) override
 Initialize the aPhase virtual zone of the dialog progress bar. More...
 
virtual void AdvancePhase () override
 Use the next available virtual zone of the dialog progress bar. More...
 
virtual void SetCurrentProgress (double aProgress) override
 Set the progress value to aProgress (0..1). More...
 
void SetMaxProgress (int aMaxProgress) override
 Fix the value that gives the 100 percent progress bar length (inside the current virtual zone). More...
 
void AdvanceProgress () override
 Increment the progress bar length (inside the current virtual zone). More...
 
bool KeepRefreshing (bool aWait=false) override
 Update the UI dialog. More...
 
void SetTitle (const wxString &aTitle) override
 Change the title displayed on the window caption. More...
 
bool IsCancelled () const override
 
int currentProgress () const
 

Private Attributes

SCH_EDIT_FRAMEm_parent
 
SCHEMATICm_currentSchematic
 
wxString m_violationsTitleTemplate
 
wxString m_ignoredTitleTemplate
 
std::shared_ptr< RC_ITEMS_PROVIDERm_markerProvider
 
RC_TREE_MODELm_markerTreeModel
 
bool m_running
 
bool m_ercRun
 
const SCH_MARKERm_centerMarkerOnIdle
 
int m_severities
 
KIWAYm_kiway
 
HOLDER_TYPE m_type
 
wxString m_rptMessage
 
std::mutex m_mutex
 
std::atomic_int m_phase
 
std::atomic_int m_numPhases
 
std::atomic_int m_progress
 
std::atomic_int m_maxProgress
 
std::atomic_bool m_cancelled
 
std::atomic_bool m_messageChanged
 

Detailed Description

Definition at line 43 of file dialog_erc.h.

Member Enumeration Documentation

◆ HOLDER_TYPE

enum KIWAY_HOLDER::HOLDER_TYPE
inherited
Enumerator
DIALOG 
FRAME 
PANEL 

Definition at line 39 of file kiway_holder.h.

Constructor & Destructor Documentation

◆ DIALOG_ERC()

DIALOG_ERC::DIALOG_ERC ( SCH_EDIT_FRAME parent)

Definition at line 62 of file dialog_erc.cpp.

62 :
63 DIALOG_ERC_BASE( parent ),
65 m_parent( parent ),
66 m_markerTreeModel( nullptr ),
67 m_running( false ),
68 m_ercRun( false ),
69 m_centerMarkerOnIdle( nullptr ),
70 m_severities( 0 )
71{
72 m_currentSchematic = &parent->Schematic();
73
74 SetName( DIALOG_ERC_WINDOW_NAME ); // Set a window name to be able to find it
75
76 EESCHEMA_SETTINGS* settings = dynamic_cast<EESCHEMA_SETTINGS*>( Kiface().KifaceSettings() );
78
80
81 m_markerProvider = std::make_shared<SHEETLIST_ERC_ITEMS_PROVIDER>( &m_parent->Schematic() );
82
84 m_markerDataView->AssociateModel( m_markerTreeModel );
86
87 m_ignoredList->InsertColumn( 0, wxEmptyString, wxLIST_FORMAT_LEFT, DEFAULT_SINGLE_COL_WIDTH );
88
90 {
92
93 for( const wxString& str : g_lastERCIgnored )
94 m_ignoredList->InsertItem( m_ignoredList->GetItemCount(), str );
95 }
96
97 m_notebook->SetSelection( 0 );
98
99 SetupStandardButtons( { { wxID_OK, _( "Run ERC" ) },
100 { wxID_CANCEL, _( "Close" ) } } );
101
102 m_violationsTitleTemplate = m_notebook->GetPageText( 0 );
103 m_ignoredTitleTemplate = m_notebook->GetPageText( 1 );
104
108
110
111 Layout();
112
113 SetFocus();
114
117
118 // Now all widgets have the size fixed, call FinishDialogSettings
120}
KIFACE_BASE & Kiface()
Global KIFACE_BASE "get" accessor.
NUMBER_BADGE * m_errorsBadge
wxNotebook * m_notebook
NUMBER_BADGE * m_exclusionsBadge
wxListCtrl * m_ignoredList
WX_HTML_REPORT_BOX * m_messages
wxDataViewCtrl * m_markerDataView
NUMBER_BADGE * m_warningsBadge
DIALOG_ERC_BASE(wxWindow *parent, wxWindowID id=wxID_ANY, const wxString &title=_("Electrical Rules Checker"), const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxSize(-1,-1), long style=wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER)
const SCH_MARKER * m_centerMarkerOnIdle
Definition: dialog_erc.h:111
std::shared_ptr< RC_ITEMS_PROVIDER > m_markerProvider
Definition: dialog_erc.h:105
void syncCheckboxes()
Definition: dialog_erc.cpp:346
bool m_ercRun
Definition: dialog_erc.h:109
SCH_EDIT_FRAME * m_parent
Definition: dialog_erc.h:99
wxString m_violationsTitleTemplate
Definition: dialog_erc.h:102
int m_severities
Definition: dialog_erc.h:113
wxString m_ignoredTitleTemplate
Definition: dialog_erc.h:103
SCHEMATIC * m_currentSchematic
Definition: dialog_erc.h:100
void UpdateAnnotationWarning()
Definition: dialog_erc.cpp:143
RC_TREE_MODEL * m_markerTreeModel
Definition: dialog_erc.h:106
void updateDisplayedCounts()
Definition: dialog_erc.cpp:209
bool m_running
Definition: dialog_erc.h:108
void SetupStandardButtons(std::map< int, wxString > aLabels={})
void finishDialogSettings()
In all dialogs, we must call the same functions to fix minimal dlg size, the default position and per...
A specialisation of the RC_TREE_MODEL class to enable ERC errors / warnings to be resolved in a speci...
Definition: erc_item.h:38
APP_SETTINGS_BASE * KifaceSettings() const
Definition: kiface_base.h:93
void SetMaximumNumber(int aMax)
Set the maximum number to be shown on the badge.
PROGRESS_REPORTER_BASE(int aNumPhases)
void Update(std::shared_ptr< RC_ITEMS_PROVIDER > aProvider, int aSeverities)
Definition: rc_item.cpp:289
SCHEMATIC & Schematic() const
void SetImmediateMode()
In immediate mode, messages are flushed as they are added.
static std::vector< wxString > g_lastERCIgnored
Definition: dialog_erc.cpp:59
static int DEFAULT_SINGLE_COL_WIDTH
Definition: dialog_erc.cpp:54
static bool g_lastERCRun
Definition: dialog_erc.cpp:58
static SCHEMATIC * g_lastERCSchematic
Definition: dialog_erc.cpp:57
#define DIALOG_ERC_WINDOW_NAME
Definition: dialog_erc.h:37
#define _(s)

References _, DEFAULT_SINGLE_COL_WIDTH, DIALOG_ERC_WINDOW_NAME, EESCHEMA_SETTINGS::APPEARANCE::erc_severities, DIALOG_SHIM::finishDialogSettings(), g_lastERCIgnored, g_lastERCRun, g_lastERCSchematic, Kiface(), KIFACE_BASE::KifaceSettings(), EESCHEMA_SETTINGS::m_Appearance, m_currentSchematic, m_ercRun, DIALOG_ERC_BASE::m_errorsBadge, DIALOG_ERC_BASE::m_exclusionsBadge, DIALOG_ERC_BASE::m_ignoredList, m_ignoredTitleTemplate, DIALOG_ERC_BASE::m_markerDataView, m_markerProvider, m_markerTreeModel, DIALOG_ERC_BASE::m_messages, DIALOG_ERC_BASE::m_notebook, m_parent, m_severities, m_violationsTitleTemplate, DIALOG_ERC_BASE::m_warningsBadge, SCH_EDIT_FRAME::Schematic(), WX_HTML_REPORT_BOX::SetImmediateMode(), NUMBER_BADGE::SetMaximumNumber(), DIALOG_SHIM::SetupStandardButtons(), syncCheckboxes(), RC_TREE_MODEL::Update(), UpdateAnnotationWarning(), and updateDisplayedCounts().

◆ ~DIALOG_ERC()

DIALOG_ERC::~DIALOG_ERC ( )

Definition at line 123 of file dialog_erc.cpp.

124{
127
128 g_lastERCIgnored.clear();
129
130 for( int ii = 0; ii < m_ignoredList->GetItemCount(); ++ii )
131 g_lastERCIgnored.push_back( m_ignoredList->GetItemText( ii ) );
132
133 EESCHEMA_SETTINGS* settings = dynamic_cast<EESCHEMA_SETTINGS*>( Kiface().KifaceSettings() );
134 wxASSERT( settings );
135
136 if( settings )
138
139 m_markerTreeModel->DecRef();
140}

References EESCHEMA_SETTINGS::APPEARANCE::erc_severities, g_lastERCIgnored, g_lastERCRun, g_lastERCSchematic, Kiface(), KIFACE_BASE::KifaceSettings(), EESCHEMA_SETTINGS::m_Appearance, m_currentSchematic, m_ercRun, DIALOG_ERC_BASE::m_ignoredList, m_markerTreeModel, and m_severities.

Member Function Documentation

◆ AddPhases()

void PROGRESS_REPORTER_BASE::AddPhases ( int  aNumPhases)
overridevirtualinherited

Implements PROGRESS_REPORTER.

Definition at line 98 of file progress_reporter_base.cpp.

99{
100 m_numPhases += aNumPhases;
101}

References PROGRESS_REPORTER_BASE::m_numPhases.

◆ AdvancePhase() [1/2]

void PROGRESS_REPORTER_BASE::AdvancePhase ( )
overridevirtualinherited

Use the next available virtual zone of the dialog progress bar.

Implements PROGRESS_REPORTER.

Reimplemented in DIALOG_PCM_PROGRESS.

Definition at line 50 of file progress_reporter_base.cpp.

51{
52 m_phase.fetch_add( 1 );
53 m_progress.store( 0 );
54}

References PROGRESS_REPORTER_BASE::m_phase, and PROGRESS_REPORTER_BASE::m_progress.

Referenced by DIALOG_PCM_PROGRESS::AdvancePhase(), AdvancePhase(), PROGRESS_REPORTER_BASE::AdvancePhase(), DIALOG_DRC::AdvancePhase(), and testErc().

◆ AdvancePhase() [2/2]

void DIALOG_ERC::AdvancePhase ( const wxString &  aMessage)
overridevirtual

Use the next available virtual zone of the dialog progress bar and updates the message.

Reimplemented from PROGRESS_REPORTER_BASE.

Definition at line 195 of file dialog_erc.cpp.

196{
197 // Will also call Report( aMessage ):
199 SetCurrentProgress( 0.0 );
200}
virtual void AdvancePhase() override
Use the next available virtual zone of the dialog progress bar.
virtual void SetCurrentProgress(double aProgress) override
Set the progress value to aProgress (0..1).

References PROGRESS_REPORTER_BASE::AdvancePhase(), and PROGRESS_REPORTER_BASE::SetCurrentProgress().

◆ AdvanceProgress()

void PROGRESS_REPORTER_BASE::AdvanceProgress ( )
overridevirtualinherited

Increment the progress bar length (inside the current virtual zone).

Implements PROGRESS_REPORTER.

Definition at line 86 of file progress_reporter_base.cpp.

87{
88 m_progress.fetch_add( 1 );
89}

References PROGRESS_REPORTER_BASE::m_progress.

◆ BeginPhase()

void PROGRESS_REPORTER_BASE::BeginPhase ( int  aPhase)
overridevirtualinherited

Initialize the aPhase virtual zone of the dialog progress bar.

Implements PROGRESS_REPORTER.

Definition at line 43 of file progress_reporter_base.cpp.

44{
45 m_phase.store( aPhase );
46 m_progress.store( 0 );
47}

References PROGRESS_REPORTER_BASE::m_phase, and PROGRESS_REPORTER_BASE::m_progress.

◆ centerMarkerIdleHandler()

void DIALOG_ERC::centerMarkerIdleHandler ( wxIdleEvent &  aEvent)
private

Definition at line 858 of file dialog_erc.cpp.

859{
861 m_centerMarkerOnIdle = nullptr;
862 Unbind( wxEVT_IDLE, &DIALOG_ERC::centerMarkerIdleHandler, this );
863}
void centerMarkerIdleHandler(wxIdleEvent &aEvent)
Definition: dialog_erc.cpp:858
void CenterMarker(const MARKER_BASE *aMarker)
Definition: rc_item.cpp:620

References RC_TREE_MODEL::CenterMarker(), centerMarkerIdleHandler(), m_centerMarkerOnIdle, and m_markerTreeModel.

Referenced by centerMarkerIdleHandler(), and SelectMarker().

◆ currentProgress()

int PROGRESS_REPORTER_BASE::currentProgress ( ) const
protectedinherited

Definition at line 104 of file progress_reporter_base.cpp.

105{
106 double current = ( 1.0 / (double) m_numPhases ) *
107 ( (double) m_phase + ( (double) m_progress.load() / (double) m_maxProgress ) );
108
109 return (int)( current * 1000 );
110}

References PROGRESS_REPORTER_BASE::m_maxProgress, PROGRESS_REPORTER_BASE::m_numPhases, PROGRESS_REPORTER_BASE::m_phase, and PROGRESS_REPORTER_BASE::m_progress.

Referenced by WX_PROGRESS_REPORTER::updateUI(), and GAUGE_PROGRESS_REPORTER::updateUI().

◆ DECLARE_EVENT_TABLE()

DIALOG_SHIM::DECLARE_EVENT_TABLE ( )
privateinherited

◆ deleteAllMarkers()

void DIALOG_ERC::deleteAllMarkers ( bool  aIncludeExclusions)
private

Definition at line 941 of file dialog_erc.cpp.

942{
943 // Clear current selection list to avoid selection of deleted items
945
946 m_markerTreeModel->DeleteItems( false, aIncludeExclusions, false );
947
948 SCH_SCREENS screens( m_parent->Schematic().Root() );
949 screens.DeleteAllMarkers( MARKER_BASE::MARKER_ERC, aIncludeExclusions );
950}
static TOOL_ACTION clearSelection
Clears the current selection.
Definition: ee_actions.h:56
void DeleteItems(bool aCurrentOnly, bool aIncludeExclusions, bool aDeep)
Deletes the current item or all items.
Definition: rc_item.cpp:469
SCH_SHEET & Root() const
Definition: schematic.h:91
Container class that holds multiple SCH_SCREEN objects in a hierarchy.
Definition: sch_screen.h:656
TOOL_MANAGER * GetToolManager() const
Return the MVC controller.
Definition: tools_holder.h:54
bool RunAction(const std::string &aActionName, bool aNow=false, T aParam=NULL)
Run the specified action.
Definition: tool_manager.h:142

References EE_ACTIONS::clearSelection, SCH_SCREENS::DeleteAllMarkers(), RC_TREE_MODEL::DeleteItems(), TOOLS_HOLDER::GetToolManager(), m_markerTreeModel, m_parent, MARKER_BASE::MARKER_ERC, SCHEMATIC::Root(), TOOL_MANAGER::RunAction(), and SCH_EDIT_FRAME::Schematic().

Referenced by OnDeleteAllClick(), and OnRunERCClick().

◆ Enable()

bool DIALOG_SHIM::Enable ( bool  enable)
overrideinherited

Definition at line 318 of file dialog_shim.cpp.

319{
320 // so we can do logging of this state change:
321 return wxDialog::Enable( enable );
322}

◆ EndQuasiModal()

void DIALOG_SHIM::EndQuasiModal ( int  retCode)
inherited

Definition at line 486 of file dialog_shim.cpp.

487{
488 // Hook up validator and transfer data from controls handling so quasi-modal dialogs
489 // handle validation in the same way as other dialogs.
490 if( ( retCode == wxID_OK ) && ( !Validate() || !TransferDataFromWindow() ) )
491 return;
492
493 SetReturnCode( retCode );
494
495 if( !IsQuasiModal() )
496 {
497 wxFAIL_MSG( wxT( "Either DIALOG_SHIM::EndQuasiModal was called twice, or ShowQuasiModal"
498 "wasn't called" ) );
499 return;
500 }
501
502 if( m_qmodal_loop )
503 {
504 if( m_qmodal_loop->IsRunning() )
505 m_qmodal_loop->Exit( 0 );
506 else
507 m_qmodal_loop->ScheduleExit( 0 );
508
509 m_qmodal_loop = nullptr;
510 }
511
513 m_qmodal_parent_disabler = nullptr;
514
515 Show( false );
516}
bool Show(bool show) override
bool IsQuasiModal() const
Definition: dialog_shim.h:106
WDO_ENABLE_DISABLE * m_qmodal_parent_disabler
Definition: dialog_shim.h:218
WX_EVENT_LOOP * m_qmodal_loop
Definition: dialog_shim.h:215

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

Referenced by EDA_3D_CONTROLLER::Main(), DIALOG_EXPORT_NETLIST::OnAddGenerator(), DIALOG_SHIM::OnButton(), DIALOG_EDIT_SYMBOLS_LIBID::onCancel(), DIALOG_LIB_SYMBOL_PROPERTIES::OnCancelButtonClick(), DIALOG_SYMBOL_PROPERTIES::OnCancelButtonClick(), DIALOG_LIB_EDIT_PIN_TABLE::OnClose(), DIALOG_CHOOSE_FOOTPRINT::OnCloseTimer(), DIALOG_SHIM::OnCloseWindow(), DIALOG_EXPORT_NETLIST::OnDelGenerator(), DIALOG_SYMBOL_PROPERTIES::OnEditLibrarySymbol(), DIALOG_SYMBOL_PROPERTIES::OnEditSymbol(), DIALOG_SYMBOL_PROPERTIES::OnExchangeSymbol(), PCB_ONE_LAYER_SELECTOR::OnLeftGridCellClick(), PCB_ONE_LAYER_SELECTOR::OnRightGridCellClick(), DIALOG_SYMBOL_PROPERTIES::OnUpdateSymbol(), DIALOG_CHOOSE_FOOTPRINT::OnUseBrowser(), DIALOG_PUSH_PAD_PROPERTIES::PadPropertiesAccept(), and DIALOG_SHIM::~DIALOG_SHIM().

◆ ExcludeMarker()

void DIALOG_ERC::ExcludeMarker ( SCH_MARKER aMarker = nullptr)

Exclude aMarker from the ERC list.

If aMarker is nullptr, exclude the selected marker in this dialog.

Parameters
aMarkeraMarker to exclude

Definition at line 866 of file dialog_erc.cpp.

867{
868 SCH_MARKER* marker = aMarker;
869
870 if( marker != nullptr )
872
873 if( m_notebook->GetSelection() != 0 )
874 return;
875
876 RC_TREE_NODE* node = RC_TREE_MODEL::ToNode( m_markerDataView->GetCurrentItem() );
877
878 if( node && node->m_RcItem )
879 marker = dynamic_cast<SCH_MARKER*>( node->m_RcItem->GetParent() );
880
881 if( node && marker && !marker->IsExcluded() )
882 {
883 marker->SetExcluded( true );
884 m_parent->GetCanvas()->GetView()->Update( marker );
885
886 // Update view
889 else
891
895 }
896}
void redrawDrawPanel()
Definition: dialog_erc.cpp:449
virtual void Update(const VIEW_ITEM *aItem, int aUpdateFlags) const
For dynamic VIEWs, inform the associated VIEW that the graphical representation of this item has chan...
Definition: view.cpp:1591
bool IsExcluded() const
Definition: marker_base.h:97
void SetExcluded(bool aExcluded)
Definition: marker_base.h:98
void SelectMarker(const MARKER_BASE *aMarker)
Definition: rc_item.cpp:607
static RC_TREE_NODE * ToNode(wxDataViewItem aItem)
Definition: rc_item.h:209
void DeleteCurrentItem(bool aDeep)
Definition: rc_item.cpp:463
void ValueChanged(const RC_TREE_NODE *aNode)
Definition: rc_item.cpp:446
std::shared_ptr< RC_ITEM > m_RcItem
Definition: rc_item.h:194
SCH_DRAW_PANEL * GetCanvas() const override
Return a pointer to GAL-based canvas of given EDA draw frame.
KIGFX::SCH_VIEW * GetView() const override
Return a pointer to the #VIEW instance used in the panel.
void OnModify() override
Must be called after a schematic change in order to set the "modify" flag and update other data struc...
@ RPT_SEVERITY_EXCLUSION

References RC_TREE_MODEL::DeleteCurrentItem(), SCH_BASE_FRAME::GetCanvas(), SCH_DRAW_PANEL::GetView(), MARKER_BASE::IsExcluded(), DIALOG_ERC_BASE::m_markerDataView, m_markerTreeModel, DIALOG_ERC_BASE::m_notebook, m_parent, RC_TREE_NODE::m_RcItem, m_severities, SCH_EDIT_FRAME::OnModify(), redrawDrawPanel(), RPT_SEVERITY_EXCLUSION, RC_TREE_MODEL::SelectMarker(), MARKER_BASE::SetExcluded(), RC_TREE_MODEL::ToNode(), KIGFX::VIEW::Update(), updateDisplayedCounts(), and RC_TREE_MODEL::ValueChanged().

Referenced by EE_INSPECTION_TOOL::ExcludeMarker().

◆ 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 after all widgets have been initialized, and therefore their size fixed. If TransferDataToWindow() is used to initialize widgets, at the end of TransferDataToWindow, or better yet, at end of a wxInitDialogEvent handler.

Definition at line 157 of file dialog_shim.cpp.

158{
159 // must be called from the constructor of derived classes,
160 // when all widgets are initialized, and therefore their size fixed
161
162 // SetSizeHints fixes the minimal size of sizers in the dialog
163 // (SetSizeHints calls Fit(), so no need to call it)
164 GetSizer()->SetSizeHints( this );
165}

Referenced by CONVERT_SETTINGS_DIALOG::CONVERT_SETTINGS_DIALOG(), DIALOG_ANNOTATE::DIALOG_ANNOTATE(), DIALOG_ASSIGN_NETCLASS::DIALOG_ASSIGN_NETCLASS(), DIALOG_BOARD_REANNOTATE::DIALOG_BOARD_REANNOTATE(), DIALOG_BOARD_SETUP::DIALOG_BOARD_SETUP(), DIALOG_BOM::DIALOG_BOM(), DIALOG_CHANGE_SYMBOLS::DIALOG_CHANGE_SYMBOLS(), DIALOG_CLEANUP_TRACKS_AND_VIAS::DIALOG_CLEANUP_TRACKS_AND_VIAS(), DIALOG_COPPER_ZONE::DIALOG_COPPER_ZONE(), DIALOG_DIMENSION_PROPERTIES::DIALOG_DIMENSION_PROPERTIES(), DIALOG_DRC::DIALOG_DRC(), DIALOG_EDIT_SYMBOLS_LIBID::DIALOG_EDIT_SYMBOLS_LIBID(), DIALOG_ENUM_PADS::DIALOG_ENUM_PADS(), DIALOG_ERC(), DIALOG_EXCHANGE_FOOTPRINTS::DIALOG_EXCHANGE_FOOTPRINTS(), DIALOG_EXPORT_3DFILE::DIALOG_EXPORT_3DFILE(), DIALOG_EXPORT_IDF3::DIALOG_EXPORT_IDF3(), DIALOG_EXPORT_NETLIST::DIALOG_EXPORT_NETLIST(), DIALOG_EXPORT_STEP::DIALOG_EXPORT_STEP(), DIALOG_EXPORT_SVG::DIALOG_EXPORT_SVG(), DIALOG_FOOTPRINT_CHECKER::DIALOG_FOOTPRINT_CHECKER(), DIALOG_FOOTPRINT_PROPERTIES::DIALOG_FOOTPRINT_PROPERTIES(), DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR::DIALOG_FOOTPRINT_PROPERTIES_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_GROUP_PROPERTIES::DIALOG_GROUP_PROPERTIES(), DIALOG_IBIS_PARSER_REPORTER::DIALOG_IBIS_PARSER_REPORTER(), DIALOG_IMAGE_PROPERTIES::DIALOG_IMAGE_PROPERTIES(), DIALOG_IMPORT_NETLIST::DIALOG_IMPORT_NETLIST(), DIALOG_IMPORTED_LAYERS::DIALOG_IMPORTED_LAYERS(), DIALOG_INSPECTOR::DIALOG_INSPECTOR(), DIALOG_JUNCTION_PROPS::DIALOG_JUNCTION_PROPS(), DIALOG_LABEL_PROPERTIES::DIALOG_LABEL_PROPERTIES(), DIALOG_LIB_NEW_SYMBOL::DIALOG_LIB_NEW_SYMBOL(), DIALOG_LIB_SHAPE_PROPERTIES::DIALOG_LIB_SHAPE_PROPERTIES(), DIALOG_LIB_SYMBOL_PROPERTIES::DIALOG_LIB_SYMBOL_PROPERTIES(), DIALOG_LIB_TEXT_PROPERTIES::DIALOG_LIB_TEXT_PROPERTIES(), DIALOG_LIB_TEXTBOX_PROPERTIES::DIALOG_LIB_TEXTBOX_PROPERTIES(), DIALOG_LINE_PROPERTIES::DIALOG_LINE_PROPERTIES(), DIALOG_LIST_HOTKEYS::DIALOG_LIST_HOTKEYS(), DIALOG_LOCKED_ITEMS_QUERY::DIALOG_LOCKED_ITEMS_QUERY(), DIALOG_MANAGE_REPOSITORIES::DIALOG_MANAGE_REPOSITORIES(), DIALOG_MOVE_EXACT::DIALOG_MOVE_EXACT(), DIALOG_NET_INSPECTOR::DIALOG_NET_INSPECTOR(), 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_PCM::DIALOG_PCM(), DIALOG_PIN_PROPERTIES::DIALOG_PIN_PROPERTIES(), DIALOG_PLOT_SCHEMATIC::DIALOG_PLOT_SCHEMATIC(), DIALOG_PNS_SETTINGS::DIALOG_PNS_SETTINGS(), DIALOG_POSITION_RELATIVE::DIALOG_POSITION_RELATIVE(), DIALOG_PRINT_GENERIC::DIALOG_PRINT_GENERIC(), DIALOG_PRINT_PCBNEW::DIALOG_PRINT_PCBNEW(), DIALOG_PRINT_USING_PRINTER::DIALOG_PRINT_USING_PRINTER(), DIALOG_PUSH_PAD_PROPERTIES::DIALOG_PUSH_PAD_PROPERTIES(), DIALOG_REGULATOR_FORM::DIALOG_REGULATOR_FORM(), DIALOG_RULE_AREA_PROPERTIES::DIALOG_RULE_AREA_PROPERTIES(), DIALOG_SCHEMATIC_SETUP::DIALOG_SCHEMATIC_SETUP(), DIALOG_SELECT_3DMODEL::DIALOG_SELECT_3DMODEL(), DIALOG_SHAPE_PROPERTIES::DIALOG_SHAPE_PROPERTIES(), DIALOG_SHEET_PIN_PROPERTIES::DIALOG_SHEET_PIN_PROPERTIES(), DIALOG_SIM_MODEL< T_symbol, T_field >::DIALOG_SIM_MODEL(), DIALOG_SWAP_LAYERS::DIALOG_SWAP_LAYERS(), DIALOG_SYMBOL_FIELDS_TABLE::DIALOG_SYMBOL_FIELDS_TABLE(), DIALOG_SYMBOL_PROPERTIES::DIALOG_SYMBOL_PROPERTIES(), DIALOG_TARGET_PROPERTIES::DIALOG_TARGET_PROPERTIES(), DIALOG_TEXT_PROPERTIES::DIALOG_TEXT_PROPERTIES(), DIALOG_TEXTBOX_PROPERTIES::DIALOG_TEXTBOX_PROPERTIES(), DIALOG_TRACK_VIA_PROPERTIES::DIALOG_TRACK_VIA_PROPERTIES(), DIALOG_TRACK_VIA_SIZE::DIALOG_TRACK_VIA_SIZE(), DIALOG_UNUSED_PAD_LAYERS::DIALOG_UNUSED_PAD_LAYERS(), DIALOG_UPDATE_FROM_PCB::DIALOG_UPDATE_FROM_PCB(), DIALOG_UPDATE_PCB::DIALOG_UPDATE_PCB(), DIALOG_UPDATE_SYMBOL_FIELDS::DIALOG_UPDATE_SYMBOL_FIELDS(), DIALOG_WIRE_BUS_PROPERTIES::DIALOG_WIRE_BUS_PROPERTIES(), PAGED_DIALOG::finishInitialization(), DIALOG_CONSTRAINTS_REPORTER::FinishInitialization(), DIALOG_FIELD_PROPERTIES::init(), DIALOG_EDIT_LIBRARY_TABLES::InstallPanel(), NETLIST_VIEW_DIALOG::NETLIST_VIEW_DIALOG(), DIALOG_SHEET_PROPERTIES::OnInitDlg(), DIALOG_SIM_COMMAND::onInitDlg(), DIALOG_SYMBOL_PROPERTIES::OnInitDlg(), DIALOG_GRAPHIC_ITEM_PROPERTIES::OnInitDlg(), TEARDROP_DIALOG::TEARDROP_DIALOG(), DIALOG_SIGNAL_LIST::TransferDataToWindow(), DIALOG_COLOR_PICKER::TransferDataToWindow(), and DIALOG_BOARD_STATISTICS::TransferDataToWindow().

◆ GetType()

HOLDER_TYPE KIWAY_HOLDER::GetType ( ) const
inlineinherited

Definition at line 46 of file kiway_holder.h.

46{ return m_type; }
HOLDER_TYPE m_type
Definition: kiway_holder.h:85

References KIWAY_HOLDER::m_type.

Referenced by DIALOG_SHIM::DIALOG_SHIM().

◆ GetUserUnits()

◆ HasKiway()

bool KIWAY_HOLDER::HasKiway ( ) const
inlineinherited

Safety check before asking for the Kiway reference.

Returns
true if kiway is non-null

Definition at line 63 of file kiway_holder.h.

64 {
65 return m_kiway != nullptr;
66 }
KIWAY * m_kiway
Definition: kiway_holder.h:84

References KIWAY_HOLDER::m_kiway.

Referenced by DIALOG_SHIM::~DIALOG_SHIM().

◆ horizPixelsFromDU()

int DIALOG_SHIM::horizPixelsFromDU ( int  x) const
protectedinherited

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

See SetSizeInDU or wxDialog documentation for more information.

Definition at line 175 of file dialog_shim.cpp.

176{
177 wxSize sz( x, 0 );
178 return ConvertDialogToPixels( sz ).x;
179}

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

◆ IsCancelled()

bool PROGRESS_REPORTER_BASE::IsCancelled ( ) const
inlineoverridevirtualinherited

Implements PROGRESS_REPORTER.

Definition at line 108 of file progress_reporter_base.h.

108{ return m_cancelled; }

References PROGRESS_REPORTER_BASE::m_cancelled.

Referenced by SYMBOL_EDIT_FRAME::SYMBOL_EDIT_FRAME().

◆ IsCtrl()

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

Definition at line 128 of file dialog_shim.h.

129 {
130 return e.GetKeyCode() == aChar && e.ControlDown() && !e.AltDown() &&
131 !e.ShiftDown() && !e.MetaDown();
132 }

◆ IsQuasiModal()

◆ IsShiftCtrl()

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

Definition at line 134 of file dialog_shim.h.

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

◆ KeepRefreshing()

bool PROGRESS_REPORTER_BASE::KeepRefreshing ( bool  aWait = false)
overridevirtualinherited

Update the UI dialog.

Warning
This should only be called from the main thread.
Returns
false if the user clicked Cancel.

Implements PROGRESS_REPORTER.

Definition at line 113 of file progress_reporter_base.cpp.

114{
115 if( aWait )
116 {
117 while( m_progress.load() < m_maxProgress && m_maxProgress > 0 )
118 {
119 if( !updateUI() )
120 {
121 m_cancelled.store( true );
122 return false;
123 }
124
125 wxMilliSleep( 33 /* 30 FPS refresh rate */ );
126 }
127
128 return true;
129 }
130 else
131 {
132 if( !updateUI() )
133 {
134 m_cancelled.store( true );
135 return false;
136 }
137
138 return true;
139 }
140}
virtual bool updateUI()=0

References PROGRESS_REPORTER_BASE::m_cancelled, PROGRESS_REPORTER_BASE::m_maxProgress, PROGRESS_REPORTER_BASE::m_progress, and PROGRESS_REPORTER_BASE::updateUI().

◆ Kiway()

KIWAY & KIWAY_HOLDER::Kiway ( ) const
inlineinherited

Return 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 53 of file kiway_holder.h.

54 {
55 wxASSERT( m_kiway ); // smoke out bugs in Debug build, then Release runs fine.
56 return *m_kiway;
57 }

References KIWAY_HOLDER::m_kiway.

Referenced by PROJECT_TREE_ITEM::Activate(), FOOTPRINT_VIEWER_FRAME::AddFootprintToPCB(), PCB_BASE_EDIT_FRAME::AddLibrary(), SYMBOL_EDIT_FRAME::AddLibraryFile(), SYMBOL_EDITOR_CONTROL::AddSymbolToSchematic(), SCH_EDIT_FRAME::AskToSaveChanges(), IMPORT_PROJ_HELPER::AssociateFileWithProj(), CVPCB_MAINFRAME::BuildLibrariesListBox(), FOOTPRINT_EDIT_FRAME::buildSaveAsDialog(), SYMBOL_EDIT_FRAME::buildSaveAsDialog(), SYMBOL_EDIT_FRAME::CanCloseSymbolFromSchematic(), SCH_EDIT_FRAME::canCloseWindow(), PCB_EDIT_FRAME::canCloseWindow(), KICAD_MANAGER_FRAME::CloseProject(), COMMON_CONTROL::ConfigurePaths(), DIALOG_CHOOSE_SYMBOL::ConstructRightPanel(), DIALOG_CHOOSE_FOOTPRINT::ConstructRightPanel(), PCB_BASE_FRAME::CreateAndShow3D_Frame(), FOOTPRINT_EDITOR_CONTROL::CreateFootprint(), CVPCB_MAINFRAME::CVPCB_MAINFRAME(), SYMBOL_EDIT_FRAME::DdAddLibrary(), DIALOG_LIST_HOTKEYS::DIALOG_LIST_HOTKEYS(), DIALOG_RESCUE_EACH::DIALOG_RESCUE_EACH(), DIALOG_SHIM::DIALOG_SHIM(), SCH_EDIT_FRAME::doCloseWindow(), FIELDS_EDITOR_GRID_TRICKS::doPopupSelection(), FIELDS_GRID_TRICKS::doPopupSelection(), BOARD_EDITOR_CONTROL::EditFpInFpEditor(), SCH_EDITOR_CONTROL::EditWithSymbolEditor(), BACK_ANNOTATE::FetchNetlistFromPCB(), PCB_EDIT_FRAME::FetchNetlistFromSchematic(), SCRIPTING_TOOL::Init(), EDA_DRAW_FRAME::IsScriptingConsoleVisible(), KIWAY_PLAYER::language_change(), KICAD_MANAGER_FRAME::language_change(), DIALOG_CHANGE_SYMBOLS::launchMatchIdSymbolBrowser(), DIALOG_CHANGE_SYMBOLS::launchNewIdSymbolBrowser(), FOOTPRINT_EDIT_FRAME::LoadFootprintFromBoard(), PGM_SINGLE_TOP::MacOpenFile(), SIM_PLOT_FRAME::menuExit(), TEXT_BUTTON_SYMBOL_CHOOSER::OnButtonClick(), TEXT_BUTTON_FP_CHOOSER::OnButtonClick(), PL_EDITOR_FRAME::OnExit(), SCH_EDIT_FRAME::OnExit(), FOOTPRINT_EDIT_FRAME::OnExitKiCad(), SYMBOL_EDIT_FRAME::OnExitKiCad(), FOOTPRINT_VIEWER_FRAME::OnExitKiCad(), SAVE_AS_TRAVERSER::OnFile(), DIALOG_CHOOSE_SYMBOL::OnInitDialog(), KIGFX::WX_VIEW_CONTROLS::onMotion(), SCH_EDIT_FRAME::OnOpenCvpcb(), SCH_EDIT_FRAME::OnOpenPcbnew(), SIM_PLOT_FRAME::onProbe(), PCB_EDIT_FRAME::OnQuit(), DIALOG_SYMBOL_REMAP::OnRemapSymbols(), DIALOG_FIELD_PROPERTIES::OnTextValueSelectButtonClick(), SIM_PLOT_FRAME::onTune(), KICAD_MANAGER_FRAME::OnUnarchiveFiles(), FOOTPRINT_EDIT_FRAME::OnUpdateLoadFootprintFromBoard(), SCH_EDIT_FRAME::OnUpdatePCB(), FOOTPRINT_EDIT_FRAME::OnUpdateSaveFootprintToBoard(), SCH_BASE_FRAME::PickSymbolFromLibBrowser(), KIWAY_HOLDER::Prj(), SCH_EDIT_TOOL::Properties(), BACK_ANNOTATE::PushNewLinksToPCB(), FOOTPRINT_WIZARD_FRAME::PythonPluginsReload(), FOOTPRINT_VIEWER_FRAME::ReCreateFootprintList(), SYMBOL_VIEWER_FRAME::ReCreateLibList(), FOOTPRINT_VIEWER_FRAME::ReCreateLibraryList(), SCH_EDITOR_CONTROL::rescueProject(), PCB_EDIT_FRAME::RunEeschema(), EE_INSPECTION_TOOL::RunSimulation(), SYMBOL_EDIT_FRAME::Save(), SYMBOL_EDIT_FRAME::saveCurrentSymbol(), CVPCB_MAINFRAME::SaveFootprintAssociation(), FOOTPRINT_EDIT_FRAME::SaveFootprintToBoard(), EDA_DRAW_FRAME::ScriptingConsoleEnableDisable(), PCB_BASE_FRAME::SelectFootprintFromLibBrowser(), PCB_BASE_FRAME::SelectLibrary(), CVPCB_MAINFRAME::SendComponentSelectionToSch(), SCH_EDIT_FRAME::SendCrossProbeClearHighlight(), PCB_EDIT_FRAME::SendCrossProbeItem(), SCH_EDIT_FRAME::SendCrossProbeNetName(), PCB_EDIT_FRAME::SendCrossProbeNetName(), SCH_EDIT_FRAME::sendNetlistToCvpcb(), SCH_EDIT_FRAME::SendSelectItemsToPcb(), PCB_EDIT_FRAME::SendSelectItemsToSch(), SCH_EDIT_FRAME::SetCrossProbeConnection(), SYMBOL_EDIT_FRAME::SetCurSymbol(), PCB_EDIT_FRAME::ShowBoardSetupDialog(), PCB_EDIT_FRAME::ShowFootprintPropertiesDialog(), CVPCB_CONTROL::ShowFootprintViewer(), COMMON_CONTROL::ShowLibraryTable(), COMMON_CONTROL::ShowPlayer(), KICAD_MANAGER_CONTROL::ShowPlayer(), EDA_BASE_FRAME::ShowPreferences(), SCH_EDIT_FRAME::ShowSchematicSetupDialog(), SIM_PLOT_FRAME::SIM_PLOT_FRAME(), PCB_EDIT_FRAME::TestStandalone(), BOARD_EDITOR_CONTROL::UpdateSchematicFromPCB(), DIALOG_EXCHANGE_FOOTPRINTS::ViewAndSelectFootprint(), and DIALOG_SHIM::~DIALOG_SHIM().

◆ NextMarker()

void DIALOG_ERC::NextMarker ( )

Definition at line 831 of file dialog_erc.cpp.

832{
833 if( m_notebook->IsShown() )
834 {
835 if( m_notebook->GetSelection() != 0 )
836 m_notebook->SetSelection( 0 );
837
839 }
840}
void NextMarker()
Definition: rc_item.cpp:579

References m_markerTreeModel, DIALOG_ERC_BASE::m_notebook, and RC_TREE_MODEL::NextMarker().

Referenced by EE_INSPECTION_TOOL::NextMarker().

◆ OnButton()

void DIALOG_SHIM::OnButton ( wxCommandEvent &  aEvent)
privateinherited

Properly handle the default button events when in the quasimodal mode when not calling EndQuasiModal which is possible with any dialog derived from DIALOG_SHIM.

Definition at line 532 of file dialog_shim.cpp.

533{
534 const int id = aEvent.GetId();
535
536 // If we are pressing a button to exit, we need to enable the escapeID
537 // otherwise the dialog does not process cancel
538 if( id == wxID_CANCEL )
539 SetEscapeId( wxID_ANY );
540
541 if( IsQuasiModal() )
542 {
543 if( id == GetAffirmativeId() )
544 {
545 EndQuasiModal( id );
546 }
547 else if( id == wxID_APPLY )
548 {
549 // Dialogs that provide Apply buttons should make sure data is valid before
550 // allowing a transfer, as there is no other way to indicate failure
551 // (i.e. the dialog can't refuse to close as it might with OK, because it
552 // isn't closing anyway)
553 if( Validate() )
554 {
555 ignore_unused( TransferDataFromWindow() );
556 }
557 }
558 else if( id == GetEscapeId() || (id == wxID_CANCEL && GetEscapeId() == wxID_ANY) )
559 {
560 EndQuasiModal( wxID_CANCEL );
561 }
562 else // not a standard button
563 {
564 aEvent.Skip();
565 }
566
567 return;
568 }
569
570 // This is mandatory to allow wxDialogBase::OnButton() to be called.
571 aEvent.Skip();
572}
void EndQuasiModal(int retCode)
void ignore_unused(const T &)
Definition: ignore.h:24

References DIALOG_SHIM::EndQuasiModal(), ignore_unused(), and DIALOG_SHIM::IsQuasiModal().

Referenced by DIALOG_SHIM::DIALOG_SHIM().

◆ OnCancelClick()

void DIALOG_ERC::OnCancelClick ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_ERC_BASE.

Definition at line 321 of file dialog_erc.cpp.

322{
323 if( m_running )
324 {
325 m_cancelled = true;
326 return;
327 }
328
329 m_parent->FocusOnItem( nullptr );
330
331 Close();
332}
void FocusOnItem(SCH_ITEM *aItem)

References SCH_EDIT_FRAME::FocusOnItem(), PROGRESS_REPORTER_BASE::m_cancelled, m_parent, and m_running.

◆ OnCharHook()

void DIALOG_SHIM::OnCharHook ( wxKeyEvent &  aEvt)
protectedvirtualinherited

Reimplemented in HK_PROMPT_DIALOG, DIALOG_CHOOSE_SYMBOL, and HTML_MESSAGE_BOX.

Definition at line 575 of file dialog_shim.cpp.

576{
577 if( aEvt.GetKeyCode() == 'U' && aEvt.GetModifiers() == wxMOD_CONTROL )
578 {
579 if( m_parentFrame )
580 {
582 return;
583 }
584 }
585 // shift-return (Mac default) or Ctrl-Return (GTK) for OK
586 else if( aEvt.GetKeyCode() == WXK_RETURN && ( aEvt.ShiftDown() || aEvt.ControlDown() ) )
587 {
588 wxPostEvent( this, wxCommandEvent( wxEVT_COMMAND_BUTTON_CLICKED, wxID_OK ) );
589 return;
590 }
591 else if( aEvt.GetKeyCode() == WXK_TAB && !aEvt.ControlDown() )
592 {
593 wxWindow* currentWindow = wxWindow::FindFocus();
594 int currentIdx = -1;
595 int delta = aEvt.ShiftDown() ? -1 : 1;
596
597 auto advance =
598 [&]( int& idx )
599 {
600 // Wrap-around modulus
601 int size = (int) m_tabOrder.size();
602 idx = ( ( idx + delta ) % size + size ) % size;
603 };
604
605 for( size_t i = 0; i < m_tabOrder.size(); ++i )
606 {
607 if( m_tabOrder[i] == currentWindow )
608 {
609 currentIdx = (int) i;
610 break;
611 }
612 }
613
614 if( currentIdx >= 0 )
615 {
616 advance( currentIdx );
617
618 //todo: We don't currently have non-textentry dialog boxes but this will break if
619 // we add them.
620#ifdef __APPLE__
621 while( dynamic_cast<wxTextEntry*>( m_tabOrder[ currentIdx ] ) == nullptr )
622 advance( currentIdx );
623#endif
624
625 m_tabOrder[ currentIdx ]->SetFocus();
626 return;
627 }
628 }
629
630 aEvt.Skip();
631}
std::vector< wxWindow * > m_tabOrder
Definition: dialog_shim.h:222
EDA_BASE_FRAME * m_parentFrame
Definition: dialog_shim.h:220
virtual void ToggleUserUnits()
constexpr int delta

References delta, DIALOG_SHIM::m_parentFrame, DIALOG_SHIM::m_tabOrder, and EDA_BASE_FRAME::ToggleUserUnits().

Referenced by DIALOG_TEXT_PROPERTIES::DIALOG_TEXT_PROPERTIES(), DIALOG_TEXTBOX_PROPERTIES::DIALOG_TEXTBOX_PROPERTIES(), and DIALOG_TEXTBOX_PROPERTIES::~DIALOG_TEXTBOX_PROPERTIES().

◆ OnCloseErcDialog()

void DIALOG_ERC::OnCloseErcDialog ( wxCloseEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_ERC_BASE.

Definition at line 335 of file dialog_erc.cpp.

336{
337 m_parent->FocusOnItem( nullptr );
338
339 m_parent->GetToolManager()->GetTool<EE_INSPECTION_TOOL>()->DestroyERCDialog();
340}

References SCH_EDIT_FRAME::FocusOnItem(), TOOL_MANAGER::GetTool(), TOOLS_HOLDER::GetToolManager(), and m_parent.

◆ OnCloseWindow()

void DIALOG_SHIM::OnCloseWindow ( wxCloseEvent &  aEvent)
privateinherited

Properly handle the wxCloseEvent when in the quasimodal mode when not calling EndQuasiModal which is possible with any dialog derived from DIALOG_SHIM.

Definition at line 519 of file dialog_shim.cpp.

520{
521 if( IsQuasiModal() )
522 {
523 EndQuasiModal( wxID_CANCEL );
524 return;
525 }
526
527 // This is mandatory to allow wxDialogBase::OnCloseWindow() to be called.
528 aEvent.Skip();
529}

References DIALOG_SHIM::EndQuasiModal(), and DIALOG_SHIM::IsQuasiModal().

Referenced by DIALOG_SHIM::DIALOG_SHIM().

◆ OnDeleteAllClick()

void DIALOG_ERC::OnDeleteAllClick ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_ERC_BASE.

Definition at line 289 of file dialog_erc.cpp.

290{
291 bool includeExclusions = false;
292 int numExcluded = 0;
293
294 if( m_markerProvider )
295 numExcluded += m_markerProvider->GetCount( RPT_SEVERITY_EXCLUSION );
296
297 if( numExcluded > 0 )
298 {
299 wxMessageDialog dlg( this, _( "Delete exclusions too?" ), _( "Delete All Markers" ),
300 wxYES_NO | wxCANCEL | wxCENTER | wxICON_QUESTION );
301 dlg.SetYesNoLabels( _( "Errors and Warnings Only" ),
302 _( "Errors, Warnings and Exclusions" ) );
303
304 int ret = dlg.ShowModal();
305
306 if( ret == wxID_CANCEL )
307 return;
308 else if( ret == wxID_NO )
309 includeExclusions = true;
310 }
311
312 deleteAllMarkers( includeExclusions );
313
314 // redraw the schematic
317}
void deleteAllMarkers(bool aIncludeExclusions)
Definition: dialog_erc.cpp:941

References _, deleteAllMarkers(), m_markerProvider, redrawDrawPanel(), RPT_SEVERITY_EXCLUSION, and updateDisplayedCounts().

◆ OnDeleteOneClick()

void DIALOG_ERC::OnDeleteOneClick ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_ERC_BASE.

Definition at line 270 of file dialog_erc.cpp.

271{
272 if( m_notebook->GetSelection() == 0 )
273 {
274 // Clear the selection. It may be the selected ERC marker.
276
278
279 // redraw the schematic
281 }
282
284}

References EE_ACTIONS::clearSelection, RC_TREE_MODEL::DeleteCurrentItem(), TOOLS_HOLDER::GetToolManager(), m_markerTreeModel, DIALOG_ERC_BASE::m_notebook, m_parent, redrawDrawPanel(), TOOL_MANAGER::RunAction(), and updateDisplayedCounts().

◆ OnERCItemDClick()

void DIALOG_ERC::OnERCItemDClick ( wxDataViewEvent &  aEvent)
overrideprivatevirtual

Reimplemented from DIALOG_ERC_BASE.

Definition at line 632 of file dialog_erc.cpp.

633{
634 if( aEvent.GetItem().IsOk() )
635 {
636 // turn control over to m_parent, hide this DIALOG_ERC window,
637 // no destruction so we can preserve listbox cursor
638 if( !IsModal() )
639 Show( false );
640 }
641
642 aEvent.Skip();
643}

References DIALOG_SHIM::Show().

◆ OnERCItemRClick()

void DIALOG_ERC::OnERCItemRClick ( wxDataViewEvent &  aEvent)
overrideprivatevirtual

Reimplemented from DIALOG_ERC_BASE.

Definition at line 646 of file dialog_erc.cpp.

647{
648 RC_TREE_NODE* node = RC_TREE_MODEL::ToNode( aEvent.GetItem() );
649
650 if( !node )
651 return;
652
654
655 std::shared_ptr<RC_ITEM> rcItem = node->m_RcItem;
656 wxString listName;
657 wxMenu menu;
658
659 switch( settings.GetSeverity( rcItem->GetErrorCode() ) )
660 {
661 case RPT_SEVERITY_ERROR: listName = _( "errors" ); break;
662 case RPT_SEVERITY_WARNING: listName = _( "warnings" ); break;
663 default: listName = _( "appropriate" ); break;
664 }
665
666 if( rcItem->GetParent()->IsExcluded() )
667 {
668 menu.Append( 1, _( "Remove exclusion for this violation" ),
669 wxString::Format( _( "It will be placed back in the %s list" ), listName ) );
670 }
671 else
672 {
673 menu.Append( 2, _( "Exclude this violation" ),
674 wxString::Format( _( "It will be excluded from the %s list" ), listName ) );
675 }
676
677 menu.AppendSeparator();
678
679 if( rcItem->GetErrorCode() == ERCE_PIN_TO_PIN_WARNING
680 || rcItem->GetErrorCode() == ERCE_PIN_TO_PIN_ERROR )
681 {
682 // Pin to pin severities edited through pin conflict map
683 }
684 else if( settings.GetSeverity( rcItem->GetErrorCode() ) == RPT_SEVERITY_WARNING )
685 {
686 menu.Append( 4, wxString::Format( _( "Change severity to Error for all '%s' violations" ),
687 rcItem->GetErrorText() ),
688 _( "Violation severities can also be edited in the Board Setup... dialog" ) );
689 }
690 else
691 {
692 menu.Append( 5, wxString::Format( _( "Change severity to Warning for all '%s' violations" ),
693 rcItem->GetErrorText() ),
694 _( "Violation severities can also be edited in the Board Setup... dialog" ) );
695 }
696
697 menu.Append( 6, wxString::Format( _( "Ignore all '%s' violations" ), rcItem->GetErrorText() ),
698 _( "Violations will not be checked or reported" ) );
699
700 menu.AppendSeparator();
701
702 if( rcItem->GetErrorCode() == ERCE_PIN_TO_PIN_WARNING
703 || rcItem->GetErrorCode() == ERCE_PIN_TO_PIN_ERROR )
704 {
705 menu.Append( 7, _( "Edit pin-to-pin conflict map..." ) );
706 }
707 else
708 {
709 menu.Append( 8, _( "Edit violation severities..." ),
710 _( "Open the Schematic Setup... dialog" ) );
711 }
712
713 bool modified = false;
714
715 switch( GetPopupMenuSelectionFromUser( menu ) )
716 {
717 case 1:
718 {
719 SCH_MARKER* marker = dynamic_cast<SCH_MARKER*>( node->m_RcItem->GetParent() );
720
721 if( marker )
722 {
723 marker->SetExcluded( false );
724 m_parent->GetCanvas()->GetView()->Update( marker );
725
726 // Update view
727 static_cast<RC_TREE_MODEL*>( aEvent.GetModel() )->ValueChanged( node );
728 modified = true;
729 }
730 }
731 break;
732
733 case 2:
734 {
735 SCH_MARKER* marker = dynamic_cast<SCH_MARKER*>( node->m_RcItem->GetParent() );
736
737 if( marker )
738 {
739 marker->SetExcluded( true );
740 m_parent->GetCanvas()->GetView()->Update( marker );
741
742 // Update view
744 static_cast<RC_TREE_MODEL*>( aEvent.GetModel() )->ValueChanged( node );
745 else
746 static_cast<RC_TREE_MODEL*>( aEvent.GetModel() )->DeleteCurrentItem( false );
747
748 modified = true;
749 }
750 }
751 break;
752
753 case 4:
754 settings.SetSeverity( rcItem->GetErrorCode(), RPT_SEVERITY_ERROR );
755
756 for( SCH_ITEM* item : m_parent->GetScreen()->Items().OfType( SCH_MARKER_T ) )
757 {
758 SCH_MARKER* marker = static_cast<SCH_MARKER*>( item );
759
760 if( marker->GetRCItem()->GetErrorCode() == rcItem->GetErrorCode() )
761 m_parent->GetCanvas()->GetView()->Update( marker );
762 }
763
764 // Rebuild model and view
765 static_cast<RC_TREE_MODEL*>( aEvent.GetModel() )->Update( m_markerProvider, m_severities );
766 modified = true;
767 break;
768
769 case 5:
770 settings.SetSeverity( rcItem->GetErrorCode(), RPT_SEVERITY_WARNING );
771
772 for( SCH_ITEM* item : m_parent->GetScreen()->Items().OfType( SCH_MARKER_T ) )
773 {
774 SCH_MARKER* marker = static_cast<SCH_MARKER*>( item );
775
776 if( marker->GetRCItem()->GetErrorCode() == rcItem->GetErrorCode() )
777 m_parent->GetCanvas()->GetView()->Update( marker );
778 }
779
780 // Rebuild model and view
781 static_cast<RC_TREE_MODEL*>( aEvent.GetModel() )->Update( m_markerProvider, m_severities );
782 modified = true;
783 break;
784
785 case 6:
786 {
787 settings.SetSeverity( rcItem->GetErrorCode(), RPT_SEVERITY_IGNORE );
788
789 if( rcItem->GetErrorCode() == ERCE_PIN_TO_PIN_ERROR )
791
792 SCH_SCREENS ScreenList( m_parent->Schematic().Root() );
793 ScreenList.DeleteMarkers( MARKER_BASE::MARKER_ERC, rcItem->GetErrorCode() );
794
795 // Rebuild model and view
796 static_cast<RC_TREE_MODEL*>( aEvent.GetModel() )->Update( m_markerProvider, m_severities );
797 modified = true;
798 }
799 break;
800
801 case 7:
802 m_parent->ShowSchematicSetupDialog( _( "Pin Conflicts Map" ) );
803 break;
804
805 case 8:
806 m_parent->ShowSchematicSetupDialog( _( "Violation Severity" ) );
807 break;
808 }
809
810 if( modified )
811 {
815 }
816}
EE_TYPE OfType(KICAD_T aType) const
Definition: sch_rtree.h:238
Container for ERC settings.
Definition: erc_settings.h:114
SEVERITY GetSeverity(int aErrorCode) const
void SetSeverity(int aErrorCode, SEVERITY aSeverity)
std::shared_ptr< RC_ITEM > GetRCItem() const
Definition: marker_base.h:105
ERC_SETTINGS & ErcSettings() const
Definition: schematic.cpp:210
void ShowSchematicSetupDialog(const wxString &aInitialPage=wxEmptyString)
SCH_SCREEN * GetScreen() const override
Return a pointer to a BASE_SCREEN or one of its derivatives.
Base class for any item which can be embedded within the SCHEMATIC container class,...
Definition: sch_item.h:147
EE_RTREE & Items()
Gets the full RTree, usually for iterating.
Definition: sch_screen.h:109
@ ERCE_PIN_TO_PIN_WARNING
Definition: erc_settings.h:85
@ ERCE_PIN_TO_PIN_ERROR
Definition: erc_settings.h:86
void Format(OUTPUTFORMATTER *out, int aNestLevel, int aCtl, const CPTREE &aTree)
Output a PTREE into s-expression format via an OUTPUTFORMATTER derivative.
Definition: ptree.cpp:200
@ RPT_SEVERITY_WARNING
@ RPT_SEVERITY_ERROR
@ RPT_SEVERITY_IGNORE
@ SCH_MARKER_T
Definition: typeinfo.h:141

References _, SCH_SCREENS::DeleteMarkers(), ERCE_PIN_TO_PIN_ERROR, ERCE_PIN_TO_PIN_WARNING, SCHEMATIC::ErcSettings(), Format(), SCH_BASE_FRAME::GetCanvas(), MARKER_BASE::GetRCItem(), SCH_EDIT_FRAME::GetScreen(), ERC_SETTINGS::GetSeverity(), SCH_DRAW_PANEL::GetView(), SCH_SCREEN::Items(), m_markerProvider, m_parent, RC_TREE_NODE::m_RcItem, m_severities, MARKER_BASE::MARKER_ERC, EE_RTREE::OfType(), SCH_EDIT_FRAME::OnModify(), redrawDrawPanel(), SCHEMATIC::Root(), RPT_SEVERITY_ERROR, RPT_SEVERITY_EXCLUSION, RPT_SEVERITY_IGNORE, RPT_SEVERITY_WARNING, SCH_MARKER_T, SCH_EDIT_FRAME::Schematic(), MARKER_BASE::SetExcluded(), ERC_SETTINGS::SetSeverity(), SCH_EDIT_FRAME::ShowSchematicSetupDialog(), RC_TREE_MODEL::ToNode(), KIGFX::VIEW::Update(), and updateDisplayedCounts().

◆ OnERCItemSelected()

void DIALOG_ERC::OnERCItemSelected ( wxDataViewEvent &  aEvent)
overrideprivatevirtual

Reimplemented from DIALOG_ERC_BASE.

Definition at line 573 of file dialog_erc.cpp.

574{
575 const KIID& itemID = RC_TREE_MODEL::ToUUID( aEvent.GetItem() );
576 SCH_SHEET_PATH sheet;
577 SCH_ITEM* item = m_parent->Schematic().GetSheets().GetItem( itemID, &sheet );
578
580 {
581 // we already came from a cross-probe of the marker in the document; don't go
582 // around in circles
583 }
584 else if( item && item->GetClass() != wxT( "DELETED_SHEET_ITEM" ) )
585 {
586 const RC_TREE_NODE* node = RC_TREE_MODEL::ToNode( aEvent.GetItem() );
587
588 if( node )
589 {
590 // Determine the owning sheet for sheet-specific items
591 std::shared_ptr<ERC_ITEM> ercItem =
592 std::static_pointer_cast<ERC_ITEM>( node->m_RcItem );
593 switch( node->m_Type )
594 {
596 if( ercItem->IsSheetSpecific() )
597 sheet = ercItem->GetSpecificSheetPath();
598 break;
600 if( ercItem->MainItemHasSheetPath() )
601 sheet = ercItem->GetMainItemSheetPath();
602 break;
604 if( ercItem->AuxItemHasSheetPath() )
605 sheet = ercItem->GetAuxItemSheetPath();
606 break;
607 default:
608 break;
609 }
610 }
611
612 WINDOW_THAWER thawer( m_parent );
613
614 if( !sheet.empty() && sheet != m_parent->GetCurrentSheet() )
615 {
618
619 m_parent->SetCurrentSheet( sheet );
621 m_parent->RedrawScreen( (wxPoint) m_parent->GetScreen()->m_ScrollCenter, false );
622 }
623
624 m_parent->FocusOnItem( item );
626 }
627
628 aEvent.Skip();
629}
static TOOL_ACTION cancelInteractive
Definition: actions.h:63
VECTOR2D m_ScrollCenter
Current scroll center point in logical units.
Definition: base_screen.h:100
Definition: kiid.h:48
static KIID ToUUID(wxDataViewItem aItem)
Definition: rc_item.cpp:149
NODE_TYPE m_Type
Definition: rc_item.h:193
SCH_SHEET_LIST GetSheets() const override
Builds and returns an updated schematic hierarchy TODO: can this be cached?
Definition: schematic.h:86
virtual void RedrawScreen(const VECTOR2I &aCenterPoint, bool aWarpPointer)
SCH_SHEET_PATH & GetCurrentSheet() const
void SetCurrentSheet(const SCH_SHEET_PATH &aSheet)
void DisplayCurrentSheet()
Draw the current sheet on the display.
virtual wxString GetClass() const override
Return the class name.
Definition: sch_item.h:157
SCH_ITEM * GetItem(const KIID &aID, SCH_SHEET_PATH *aPathOut=nullptr) const
Fetch a SCH_ITEM by ID.
Handle access to a stack of flattened SCH_SHEET objects by way of a path for creating a flattened sch...
bool empty() const
Forwarded method from std::vector.

References RC_TREE_NODE::AUX_ITEM, ACTIONS::cancelInteractive, EE_ACTIONS::clearSelection, SCH_EDIT_FRAME::DisplayCurrentSheet(), SCH_SHEET_PATH::empty(), SCH_EDIT_FRAME::FocusOnItem(), SCH_ITEM::GetClass(), SCH_EDIT_FRAME::GetCurrentSheet(), SCH_SHEET_LIST::GetItem(), SCH_EDIT_FRAME::GetScreen(), SCHEMATIC::GetSheets(), TOOLS_HOLDER::GetToolManager(), m_centerMarkerOnIdle, m_parent, RC_TREE_NODE::m_RcItem, BASE_SCREEN::m_ScrollCenter, RC_TREE_NODE::m_Type, RC_TREE_NODE::MAIN_ITEM, RC_TREE_NODE::MARKER, redrawDrawPanel(), SCH_BASE_FRAME::RedrawScreen(), TOOL_MANAGER::RunAction(), SCH_EDIT_FRAME::Schematic(), SCH_EDIT_FRAME::SetCurrentSheet(), RC_TREE_MODEL::ToNode(), and RC_TREE_MODEL::ToUUID().

◆ OnGridEditorHidden()

void DIALOG_SHIM::OnGridEditorHidden ( wxGridEvent &  event)
privateinherited

Definition at line 641 of file dialog_shim.cpp.

642{
643 SetEscapeId( wxID_ANY );
644 event.Skip();
645}

◆ OnGridEditorShown()

void DIALOG_SHIM::OnGridEditorShown ( wxGridEvent &  event)
privateinherited

Definition at line 634 of file dialog_shim.cpp.

635{
636 SetEscapeId( wxID_NONE );
637 event.Skip();
638}

◆ OnIgnoreItemRClick()

void DIALOG_ERC::OnIgnoreItemRClick ( wxListEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_ERC_BASE.

Definition at line 899 of file dialog_erc.cpp.

900{
901 wxMenu menu;
902
903 menu.Append( 1, _( "Edit ignored violations..." ), _( "Open the Schematic Setup... dialog" ) );
904
905 switch( GetPopupMenuSelectionFromUser( menu ) )
906 {
907 case 1:
908 m_parent->ShowSchematicSetupDialog( _( "Violation Severity" ) );
909 break;
910 }
911}

References _, m_parent, and SCH_EDIT_FRAME::ShowSchematicSetupDialog().

◆ OnLinkClicked()

void DIALOG_ERC::OnLinkClicked ( wxHtmlLinkEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_ERC_BASE.

Definition at line 355 of file dialog_erc.cpp.

356{
357 wxCommandEvent dummy;
359}
void OnAnnotate(wxCommandEvent &event)
std::vector< FAB_LAYER_COLOR > dummy

References dummy, m_parent, and SCH_EDIT_FRAME::OnAnnotate().

Referenced by UpdateAnnotationWarning().

◆ OnModify()

◆ OnPaint()

void DIALOG_SHIM::OnPaint ( wxPaintEvent &  event)
inherited

Definition at line 386 of file dialog_shim.cpp.

387{
389 {
391
392 selectAllInTextCtrls( GetChildren() );
393
396 else
397 KIPLATFORM::UI::ForceFocus( this ); // Focus the dialog itself
398
399 m_firstPaintEvent = false;
400 }
401
402 event.Skip();
403}
bool m_firstPaintEvent
Definition: dialog_shim.h:212
wxWindow * m_initialFocusTarget
Definition: dialog_shim.h:213
static void selectAllInTextCtrls(wxWindowList &children)
void FixupCancelButtonCmdKeyCollision(wxWindow *aWindow)
Definition: gtk/ui.cpp:71
void ForceFocus(wxWindow *aWindow)
Pass the current focus to the window.
Definition: gtk/ui.cpp:44

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

Referenced by DIALOG_SHIM::DIALOG_SHIM().

◆ OnRunERCClick()

void DIALOG_ERC::OnRunERCClick ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_ERC_BASE.

Definition at line 362 of file dialog_erc.cpp.

363{
364 wxBusyCursor busy;
365
366 SCHEMATIC* sch = &m_parent->Schematic();
367
369
371 deleteAllMarkers( true );
372
373 std::vector<std::reference_wrapper<RC_ITEM>> violations = ERC_ITEM::GetItemsWithSeverities();
374 m_ignoredList->DeleteAllItems();
375
376 for( std::reference_wrapper<RC_ITEM>& item : violations )
377 {
378 if( sch->ErcSettings().GetSeverity( item.get().GetErrorCode() ) == RPT_SEVERITY_IGNORE )
379 {
380 m_ignoredList->InsertItem( m_ignoredList->GetItemCount(),
381 wxT( " • " ) + item.get().GetErrorText() );
382 }
383 }
384
385 Raise();
386
387 m_runningResultsBook->ChangeSelection( 0 ); // Display the "Tests Running..." tab
388 m_messages->Clear();
389 wxYield(); // Allow time slice to refresh Messages
390
391 m_running = true;
392 m_sdbSizer1Cancel->SetLabel( _( "Cancel" ) );
393 m_sdbSizer1OK->Enable( false );
394 m_deleteOneMarker->Enable( false );
395 m_deleteAllMarkers->Enable( false );
396 m_saveReport->Enable( false );
397
399
400 int itemsNotAnnotated = m_parent->CheckAnnotate(
401 []( ERCE_T aType, const wxString& aMsg, SCH_REFERENCE* aItemA, SCH_REFERENCE* aItemB )
402 {
403 std::shared_ptr<ERC_ITEM> ercItem = ERC_ITEM::Create( aType );
404 ercItem->SetErrorMessage( aMsg );
405
406 if( aItemB )
407 ercItem->SetItems( aItemA->GetSymbol(), aItemB->GetSymbol() );
408 else
409 ercItem->SetItems( aItemA->GetSymbol() );
410
411 SCH_MARKER* marker = new SCH_MARKER( ercItem, aItemA->GetSymbol()->GetPosition() );
412 aItemA->GetSheetPath().LastScreen()->Append( marker );
413 } );
414
415 testErc();
416
417 if( itemsNotAnnotated )
418 m_messages->ReportHead( wxString::Format( _( "%d symbol(s) require annotation.<br><br>" ),
419 itemsNotAnnotated ), RPT_SEVERITY_INFO );
420
421 if( m_cancelled )
422 m_messages->Report( _( "-------- ERC cancelled by user.<br><br>" ), RPT_SEVERITY_INFO );
423 else
424 m_messages->Report( _( "Done.<br><br>" ), RPT_SEVERITY_INFO );
425
426 Raise();
427 wxYield(); // Allow time slice to refresh Messages
428
429 m_running = false;
430 m_sdbSizer1Cancel->SetLabel( _( "Close" ) );
431 m_sdbSizer1OK->Enable( true );
432 m_deleteOneMarker->Enable( true );
433 m_deleteAllMarkers->Enable( true );
434 m_saveReport->Enable( true );
435
436 if( !m_cancelled )
437 {
438 wxMilliSleep( 500 );
439 m_runningResultsBook->ChangeSelection( 1 );
441 }
442
443 m_ercRun = true;
446}
wxButton * m_saveReport
wxButton * m_sdbSizer1Cancel
wxSimplebook * m_runningResultsBook
wxButton * m_deleteAllMarkers
wxButton * m_deleteOneMarker
wxButton * m_sdbSizer1OK
void testErc()
Definition: dialog_erc.cpp:457
static std::shared_ptr< ERC_ITEM > Create(int aErrorCode)
Constructs an ERC_ITEM for the given error code.
Definition: erc_item.cpp:232
static std::vector< std::reference_wrapper< RC_ITEM > > GetItemsWithSeverities()
Definition: erc_item.h:76
virtual REPORTER & ReportHead(const wxString &aText, SEVERITY aSeverity=RPT_SEVERITY_UNDEFINED)
Places the report at the beginning of the list for objects that support ordering.
Definition: reporter.h:108
Holds all the data relating to one schematic.
Definition: schematic.h:61
void RecordERCExclusions()
Scan existing markers and record data from any that are Excluded.
int CheckAnnotate(ANNOTATION_ERROR_HANDLER aErrorHandler, ANNOTATE_SCOPE_T aAnnotateScope=ANNOTATE_ALL, bool aRecursive=true)
Check for annotation errors.
Definition: annotate.cpp:441
A helper to define a symbol's reference designator in a schematic.
const SCH_SHEET_PATH & GetSheetPath() const
SCH_SYMBOL * GetSymbol() const
void Append(SCH_ITEM *aItem, bool aUpdateLibSymbol=true)
Definition: sch_screen.cpp:145
void AnnotatePowerSymbols()
Silently annotate the not yet annotated power symbols of the entire hierarchy of the sheet path list.
SCH_SCREEN * LastScreen()
VECTOR2I GetPosition() const override
Definition: sch_symbol.h:712
void Clear()
Delete the stored messages.
REPORTER & Report(const wxString &aText, SEVERITY aSeverity=RPT_SEVERITY_UNDEFINED) override
Report a string with a given severity.
ERCE_T
ERC error codes.
Definition: erc_settings.h:37
@ RPT_SEVERITY_INFO

References _, SCH_SHEET_LIST::AnnotatePowerSymbols(), SCH_SCREEN::Append(), SCH_EDIT_FRAME::CheckAnnotate(), WX_HTML_REPORT_BOX::Clear(), ERC_ITEM::Create(), deleteAllMarkers(), SCHEMATIC::ErcSettings(), KIPLATFORM::UI::ForceFocus(), Format(), ERC_ITEM::GetItemsWithSeverities(), SCH_SYMBOL::GetPosition(), ERC_SETTINGS::GetSeverity(), SCH_REFERENCE::GetSheetPath(), SCHEMATIC::GetSheets(), SCH_REFERENCE::GetSymbol(), SCH_SHEET_PATH::LastScreen(), PROGRESS_REPORTER_BASE::m_cancelled, DIALOG_ERC_BASE::m_deleteAllMarkers, DIALOG_ERC_BASE::m_deleteOneMarker, m_ercRun, DIALOG_ERC_BASE::m_ignoredList, DIALOG_ERC_BASE::m_markerDataView, DIALOG_ERC_BASE::m_messages, m_parent, m_running, DIALOG_ERC_BASE::m_runningResultsBook, DIALOG_ERC_BASE::m_saveReport, DIALOG_ERC_BASE::m_sdbSizer1Cancel, DIALOG_ERC_BASE::m_sdbSizer1OK, SCH_EDIT_FRAME::RecordERCExclusions(), redrawDrawPanel(), WX_HTML_REPORT_BOX::Report(), REPORTER::ReportHead(), RPT_SEVERITY_IGNORE, RPT_SEVERITY_INFO, SCH_EDIT_FRAME::Schematic(), testErc(), UpdateAnnotationWarning(), and updateDisplayedCounts().

◆ OnSaveReport()

void DIALOG_ERC::OnSaveReport ( wxCommandEvent &  aEvent)
overrideprivatevirtual

Reimplemented from DIALOG_ERC_BASE.

Definition at line 953 of file dialog_erc.cpp.

954{
955 wxFileName fn( wxS( "ERC." ) + ReportFileExtension );
956
957 wxFileDialog dlg( this, _( "Save Report to File" ), Prj().GetProjectPath(), fn.GetFullName(),
958 ReportFileWildcard(), wxFD_SAVE | wxFD_OVERWRITE_PROMPT );
959
960 if( dlg.ShowModal() != wxID_OK )
961 return;
962
963 fn = dlg.GetPath();
964
965 if( fn.GetExt().IsEmpty() )
966 fn.SetExt( ReportFileExtension );
967
968 if( !fn.IsAbsolute() )
969 {
970 wxString prj_path = Prj().GetProjectPath();
971 fn.MakeAbsolute( prj_path );
972 }
973
974 if( writeReport( fn.GetFullPath() ) )
975 {
976 m_messages->Report( wxString::Format( _( "Report file '%s' created." ),
977 fn.GetFullPath() ) );
978 }
979 else
980 {
981 DisplayError( this, wxString::Format( _( "Failed to create file '%s'." ),
982 fn.GetFullPath() ) );
983 }
984}
bool writeReport(const wxString &aFullFileName)
Definition: dialog_erc.cpp:987
PROJECT & Prj() const
Return a reference to the PROJECT associated with this KIWAY.
virtual const wxString GetProjectPath() const
Return the full path of the project.
Definition: project.cpp:126
void DisplayError(wxWindow *aParent, const wxString &aText, int aDisplayTime)
Display an error or warning message box with aMessage.
Definition: confirm.cpp:300
const std::string ReportFileExtension
wxString ReportFileWildcard()

References _, DisplayError(), Format(), PROJECT::GetProjectPath(), DIALOG_ERC_BASE::m_messages, KIWAY_HOLDER::Prj(), WX_HTML_REPORT_BOX::Report(), ReportFileExtension, ReportFileWildcard(), and writeReport().

◆ OnSeverity()

void DIALOG_ERC::OnSeverity ( wxCommandEvent &  aEvent)
overrideprivatevirtual

Reimplemented from DIALOG_ERC_BASE.

Definition at line 914 of file dialog_erc.cpp.

915{
916 int flag = 0;
917
918 if( aEvent.GetEventObject() == m_showAll )
920 else if( aEvent.GetEventObject() == m_showErrors )
922 else if( aEvent.GetEventObject() == m_showWarnings )
924 else if( aEvent.GetEventObject() == m_showExclusions )
926
927 if( aEvent.IsChecked() )
929 else if( aEvent.GetEventObject() == m_showAll )
931 else
932 m_severities &= ~flag;
933
935
938}
wxCheckBox * m_showExclusions
wxCheckBox * m_showErrors
wxCheckBox * m_showAll
wxCheckBox * m_showWarnings
static int RPT_SEVERITY_ALL
Definition: dialog_erc.cpp:343

References flag, m_markerProvider, m_markerTreeModel, m_severities, DIALOG_ERC_BASE::m_showAll, DIALOG_ERC_BASE::m_showErrors, DIALOG_ERC_BASE::m_showExclusions, DIALOG_ERC_BASE::m_showWarnings, RPT_SEVERITY_ALL, RPT_SEVERITY_ERROR, RPT_SEVERITY_EXCLUSION, RPT_SEVERITY_WARNING, syncCheckboxes(), RC_TREE_MODEL::Update(), and updateDisplayedCounts().

◆ PrevMarker()

void DIALOG_ERC::PrevMarker ( )

Definition at line 819 of file dialog_erc.cpp.

820{
821 if( m_notebook->IsShown() )
822 {
823 if( m_notebook->GetSelection() != 0 )
824 m_notebook->SetSelection( 0 );
825
827 }
828}
void PrevMarker()
Definition: rc_item.cpp:558

References m_markerTreeModel, DIALOG_ERC_BASE::m_notebook, and RC_TREE_MODEL::PrevMarker().

Referenced by EE_INSPECTION_TOOL::PrevMarker().

◆ Prj()

PROJECT & KIWAY_HOLDER::Prj ( ) const
inherited

Return a reference to the PROJECT associated with this KIWAY.

Definition at line 36 of file kiway_holder.cpp.

37{
38 return Kiway().Prj();
39}
KIWAY & Kiway() const
Return a reference to the KIWAY that this object has an opportunity to participate in.
Definition: kiway_holder.h:53
virtual PROJECT & Prj() const
Return the PROJECT associated with this KIWAY.
Definition: kiway.cpp:192

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

Referenced by SYMBOL_TREE_MODEL_ADAPTER::AddLibraries(), FP_TREE_MODEL_ADAPTER::AddLibraries(), SYMBOL_LIBRARY_MANAGER::addLibrary(), PCB_BASE_EDIT_FRAME::AddLibrary(), SYMBOL_EDIT_FRAME::addLibTableEntry(), SCH_EDIT_FRAME::AppendSchematic(), AskSaveBoardFileName(), DIALOG_SYMBOL_REMAP::backupProject(), CVPCB_MAINFRAME::buildEquivalenceList(), CVPCB_MAINFRAME::BuildLibrariesListBox(), FOOTPRINT_EDIT_FRAME::buildSaveAsDialog(), SYMBOL_EDIT_FRAME::buildSaveAsDialog(), PCB_BASE_FRAME::canCloseWindow(), SIM_PLOT_FRAME::canCloseWindow(), PANEL_FP_PROPERTIES_3D_MODEL::Cfg3DPath(), SYMBOL_VIEWER_FRAME::ClickOnLibList(), KICAD_MANAGER_FRAME::CloseProject(), PCB_BASE_EDIT_FRAME::createNewLibrary(), PCB_BASE_EDIT_FRAME::CreateNewProjectLibrary(), DIALOG_SYMBOL_REMAP::createProjectSymbolLibTable(), SCH_EDIT_FRAME::CreateScreens(), FOOTPRINT_EDIT_FRAME::DeleteFootprintFromLibrary(), DIALOG_ANNOTATE::DIALOG_ANNOTATE(), DIALOG_ASSIGN_NETCLASS::DIALOG_ASSIGN_NETCLASS(), DIALOG_BOARD_REANNOTATE::DIALOG_BOARD_REANNOTATE(), DIALOG_BOARD_SETUP::DIALOG_BOARD_SETUP(), DIALOG_BOARD_STATISTICS::DIALOG_BOARD_STATISTICS(), DIALOG_CHANGE_SYMBOLS::DIALOG_CHANGE_SYMBOLS(), DIALOG_CHOOSE_FOOTPRINT::DIALOG_CHOOSE_FOOTPRINT(), DIALOG_CHOOSE_SYMBOL::DIALOG_CHOOSE_SYMBOL(), DIALOG_CONFIG_EQUFILES::DIALOG_CONFIG_EQUFILES(), DIALOG_EXCHANGE_FOOTPRINTS::DIALOG_EXCHANGE_FOOTPRINTS(), DIALOG_EXPORT_SVG::DIALOG_EXPORT_SVG(), DIALOG_GEN_FOOTPRINT_POSITION::DIALOG_GEN_FOOTPRINT_POSITION(), DIALOG_IBIS_PARSER_REPORTER::DIALOG_IBIS_PARSER_REPORTER(), DIALOG_IMPORT_NETLIST::DIALOG_IMPORT_NETLIST(), DIALOG_LIB_SYMBOL_PROPERTIES::DIALOG_LIB_SYMBOL_PROPERTIES(), DIALOG_PAGES_SETTINGS::DIALOG_PAGES_SETTINGS(), DIALOG_PLOT::DIALOG_PLOT(), DIALOG_PLOT_SCHEMATIC::DIALOG_PLOT_SCHEMATIC(), DIALOG_SCHEMATIC_SETUP::DIALOG_SCHEMATIC_SETUP(), DIALOG_SYMBOL_FIELDS_TABLE::DIALOG_SYMBOL_FIELDS_TABLE(), DIALOG_SYMBOL_REMAP::DIALOG_SYMBOL_REMAP(), DIALOG_UPDATE_FROM_PCB::DIALOG_UPDATE_FROM_PCB(), DIALOG_UPDATE_PCB::DIALOG_UPDATE_PCB(), PL_DRAW_PANEL_GAL::DisplayDrawingSheet(), FOOTPRINT_PREVIEW_PANEL::DisplayFootprint(), SYMBOL_VIEWER_FRAME::DisplayLibInfos(), CVPCB_MAINFRAME::DisplayStatus(), SCH_EDIT_FRAME::doAutoSave(), PCB_EDIT_FRAME::doAutoSave(), SCH_EDIT_FRAME::doCloseWindow(), FOOTPRINT_EDIT_FRAME::doCloseWindow(), PCB_BASE_EDIT_FRAME::doCloseWindow(), FIELDS_EDITOR_GRID_TRICKS::doPopupSelection(), FIELDS_GRID_TRICKS::doPopupSelection(), FOOTPRINT_EDIT_FRAME::DuplicateFootprint(), KICAD_MANAGER_CONTROL::Execute(), PCB_EDIT_FRAME::Export_IDF3(), PCB_EDIT_FRAME::ExportFootprintsToLibrary(), BOARD_EDITOR_CONTROL::ExportNetlist(), SYMBOL_EDITOR_CONTROL::ExportSymbolAsSVG(), SCH_EDITOR_CONTROL::ExportSymbolsToLibrary(), SYMBOL_EDITOR_CONTROL::ExportView(), PCB_EDIT_FRAME::ExportVRML_File(), BACK_ANNOTATE::FetchNetlistFromPCB(), PCB_EDIT_FRAME::Files_io_from_id(), PCB_EDIT_FRAME::GenD356File(), FOOTPRINT_VIEWER_FRAME::getCurFootprintName(), SYMBOL_EDIT_FRAME::GetCurLib(), FOOTPRINT_VIEWER_FRAME::getCurNickname(), SIM_PLOT_FRAME::getDefaultFilename(), SIM_PLOT_FRAME::getDefaultPath(), PCB_BASE_EDIT_FRAME::GetDesignRulesPath(), DISPLAY_FOOTPRINTS_FRAME::GetFootprint(), PCB_EDIT_FRAME::GetLastPath(), DIALOG_SYMBOL_REMAP::getLibsNotInGlobalSymbolLibTable(), SCH_BASE_FRAME::GetLibSymbol(), DIALOG_PLOT_SCHEMATIC::getOutputPath(), KICAD_MANAGER_FRAME::GetProjectFileName(), SCH_EDIT_FRAME::GetSchematicJunctionSize(), SYMBOL_VIEWER_FRAME::GetSelectedSymbol(), SCH_NAVIGATE_TOOL::HypertextCommand(), SCH_EDIT_FRAME::importFile(), SCH_EDITOR_CONTROL::ImportFPAssignments(), DIALOG_CONFIG_EQUFILES::Init(), FIELDS_GRID_TABLE< T >::initGrid(), FOOTPRINT_EDIT_FRAME::initLibraryTree(), SYMBOL_EDIT_FRAME::KiwayMailIn(), FOOTPRINT_EDIT_FRAME::KiwayMailIn(), EDA_DRAW_FRAME::LibraryFileBrowser(), SYMBOL_VIEWER_FRAME::loadAllLibraries(), PCB_BASE_FRAME::loadFootprint(), CVPCB_MAINFRAME::LoadFootprintFiles(), PCB_EDIT_FRAME::LoadFootprints(), SCH_EDIT_FRAME::LoadProject(), KICAD_MANAGER_FRAME::LoadProject(), SCH_EDIT_FRAME::LoadProjectSettings(), PCB_EDIT_FRAME::LoadProjectSettings(), SIM_PLOT_FRAME::LoadSettings(), SCH_EDIT_FRAME::LoadSheetFromFile(), SYMBOL_EDIT_FRAME::LoadSymbol(), SYMBOL_EDIT_FRAME::LoadSymbolFromCurrentLib(), EDA_BASE_FRAME::LoadWindowState(), SIM_PLOT_FRAME::loadWorkbook(), SIM_PLOT_FRAME::menuSaveWorkbook(), SIM_PLOT_FRAME::menuSaveWorkbookAs(), PANEL_FP_PROPERTIES_3D_MODEL::On3DModelCellChanged(), FOOTPRINT_VIEWER_FRAME::OnActivate(), PANEL_FP_PROPERTIES_3D_MODEL::OnAdd3DModel(), DIALOG_BOARD_SETUP::onAuxiliaryAction(), PCB_EDIT_FRAME::onBoardLoaded(), KICAD_MANAGER_FRAME::OnBrowseInFileExplorer(), DIALOG_IMPORT_NETLIST::onBrowseNetlistFiles(), WX_HTML_REPORT_PANEL::onBtnSaveToFile(), TEXT_BUTTON_URL::OnButtonClick(), TEXT_BUTTON_FILE_BROWSER::OnButtonClick(), DIALOG_EDIT_SYMBOLS_LIBID::onClickOrphansButton(), DIALOG_SYMBOL_FIELDS_TABLE::OnExport(), DIALOG_GENDRILL::OnGenReportFile(), KICAD_MANAGER_FRAME::OnIdle(), SCH_EDIT_FRAME::OnImportProject(), DIALOG_CHOOSE_SYMBOL::OnInitDialog(), DIALOG_CONFIG_EQUFILES::OnOkClick(), SCH_EDIT_FRAME::OnOpenCvpcb(), KICAD_MANAGER_FRAME::OnOpenFileInTextEditor(), SCH_EDIT_FRAME::OnOpenPcbnew(), DIALOG_PLOT_SCHEMATIC::OnOutputDirectoryBrowseClicked(), DIALOG_EXPORT_SVG::OnOutputDirectoryBrowseClicked(), DIALOG_GEN_FOOTPRINT_POSITION::OnOutputDirectoryBrowseClicked(), DIALOG_GENDRILL::OnOutputDirectoryBrowseClicked(), DIALOG_PLOT::OnOutputDirectoryBrowseClicked(), DIALOG_SCHEMATIC_SETUP::onPageChanged(), DIALOG_BOARD_SETUP::onPageChanged(), DIALOG_SYMBOL_REMAP::OnRemapSymbols(), FOOTPRINT_EDIT_FRAME::OnSaveFootprintAsPng(), OnSaveReport(), DIALOG_DRC::OnSaveReport(), DIALOG_SCH_FIELD_PROPERTIES::onScintillaCharAdded(), DIALOG_TEXT_PROPERTIES::onScintillaCharAdded(), PROPERTIES_FRAME::onScintillaCharAdded(), SYMBOL_VIEWER_FRAME::OnSelectSymbol(), KICAD_MANAGER_FRAME::OnUnarchiveFiles(), SCH_EDIT_FRAME::OnUpdatePCB(), DIALOG_PAGES_SETTINGS::OnWksFileSelection(), SCH_EDIT_FRAME::OpenProjectFiles(), PCB_EDIT_FRAME::OpenProjectFiles(), PANEL_FP_PROPERTIES_3D_MODEL::PANEL_FP_PROPERTIES_3D_MODEL(), PANEL_PREVIEW_3D_MODEL::PANEL_PREVIEW_3D_MODEL(), SCH_EDITOR_CONTROL::Paste(), FOOTPRINT_EDITOR_CONTROL::PasteFootprint(), SCH_BASE_FRAME::PickSymbolFromLibTree(), SYMBOL_EDITOR_CONTROL::PinLibrary(), FOOTPRINT_EDITOR_CONTROL::PinLibrary(), LIB_TREE_MODEL_ADAPTER::PinLibrary(), DIALOG_CHOOSE_SYMBOL::PopulateFootprintSelector(), SCH_EDITOR_CONTROL::Print(), EDA_DRAW_FRAME::PrintDrawingSheet(), SCH_EDIT_FRAME::PrintPage(), KICAD_MANAGER_FRAME::PrintPrjInfo(), CVPCB_MAINFRAME::readNetListAndFpFiles(), APPEARANCE_CONTROLS::rebuildNets(), PCB_EDIT_FRAME::RecreateCmpFileFromBoard(), FOOTPRINT_VIEWER_FRAME::ReCreateFootprintList(), SYMBOL_VIEWER_FRAME::ReCreateLibList(), FOOTPRINT_VIEWER_FRAME::ReCreateLibraryList(), SYMBOL_VIEWER_FRAME::ReCreateSymbolList(), PANEL_FP_PROPERTIES_3D_MODEL::ReloadModelsFromFootprint(), EDA_3D_VIEWER_FRAME::ReloadRequest(), DIALOG_SYMBOL_REMAP::remapSymbolToLibTable(), FOOTPRINT_EDITOR_CONTROL::RenameFootprint(), SYMBOL_EDIT_FRAME::replaceLibTableEntry(), SCH_EDITOR_CONTROL::RescueLegacyProject(), SCH_EDITOR_CONTROL::RescueSymbolLibTableProject(), FOOTPRINT_EDIT_FRAME::restoreLastFootprint(), FOOTPRINT_EDIT_FRAME::retainLastFootprint(), PCB_EDIT_FRAME::RunEeschema(), FOOTPRINT_EDITOR_CONTROL::SaveAs(), FOOTPRINT_EDIT_FRAME::SaveFootprint(), FOOTPRINT_EDIT_FRAME::SaveFootprintAs(), FOOTPRINT_EDIT_FRAME::SaveFootprintInLibrary(), SYMBOL_EDIT_FRAME::saveLibrary(), PCB_EDIT_FRAME::SavePcbFile(), SCH_EDIT_FRAME::SaveProject(), SCH_EDIT_FRAME::SaveProjectSettings(), PCB_EDIT_FRAME::SaveProjectSettings(), DIALOG_BOARD_STATISTICS::saveReportClicked(), SCH_EDIT_FRAME::saveSchematicFile(), EDA_BASE_FRAME::SaveSettings(), SIM_PLOT_FRAME::SaveSettings(), SCH_BASE_FRAME::saveSymbolLibTables(), SIM_PLOT_FRAME::saveWorkbook(), FOOTPRINT_VIEWER_FRAME::SelectAndViewFootprint(), PCB_BASE_FRAME::SelectFootprintFromLibTree(), PCB_BASE_FRAME::SelectLibrary(), SCH_BASE_FRAME::SelectLibraryFromList(), PCB_BASE_EDIT_FRAME::selectLibTable(), SCH_BASE_FRAME::SelectSymLibTable(), PCB_EDIT_FRAME::SetBoard(), FOOTPRINT_VIEWER_FRAME::setCurFootprintName(), SYMBOL_EDIT_FRAME::SetCurLib(), FOOTPRINT_VIEWER_FRAME::setCurNickname(), SYMBOL_EDIT_FRAME::SetCurSymbol(), PCB_EDIT_FRAME::SetLastPath(), GERBVIEW_FRAME::SetPageSettings(), EE_INSPECTION_TOOL::ShowDatasheet(), DIALOG_CHOOSE_SYMBOL::ShowFootprintFor(), COMMON_CONTROL::ShowHelp(), FOOTPRINT_VIEWER_FRAME::ShowModal(), SYMBOL_VIEWER_FRAME::ShowModal(), APPEARANCE_CONTROLS::showNetclass(), SYMBOL_LIBRARY_MANAGER::symTable(), FP_TREE_SYNCHRONIZING_ADAPTER::Sync(), SYMBOL_TREE_SYNCHRONIZING_ADAPTER::Sync(), FOOTPRINT_EDIT_FRAME::SyncLibraryTree(), EDA_3D_VIEWER_FRAME::takeScreenshot(), PCB_EDIT_FRAME::TestStandalone(), DIALOG_EDIT_SYMBOLS_LIBID::TransferDataFromWindow(), DIALOG_EXPORT_NETLIST::TransferDataFromWindow(), DIALOG_SHEET_PROPERTIES::TransferDataFromWindow(), DIALOG_ASSIGN_NETCLASS::TransferDataFromWindow(), PANEL_SETUP_RULES::TransferDataFromWindow(), PANEL_SETUP_RULES::TransferDataToWindow(), SYMBOL_EDITOR_CONTROL::UnpinLibrary(), FOOTPRINT_EDITOR_CONTROL::UnpinLibrary(), LIB_TREE_MODEL_ADAPTER::UnpinLibrary(), SCH_EDIT_FRAME::updateAutoSaveFile(), DIALOG_PAGES_SETTINGS::UpdateDrawingSheetExample(), SCH_EDIT_FRAME::updateTitle(), SIM_PLOT_FRAME::updateTitle(), FOOTPRINT_EDIT_FRAME::UpdateTitle(), FOOTPRINT_VIEWER_FRAME::UpdateTitle(), SIM_PLOT_FRAME::UpdateTunerValue(), PANEL_FP_PROPERTIES_3D_MODEL::validateModelExists(), SCH_EDIT_FRAME::WriteNetListFile(), DIALOG_FOOTPRINT_PROPERTIES::~DIALOG_FOOTPRINT_PROPERTIES(), EDA_3D_VIEWER_FRAME::~EDA_3D_VIEWER_FRAME(), PANEL_FP_PROPERTIES_3D_MODEL::~PANEL_FP_PROPERTIES_3D_MODEL(), and SCH_EDIT_FRAME::~SCH_EDIT_FRAME().

◆ redrawDrawPanel()

void DIALOG_ERC::redrawDrawPanel ( )
private

Definition at line 449 of file dialog_erc.cpp.

450{
451 WINDOW_THAWER thawer( m_parent );
452
454}
virtual void Refresh(bool aEraseBackground=true, const wxRect *aRect=nullptr) override
Update the board display after modifying it by a python script (note: it is automatically called by a...

References SCH_BASE_FRAME::GetCanvas(), m_parent, and EDA_DRAW_PANEL_GAL::Refresh().

Referenced by ExcludeMarker(), OnDeleteAllClick(), OnDeleteOneClick(), OnERCItemRClick(), OnERCItemSelected(), and OnRunERCClick().

◆ Report()

void DIALOG_ERC::Report ( const wxString &  aMessage)
overridevirtual

Display aMessage in the progress bar dialog.

Reimplemented from PROGRESS_REPORTER_BASE.

Definition at line 203 of file dialog_erc.cpp.

204{
205 m_messages->Report( aMessage );
206}

References DIALOG_ERC_BASE::m_messages, and WX_HTML_REPORT_BOX::Report().

◆ 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 293 of file dialog_shim.cpp.

294{
295 const char* hash_key;
296
297 if( m_hash_key.size() )
298 {
299 // a special case like EDA_LIST_DIALOG, which has multiple uses.
300 hash_key = m_hash_key.c_str();
301 }
302 else
303 {
304 hash_key = typeid(*this).name();
305 }
306
307 std::unordered_map<std::string, wxRect>::iterator it = class_map.find( hash_key );
308
309 if( it == class_map.end() )
310 return;
311
312 wxRect rect = it->second;
313 rect.SetSize( wxSize( 0, 0 ) );
314 class_map[ hash_key ] = rect;
315}
std::string m_hash_key
Definition: dialog_shim.h:203
static std::unordered_map< std::string, wxRect > class_map

References class_map, and DIALOG_SHIM::m_hash_key.

Referenced by DIALOG_LIB_SYMBOL_PROPERTIES::DIALOG_LIB_SYMBOL_PROPERTIES().

◆ SelectMarker()

void DIALOG_ERC::SelectMarker ( const SCH_MARKER aMarker)

Definition at line 843 of file dialog_erc.cpp.

844{
845 if( m_notebook->IsShown() )
846 {
847 m_notebook->SetSelection( 0 );
849
850 // wxWidgets on some platforms fails to correctly ensure that a selected item is
851 // visible, so we have to do it in a separate idle event.
852 m_centerMarkerOnIdle = aMarker;
853 Bind( wxEVT_IDLE, &DIALOG_ERC::centerMarkerIdleHandler, this );
854 }
855}

References centerMarkerIdleHandler(), m_centerMarkerOnIdle, m_markerTreeModel, DIALOG_ERC_BASE::m_notebook, and RC_TREE_MODEL::SelectMarker().

Referenced by EE_INSPECTION_TOOL::CrossProbe().

◆ SetCurrentProgress()

void PROGRESS_REPORTER_BASE::SetCurrentProgress ( double  aProgress)
overridevirtualinherited

Set the progress value to aProgress (0..1).

Implements PROGRESS_REPORTER.

Reimplemented in CONSOLE_PROGRESS_REPORTER, and CONSOLE_PROGRESS_REPORTER.

Definition at line 79 of file progress_reporter_base.cpp.

80{
81 m_maxProgress.store( 1000 );
82 m_progress.store( (int) ( aProgress * 1000.0 ) );
83}

References PROGRESS_REPORTER_BASE::m_maxProgress, and PROGRESS_REPORTER_BASE::m_progress.

Referenced by AdvancePhase(), DIALOG_DRC::AdvancePhase(), and CONSOLE_PROGRESS_REPORTER::SetCurrentProgress().

◆ 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 97 of file dialog_shim.h.

98 {
99 m_initialFocusTarget = aWindow;
100 }

References DIALOG_SHIM::m_initialFocusTarget.

Referenced by FOOTPRINT_EDIT_FRAME::buildSaveAsDialog(), SYMBOL_EDIT_FRAME::buildSaveAsDialog(), DIALOG_BOM::DIALOG_BOM(), DIALOG_CHOOSE_FOOTPRINT::DIALOG_CHOOSE_FOOTPRINT(), DIALOG_CHOOSE_SYMBOL::DIALOG_CHOOSE_SYMBOL(), DIALOG_CONFIGURE_PATHS::DIALOG_CONFIGURE_PATHS(), DIALOG_FIND::DIALOG_FIND(), DIALOG_FOOTPRINT_PROPERTIES::DIALOG_FOOTPRINT_PROPERTIES(), DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR::DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR(), DIALOG_FP_PLUGIN_OPTIONS::DIALOG_FP_PLUGIN_OPTIONS(), DIALOG_GET_FOOTPRINT_BY_NAME::DIALOG_GET_FOOTPRINT_BY_NAME(), DIALOG_GRAPHIC_ITEM_PROPERTIES::DIALOG_GRAPHIC_ITEM_PROPERTIES(), DIALOG_GRID_SETTINGS::DIALOG_GRID_SETTINGS(), DIALOG_GROUP_PROPERTIES::DIALOG_GROUP_PROPERTIES(), DIALOG_IMPORT_GFX::DIALOG_IMPORT_GFX(), DIALOG_JUNCTION_PROPS::DIALOG_JUNCTION_PROPS(), DIALOG_LABEL_PROPERTIES::DIALOG_LABEL_PROPERTIES(), DIALOG_LIB_SHAPE_PROPERTIES::DIALOG_LIB_SHAPE_PROPERTIES(), DIALOG_LIB_TEXT_PROPERTIES::DIALOG_LIB_TEXT_PROPERTIES(), DIALOG_LIB_TEXTBOX_PROPERTIES::DIALOG_LIB_TEXTBOX_PROPERTIES(), DIALOG_LINE_PROPERTIES::DIALOG_LINE_PROPERTIES(), DIALOG_LOCKED_ITEMS_QUERY::DIALOG_LOCKED_ITEMS_QUERY(), DIALOG_PAD_PRIMITIVES_PROPERTIES::DIALOG_PAD_PRIMITIVES_PROPERTIES(), DIALOG_PAD_PROPERTIES::DIALOG_PAD_PROPERTIES(), DIALOG_PIN_PROPERTIES::DIALOG_PIN_PROPERTIES(), DIALOG_POSITION_RELATIVE::DIALOG_POSITION_RELATIVE(), DIALOG_SCH_FIND::DIALOG_SCH_FIND(), DIALOG_SHAPE_PROPERTIES::DIALOG_SHAPE_PROPERTIES(), DIALOG_SHEET_PIN_PROPERTIES::DIALOG_SHEET_PIN_PROPERTIES(), DIALOG_SYMBOL_FIELDS_TABLE::DIALOG_SYMBOL_FIELDS_TABLE(), DIALOG_TARGET_PROPERTIES::DIALOG_TARGET_PROPERTIES(), DIALOG_TEXT_PROPERTIES::DIALOG_TEXT_PROPERTIES(), DIALOG_TEXTBOX_PROPERTIES::DIALOG_TEXTBOX_PROPERTIES(), DIALOG_TRACK_VIA_PROPERTIES::DIALOG_TRACK_VIA_PROPERTIES(), DIALOG_WIRE_BUS_PROPERTIES::DIALOG_WIRE_BUS_PROPERTIES(), EDA_VIEW_SWITCHER::EDA_VIEW_SWITCHER(), HK_PROMPT_DIALOG::HK_PROMPT_DIALOG(), DIALOG_FIELD_PROPERTIES::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(), DIALOG_COPPER_ZONE::TransferDataToWindow(), DIALOG_NON_COPPER_ZONES_EDITOR::TransferDataToWindow(), DIALOG_RULE_AREA_PROPERTIES::TransferDataToWindow(), and WX_TEXT_ENTRY_DIALOG::WX_TEXT_ENTRY_DIALOG().

◆ SetKiway()

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

It is only used for debugging, since "this" is not a wxWindow*.

"this" is a KIWAY_HOLDER mix-in.

Parameters
aDestis the recipient of aKiway pointer.
aKiwayis often from a parent window or from #KIFACE::CreateWindow().

Definition at line 43 of file kiway_holder.cpp.

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

References ignore_unused(), KIWAY_HOLDER::m_kiway, and name.

Referenced by PCB::IFACE::CreateKiWindow(), InvokePcbLibTableEditor(), InvokeSchEditSymbolLibTable(), PCB_CALCULATOR_FRAME::PCB_CALCULATOR_FRAME(), and SIM_PLOT_FRAME::SIM_PLOT_FRAME().

◆ SetMaxProgress()

void PROGRESS_REPORTER_BASE::SetMaxProgress ( int  aMaxProgress)
overridevirtualinherited

Fix the value that gives the 100 percent progress bar length (inside the current virtual zone).

Implements PROGRESS_REPORTER.

Definition at line 73 of file progress_reporter_base.cpp.

74{
75 m_maxProgress.store( aMaxProgress );
76}

References PROGRESS_REPORTER_BASE::m_maxProgress.

◆ SetNumPhases()

void PROGRESS_REPORTER_BASE::SetNumPhases ( int  aNumPhases)
overridevirtualinherited

Set the number of phases.

Implements PROGRESS_REPORTER.

Definition at line 92 of file progress_reporter_base.cpp.

93{
94 m_numPhases = aNumPhases;
95}

References PROGRESS_REPORTER_BASE::m_numPhases.

Referenced by DIALOG_PCM_PROGRESS::OnCancelClicked().

◆ SetPosition()

void DIALOG_SHIM::SetPosition ( const wxPoint &  aNewPosition)
inherited

Force the position of the dialog to a new position.

Parameters
aNewPositionis the new forced position

Definition at line 196 of file dialog_shim.cpp.

197{
198 wxDialog::SetPosition( aNewPosition );
199
200 // Now update the stored position:
201 const char* hash_key;
202
203 if( m_hash_key.size() )
204 {
205 // a special case like EDA_LIST_DIALOG, which has multiple uses.
206 hash_key = m_hash_key.c_str();
207 }
208 else
209 {
210 hash_key = typeid(*this).name();
211 }
212
213 std::unordered_map<std::string, wxRect>::iterator it = class_map.find( hash_key );
214
215 if( it == class_map.end() )
216 return;
217
218 wxRect rect = it->second;
219 rect.SetPosition( aNewPosition );
220
221 class_map[ hash_key ] = rect;
222}
void SetPosition(const wxString &aStr, const wxString &aDefaultMeasurementUnit, int *aX, int *aY, const wxString &aActualConversion)

References class_map, DIALOG_SHIM::m_hash_key, and PCAD2KICAD::SetPosition().

Referenced by PCB_BASE_FRAME::SelectOneLayer().

◆ 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 168 of file dialog_shim.cpp.

169{
170 wxSize sz( x, y );
171 SetSize( ConvertDialogToPixels( sz ) );
172}

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

◆ SetTitle()

void PROGRESS_REPORTER_BASE::SetTitle ( const wxString &  aTitle)
inlineoverridevirtualinherited

Change the title displayed on the window caption.

Has meaning only for some reporters. Does nothing for others.

Warning
This should only be called from the main thread.

Implements PROGRESS_REPORTER.

Reimplemented in WX_PROGRESS_REPORTER, and STATUS_TEXT_REPORTER.

Definition at line 106 of file progress_reporter_base.h.

106{ }

◆ SetupStandardButtons()

void DIALOG_SHIM::SetupStandardButtons ( std::map< int, wxString >  aLabels = {})
inherited

Definition at line 708 of file dialog_shim.cpp.

709{
710 recursiveDescent( GetSizer(), aLabels );
711}
static void recursiveDescent(wxSizer *aSizer, std::map< int, wxString > &aLabels)

References recursiveDescent().

Referenced by CONVERT_SETTINGS_DIALOG::CONVERT_SETTINGS_DIALOG(), DIALOG_ANNOTATE::DIALOG_ANNOTATE(), DIALOG_ASSIGN_NETCLASS::DIALOG_ASSIGN_NETCLASS(), DIALOG_BOM::DIALOG_BOM(), DIALOG_CHANGE_SYMBOLS::DIALOG_CHANGE_SYMBOLS(), DIALOG_CHOOSE_FOOTPRINT::DIALOG_CHOOSE_FOOTPRINT(), DIALOG_CHOOSE_SYMBOL::DIALOG_CHOOSE_SYMBOL(), DIALOG_CLEANUP_GRAPHICS::DIALOG_CLEANUP_GRAPHICS(), DIALOG_COLOR_PICKER::DIALOG_COLOR_PICKER(), DIALOG_CONFIG_EQUFILES::DIALOG_CONFIG_EQUFILES(), DIALOG_CONFIGURE_PATHS::DIALOG_CONFIGURE_PATHS(), DIALOG_COPPER_ZONE::DIALOG_COPPER_ZONE(), DIALOG_CREATE_ARRAY::DIALOG_CREATE_ARRAY(), DIALOG_DIELECTRIC_MATERIAL::DIALOG_DIELECTRIC_MATERIAL(), DIALOG_DIMENSION_PROPERTIES::DIALOG_DIMENSION_PROPERTIES(), DIALOG_DRC::DIALOG_DRC(), DIALOG_ERC(), DIALOG_EXCHANGE_FOOTPRINTS::DIALOG_EXCHANGE_FOOTPRINTS(), DIALOG_EXPORT_3DFILE::DIALOG_EXPORT_3DFILE(), DIALOG_EXPORT_IDF3::DIALOG_EXPORT_IDF3(), DIALOG_EXPORT_NETLIST::DIALOG_EXPORT_NETLIST(), DIALOG_EXPORT_SVG::DIALOG_EXPORT_SVG(), DIALOG_FILTER_SELECTION::DIALOG_FILTER_SELECTION(), DIALOG_FOOTPRINT_CHECKER::DIALOG_FOOTPRINT_CHECKER(), DIALOG_FOOTPRINT_PROPERTIES::DIALOG_FOOTPRINT_PROPERTIES(), DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR::DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR(), DIALOG_FOOTPRINT_WIZARD_LIST::DIALOG_FOOTPRINT_WIZARD_LIST(), DIALOG_FP_PLUGIN_OPTIONS::DIALOG_FP_PLUGIN_OPTIONS(), DIALOG_GEN_FOOTPRINT_POSITION::DIALOG_GEN_FOOTPRINT_POSITION(), DIALOG_GENDRILL::DIALOG_GENDRILL(), DIALOG_GET_FOOTPRINT_BY_NAME::DIALOG_GET_FOOTPRINT_BY_NAME(), DIALOG_GLOBAL_DELETION::DIALOG_GLOBAL_DELETION(), 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_GRAPHIC_ITEM_PROPERTIES::DIALOG_GRAPHIC_ITEM_PROPERTIES(), DIALOG_GRID_SETTINGS::DIALOG_GRID_SETTINGS(), DIALOG_GROUP_PROPERTIES::DIALOG_GROUP_PROPERTIES(), DIALOG_IBIS_PARSER_REPORTER::DIALOG_IBIS_PARSER_REPORTER(), DIALOG_IMAGE_PROPERTIES::DIALOG_IMAGE_PROPERTIES(), DIALOG_IMPORT_GFX::DIALOG_IMPORT_GFX(), DIALOG_IMPORT_NETLIST::DIALOG_IMPORT_NETLIST(), DIALOG_IMPORT_SETTINGS::DIALOG_IMPORT_SETTINGS(), DIALOG_IMPORTED_LAYERS::DIALOG_IMPORTED_LAYERS(), DIALOG_JUNCTION_PROPS::DIALOG_JUNCTION_PROPS(), DIALOG_LABEL_PROPERTIES::DIALOG_LABEL_PROPERTIES(), DIALOG_LIB_EDIT_PIN_TABLE::DIALOG_LIB_EDIT_PIN_TABLE(), DIALOG_LIB_NEW_SYMBOL::DIALOG_LIB_NEW_SYMBOL(), DIALOG_LIB_SHAPE_PROPERTIES::DIALOG_LIB_SHAPE_PROPERTIES(), DIALOG_LIB_SYMBOL_PROPERTIES::DIALOG_LIB_SYMBOL_PROPERTIES(), DIALOG_LIB_TEXT_PROPERTIES::DIALOG_LIB_TEXT_PROPERTIES(), DIALOG_LIB_TEXTBOX_PROPERTIES::DIALOG_LIB_TEXTBOX_PROPERTIES(), DIALOG_LINE_PROPERTIES::DIALOG_LINE_PROPERTIES(), DIALOG_LOCKED_ITEMS_QUERY::DIALOG_LOCKED_ITEMS_QUERY(), DIALOG_MIGRATE_SETTINGS::DIALOG_MIGRATE_SETTINGS(), DIALOG_MOVE_EXACT::DIALOG_MOVE_EXACT(), DIALOG_NET_INSPECTOR::DIALOG_NET_INSPECTOR(), 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_PRIMITIVES_TRANSFORM::DIALOG_PAD_PRIMITIVES_TRANSFORM(), DIALOG_PAD_PROPERTIES::DIALOG_PAD_PROPERTIES(), DIALOG_PAGES_SETTINGS::DIALOG_PAGES_SETTINGS(), DIALOG_PCM::DIALOG_PCM(), DIALOG_PIN_PROPERTIES::DIALOG_PIN_PROPERTIES(), DIALOG_PLOT::DIALOG_PLOT(), DIALOG_PLOT_SCHEMATIC::DIALOG_PLOT_SCHEMATIC(), DIALOG_PNS_DIFF_PAIR_DIMENSIONS::DIALOG_PNS_DIFF_PAIR_DIMENSIONS(), DIALOG_PNS_LENGTH_TUNING_SETTINGS::DIALOG_PNS_LENGTH_TUNING_SETTINGS(), DIALOG_PNS_SETTINGS::DIALOG_PNS_SETTINGS(), 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_REGULATOR_FORM::DIALOG_REGULATOR_FORM(), DIALOG_RESCUE_EACH::DIALOG_RESCUE_EACH(), DIALOG_RULE_AREA_PROPERTIES::DIALOG_RULE_AREA_PROPERTIES(), DIALOG_SCH_IMPORT_SETTINGS::DIALOG_SCH_IMPORT_SETTINGS(), DIALOG_SHAPE_PROPERTIES::DIALOG_SHAPE_PROPERTIES(), DIALOG_SHEET_PIN_PROPERTIES::DIALOG_SHEET_PIN_PROPERTIES(), DIALOG_SHEET_PROPERTIES::DIALOG_SHEET_PROPERTIES(), DIALOG_SIM_COMMAND::DIALOG_SIM_COMMAND(), DIALOG_SWAP_LAYERS::DIALOG_SWAP_LAYERS(), DIALOG_SYMBOL_FIELDS_TABLE::DIALOG_SYMBOL_FIELDS_TABLE(), DIALOG_SYMBOL_PROPERTIES::DIALOG_SYMBOL_PROPERTIES(), DIALOG_TARGET_PROPERTIES::DIALOG_TARGET_PROPERTIES(), DIALOG_TEXT_PROPERTIES::DIALOG_TEXT_PROPERTIES(), DIALOG_TEXTBOX_PROPERTIES::DIALOG_TEXTBOX_PROPERTIES(), DIALOG_TRACK_VIA_PROPERTIES::DIALOG_TRACK_VIA_PROPERTIES(), DIALOG_TRACK_VIA_SIZE::DIALOG_TRACK_VIA_SIZE(), DIALOG_UNUSED_PAD_LAYERS::DIALOG_UNUSED_PAD_LAYERS(), DIALOG_UPDATE_FROM_PCB::DIALOG_UPDATE_FROM_PCB(), DIALOG_UPDATE_PCB::DIALOG_UPDATE_PCB(), DIALOG_UPDATE_SYMBOL_FIELDS::DIALOG_UPDATE_SYMBOL_FIELDS(), DIALOG_WIRE_BUS_PROPERTIES::DIALOG_WIRE_BUS_PROPERTIES(), EDA_LIST_DIALOG::EDA_LIST_DIALOG(), EDA_REORDERABLE_LIST_DIALOG::EDA_REORDERABLE_LIST_DIALOG(), DIALOG_CONSTRAINTS_REPORTER::FinishInitialization(), HTML_MESSAGE_BOX::HTML_MESSAGE_BOX(), DIALOG_FIELD_PROPERTIES::init(), DIALOG_EDIT_LIBRARY_TABLES::InstallPanel(), NETLIST_DIALOG_ADD_GENERATOR::NETLIST_DIALOG_ADD_GENERATOR(), PAGED_DIALOG::PAGED_DIALOG(), DIALOG_CLEANUP_TRACKS_AND_VIAS::setupOKButtonLabel(), WX_TEXT_ENTRY_DIALOG::WX_TEXT_ENTRY_DIALOG(), and WX_UNIT_ENTRY_DIALOG::WX_UNIT_ENTRY_DIALOG().

◆ Show()

bool DIALOG_SHIM::Show ( bool  show)
overrideinherited

Definition at line 225 of file dialog_shim.cpp.

226{
227 bool ret;
228 const char* hash_key;
229
230 if( m_hash_key.size() )
231 {
232 // a special case like EDA_LIST_DIALOG, which has multiple uses.
233 hash_key = m_hash_key.c_str();
234 }
235 else
236 {
237 hash_key = typeid(*this).name();
238 }
239
240 // Show or hide the window. If hiding, save current position and size.
241 // If showing, use previous position and size.
242 if( show )
243 {
244#ifndef __WINDOWS__
245 wxDialog::Raise(); // Needed on OS X and some other window managers (i.e. Unity)
246#endif
247 ret = wxDialog::Show( show );
248
249 // classname is key, returns a zeroed-out default wxRect if none existed before.
250 wxRect savedDialogRect = class_map[ hash_key ];
251
252 if( savedDialogRect.GetSize().x != 0 && savedDialogRect.GetSize().y != 0 )
253 {
255 {
256 SetSize( savedDialogRect.GetPosition().x, savedDialogRect.GetPosition().y,
257 wxDialog::GetSize().x, wxDialog::GetSize().y, 0 );
258 }
259 else
260 {
261 SetSize( savedDialogRect.GetPosition().x, savedDialogRect.GetPosition().y,
262 std::max( wxDialog::GetSize().x, savedDialogRect.GetSize().x ),
263 std::max( wxDialog::GetSize().y, savedDialogRect.GetSize().y ),
264 0 );
265 }
266 }
267 else if( m_initialSize != wxDefaultSize )
268 SetSize( m_initialSize );
269
270 // Be sure that the dialog appears in a visible area
271 // (the dialog position might have been stored at the time when it was
272 // shown on another display)
273 if( wxDisplay::GetFromWindow( this ) == wxNOT_FOUND )
274 Centre();
275 }
276 else
277 {
278 // Save the dialog's position & size before hiding, using classname as key
279 class_map[ hash_key ] = wxRect( wxDialog::GetPosition(), wxDialog::GetSize() );
280
281#ifdef __WXMAC__
282 if ( m_eventLoop )
283 m_eventLoop->Exit( GetReturnCode() ); // Needed for APP-MODAL dlgs on OSX
284#endif
285
286 ret = wxDialog::Show( show );
287 }
288
289 return ret;
290}
bool m_useCalculatedSize
Definition: dialog_shim.h:207
wxSize m_initialSize
Definition: dialog_shim.h:225

References class_map, DIALOG_SHIM::m_hash_key, DIALOG_SHIM::m_initialSize, and DIALOG_SHIM::m_useCalculatedSize.

Referenced by FOOTPRINT_EDITOR_CONTROL::CheckFootprint(), FOOTPRINT_EDITOR_CONTROL::CrossProbe(), EE_INSPECTION_TOOL::CrossProbe(), DRC_TOOL::CrossProbe(), DIALOG_SHIM::EndQuasiModal(), GROUP_TOOL::GroupProperties(), EE_INSPECTION_TOOL::NextMarker(), DRC_TOOL::NextMarker(), SCH_EDIT_FRAME::OnAnnotate(), DIALOG_DRC::OnDRCItemDClick(), OnERCItemDClick(), DIALOG_CLEANUP_GRAPHICS::OnLeftDClickItem(), DIALOG_CLEANUP_TRACKS_AND_VIAS::OnLeftDClickItem(), DIALOG_FOOTPRINT_CHECKER::OnLeftDClickItem(), GROUP_TOOL::PickNewMember(), POSITION_RELATIVE_TOOL::PositionRelative(), EE_INSPECTION_TOOL::PrevMarker(), DRC_TOOL::PrevMarker(), CVPCB_MAINFRAME::readNetListAndFpFiles(), DIALOG_PAD_PROPERTIES::Show(), EDA_VIEW_SWITCHER::Show(), EDA_LIST_DIALOG::Show(), DIALOG_FIND::Show(), DRC_TOOL::ShowDRCDialog(), EE_INSPECTION_TOOL::ShowERCDialog(), SCH_EDIT_FRAME::ShowFindReplaceDialog(), HTML_MESSAGE_BOX::ShowModeless(), DIALOG_SHIM::ShowQuasiModal(), and DIALOG_POSITION_RELATIVE::UpdateAnchor().

◆ ShowQuasiModal()

int DIALOG_SHIM::ShowQuasiModal ( )
inherited

Definition at line 436 of file dialog_shim.cpp.

437{
438 // This is an exception safe way to zero a pointer before returning.
439 // Yes, even though DismissModal() clears this first normally, this is
440 // here in case there's an exception before the dialog is dismissed.
441 struct NULLER
442 {
443 void*& m_what;
444 NULLER( void*& aPtr ) : m_what( aPtr ) {}
445 ~NULLER() { m_what = nullptr; } // indeed, set it to NULL on destruction
446 } clear_this( (void*&) m_qmodal_loop );
447
448 // release the mouse if it's currently captured as the window having it
449 // will be disabled when this dialog is shown -- but will still keep the
450 // capture making it impossible to do anything in the modal dialog itself
451 wxWindow* win = wxWindow::GetCapture();
452 if( win )
453 win->ReleaseMouse();
454
455 // Get the optimal parent
456 wxWindow* parent = GetParentForModalDialog( GetParent(), GetWindowStyle() );
457
458 wxASSERT_MSG( !m_qmodal_parent_disabler, wxT( "Caller using ShowQuasiModal() twice on same "
459 "window?" ) );
460
461 // quasi-modal: disable only my "optimal" parent
463
464 // Apple in its infinite wisdom will raise a disabled window before even passing
465 // us the event, so we have no way to stop it. Instead, we must set an order on
466 // the windows so that the quasi-modal will be pushed in front of the disabled
467 // window when it is raised.
469
470 Show( true );
471
472 m_qmodal_showing = true;
473
474 WX_EVENT_LOOP event_loop;
475
476 m_qmodal_loop = &event_loop;
477
478 event_loop.Run();
479
480 m_qmodal_showing = false;
481
482 return GetReturnCode();
483}
Toggle a window's "enable" status to disabled, then enabled on destruction.
Definition: dialog_shim.cpp:46
#define WX_EVENT_LOOP
Definition: kiway_player.h:41
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:65

References 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 SCH_EDIT_TOOL::ChangeSymbols(), S3D::Configure3DPaths(), MICROWAVE_TOOL::createFootprint(), PCB::IFACE::CreateKiWindow(), MICROWAVE_TOOL::createMicrowaveInductor(), SCH_DRAWING_TOOLS::createNewText(), SYMBOL_EDITOR_DRAWING_TOOLS::DrawShape(), SYMBOL_EDITOR_EDIT_TOOL::editFieldProperties(), SCH_EDIT_TOOL::editFieldText(), SCH_EDITOR_CONTROL::EditSymbolFields(), SYMBOL_EDITOR_EDIT_TOOL::editSymbolProperties(), GLOBAL_EDIT_TOOL::EditTracksAndVias(), GLOBAL_EDIT_TOOL::ExchangeFootprints(), InvokeCopperZonesEditor(), InvokeDialogCreateBOM(), InvokeDialogEditSymbolsLibId(), InvokeDialogRescueEach(), InvokeNonCopperZonesEditor(), FOOTPRINT_EDIT_FRAME::OnEditItemRequest(), PCB_EDIT_FRAME::OnEditItemRequest(), SYMBOL_VIEWER_FRAME::OnSelectSymbol(), SCH_EDIT_FRAME::OpenProjectFiles(), SCH_EDIT_TOOL::Properties(), EDIT_TOOL::Properties(), SCH_EDITOR_CONTROL::RemapSymbols(), S3D::Select3DModel(), PCB_BASE_FRAME::SelectFootprintFromLibTree(), PCB_EDIT_FRAME::ShowBoardSetupDialog(), PCB_EDIT_FRAME::ShowExchangeFootprintsDialog(), PCB_BASE_EDIT_FRAME::ShowGraphicItemPropertiesDialog(), PCB_BASE_FRAME::ShowPadPropertiesDialog(), SCH_EDIT_FRAME::ShowSchematicSetupDialog(), PCB_BASE_EDIT_FRAME::ShowTextBoxPropertiesDialog(), PCB_BASE_EDIT_FRAME::ShowTextPropertiesDialog(), and PCB_EDIT_FRAME::ToPlotter().

◆ syncCheckboxes()

◆ testErc()

void DIALOG_ERC::testErc ( )
private

Definition at line 457 of file dialog_erc.cpp.

458{
459 wxFileName fn;
460
461 SCHEMATIC* sch = &m_parent->Schematic();
462
463 // Build the whole sheet list in hierarchy (sheet, not screen)
465
466 SCH_SCREENS screens( sch->Root() );
467 ERC_SETTINGS& settings = sch->ErcSettings();
468 ERC_TESTER tester( sch );
469
470 // Test duplicate sheet names inside a given sheet. While one can have multiple references
471 // to the same file, each must have a unique name.
473 {
474 AdvancePhase( _( "Checking sheet names..." ) );
475 tester.TestDuplicateSheetNames( true );
476 }
477
478 if( settings.IsTestEnabled( ERCE_BUS_ALIAS_CONFLICT ) )
479 {
480 AdvancePhase( _( "Checking bus conflicts..." ) );
481 tester.TestConflictingBusAliases();
482 }
483
484 // The connection graph has a whole set of ERC checks it can run
485 AdvancePhase( _( "Checking conflicts..." ) );
487 sch->ConnectionGraph()->RunERC();
488
489 AdvancePhase( _( "Checking units..." ) );
490
491 // Test is all units of each multiunit symbol have the same footprint assigned.
492 if( settings.IsTestEnabled( ERCE_DIFFERENT_UNIT_FP ) )
493 {
494 AdvancePhase( _( "Checking footprints..." ) );
495 tester.TestMultiunitFootprints();
496 }
497
498 if( settings.IsTestEnabled( ERCE_MISSING_UNIT )
501 || settings.IsTestEnabled( ERCE_MISSING_BIDI_PIN ) )
502 {
503 tester.TestMissingUnits();
504 }
505
506 AdvancePhase( _( "Checking pins..." ) );
507
508 if( settings.IsTestEnabled( ERCE_DIFFERENT_UNIT_NET ) )
509 tester.TestMultUnitPinConflicts();
510
511 // Test pins on each net against the pin connection table
514 || settings.IsTestEnabled( ERCE_PIN_NOT_DRIVEN ) )
515 {
516 tester.TestPinToPin();
517 }
518
519 // Test similar labels (i;e. labels which are identical when
520 // using case insensitive comparisons)
521 if( settings.IsTestEnabled( ERCE_SIMILAR_LABELS ) )
522 {
523 AdvancePhase( _( "Checking labels..." ) );
524 tester.TestSimilarLabels();
525 }
526
528 {
529 AdvancePhase( _( "Checking for unresolved variables..." ) );
530 tester.TestTextVars( m_parent->GetCanvas()->GetView()->GetDrawingSheet() );
531 }
532
533 if( settings.IsTestEnabled( ERCE_SIMULATION_MODEL ) )
534 {
535 AdvancePhase( _( "Checking SPICE models..." ) );
536 tester.TestSimModelIssues();
537 }
538
540 {
541 AdvancePhase( _( "Checking no connect pins for connections..." ) );
542 tester.TestNoConnectPins();
543 }
544
545 if( settings.IsTestEnabled( ERCE_LIB_SYMBOL_ISSUES ) )
546 {
547 AdvancePhase( _( "Checking for library symbol issues..." ) );
548 tester.TestLibSymbolIssues();
549 }
550
551 if( settings.IsTestEnabled( ERCE_ENDPOINT_OFF_GRID ) )
552 {
553 AdvancePhase( _( "Checking for off grid pins and wires..." ) );
554 tester.TestOffGridEndpoints( m_parent->GetCanvas()->GetView()->GetGAL()->GetGridSize().x );
555 }
556
558
559 // Update marker list:
561
562 // Display new markers from the current screen:
563 for( SCH_ITEM* marker : m_parent->GetScreen()->Items().OfType( SCH_MARKER_T ) )
564 {
565 m_parent->GetCanvas()->GetView()->Remove( marker );
566 m_parent->GetCanvas()->GetView()->Add( marker );
567 }
568
570}
int RunERC()
Runs electrical rule checks on the connectivity graph.
bool IsTestEnabled(int aErrorCode) const
Definition: erc_settings.h:130
Definition: erc.h:48
const VECTOR2D & GetGridSize() const
Return the grid size.
DS_PROXY_VIEW_ITEM * GetDrawingSheet() const
Definition: sch_view.h:101
virtual void Add(VIEW_ITEM *aItem, int aDrawPriority=-1)
Add a VIEW_ITEM to the view.
Definition: view.cpp:316
virtual void Remove(VIEW_ITEM *aItem)
Remove a VIEW_ITEM from the view.
Definition: view.cpp:349
GAL * GetGAL() const
Return the #GAL this view is using to draw graphical primitives.
Definition: view.h:195
CONNECTION_GRAPH * ConnectionGraph() const override
Definition: schematic.h:132
void RecalculateConnections(SCH_CLEANUP_FLAGS aCleanupFlags)
Generate the connection data for the entire schematic hierarchy.
void ResolveERCExclusions()
Update markers to match recorded exclusions.
@ ERCE_POWERPIN_NOT_DRIVEN
Power input pin connected to some others pins but no power out pin to drive it.
Definition: erc_settings.h:45
@ ERCE_MISSING_POWER_INPUT_PIN
Symbol has power input pins that are not placed on the schematic.
Definition: erc_settings.h:54
@ ERCE_SIMILAR_LABELS
2 labels are equal for case insensitive comparisons.
Definition: erc_settings.h:51
@ ERCE_ENDPOINT_OFF_GRID
Pin or wire-end off grid.
Definition: erc_settings.h:41
@ ERCE_DIFFERENT_UNIT_NET
Shared pin in a multi-unit symbol is connected to more than one net.
Definition: erc_settings.h:58
@ ERCE_UNRESOLVED_VARIABLE
A text variable could not be resolved.
Definition: erc_settings.h:70
@ ERCE_SIMULATION_MODEL
An error was found in the simulation model.
Definition: erc_settings.h:71
@ ERCE_DIFFERENT_UNIT_FP
Different units of the same symbol have different footprints assigned.
Definition: erc_settings.h:52
@ ERCE_NOCONNECT_CONNECTED
A no connect symbol is connected to more than 1 pin.
Definition: erc_settings.h:48
@ ERCE_PIN_NOT_DRIVEN
Pin connected to some others pins but no pin to drive it.
Definition: erc_settings.h:43
@ ERCE_MISSING_INPUT_PIN
Symbol has input pins that are not placed.
Definition: erc_settings.h:55
@ ERCE_MISSING_UNIT
Symbol has units that are not placed on the schematic.
Definition: erc_settings.h:57
@ ERCE_DUPLICATE_SHEET_NAME
Duplicate sheet names within a given sheet.
Definition: erc_settings.h:40
@ ERCE_MISSING_BIDI_PIN
Symbol has bi-directional pins that are not placed.
Definition: erc_settings.h:56
@ ERCE_LIB_SYMBOL_ISSUES
Library symbol changed from current symbol in schematic or the library symbol link no longer valid.
Definition: erc_settings.h:73
@ ERCE_BUS_ALIAS_CONFLICT
Conflicting bus alias definitions across sheets.
Definition: erc_settings.h:60
@ NO_CLEANUP

References _, KIGFX::VIEW::Add(), PROGRESS_REPORTER_BASE::AdvancePhase(), SCH_SHEET_LIST::AnnotatePowerSymbols(), SCHEMATIC::ConnectionGraph(), ERCE_BUS_ALIAS_CONFLICT, ERCE_DIFFERENT_UNIT_FP, ERCE_DIFFERENT_UNIT_NET, ERCE_DUPLICATE_SHEET_NAME, ERCE_ENDPOINT_OFF_GRID, ERCE_LIB_SYMBOL_ISSUES, ERCE_MISSING_BIDI_PIN, ERCE_MISSING_INPUT_PIN, ERCE_MISSING_POWER_INPUT_PIN, ERCE_MISSING_UNIT, ERCE_NOCONNECT_CONNECTED, ERCE_PIN_NOT_DRIVEN, ERCE_PIN_TO_PIN_ERROR, ERCE_POWERPIN_NOT_DRIVEN, ERCE_SIMILAR_LABELS, ERCE_SIMULATION_MODEL, ERCE_UNRESOLVED_VARIABLE, SCHEMATIC::ErcSettings(), SCH_BASE_FRAME::GetCanvas(), KIGFX::SCH_VIEW::GetDrawingSheet(), KIGFX::VIEW::GetGAL(), KIGFX::GAL::GetGridSize(), SCH_EDIT_FRAME::GetScreen(), SCHEMATIC::GetSheets(), SCH_DRAW_PANEL::GetView(), ERC_SETTINGS::IsTestEnabled(), SCH_SCREEN::Items(), m_markerProvider, m_markerTreeModel, m_parent, m_severities, NO_CLEANUP, EE_RTREE::OfType(), SCH_EDIT_FRAME::RecalculateConnections(), EDA_DRAW_PANEL_GAL::Refresh(), KIGFX::VIEW::Remove(), SCH_EDIT_FRAME::ResolveERCExclusions(), SCHEMATIC::Root(), CONNECTION_GRAPH::RunERC(), SCH_MARKER_T, SCH_EDIT_FRAME::Schematic(), ERC_TESTER::TestConflictingBusAliases(), ERC_TESTER::TestDuplicateSheetNames(), ERC_TESTER::TestLibSymbolIssues(), ERC_TESTER::TestMissingUnits(), ERC_TESTER::TestMultiunitFootprints(), ERC_TESTER::TestMultUnitPinConflicts(), ERC_TESTER::TestNoConnectPins(), ERC_TESTER::TestOffGridEndpoints(), ERC_TESTER::TestPinToPin(), ERC_TESTER::TestSimilarLabels(), ERC_TESTER::TestSimModelIssues(), ERC_TESTER::TestTextVars(), RC_TREE_MODEL::Update(), and VECTOR2< T >::x.

Referenced by OnRunERCClick().

◆ UpdateAnnotationWarning()

void DIALOG_ERC::UpdateAnnotationWarning ( )

Definition at line 143 of file dialog_erc.cpp.

144{
145 if( m_parent->CheckAnnotate( []( ERCE_T, const wxString&, SCH_REFERENCE*, SCH_REFERENCE* )
146 { } ) )
147 {
148 if( !m_infoBar->IsShown() )
149 {
150 wxHyperlinkCtrl* button = new wxHyperlinkCtrl( m_infoBar, wxID_ANY,
151 _( "Show Annotation dialog" ),
152 wxEmptyString );
153
154 button->Bind( wxEVT_COMMAND_HYPERLINK, std::function<void( wxHyperlinkEvent& aEvent )>(
155 [&]( wxHyperlinkEvent& aEvent )
156 {
157 wxHtmlLinkEvent htmlEvent( aEvent.GetId(),
158 wxHtmlLinkInfo( aEvent.GetURL() ) );
159 OnLinkClicked( htmlEvent );
160 } ) );
161
163 m_infoBar->AddButton( button );
164 m_infoBar->ShowMessage( _( "Schematic is not fully annotated. "
165 "ERC results will be incomplete." ) );
166 }
167 }
168 else
169 {
170 if( m_infoBar->IsShown() )
171 {
173 m_infoBar->Hide();
174 }
175 }
176}
WX_INFOBAR * m_infoBar
void OnLinkClicked(wxHtmlLinkEvent &event) override
Definition: dialog_erc.cpp:355
void RemoveAllButtons()
Remove all the buttons that have been added by the user.
Definition: wx_infobar.cpp:289
void AddButton(wxButton *aButton)
Add an already created button to the infobar.
Definition: wx_infobar.cpp:248
void ShowMessage(const wxString &aMessage, int aFlags=wxICON_INFORMATION) override
Show the info bar with the provided message and icon.
Definition: wx_infobar.cpp:142

References _, WX_INFOBAR::AddButton(), SCH_EDIT_FRAME::CheckAnnotate(), DIALOG_ERC_BASE::m_infoBar, m_parent, OnLinkClicked(), WX_INFOBAR::RemoveAllButtons(), and WX_INFOBAR::ShowMessage().

Referenced by DIALOG_ERC(), and OnRunERCClick().

◆ updateDisplayedCounts()

void DIALOG_ERC::updateDisplayedCounts ( )
private

Definition at line 209 of file dialog_erc.cpp.

210{
211 int numErrors = 0;
212 int numWarnings = 0;
213 int numExcluded = 0;
214
215 int numMarkers = 0;
216
217 if( m_markerProvider )
218 {
219 numMarkers += m_markerProvider->GetCount();
220 numErrors += m_markerProvider->GetCount( RPT_SEVERITY_ERROR );
221 numWarnings += m_markerProvider->GetCount( RPT_SEVERITY_WARNING );
222 numExcluded += m_markerProvider->GetCount( RPT_SEVERITY_EXCLUSION );
223 }
224
225 bool markersOverflowed = false;
226
227 // We don't currently have a limit on ERC violations, so the above is always false.
228
229 wxString num;
230 wxString msg;
231
232 if( m_ercRun )
233 {
234 num.Printf( markersOverflowed ? wxT( "%d+" ) : wxT( "%d" ), numMarkers );
235 msg.Printf( m_violationsTitleTemplate, num );
236 }
237 else
238 {
240 msg.Replace( wxT( "(%s)" ), wxEmptyString );
241 }
242
243 m_notebook->SetPageText( 0, msg );
244
245 if( m_ercRun )
246 {
247 num.Printf( wxT( "%d" ), m_ignoredList->GetItemCount() );
248 msg.sprintf( m_ignoredTitleTemplate, num );
249 }
250 else
251 {
253 msg.Replace( wxT( "(%s)" ), wxEmptyString );
254 }
255
256 m_notebook->SetPageText( 1, msg );
257
258 if( !m_ercRun && numErrors == 0 )
259 numErrors = -1;
260
261 if( !m_ercRun && numWarnings == 0 )
262 numWarnings = -1;
263
267}
void UpdateNumber(int aNumber, SEVERITY aSeverity)
Update the number displayed on the badge.

References m_ercRun, DIALOG_ERC_BASE::m_errorsBadge, DIALOG_ERC_BASE::m_exclusionsBadge, DIALOG_ERC_BASE::m_ignoredList, m_ignoredTitleTemplate, m_markerProvider, DIALOG_ERC_BASE::m_notebook, m_violationsTitleTemplate, DIALOG_ERC_BASE::m_warningsBadge, RPT_SEVERITY_ERROR, RPT_SEVERITY_EXCLUSION, RPT_SEVERITY_WARNING, and NUMBER_BADGE::UpdateNumber().

Referenced by DIALOG_ERC(), ExcludeMarker(), OnDeleteAllClick(), OnDeleteOneClick(), OnERCItemRClick(), OnRunERCClick(), and OnSeverity().

◆ updateUI()

bool DIALOG_ERC::updateUI ( )
overridevirtual

Implements PROGRESS_REPORTER_BASE.

Definition at line 181 of file dialog_erc.cpp.

182{
183 // If ERC checks ever get slow enough we'll want a progress indicator...
184 //
185 // double cur = (double) m_progress.load() / m_maxProgress;
186 // cur = std::max( 0.0, std::min( cur, 1.0 ) );
187 //
188 // m_gauge->SetValue( KiROUND( cur * 1000.0 ) );
189 // wxSafeYield( this );
190
191 return !m_cancelled;
192}

References PROGRESS_REPORTER_BASE::m_cancelled.

◆ vertPixelsFromDU()

int DIALOG_SHIM::vertPixelsFromDU ( int  y) const
protectedinherited

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

See SetSizeInDU or wxDialog documentation for more information.

Definition at line 182 of file dialog_shim.cpp.

183{
184 wxSize sz( 0, y );
185 return ConvertDialogToPixels( sz ).y;
186}

Referenced by DIALOG_CHOOSE_SYMBOL::DIALOG_CHOOSE_SYMBOL().

◆ writeReport()

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

Definition at line 987 of file dialog_erc.cpp.

988{
989 wxFFile file( aFullFileName, wxT( "wt" ) );
990
991 if( !file.IsOpened() )
992 return false;
993
994 wxString msg = wxString::Format( _( "ERC report (%s, Encoding UTF8)\n" ), DateAndTime() );
995
996 std::map<KIID, EDA_ITEM*> itemMap;
997
998 int err_count = 0;
999 int warn_count = 0;
1000 int total_count = 0;
1001 SCH_SHEET_LIST sheetList = m_parent->Schematic().GetSheets();
1002
1003 sheetList.FillItemMap( itemMap );
1004
1005 ERC_SETTINGS& settings = m_parent->Schematic().ErcSettings();
1006
1007 for( unsigned i = 0; i < sheetList.size(); i++ )
1008 {
1009 msg << wxString::Format( _( "\n***** Sheet %s\n" ), sheetList[i].PathHumanReadable() );
1010
1011 for( SCH_ITEM* aItem : sheetList[i].LastScreen()->Items().OfType( SCH_MARKER_T ) )
1012 {
1013 const SCH_MARKER* marker = static_cast<const SCH_MARKER*>( aItem );
1014 RC_ITEM* item = marker->GetRCItem().get();
1015 SEVERITY severity = settings.GetSeverity( item->GetErrorCode() );
1016
1017 if( marker->GetMarkerType() != MARKER_BASE::MARKER_ERC )
1018 continue;
1019
1020 total_count++;
1021
1022 switch( severity )
1023 {
1024 case RPT_SEVERITY_ERROR: err_count++; break;
1025 case RPT_SEVERITY_WARNING: warn_count++; break;
1026 default: break;
1027 }
1028
1029 msg << marker->GetRCItem()->ShowReport( m_parent, severity, itemMap );
1030 }
1031 }
1032
1033 msg << wxString::Format( _( "\n ** ERC messages: %d Errors %d Warnings %d\n" ),
1034 total_count, err_count, warn_count );
1035
1036 // Currently: write report using UTF8 (as usual in Kicad).
1037 // TODO: see if we can use the current encoding page (mainly for Windows users),
1038 // Or other format (HTML?)
1039 file.Write( msg );
1040
1041 // wxFFile dtor will close the file.
1042
1043 return true;
1044}
enum TYPEMARKER GetMarkerType() const
Definition: marker_base.h:95
A holder for a rule check item, DRC in Pcbnew or ERC in Eeschema.
Definition: rc_item.h:75
int GetErrorCode() const
Definition: rc_item.h:136
A container for handling SCH_SHEET_PATH objects in a flattened hierarchy.
void FillItemMap(std::map< KIID, EDA_ITEM * > &aMap)
Fill an item cache for temporary use when many items need to be fetched.
SEVERITY
wxString DateAndTime()

References _, DateAndTime(), SCHEMATIC::ErcSettings(), SCH_SHEET_LIST::FillItemMap(), Format(), RC_ITEM::GetErrorCode(), MARKER_BASE::GetMarkerType(), MARKER_BASE::GetRCItem(), ERC_SETTINGS::GetSeverity(), SCHEMATIC::GetSheets(), m_parent, MARKER_BASE::MARKER_ERC, RPT_SEVERITY_ERROR, RPT_SEVERITY_WARNING, SCH_MARKER_T, and SCH_EDIT_FRAME::Schematic().

Referenced by OnSaveReport().

Member Data Documentation

◆ m_buttonsSizer

wxBoxSizer* DIALOG_ERC_BASE::m_buttonsSizer
protectedinherited

Definition at line 74 of file dialog_erc_base.h.

Referenced by DIALOG_ERC_BASE::DIALOG_ERC_BASE().

◆ m_cancelled

◆ m_centerMarkerOnIdle

const SCH_MARKER* DIALOG_ERC::m_centerMarkerOnIdle
private

Definition at line 111 of file dialog_erc.h.

Referenced by centerMarkerIdleHandler(), OnERCItemSelected(), and SelectMarker().

◆ m_currentSchematic

SCHEMATIC* DIALOG_ERC::m_currentSchematic
private

Definition at line 100 of file dialog_erc.h.

Referenced by DIALOG_ERC(), and ~DIALOG_ERC().

◆ m_deleteAllMarkers

wxButton* DIALOG_ERC_BASE::m_deleteAllMarkers
protectedinherited

◆ m_deleteOneMarker

wxButton* DIALOG_ERC_BASE::m_deleteOneMarker
protectedinherited

◆ m_ercRun

bool DIALOG_ERC::m_ercRun
private

Definition at line 109 of file dialog_erc.h.

Referenced by DIALOG_ERC(), OnRunERCClick(), updateDisplayedCounts(), and ~DIALOG_ERC().

◆ m_errorsBadge

NUMBER_BADGE* DIALOG_ERC_BASE::m_errorsBadge
protectedinherited

◆ m_exclusionsBadge

NUMBER_BADGE* DIALOG_ERC_BASE::m_exclusionsBadge
protectedinherited

◆ m_firstPaintEvent

bool DIALOG_SHIM::m_firstPaintEvent
protectedinherited

Definition at line 212 of file dialog_shim.h.

Referenced by DIALOG_SHIM::OnPaint().

◆ m_gauge

wxGauge* DIALOG_ERC_BASE::m_gauge
protectedinherited

Definition at line 58 of file dialog_erc_base.h.

Referenced by DIALOG_ERC_BASE::DIALOG_ERC_BASE().

◆ m_hash_key

◆ m_ignoredList

wxListCtrl* DIALOG_ERC_BASE::m_ignoredList
protectedinherited

◆ m_ignoredTitleTemplate

wxString DIALOG_ERC::m_ignoredTitleTemplate
private

Definition at line 103 of file dialog_erc.h.

Referenced by DIALOG_ERC(), and updateDisplayedCounts().

◆ m_infoBar

WX_INFOBAR* DIALOG_ERC_BASE::m_infoBar
protectedinherited

Definition at line 52 of file dialog_erc_base.h.

Referenced by DIALOG_ERC_BASE::DIALOG_ERC_BASE(), and UpdateAnnotationWarning().

◆ m_initialFocusTarget

wxWindow* DIALOG_SHIM::m_initialFocusTarget
protectedinherited

Definition at line 213 of file dialog_shim.h.

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

◆ m_initialSize

wxSize DIALOG_SHIM::m_initialSize
protectedinherited

Definition at line 225 of file dialog_shim.h.

Referenced by DIALOG_SHIM::Show().

◆ m_kiway

KIWAY* KIWAY_HOLDER::m_kiway
privateinherited

◆ m_markerDataView

wxDataViewCtrl* DIALOG_ERC_BASE::m_markerDataView
protectedinherited

◆ m_markerProvider

std::shared_ptr<RC_ITEMS_PROVIDER> DIALOG_ERC::m_markerProvider
private

◆ m_markerTreeModel

◆ m_maxProgress

◆ m_messageChanged

std::atomic_bool PROGRESS_REPORTER_BASE::m_messageChanged
protectedinherited

◆ m_messages

WX_HTML_REPORT_BOX* DIALOG_ERC_BASE::m_messages
protectedinherited

◆ m_mutex

std::mutex PROGRESS_REPORTER_BASE::m_mutex
mutableprotectedinherited

◆ m_notebook

wxNotebook* DIALOG_ERC_BASE::m_notebook
protectedinherited

◆ m_numPhases

std::atomic_int PROGRESS_REPORTER_BASE::m_numPhases
protectedinherited

◆ m_panelIgnored

wxPanel* DIALOG_ERC_BASE::m_panelIgnored
protectedinherited

Definition at line 63 of file dialog_erc_base.h.

Referenced by DIALOG_ERC_BASE::DIALOG_ERC_BASE().

◆ m_panelMessages

wxPanel* DIALOG_ERC_BASE::m_panelMessages
protectedinherited

Definition at line 56 of file dialog_erc_base.h.

Referenced by DIALOG_ERC_BASE::DIALOG_ERC_BASE().

◆ m_parent

◆ m_parentFrame

◆ m_phase

std::atomic_int PROGRESS_REPORTER_BASE::m_phase
protectedinherited

◆ m_progress

◆ m_qmodal_loop

WX_EVENT_LOOP* DIALOG_SHIM::m_qmodal_loop
protectedinherited

Definition at line 215 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 217 of file dialog_shim.h.

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

◆ m_rptMessage

wxString PROGRESS_REPORTER_BASE::m_rptMessage
protectedinherited

◆ m_running

bool DIALOG_ERC::m_running
private

Definition at line 108 of file dialog_erc.h.

Referenced by OnCancelClick(), and OnRunERCClick().

◆ m_runningNotebook

wxNotebook* DIALOG_ERC_BASE::m_runningNotebook
protectedinherited

Definition at line 55 of file dialog_erc_base.h.

Referenced by DIALOG_ERC_BASE::DIALOG_ERC_BASE().

◆ m_runningResultsBook

wxSimplebook* DIALOG_ERC_BASE::m_runningResultsBook
protectedinherited

Definition at line 53 of file dialog_erc_base.h.

Referenced by DIALOG_ERC_BASE::DIALOG_ERC_BASE(), and OnRunERCClick().

◆ m_saveReport

wxButton* DIALOG_ERC_BASE::m_saveReport
protectedinherited

◆ m_sdbSizer1

wxStdDialogButtonSizer* DIALOG_ERC_BASE::m_sdbSizer1
protectedinherited

Definition at line 77 of file dialog_erc_base.h.

Referenced by DIALOG_ERC_BASE::DIALOG_ERC_BASE().

◆ m_sdbSizer1Cancel

wxButton* DIALOG_ERC_BASE::m_sdbSizer1Cancel
protectedinherited

◆ m_sdbSizer1OK

wxButton* DIALOG_ERC_BASE::m_sdbSizer1OK
protectedinherited

◆ m_severities

int DIALOG_ERC::m_severities
private

◆ m_showAll

wxCheckBox* DIALOG_ERC_BASE::m_showAll
protectedinherited

◆ m_showErrors

wxCheckBox* DIALOG_ERC_BASE::m_showErrors
protectedinherited

◆ m_showExclusions

wxCheckBox* DIALOG_ERC_BASE::m_showExclusions
protectedinherited

◆ m_showLabel

wxStaticText* DIALOG_ERC_BASE::m_showLabel
protectedinherited

Definition at line 65 of file dialog_erc_base.h.

Referenced by DIALOG_ERC_BASE::DIALOG_ERC_BASE().

◆ m_showWarnings

wxCheckBox* DIALOG_ERC_BASE::m_showWarnings
protectedinherited

◆ m_tabOrder

◆ m_type

HOLDER_TYPE KIWAY_HOLDER::m_type
privateinherited

Definition at line 85 of file kiway_holder.h.

Referenced by KIWAY_HOLDER::GetType(), and SIM_PLOT_FRAME::onSimFinished().

◆ m_units

◆ m_useCalculatedSize

bool DIALOG_SHIM::m_useCalculatedSize
protectedinherited

◆ m_violationsTitleTemplate

wxString DIALOG_ERC::m_violationsTitleTemplate
private

Definition at line 102 of file dialog_erc.h.

Referenced by DIALOG_ERC(), and updateDisplayedCounts().

◆ m_warningsBadge

NUMBER_BADGE* DIALOG_ERC_BASE::m_warningsBadge
protectedinherited

◆ results

wxPanel* DIALOG_ERC_BASE::results
protectedinherited

Definition at line 59 of file dialog_erc_base.h.

Referenced by DIALOG_ERC_BASE::DIALOG_ERC_BASE().

◆ running

wxPanel* DIALOG_ERC_BASE::running
protectedinherited

Definition at line 54 of file dialog_erc_base.h.

Referenced by DIALOG_ERC_BASE::DIALOG_ERC_BASE().

◆ violationsPanel

wxPanel* DIALOG_ERC_BASE::violationsPanel
protectedinherited

Definition at line 61 of file dialog_erc_base.h.

Referenced by DIALOG_ERC_BASE::DIALOG_ERC_BASE().


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