ADDED override locks checkbox for update from schematic.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16471
This commit is contained in:
parent
91df43c97a
commit
4c5dbcd7f4
|
@ -262,6 +262,7 @@ void DIALOG_IMPORT_NETLIST::loadNetlist( bool aDryRun )
|
|||
updater.SetLookupByTimestamp( m_matchByUUID );
|
||||
updater.SetDeleteUnusedFootprints( m_cbDeleteExtraFootprints->GetValue());
|
||||
updater.SetReplaceFootprints( m_cbUpdateFootprints->GetValue() );
|
||||
updater.SetOverrideLocks( m_cbOverrideLocks->GetValue() );
|
||||
updater.UpdateNetlist( netlist );
|
||||
|
||||
// The creation of the report was made without window update: the full page must be displayed
|
||||
|
|
|
@ -50,11 +50,14 @@ DIALOG_IMPORT_NETLIST_BASE::DIALOG_IMPORT_NETLIST_BASE( wxWindow* parent, wxWind
|
|||
wxStaticBoxSizer* sbSizer1;
|
||||
sbSizer1 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Options") ), wxVERTICAL );
|
||||
|
||||
m_cbDeleteExtraFootprints = new wxCheckBox( sbSizer1->GetStaticBox(), wxID_ANY, _("Delete footprints with no components in netlist"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
sbSizer1->Add( m_cbDeleteExtraFootprints, 0, wxBOTTOM, 5 );
|
||||
|
||||
m_cbUpdateFootprints = new wxCheckBox( sbSizer1->GetStaticBox(), wxID_ANY, _("Replace footprints with those specified in netlist"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
sbSizer1->Add( m_cbUpdateFootprints, 0, wxBOTTOM, 5 );
|
||||
|
||||
m_cbDeleteExtraFootprints = new wxCheckBox( sbSizer1->GetStaticBox(), wxID_ANY, _("Delete footprints with no components in netlist"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
sbSizer1->Add( m_cbDeleteExtraFootprints, 0, wxBOTTOM, 5 );
|
||||
m_cbOverrideLocks = new wxCheckBox( sbSizer1->GetStaticBox(), wxID_ANY, _("Delete/replace footprints even if locked"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
sbSizer1->Add( m_cbOverrideLocks, 0, wxBOTTOM|wxRIGHT, 5 );
|
||||
|
||||
m_cbDeleteShortingTracks = new wxCheckBox( sbSizer1->GetStaticBox(), wxID_ANY, _("Delete tracks shorting multiple nets"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
sbSizer1->Add( m_cbDeleteShortingTracks, 0, wxBOTTOM, 5 );
|
||||
|
@ -100,8 +103,9 @@ DIALOG_IMPORT_NETLIST_BASE::DIALOG_IMPORT_NETLIST_BASE( wxWindow* parent, wxWind
|
|||
m_NetlistFilenameCtrl->Connect( wxEVT_KILL_FOCUS, wxFocusEventHandler( DIALOG_IMPORT_NETLIST_BASE::OnFilenameKillFocus ), NULL, this );
|
||||
m_browseButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_IMPORT_NETLIST_BASE::onBrowseNetlistFiles ), NULL, this );
|
||||
m_matchByTimestamp->Connect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( DIALOG_IMPORT_NETLIST_BASE::OnMatchChanged ), NULL, this );
|
||||
m_cbUpdateFootprints->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_IMPORT_NETLIST_BASE::OnOptionChanged ), NULL, this );
|
||||
m_cbDeleteExtraFootprints->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_IMPORT_NETLIST_BASE::OnOptionChanged ), NULL, this );
|
||||
m_cbUpdateFootprints->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_IMPORT_NETLIST_BASE::OnOptionChanged ), NULL, this );
|
||||
m_cbOverrideLocks->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_IMPORT_NETLIST_BASE::OnOptionChanged ), NULL, this );
|
||||
m_cbDeleteShortingTracks->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_IMPORT_NETLIST_BASE::OnOptionChanged ), NULL, this );
|
||||
m_sdbSizerApply->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_IMPORT_NETLIST_BASE::onUpdatePCB ), NULL, this );
|
||||
m_sdbSizerOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_IMPORT_NETLIST_BASE::onImportNetlist ), NULL, this );
|
||||
|
@ -113,8 +117,9 @@ DIALOG_IMPORT_NETLIST_BASE::~DIALOG_IMPORT_NETLIST_BASE()
|
|||
m_NetlistFilenameCtrl->Disconnect( wxEVT_KILL_FOCUS, wxFocusEventHandler( DIALOG_IMPORT_NETLIST_BASE::OnFilenameKillFocus ), NULL, this );
|
||||
m_browseButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_IMPORT_NETLIST_BASE::onBrowseNetlistFiles ), NULL, this );
|
||||
m_matchByTimestamp->Disconnect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( DIALOG_IMPORT_NETLIST_BASE::OnMatchChanged ), NULL, this );
|
||||
m_cbUpdateFootprints->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_IMPORT_NETLIST_BASE::OnOptionChanged ), NULL, this );
|
||||
m_cbDeleteExtraFootprints->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_IMPORT_NETLIST_BASE::OnOptionChanged ), NULL, this );
|
||||
m_cbUpdateFootprints->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_IMPORT_NETLIST_BASE::OnOptionChanged ), NULL, this );
|
||||
m_cbOverrideLocks->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_IMPORT_NETLIST_BASE::OnOptionChanged ), NULL, this );
|
||||
m_cbDeleteShortingTracks->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_IMPORT_NETLIST_BASE::OnOptionChanged ), NULL, this );
|
||||
m_sdbSizerApply->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_IMPORT_NETLIST_BASE::onUpdatePCB ), NULL, this );
|
||||
m_sdbSizerOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_IMPORT_NETLIST_BASE::onImportNetlist ), NULL, this );
|
||||
|
|
|
@ -393,7 +393,7 @@
|
|||
<property name="gripper">0</property>
|
||||
<property name="hidden">0</property>
|
||||
<property name="id">wxID_ANY</property>
|
||||
<property name="label">Replace footprints with those specified in netlist</property>
|
||||
<property name="label">Delete footprints with no components in netlist</property>
|
||||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
<property name="maximum_size"></property>
|
||||
|
@ -401,7 +401,7 @@
|
|||
<property name="minimize_button">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
<property name="moveable">1</property>
|
||||
<property name="name">m_cbUpdateFootprints</property>
|
||||
<property name="name">m_cbDeleteExtraFootprints</property>
|
||||
<property name="pane_border">1</property>
|
||||
<property name="pane_position"></property>
|
||||
<property name="pane_size"></property>
|
||||
|
@ -458,7 +458,7 @@
|
|||
<property name="gripper">0</property>
|
||||
<property name="hidden">0</property>
|
||||
<property name="id">wxID_ANY</property>
|
||||
<property name="label">Delete footprints with no components in netlist</property>
|
||||
<property name="label">Replace footprints with those specified in netlist</property>
|
||||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
<property name="maximum_size"></property>
|
||||
|
@ -466,7 +466,7 @@
|
|||
<property name="minimize_button">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
<property name="moveable">1</property>
|
||||
<property name="name">m_cbDeleteExtraFootprints</property>
|
||||
<property name="name">m_cbUpdateFootprints</property>
|
||||
<property name="pane_border">1</property>
|
||||
<property name="pane_position"></property>
|
||||
<property name="pane_size"></property>
|
||||
|
@ -490,6 +490,71 @@
|
|||
<event name="OnCheckBox">OnOptionChanged</event>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem" expanded="1">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxBOTTOM|wxRIGHT</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="wxCheckBox" expanded="1">
|
||||
<property name="BottomDockable">1</property>
|
||||
<property name="LeftDockable">1</property>
|
||||
<property name="RightDockable">1</property>
|
||||
<property name="TopDockable">1</property>
|
||||
<property name="aui_layer"></property>
|
||||
<property name="aui_name"></property>
|
||||
<property name="aui_position"></property>
|
||||
<property name="aui_row"></property>
|
||||
<property name="best_size"></property>
|
||||
<property name="bg"></property>
|
||||
<property name="caption"></property>
|
||||
<property name="caption_visible">1</property>
|
||||
<property name="center_pane">0</property>
|
||||
<property name="checked">0</property>
|
||||
<property name="close_button">1</property>
|
||||
<property name="context_help"></property>
|
||||
<property name="context_menu">1</property>
|
||||
<property name="default_pane">0</property>
|
||||
<property name="dock">Dock</property>
|
||||
<property name="dock_fixed">0</property>
|
||||
<property name="docking">Left</property>
|
||||
<property name="enabled">1</property>
|
||||
<property name="fg"></property>
|
||||
<property name="floatable">1</property>
|
||||
<property name="font"></property>
|
||||
<property name="gripper">0</property>
|
||||
<property name="hidden">0</property>
|
||||
<property name="id">wxID_ANY</property>
|
||||
<property name="label">Delete/replace footprints even if locked</property>
|
||||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
<property name="maximum_size"></property>
|
||||
<property name="min_size"></property>
|
||||
<property name="minimize_button">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
<property name="moveable">1</property>
|
||||
<property name="name">m_cbOverrideLocks</property>
|
||||
<property name="pane_border">1</property>
|
||||
<property name="pane_position"></property>
|
||||
<property name="pane_size"></property>
|
||||
<property name="permission">protected</property>
|
||||
<property name="pin_button">1</property>
|
||||
<property name="pos"></property>
|
||||
<property name="resize">Resizable</property>
|
||||
<property name="show">1</property>
|
||||
<property name="size"></property>
|
||||
<property name="style"></property>
|
||||
<property name="subclass">; ; forward_declare</property>
|
||||
<property name="toolbar_pane">0</property>
|
||||
<property name="tooltip"></property>
|
||||
<property name="validator_data_type"></property>
|
||||
<property name="validator_style">wxFILTER_NONE</property>
|
||||
<property name="validator_type">wxDefaultValidator</property>
|
||||
<property name="validator_variable"></property>
|
||||
<property name="window_extra_style"></property>
|
||||
<property name="window_name"></property>
|
||||
<property name="window_style"></property>
|
||||
<event name="OnCheckBox">OnOptionChanged</event>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem" expanded="1">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxBOTTOM</property>
|
||||
|
|
|
@ -46,8 +46,9 @@ class DIALOG_IMPORT_NETLIST_BASE : public DIALOG_SHIM
|
|||
wxTextCtrl* m_NetlistFilenameCtrl;
|
||||
STD_BITMAP_BUTTON* m_browseButton;
|
||||
wxRadioBox* m_matchByTimestamp;
|
||||
wxCheckBox* m_cbUpdateFootprints;
|
||||
wxCheckBox* m_cbDeleteExtraFootprints;
|
||||
wxCheckBox* m_cbUpdateFootprints;
|
||||
wxCheckBox* m_cbOverrideLocks;
|
||||
wxCheckBox* m_cbDeleteShortingTracks;
|
||||
WX_HTML_REPORT_PANEL* m_MessageWindow;
|
||||
wxBoxSizer* m_buttonsSizer;
|
||||
|
|
|
@ -119,6 +119,7 @@ void DIALOG_UPDATE_PCB::PerformUpdate( bool aDryRun )
|
|||
updater.SetLookupByTimestamp( !m_cbRelinkFootprints->GetValue() );
|
||||
updater.SetDeleteUnusedFootprints( m_cbDeleteExtraFootprints->GetValue());
|
||||
updater.SetReplaceFootprints( m_cbUpdateFootprints->GetValue() );
|
||||
updater.SetOverrideLocks( m_cbOverrideLocks->GetValue() );
|
||||
updater.UpdateNetlist( *m_netlist );
|
||||
|
||||
m_messagePanel->Flush( true );
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
///////////////////////////////////////////////////////////////////////////
|
||||
// C++ code generated with wxFormBuilder (version Oct 26 2018)
|
||||
// C++ code generated with wxFormBuilder (version 3.10.1-0-g8feb16b)
|
||||
// http://www.wxformbuilder.org/
|
||||
//
|
||||
// PLEASE DO *NOT* EDIT THIS FILE!
|
||||
|
@ -40,6 +40,9 @@ DIALOG_UPDATE_PCB_BASE::DIALOG_UPDATE_PCB_BASE( wxWindow* parent, wxWindowID id,
|
|||
|
||||
sbSizer1->Add( m_cbUpdateFootprints, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
|
||||
|
||||
m_cbOverrideLocks = new wxCheckBox( sbSizer1->GetStaticBox(), wxID_ANY, _("Delete/replace footprints even if locked"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
sbSizer1->Add( m_cbOverrideLocks, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
|
||||
|
||||
|
||||
bUpperSizer->Add( sbSizer1, 1, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
|
||||
|
||||
|
@ -74,6 +77,7 @@ DIALOG_UPDATE_PCB_BASE::DIALOG_UPDATE_PCB_BASE( wxWindow* parent, wxWindowID id,
|
|||
m_cbRelinkFootprints->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_UPDATE_PCB_BASE::OnOptionChanged ), NULL, this );
|
||||
m_cbDeleteExtraFootprints->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_UPDATE_PCB_BASE::OnOptionChanged ), NULL, this );
|
||||
m_cbUpdateFootprints->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_UPDATE_PCB_BASE::OnOptionChanged ), NULL, this );
|
||||
m_cbOverrideLocks->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_UPDATE_PCB_BASE::OnOptionChanged ), NULL, this );
|
||||
m_sdbSizer1OK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_UPDATE_PCB_BASE::OnUpdateClick ), NULL, this );
|
||||
}
|
||||
|
||||
|
@ -83,6 +87,7 @@ DIALOG_UPDATE_PCB_BASE::~DIALOG_UPDATE_PCB_BASE()
|
|||
m_cbRelinkFootprints->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_UPDATE_PCB_BASE::OnOptionChanged ), NULL, this );
|
||||
m_cbDeleteExtraFootprints->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_UPDATE_PCB_BASE::OnOptionChanged ), NULL, this );
|
||||
m_cbUpdateFootprints->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_UPDATE_PCB_BASE::OnOptionChanged ), NULL, this );
|
||||
m_cbOverrideLocks->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_UPDATE_PCB_BASE::OnOptionChanged ), NULL, this );
|
||||
m_sdbSizer1OK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_UPDATE_PCB_BASE::OnUpdateClick ), NULL, this );
|
||||
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
|
||||
<wxFormBuilder_Project>
|
||||
<FileVersion major="1" minor="15" />
|
||||
<FileVersion major="1" minor="16" />
|
||||
<object class="Project" expanded="1">
|
||||
<property name="class_decoration"></property>
|
||||
<property name="code_generation">C++</property>
|
||||
|
@ -14,6 +14,7 @@
|
|||
<property name="file">dialog_update_pcb_base</property>
|
||||
<property name="first_id">1000</property>
|
||||
<property name="help_provider">none</property>
|
||||
<property name="image_path_wrapper_function_name"></property>
|
||||
<property name="indent_with_spaces"></property>
|
||||
<property name="internationalize">1</property>
|
||||
<property name="name">dialog_update_pcb_base</property>
|
||||
|
@ -25,6 +26,7 @@
|
|||
<property name="skip_php_events">1</property>
|
||||
<property name="skip_python_events">1</property>
|
||||
<property name="ui_table">UI</property>
|
||||
<property name="use_array_enum">0</property>
|
||||
<property name="use_enum">1</property>
|
||||
<property name="use_microsoft_bom">0</property>
|
||||
<object class="Dialog" expanded="1">
|
||||
|
@ -50,6 +52,7 @@
|
|||
<property name="subclass">DIALOG_SHIM; dialog_shim.h</property>
|
||||
<property name="title">Update PCB from Schematic</property>
|
||||
<property name="tooltip"></property>
|
||||
<property name="two_step_creation">0</property>
|
||||
<property name="window_extra_style"></property>
|
||||
<property name="window_name"></property>
|
||||
<property name="window_style"></property>
|
||||
|
@ -274,6 +277,71 @@
|
|||
<event name="OnCheckBox">OnOptionChanged</event>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem" expanded="1">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxBOTTOM|wxRIGHT|wxLEFT</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="wxCheckBox" expanded="1">
|
||||
<property name="BottomDockable">1</property>
|
||||
<property name="LeftDockable">1</property>
|
||||
<property name="RightDockable">1</property>
|
||||
<property name="TopDockable">1</property>
|
||||
<property name="aui_layer"></property>
|
||||
<property name="aui_name"></property>
|
||||
<property name="aui_position"></property>
|
||||
<property name="aui_row"></property>
|
||||
<property name="best_size"></property>
|
||||
<property name="bg"></property>
|
||||
<property name="caption"></property>
|
||||
<property name="caption_visible">1</property>
|
||||
<property name="center_pane">0</property>
|
||||
<property name="checked">0</property>
|
||||
<property name="close_button">1</property>
|
||||
<property name="context_help"></property>
|
||||
<property name="context_menu">1</property>
|
||||
<property name="default_pane">0</property>
|
||||
<property name="dock">Dock</property>
|
||||
<property name="dock_fixed">0</property>
|
||||
<property name="docking">Left</property>
|
||||
<property name="enabled">1</property>
|
||||
<property name="fg"></property>
|
||||
<property name="floatable">1</property>
|
||||
<property name="font"></property>
|
||||
<property name="gripper">0</property>
|
||||
<property name="hidden">0</property>
|
||||
<property name="id">wxID_ANY</property>
|
||||
<property name="label">Delete/replace footprints even if locked</property>
|
||||
<property name="max_size"></property>
|
||||
<property name="maximize_button">0</property>
|
||||
<property name="maximum_size"></property>
|
||||
<property name="min_size"></property>
|
||||
<property name="minimize_button">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
<property name="moveable">1</property>
|
||||
<property name="name">m_cbOverrideLocks</property>
|
||||
<property name="pane_border">1</property>
|
||||
<property name="pane_position"></property>
|
||||
<property name="pane_size"></property>
|
||||
<property name="permission">protected</property>
|
||||
<property name="pin_button">1</property>
|
||||
<property name="pos"></property>
|
||||
<property name="resize">Resizable</property>
|
||||
<property name="show">1</property>
|
||||
<property name="size"></property>
|
||||
<property name="style"></property>
|
||||
<property name="subclass">; ; forward_declare</property>
|
||||
<property name="toolbar_pane">0</property>
|
||||
<property name="tooltip"></property>
|
||||
<property name="validator_data_type"></property>
|
||||
<property name="validator_style">wxFILTER_NONE</property>
|
||||
<property name="validator_type">wxDefaultValidator</property>
|
||||
<property name="validator_variable"></property>
|
||||
<property name="window_extra_style"></property>
|
||||
<property name="window_name"></property>
|
||||
<property name="window_style"></property>
|
||||
<event name="OnCheckBox">OnOptionChanged</event>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
|
@ -336,7 +404,7 @@
|
|||
<property name="resize">Resizable</property>
|
||||
<property name="show">1</property>
|
||||
<property name="size">-1,-1</property>
|
||||
<property name="subclass">WX_HTML_REPORT_PANEL; wx_html_report_panel.h</property>
|
||||
<property name="subclass">WX_HTML_REPORT_PANEL; widgets/wx_html_report_panel.h; forward_declare</property>
|
||||
<property name="toolbar_pane">0</property>
|
||||
<property name="tooltip"></property>
|
||||
<property name="window_extra_style"></property>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
///////////////////////////////////////////////////////////////////////////
|
||||
// C++ code generated with wxFormBuilder (version Oct 26 2018)
|
||||
// C++ code generated with wxFormBuilder (version 3.10.1-0-g8feb16b)
|
||||
// http://www.wxformbuilder.org/
|
||||
//
|
||||
// PLEASE DO *NOT* EDIT THIS FILE!
|
||||
|
@ -38,12 +38,13 @@ class DIALOG_UPDATE_PCB_BASE : public DIALOG_SHIM
|
|||
wxCheckBox* m_cbRelinkFootprints;
|
||||
wxCheckBox* m_cbDeleteExtraFootprints;
|
||||
wxCheckBox* m_cbUpdateFootprints;
|
||||
wxCheckBox* m_cbOverrideLocks;
|
||||
WX_HTML_REPORT_PANEL* m_messagePanel;
|
||||
wxStdDialogButtonSizer* m_sdbSizer1;
|
||||
wxButton* m_sdbSizer1OK;
|
||||
wxButton* m_sdbSizer1Cancel;
|
||||
|
||||
// Virtual event handlers, overide them in your derived class
|
||||
// Virtual event handlers, override them in your derived class
|
||||
virtual void OnOptionChanged( wxCommandEvent& event ) { event.Skip(); }
|
||||
virtual void OnUpdateClick( wxCommandEvent& event ) { event.Skip(); }
|
||||
|
||||
|
@ -51,6 +52,7 @@ class DIALOG_UPDATE_PCB_BASE : public DIALOG_SHIM
|
|||
public:
|
||||
|
||||
DIALOG_UPDATE_PCB_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Update PCB from Schematic"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
|
||||
|
||||
~DIALOG_UPDATE_PCB_BASE();
|
||||
|
||||
};
|
||||
|
|
|
@ -58,6 +58,7 @@ BOARD_NETLIST_UPDATER::BOARD_NETLIST_UPDATER( PCB_EDIT_FRAME* aFrame, BOARD* aBo
|
|||
m_isDryRun = false;
|
||||
m_replaceFootprints = true;
|
||||
m_lookupByTimestamp = false;
|
||||
m_overrideLocks = false;
|
||||
|
||||
m_warningCount = 0;
|
||||
m_errorCount = 0;
|
||||
|
@ -229,27 +230,55 @@ FOOTPRINT* BOARD_NETLIST_UPDATER::replaceFootprint( NETLIST& aNetlist, FOOTPRINT
|
|||
|
||||
if( m_isDryRun )
|
||||
{
|
||||
msg.Printf( _( "Change %s footprint from '%s' to '%s'."),
|
||||
aFootprint->GetReference(),
|
||||
aFootprint->GetFPID().Format().wx_str(),
|
||||
aNewComponent->GetFPID().Format().wx_str() );
|
||||
|
||||
delete newFootprint;
|
||||
newFootprint = nullptr;
|
||||
if( aFootprint->IsLocked() && !m_overrideLocks )
|
||||
{
|
||||
msg.Printf( _( "Cannot change %s footprint from '%s' to '%s' (footprint is locked)."),
|
||||
aFootprint->GetReference(),
|
||||
aFootprint->GetFPID().Format().wx_str(),
|
||||
aNewComponent->GetFPID().Format().wx_str() );
|
||||
m_reporter->Report( msg, RPT_SEVERITY_WARNING );
|
||||
++m_warningCount;
|
||||
delete newFootprint;
|
||||
return nullptr;
|
||||
}
|
||||
else
|
||||
{
|
||||
msg.Printf( _( "Change %s footprint from '%s' to '%s'."),
|
||||
aFootprint->GetReference(),
|
||||
aFootprint->GetFPID().Format().wx_str(),
|
||||
aNewComponent->GetFPID().Format().wx_str() );
|
||||
m_reporter->Report( msg, RPT_SEVERITY_ACTION );
|
||||
++m_newFootprintsCount;
|
||||
delete newFootprint;
|
||||
return nullptr;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
m_frame->ExchangeFootprint( aFootprint, newFootprint, m_commit );
|
||||
if( aFootprint->IsLocked() && !m_overrideLocks )
|
||||
{
|
||||
msg.Printf( _( "Could not change %s footprint from '%s' to '%s' (footprint is locked)."),
|
||||
aFootprint->GetReference(),
|
||||
aFootprint->GetFPID().Format().wx_str(),
|
||||
aNewComponent->GetFPID().Format().wx_str() );
|
||||
m_reporter->Report( msg, RPT_SEVERITY_WARNING );
|
||||
++m_warningCount;
|
||||
delete newFootprint;
|
||||
return nullptr;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_frame->ExchangeFootprint( aFootprint, newFootprint, m_commit );
|
||||
|
||||
msg.Printf( _( "Changed %s footprint from '%s' to '%s'."),
|
||||
aFootprint->GetReference(),
|
||||
aFootprint->GetFPID().Format().wx_str(),
|
||||
aNewComponent->GetFPID().Format().wx_str() );
|
||||
msg.Printf( _( "Changed %s footprint from '%s' to '%s'."),
|
||||
aFootprint->GetReference(),
|
||||
aFootprint->GetFPID().Format().wx_str(),
|
||||
aNewComponent->GetFPID().Format().wx_str() );
|
||||
m_reporter->Report( msg, RPT_SEVERITY_ACTION );
|
||||
++m_newFootprintsCount;
|
||||
return newFootprint;
|
||||
}
|
||||
}
|
||||
|
||||
m_reporter->Report( msg, RPT_SEVERITY_ACTION );
|
||||
m_newFootprintsCount++;
|
||||
return newFootprint;
|
||||
}
|
||||
|
||||
|
||||
|
@ -1223,21 +1252,21 @@ bool BOARD_NETLIST_UPDATER::UpdateNetlist( NETLIST& aNetlist )
|
|||
if( component && component->GetProperties().count( wxT( "exclude_from_board" ) ) == 0 )
|
||||
matched = true;
|
||||
|
||||
if( doDelete && !matched && footprint->IsLocked() )
|
||||
if( doDelete && !matched && footprint->IsLocked() && !m_overrideLocks )
|
||||
{
|
||||
if( m_isDryRun )
|
||||
{
|
||||
msg.Printf( _( "Cannot remove unused footprint %s (locked)." ),
|
||||
msg.Printf( _( "Cannot remove unused footprint %s (footprint is locked)." ),
|
||||
footprint->GetReference() );
|
||||
}
|
||||
else
|
||||
{
|
||||
msg.Printf( _( "Could not remove unused footprint %s (locked)." ),
|
||||
msg.Printf( _( "Could not remove unused footprint %s (footprint is locked)." ),
|
||||
footprint->GetReference() );
|
||||
}
|
||||
|
||||
m_reporter->Report( msg, RPT_SEVERITY_ERROR );
|
||||
m_errorCount++;
|
||||
m_reporter->Report( msg, RPT_SEVERITY_WARNING );
|
||||
m_warningCount++;
|
||||
doDelete = false;
|
||||
}
|
||||
|
||||
|
|
|
@ -85,6 +85,8 @@ public:
|
|||
|
||||
void SetReplaceFootprints( bool aEnabled ) { m_replaceFootprints = aEnabled; }
|
||||
|
||||
void SetOverrideLocks( bool aOverride ) { m_overrideLocks = aOverride; }
|
||||
|
||||
void SetDeleteUnusedFootprints( bool aEnabled ) { m_deleteUnusedFootprints = aEnabled; }
|
||||
|
||||
void SetLookupByTimestamp( bool aEnabled ) { m_lookupByTimestamp = aEnabled; }
|
||||
|
@ -131,6 +133,7 @@ private:
|
|||
bool m_isDryRun;
|
||||
bool m_replaceFootprints;
|
||||
bool m_lookupByTimestamp;
|
||||
bool m_overrideLocks;
|
||||
|
||||
int m_warningCount;
|
||||
int m_errorCount;
|
||||
|
|
Loading…
Reference in New Issue