Use TransferDataToWindow() to init controls.

This commit is contained in:
Jeff Young 2025-08-09 21:16:24 +01:00
parent a45f8bc2f7
commit 661be06168
12 changed files with 282 additions and 384 deletions

View File

@ -39,6 +39,7 @@ WX_HTML_REPORT_PANEL_BASE::WX_HTML_REPORT_PANEL_BASE( wxWindow* parent, wxWindow
bSizerBottom->Add( 30, 0, 0, wxEXPAND, 5 ); bSizerBottom->Add( 30, 0, 0, wxEXPAND, 5 );
m_checkBoxShowErrors = new wxCheckBox( m_box->GetStaticBox(), wxID_ANY, _("Errors"), wxDefaultPosition, wxDefaultSize, 0 ); m_checkBoxShowErrors = new wxCheckBox( m_box->GetStaticBox(), wxID_ANY, _("Errors"), wxDefaultPosition, wxDefaultSize, 0 );
m_checkBoxShowErrors->SetValue(true);
bSizerBottom->Add( m_checkBoxShowErrors, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT, 5 ); bSizerBottom->Add( m_checkBoxShowErrors, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT, 5 );
m_errorsBadge = new NUMBER_BADGE( m_box->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 ); m_errorsBadge = new NUMBER_BADGE( m_box->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
@ -50,6 +51,7 @@ WX_HTML_REPORT_PANEL_BASE::WX_HTML_REPORT_PANEL_BASE( wxWindow* parent, wxWindow
bSizerBottom->Add( 25, 0, 0, wxEXPAND, 5 ); bSizerBottom->Add( 25, 0, 0, wxEXPAND, 5 );
m_checkBoxShowWarnings = new wxCheckBox( m_box->GetStaticBox(), wxID_ANY, _("Warnings"), wxDefaultPosition, wxDefaultSize, 0 ); m_checkBoxShowWarnings = new wxCheckBox( m_box->GetStaticBox(), wxID_ANY, _("Warnings"), wxDefaultPosition, wxDefaultSize, 0 );
m_checkBoxShowWarnings->SetValue(true);
bSizerBottom->Add( m_checkBoxShowWarnings, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT, 5 ); bSizerBottom->Add( m_checkBoxShowWarnings, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT, 5 );
m_warningsBadge = new NUMBER_BADGE( m_box->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 ); m_warningsBadge = new NUMBER_BADGE( m_box->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
@ -61,12 +63,14 @@ WX_HTML_REPORT_PANEL_BASE::WX_HTML_REPORT_PANEL_BASE( wxWindow* parent, wxWindow
bSizerBottom->Add( 25, 0, 0, wxEXPAND, 5 ); bSizerBottom->Add( 25, 0, 0, wxEXPAND, 5 );
m_checkBoxShowActions = new wxCheckBox( m_box->GetStaticBox(), wxID_ANY, _("Actions"), wxDefaultPosition, wxDefaultSize, 0 ); m_checkBoxShowActions = new wxCheckBox( m_box->GetStaticBox(), wxID_ANY, _("Actions"), wxDefaultPosition, wxDefaultSize, 0 );
m_checkBoxShowActions->SetValue(true);
bSizerBottom->Add( m_checkBoxShowActions, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT, 5 ); bSizerBottom->Add( m_checkBoxShowActions, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT, 5 );
bSizerBottom->Add( 30, 0, 0, wxEXPAND, 5 ); bSizerBottom->Add( 30, 0, 0, wxEXPAND, 5 );
m_checkBoxShowInfos = new wxCheckBox( m_box->GetStaticBox(), wxID_ANY, _("Infos"), wxDefaultPosition, wxDefaultSize, 0 ); m_checkBoxShowInfos = new wxCheckBox( m_box->GetStaticBox(), wxID_ANY, _("Infos"), wxDefaultPosition, wxDefaultSize, 0 );
m_checkBoxShowInfos->SetValue(true);
bSizerBottom->Add( m_checkBoxShowInfos, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT, 5 ); bSizerBottom->Add( m_checkBoxShowInfos, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT, 5 );

View File

@ -304,7 +304,7 @@
<property name="caption"></property> <property name="caption"></property>
<property name="caption_visible">1</property> <property name="caption_visible">1</property>
<property name="center_pane">0</property> <property name="center_pane">0</property>
<property name="checked">0</property> <property name="checked">1</property>
<property name="close_button">1</property> <property name="close_button">1</property>
<property name="context_help"></property> <property name="context_help"></property>
<property name="context_menu">1</property> <property name="context_menu">1</property>
@ -443,7 +443,7 @@
<property name="caption"></property> <property name="caption"></property>
<property name="caption_visible">1</property> <property name="caption_visible">1</property>
<property name="center_pane">0</property> <property name="center_pane">0</property>
<property name="checked">0</property> <property name="checked">1</property>
<property name="close_button">1</property> <property name="close_button">1</property>
<property name="context_help"></property> <property name="context_help"></property>
<property name="context_menu">1</property> <property name="context_menu">1</property>
@ -582,7 +582,7 @@
<property name="caption"></property> <property name="caption"></property>
<property name="caption_visible">1</property> <property name="caption_visible">1</property>
<property name="center_pane">0</property> <property name="center_pane">0</property>
<property name="checked">0</property> <property name="checked">1</property>
<property name="close_button">1</property> <property name="close_button">1</property>
<property name="context_help"></property> <property name="context_help"></property>
<property name="context_menu">1</property> <property name="context_menu">1</property>
@ -658,7 +658,7 @@
<property name="caption"></property> <property name="caption"></property>
<property name="caption_visible">1</property> <property name="caption_visible">1</property>
<property name="center_pane">0</property> <property name="center_pane">0</property>
<property name="checked">0</property> <property name="checked">1</property>
<property name="close_button">1</property> <property name="close_button">1</property>
<property name="context_help"></property> <property name="context_help"></property>
<property name="context_menu">1</property> <property name="context_menu">1</property>

View File

@ -45,34 +45,56 @@ public:
DIALOG_ANNOTATE( SCH_EDIT_FRAME* parent, const wxString& message ); DIALOG_ANNOTATE( SCH_EDIT_FRAME* parent, const wxString& message );
~DIALOG_ANNOTATE(); ~DIALOG_ANNOTATE();
bool TransferDataToWindow() override;
private: private:
/// Initialize member variables. /// Initialize member variables.
void InitValues();
void OnOptionChanged( wxCommandEvent& event ) override; void OnOptionChanged( wxCommandEvent& event ) override;
void OnClearAnnotationClick( wxCommandEvent& event ) override; void OnClearAnnotationClick( wxCommandEvent& event ) override;
void OnCloseClick( wxCommandEvent& event ) override; void OnCloseClick( wxCommandEvent& event ) override;
void OnClose( wxCloseEvent& event ) override; void OnClose( wxCloseEvent& event ) override;
void OnAnnotateClick( wxCommandEvent& event ) override; void OnAnnotateClick( wxCommandEvent& event ) override;
// User functions: ANNOTATE_SCOPE_T GetScope()
bool GetResetItems(); {
if( m_rbScope_Schematic->GetValue() )
return ANNOTATE_ALL;
else if( m_rbScope_Sheet->GetValue() )
return ANNOTATE_CURRENT_SHEET;
else
return ANNOTATE_SELECTION;
}
ANNOTATE_SCOPE_T GetScope(); ANNOTATE_ORDER_T GetSortOrder()
{
if( m_rbSortBy_Y_Position->GetValue() )
return SORT_BY_Y_POSITION;
else
return SORT_BY_X_POSITION;
}
bool GetRecursive(); ANNOTATE_ALGO_T GetAnnotateAlgo()
{
if( m_rbSheetX100->GetValue() )
return SHEET_NUMBER_X_100;
else if( m_rbSheetX1000->GetValue() )
return SHEET_NUMBER_X_1000;
else
return INCREMENTAL_BY_REF;
}
ANNOTATE_ORDER_T GetSortOrder(); int GetStartNumber()
{
ANNOTATE_ALGO_T GetAnnotateAlgo(); return (int) EDA_UNIT_UTILS::UI::ValueFromString( m_textNumberAfter->GetValue() );
}
int GetStartNumber();
private:
SCH_EDIT_FRAME* m_Parent; SCH_EDIT_FRAME* m_Parent;
}; };
DIALOG_ANNOTATE::DIALOG_ANNOTATE( SCH_EDIT_FRAME* parent, const wxString& message ) DIALOG_ANNOTATE::DIALOG_ANNOTATE( SCH_EDIT_FRAME* parent, const wxString& message ) :
: DIALOG_ANNOTATE_BASE( parent ) DIALOG_ANNOTATE_BASE( parent )
{ {
SetName( DLG_WINDOW_NAME ); SetName( DLG_WINDOW_NAME );
m_Parent = parent; m_Parent = parent;
@ -92,7 +114,11 @@ DIALOG_ANNOTATE::DIALOG_ANNOTATE( SCH_EDIT_FRAME* parent, const wxString& messag
SetupStandardButtons( { { wxID_OK, _( "Annotate" ) }, SetupStandardButtons( { { wxID_OK, _( "Annotate" ) },
{ wxID_CANCEL, _( "Close" ) } } ); { wxID_CANCEL, _( "Close" ) } } );
InitValues(); annotate_down_right_bitmap->SetBitmap( KiBitmapBundle( BITMAPS::annotate_down_right ) );
annotate_right_down_bitmap->SetBitmap( KiBitmapBundle( BITMAPS::annotate_right_down ) );
m_MessageWindow->MsgPanelSetMinSize( wxSize( -1, 160 ) );
Layout(); Layout();
// When all widgets have the size fixed, call FinishDialogSettings // When all widgets have the size fixed, call FinishDialogSettings
@ -102,7 +128,7 @@ DIALOG_ANNOTATE::DIALOG_ANNOTATE( SCH_EDIT_FRAME* parent, const wxString& messag
DIALOG_ANNOTATE::~DIALOG_ANNOTATE() DIALOG_ANNOTATE::~DIALOG_ANNOTATE()
{ {
auto cfg = static_cast<EESCHEMA_SETTINGS*>( Kiface().KifaceSettings() ); EESCHEMA_SETTINGS* cfg = static_cast<EESCHEMA_SETTINGS*>( Kiface().KifaceSettings() );
cfg->m_AnnotatePanel.sort_order = GetSortOrder(); cfg->m_AnnotatePanel.sort_order = GetSortOrder();
cfg->m_AnnotatePanel.method = GetAnnotateAlgo(); cfg->m_AnnotatePanel.method = GetAnnotateAlgo();
@ -111,16 +137,15 @@ DIALOG_ANNOTATE::~DIALOG_ANNOTATE()
if( m_rbScope_Schematic->IsEnabled() ) if( m_rbScope_Schematic->IsEnabled() )
{ {
cfg->m_AnnotatePanel.scope = GetScope(); cfg->m_AnnotatePanel.scope = GetScope();
cfg->m_AnnotatePanel.recursive = GetRecursive(); cfg->m_AnnotatePanel.recursive = m_checkRecursive->GetValue();
} }
cfg->m_AnnotatePanel.messages_filter = m_MessageWindow->GetVisibleSeverities(); cfg->m_AnnotatePanel.messages_filter = m_MessageWindow->GetVisibleSeverities();
// Get the "start annotation after" value from dialog and update project settings if changed // Get the "start annotation after" value from dialog and update project settings if changed
int startNum = GetStartNumber(); int startNum = GetStartNumber();
SCH_EDIT_FRAME* schFrame = dynamic_cast<SCH_EDIT_FRAME*>( m_parentFrame );
if( schFrame ) if( SCH_EDIT_FRAME* schFrame = dynamic_cast<SCH_EDIT_FRAME*>( m_parentFrame ) )
{ {
SCHEMATIC_SETTINGS& projSettings = schFrame->Schematic().Settings(); SCHEMATIC_SETTINGS& projSettings = schFrame->Schematic().Settings();
@ -137,10 +162,9 @@ DIALOG_ANNOTATE::~DIALOG_ANNOTATE()
} }
void DIALOG_ANNOTATE::InitValues() bool DIALOG_ANNOTATE::TransferDataToWindow()
{ {
EESCHEMA_SETTINGS* cfg = static_cast<EESCHEMA_SETTINGS*>( Kiface().KifaceSettings() ); EESCHEMA_SETTINGS* cfg = static_cast<EESCHEMA_SETTINGS*>( Kiface().KifaceSettings() );
int option;
if( m_rbScope_Schematic->IsEnabled() ) if( m_rbScope_Schematic->IsEnabled() )
{ {
@ -155,21 +179,16 @@ void DIALOG_ANNOTATE::InitValues()
m_checkRecursive->SetValue( cfg->m_AnnotatePanel.recursive ); m_checkRecursive->SetValue( cfg->m_AnnotatePanel.recursive );
} }
m_rbOptions->SetSelection( cfg->m_AnnotatePanel.options ); m_rbOptions->SetSelection( cfg->m_AnnotatePanel.options );
option = cfg->m_AnnotatePanel.sort_order; switch( cfg->m_AnnotatePanel.sort_order )
switch( option )
{ {
default: default:
case SORT_BY_X_POSITION: m_rbSortBy_X_Position->SetValue( true ); break; case SORT_BY_X_POSITION: m_rbSortBy_X_Position->SetValue( true ); break;
case SORT_BY_Y_POSITION: m_rbSortBy_Y_Position->SetValue( true ); break; case SORT_BY_Y_POSITION: m_rbSortBy_Y_Position->SetValue( true ); break;
} }
option = cfg->m_AnnotatePanel.method; switch( cfg->m_AnnotatePanel.method )
switch( option )
{ {
default: default:
case INCREMENTAL_BY_REF: m_rbFirstFree->SetValue( true ); break; case INCREMENTAL_BY_REF: m_rbFirstFree->SetValue( true ); break;
@ -180,9 +199,7 @@ void DIALOG_ANNOTATE::InitValues()
int annotateStartNum = 0; // Default "start after" value for annotation int annotateStartNum = 0; // Default "start after" value for annotation
// See if we can get a "start after" value from the project settings // See if we can get a "start after" value from the project settings
SCH_EDIT_FRAME* schFrame = dynamic_cast<SCH_EDIT_FRAME*>( m_parentFrame ); if( SCH_EDIT_FRAME* schFrame = dynamic_cast<SCH_EDIT_FRAME*>( m_parentFrame ) )
if( schFrame )
{ {
SCHEMATIC_SETTINGS& projSettings = schFrame->Schematic().Settings(); SCHEMATIC_SETTINGS& projSettings = schFrame->Schematic().Settings();
annotateStartNum = projSettings.m_AnnotateStartNum; annotateStartNum = projSettings.m_AnnotateStartNum;
@ -190,10 +207,7 @@ void DIALOG_ANNOTATE::InitValues()
m_textNumberAfter->SetValue( wxString::Format( wxT( "%d" ), annotateStartNum ) ); m_textNumberAfter->SetValue( wxString::Format( wxT( "%d" ), annotateStartNum ) );
annotate_down_right_bitmap->SetBitmap( KiBitmapBundle( BITMAPS::annotate_down_right ) ); return true;
annotate_right_down_bitmap->SetBitmap( KiBitmapBundle( BITMAPS::annotate_right_down ) );
m_MessageWindow->MsgPanelSetMinSize( wxSize( -1, 160 ) );
} }
@ -218,8 +232,8 @@ void DIALOG_ANNOTATE::OnAnnotateClick( wxCommandEvent& event )
REPORTER& reporter = m_MessageWindow->Reporter(); REPORTER& reporter = m_MessageWindow->Reporter();
m_MessageWindow->SetLazyUpdate( true ); // Don't update after each message m_MessageWindow->SetLazyUpdate( true ); // Don't update after each message
m_Parent->AnnotateSymbols( &commit, GetScope(), GetSortOrder(), GetAnnotateAlgo(), m_Parent->AnnotateSymbols( &commit, GetScope(), GetSortOrder(), GetAnnotateAlgo(), m_checkRecursive->GetValue(),
GetRecursive(), GetStartNumber(), GetResetItems(), true, reporter ); GetStartNumber(), m_rbOptions->GetSelection() >= 1, true, reporter );
commit.Push( _( "Annotate" ) ); commit.Push( _( "Annotate" ) );
@ -230,7 +244,7 @@ void DIALOG_ANNOTATE::OnAnnotateClick( wxCommandEvent& event )
void DIALOG_ANNOTATE::OnClearAnnotationClick( wxCommandEvent& event ) void DIALOG_ANNOTATE::OnClearAnnotationClick( wxCommandEvent& event )
{ {
m_MessageWindow->Clear(); m_MessageWindow->Clear();
m_Parent->DeleteAnnotation( GetScope(), GetRecursive(), m_MessageWindow->Reporter() ); m_Parent->DeleteAnnotation( GetScope(), m_checkRecursive->GetValue(), m_MessageWindow->Reporter() );
m_MessageWindow->Flush( true ); // Now update to show all messages m_MessageWindow->Flush( true ); // Now update to show all messages
} }
@ -243,59 +257,9 @@ void DIALOG_ANNOTATE::OnOptionChanged( wxCommandEvent& event )
} }
bool DIALOG_ANNOTATE::GetResetItems()
{
return m_rbOptions->GetSelection() >= 1;
}
ANNOTATE_SCOPE_T DIALOG_ANNOTATE::GetScope()
{
if( m_rbScope_Schematic->GetValue() )
return ANNOTATE_ALL;
else if( m_rbScope_Sheet->GetValue() )
return ANNOTATE_CURRENT_SHEET;
else
return ANNOTATE_SELECTION;
}
bool DIALOG_ANNOTATE::GetRecursive()
{
return m_checkRecursive->GetValue();
}
ANNOTATE_ORDER_T DIALOG_ANNOTATE::GetSortOrder()
{
if( m_rbSortBy_Y_Position->GetValue() )
return SORT_BY_Y_POSITION;
else
return SORT_BY_X_POSITION;
}
ANNOTATE_ALGO_T DIALOG_ANNOTATE::GetAnnotateAlgo()
{
if( m_rbSheetX100->GetValue() )
return SHEET_NUMBER_X_100;
else if( m_rbSheetX1000->GetValue() )
return SHEET_NUMBER_X_1000;
else
return INCREMENTAL_BY_REF;
}
int DIALOG_ANNOTATE::GetStartNumber()
{
return EDA_UNIT_UTILS::UI::ValueFromString( m_textNumberAfter->GetValue() );
}
void SCH_EDIT_FRAME::OnAnnotate() void SCH_EDIT_FRAME::OnAnnotate()
{ {
DIALOG_ANNOTATE* dlg = DIALOG_ANNOTATE* dlg = static_cast<DIALOG_ANNOTATE*>( wxWindow::FindWindowByName( DLG_WINDOW_NAME ) );
static_cast<DIALOG_ANNOTATE*>( wxWindow::FindWindowByName( DLG_WINDOW_NAME ) );
if( !dlg ) if( !dlg )
{ {

View File

@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version 4.0.0-0-g0efcecf-dirty) // C++ code generated with wxFormBuilder (version 4.2.1-0-g80c4cb6)
// http://www.wxformbuilder.org/ // http://www.wxformbuilder.org/
// //
// PLEASE DO *NOT* EDIT THIS FILE! // PLEASE DO *NOT* EDIT THIS FILE!
@ -40,6 +40,7 @@ DIALOG_ANNOTATE_BASE::DIALOG_ANNOTATE_BASE( wxWindow* parent, wxWindowID id, con
sbSizer3 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Scope") ), wxVERTICAL ); sbSizer3 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Scope") ), wxVERTICAL );
m_rbScope_Schematic = new wxRadioButton( sbSizer3->GetStaticBox(), wxID_ANY, _("Entire schematic"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP ); m_rbScope_Schematic = new wxRadioButton( sbSizer3->GetStaticBox(), wxID_ANY, _("Entire schematic"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP );
m_rbScope_Schematic->SetValue( true );
sbSizer3->Add( m_rbScope_Schematic, 0, wxLEFT|wxRIGHT, 5 ); sbSizer3->Add( m_rbScope_Schematic, 0, wxLEFT|wxRIGHT, 5 );
m_rbScope_Sheet = new wxRadioButton( sbSizer3->GetStaticBox(), wxID_ANY, _("Current sheet only"), wxDefaultPosition, wxDefaultSize, 0 ); m_rbScope_Sheet = new wxRadioButton( sbSizer3->GetStaticBox(), wxID_ANY, _("Current sheet only"), wxDefaultPosition, wxDefaultSize, 0 );
@ -49,6 +50,7 @@ DIALOG_ANNOTATE_BASE::DIALOG_ANNOTATE_BASE( wxWindow* parent, wxWindowID id, con
sbSizer3->Add( m_rbScope_Selection, 0, wxLEFT|wxRIGHT|wxBOTTOM, 5 ); sbSizer3->Add( m_rbScope_Selection, 0, wxLEFT|wxRIGHT|wxBOTTOM, 5 );
m_checkRecursive = new wxCheckBox( sbSizer3->GetStaticBox(), wxID_ANY, _("Recurse into subsheets"), wxDefaultPosition, wxDefaultSize, 0 ); m_checkRecursive = new wxCheckBox( sbSizer3->GetStaticBox(), wxID_ANY, _("Recurse into subsheets"), wxDefaultPosition, wxDefaultSize, 0 );
m_checkRecursive->SetValue(true);
sbSizer3->Add( m_checkRecursive, 0, wxALL, 5 ); sbSizer3->Add( m_checkRecursive, 0, wxALL, 5 );
@ -61,6 +63,7 @@ DIALOG_ANNOTATE_BASE::DIALOG_ANNOTATE_BASE( wxWindow* parent, wxWindowID id, con
bSizerXpos = new wxBoxSizer( wxHORIZONTAL ); bSizerXpos = new wxBoxSizer( wxHORIZONTAL );
m_rbSortBy_X_Position = new wxRadioButton( sbSizer1->GetStaticBox(), ID_SORT_BY_X_POSITION, _("Sort symbols by &X position"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP ); m_rbSortBy_X_Position = new wxRadioButton( sbSizer1->GetStaticBox(), ID_SORT_BY_X_POSITION, _("Sort symbols by &X position"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP );
m_rbSortBy_X_Position->SetValue( true );
bSizerXpos->Add( m_rbSortBy_X_Position, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 ); bSizerXpos->Add( m_rbSortBy_X_Position, 0, wxALIGN_CENTER_VERTICAL|wxALL, 3 );
annotate_down_right_bitmap = new wxStaticBitmap( sbSizer1->GetStaticBox(), wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 ); annotate_down_right_bitmap = new wxStaticBitmap( sbSizer1->GetStaticBox(), wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
@ -99,6 +102,7 @@ DIALOG_ANNOTATE_BASE::DIALOG_ANNOTATE_BASE( wxWindow* parent, wxWindowID id, con
gbSizer1->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); gbSizer1->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
m_rbFirstFree = new wxRadioButton( sbSizer2->GetStaticBox(), wxID_FIRST_FREE, _("Use first free number after:"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP ); m_rbFirstFree = new wxRadioButton( sbSizer2->GetStaticBox(), wxID_FIRST_FREE, _("Use first free number after:"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP );
m_rbFirstFree->SetValue( true );
gbSizer1->Add( m_rbFirstFree, wxGBPosition( 0, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 2 ); gbSizer1->Add( m_rbFirstFree, wxGBPosition( 0, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL, 2 );
m_textNumberAfter = new wxTextCtrl( sbSizer2->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 60,-1 ), 0 ); m_textNumberAfter = new wxTextCtrl( sbSizer2->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 60,-1 ), 0 );

View File

@ -1,34 +1,36 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<wxFormBuilder_Project> <wxFormBuilder_Project>
<FileVersion major="1" minor="17"/> <FileVersion major="1" minor="18"/>
<object class="Project" expanded="true"> <object class="Project" expanded="true">
<property name="class_decoration"></property>
<property name="code_generation">C++</property> <property name="code_generation">C++</property>
<property name="disconnect_events">1</property> <property name="cpp_class_decoration"></property>
<property name="disconnect_mode">source_name</property> <property name="cpp_disconnect_events">1</property>
<property name="disconnect_php_events">0</property> <property name="cpp_event_generation">connect</property>
<property name="disconnect_python_events">0</property> <property name="cpp_help_provider">none</property>
<property name="cpp_namespace"></property>
<property name="cpp_precompiled_header"></property>
<property name="cpp_use_array_enum">0</property>
<property name="cpp_use_enum">0</property>
<property name="embedded_files_path">res</property> <property name="embedded_files_path">res</property>
<property name="encoding">UTF-8</property> <property name="encoding">UTF-8</property>
<property name="event_generation">connect</property>
<property name="file">dialog_annotate_base</property> <property name="file">dialog_annotate_base</property>
<property name="first_id">1000</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="internationalize">1</property>
<property name="lua_skip_events">1</property>
<property name="lua_ui_table">UI</property>
<property name="name">dialog_annotate_base</property> <property name="name">dialog_annotate_base</property>
<property name="namespace"></property>
<property name="path">.</property> <property name="path">.</property>
<property name="precompiled_header"></property> <property name="php_disconnect_events">0</property>
<property name="php_disconnect_mode">source_name</property>
<property name="php_skip_events">1</property>
<property name="python_disconnect_events">0</property>
<property name="python_disconnect_mode">source_name</property>
<property name="python_image_path_wrapper_function_name"></property>
<property name="python_indent_with_spaces"></property>
<property name="python_skip_events">1</property>
<property name="relative_path">1</property> <property name="relative_path">1</property>
<property name="skip_lua_events">1</property>
<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">0</property>
<property name="use_microsoft_bom">0</property> <property name="use_microsoft_bom">0</property>
<property name="use_native_eol">0</property>
<object class="Dialog" expanded="true"> <object class="Dialog" expanded="true">
<property name="aui_managed">0</property> <property name="aui_managed">0</property>
<property name="aui_manager_style">wxAUI_MGR_DEFAULT</property> <property name="aui_manager_style">wxAUI_MGR_DEFAULT</property>
@ -72,10 +74,10 @@
<property name="LeftDockable">1</property> <property name="LeftDockable">1</property>
<property name="RightDockable">1</property> <property name="RightDockable">1</property>
<property name="TopDockable">1</property> <property name="TopDockable">1</property>
<property name="aui_layer"></property> <property name="aui_layer">0</property>
<property name="aui_name"></property> <property name="aui_name"></property>
<property name="aui_position"></property> <property name="aui_position">0</property>
<property name="aui_row"></property> <property name="aui_row">0</property>
<property name="best_size"></property> <property name="best_size"></property>
<property name="bg"></property> <property name="bg"></property>
<property name="caption"></property> <property name="caption"></property>
@ -170,10 +172,10 @@
<property name="LeftDockable">1</property> <property name="LeftDockable">1</property>
<property name="RightDockable">1</property> <property name="RightDockable">1</property>
<property name="TopDockable">1</property> <property name="TopDockable">1</property>
<property name="aui_layer"></property> <property name="aui_layer">0</property>
<property name="aui_name"></property> <property name="aui_name"></property>
<property name="aui_position"></property> <property name="aui_position">0</property>
<property name="aui_row"></property> <property name="aui_row">0</property>
<property name="best_size"></property> <property name="best_size"></property>
<property name="bg"></property> <property name="bg"></property>
<property name="caption"></property> <property name="caption"></property>
@ -220,7 +222,7 @@
<property name="validator_style">wxFILTER_NONE</property> <property name="validator_style">wxFILTER_NONE</property>
<property name="validator_type">wxDefaultValidator</property> <property name="validator_type">wxDefaultValidator</property>
<property name="validator_variable"></property> <property name="validator_variable"></property>
<property name="value">0</property> <property name="value">1</property>
<property name="window_extra_style"></property> <property name="window_extra_style"></property>
<property name="window_name"></property> <property name="window_name"></property>
<property name="window_style"></property> <property name="window_style"></property>
@ -235,10 +237,10 @@
<property name="LeftDockable">1</property> <property name="LeftDockable">1</property>
<property name="RightDockable">1</property> <property name="RightDockable">1</property>
<property name="TopDockable">1</property> <property name="TopDockable">1</property>
<property name="aui_layer"></property> <property name="aui_layer">0</property>
<property name="aui_name"></property> <property name="aui_name"></property>
<property name="aui_position"></property> <property name="aui_position">0</property>
<property name="aui_row"></property> <property name="aui_row">0</property>
<property name="best_size"></property> <property name="best_size"></property>
<property name="bg"></property> <property name="bg"></property>
<property name="caption"></property> <property name="caption"></property>
@ -300,10 +302,10 @@
<property name="LeftDockable">1</property> <property name="LeftDockable">1</property>
<property name="RightDockable">1</property> <property name="RightDockable">1</property>
<property name="TopDockable">1</property> <property name="TopDockable">1</property>
<property name="aui_layer"></property> <property name="aui_layer">0</property>
<property name="aui_name"></property> <property name="aui_name"></property>
<property name="aui_position"></property> <property name="aui_position">0</property>
<property name="aui_row"></property> <property name="aui_row">0</property>
<property name="best_size"></property> <property name="best_size"></property>
<property name="bg"></property> <property name="bg"></property>
<property name="caption"></property> <property name="caption"></property>
@ -365,16 +367,16 @@
<property name="LeftDockable">1</property> <property name="LeftDockable">1</property>
<property name="RightDockable">1</property> <property name="RightDockable">1</property>
<property name="TopDockable">1</property> <property name="TopDockable">1</property>
<property name="aui_layer"></property> <property name="aui_layer">0</property>
<property name="aui_name"></property> <property name="aui_name"></property>
<property name="aui_position"></property> <property name="aui_position">0</property>
<property name="aui_row"></property> <property name="aui_row">0</property>
<property name="best_size"></property> <property name="best_size"></property>
<property name="bg"></property> <property name="bg"></property>
<property name="caption"></property> <property name="caption"></property>
<property name="caption_visible">1</property> <property name="caption_visible">1</property>
<property name="center_pane">0</property> <property name="center_pane">0</property>
<property name="checked">0</property> <property name="checked">1</property>
<property name="close_button">1</property> <property name="close_button">1</property>
<property name="context_help"></property> <property name="context_help"></property>
<property name="context_menu">1</property> <property name="context_menu">1</property>
@ -453,10 +455,10 @@
<property name="LeftDockable">1</property> <property name="LeftDockable">1</property>
<property name="RightDockable">1</property> <property name="RightDockable">1</property>
<property name="TopDockable">1</property> <property name="TopDockable">1</property>
<property name="aui_layer"></property> <property name="aui_layer">0</property>
<property name="aui_name"></property> <property name="aui_name"></property>
<property name="aui_position"></property> <property name="aui_position">0</property>
<property name="aui_row"></property> <property name="aui_row">0</property>
<property name="best_size"></property> <property name="best_size"></property>
<property name="bg"></property> <property name="bg"></property>
<property name="caption"></property> <property name="caption"></property>
@ -503,7 +505,7 @@
<property name="validator_style">wxFILTER_NONE</property> <property name="validator_style">wxFILTER_NONE</property>
<property name="validator_type">wxDefaultValidator</property> <property name="validator_type">wxDefaultValidator</property>
<property name="validator_variable"></property> <property name="validator_variable"></property>
<property name="value">0</property> <property name="value">1</property>
<property name="window_extra_style"></property> <property name="window_extra_style"></property>
<property name="window_name"></property> <property name="window_name"></property>
<property name="window_style"></property> <property name="window_style"></property>
@ -519,10 +521,10 @@
<property name="LeftDockable">1</property> <property name="LeftDockable">1</property>
<property name="RightDockable">1</property> <property name="RightDockable">1</property>
<property name="TopDockable">1</property> <property name="TopDockable">1</property>
<property name="aui_layer"></property> <property name="aui_layer">0</property>
<property name="aui_name"></property> <property name="aui_name"></property>
<property name="aui_position"></property> <property name="aui_position">0</property>
<property name="aui_row"></property> <property name="aui_row">0</property>
<property name="best_size"></property> <property name="best_size"></property>
<property name="bg"></property> <property name="bg"></property>
<property name="bitmap">Load From Resource; </property> <property name="bitmap">Load From Resource; </property>
@ -589,10 +591,10 @@
<property name="LeftDockable">1</property> <property name="LeftDockable">1</property>
<property name="RightDockable">1</property> <property name="RightDockable">1</property>
<property name="TopDockable">1</property> <property name="TopDockable">1</property>
<property name="aui_layer"></property> <property name="aui_layer">0</property>
<property name="aui_name"></property> <property name="aui_name"></property>
<property name="aui_position"></property> <property name="aui_position">0</property>
<property name="aui_row"></property> <property name="aui_row">0</property>
<property name="best_size"></property> <property name="best_size"></property>
<property name="bg"></property> <property name="bg"></property>
<property name="caption"></property> <property name="caption"></property>
@ -655,10 +657,10 @@
<property name="LeftDockable">1</property> <property name="LeftDockable">1</property>
<property name="RightDockable">1</property> <property name="RightDockable">1</property>
<property name="TopDockable">1</property> <property name="TopDockable">1</property>
<property name="aui_layer"></property> <property name="aui_layer">0</property>
<property name="aui_name"></property> <property name="aui_name"></property>
<property name="aui_position"></property> <property name="aui_position">0</property>
<property name="aui_row"></property> <property name="aui_row">0</property>
<property name="best_size"></property> <property name="best_size"></property>
<property name="bg"></property> <property name="bg"></property>
<property name="bitmap">Load From Resource; </property> <property name="bitmap">Load From Resource; </property>
@ -718,10 +720,10 @@
<property name="LeftDockable">1</property> <property name="LeftDockable">1</property>
<property name="RightDockable">1</property> <property name="RightDockable">1</property>
<property name="TopDockable">1</property> <property name="TopDockable">1</property>
<property name="aui_layer"></property> <property name="aui_layer">0</property>
<property name="aui_name"></property> <property name="aui_name"></property>
<property name="aui_position"></property> <property name="aui_position">0</property>
<property name="aui_row"></property> <property name="aui_row">0</property>
<property name="best_size"></property> <property name="best_size"></property>
<property name="bg"></property> <property name="bg"></property>
<property name="caption"></property> <property name="caption"></property>
@ -816,10 +818,10 @@
<property name="LeftDockable">1</property> <property name="LeftDockable">1</property>
<property name="RightDockable">1</property> <property name="RightDockable">1</property>
<property name="TopDockable">1</property> <property name="TopDockable">1</property>
<property name="aui_layer"></property> <property name="aui_layer">0</property>
<property name="aui_name"></property> <property name="aui_name"></property>
<property name="aui_position"></property> <property name="aui_position">0</property>
<property name="aui_row"></property> <property name="aui_row">0</property>
<property name="best_size"></property> <property name="best_size"></property>
<property name="bg"></property> <property name="bg"></property>
<property name="caption"></property> <property name="caption"></property>
@ -866,7 +868,7 @@
<property name="validator_style">wxFILTER_NONE</property> <property name="validator_style">wxFILTER_NONE</property>
<property name="validator_type">wxDefaultValidator</property> <property name="validator_type">wxDefaultValidator</property>
<property name="validator_variable"></property> <property name="validator_variable"></property>
<property name="value">0</property> <property name="value">1</property>
<property name="window_extra_style"></property> <property name="window_extra_style"></property>
<property name="window_name"></property> <property name="window_name"></property>
<property name="window_style"></property> <property name="window_style"></property>
@ -885,10 +887,10 @@
<property name="LeftDockable">1</property> <property name="LeftDockable">1</property>
<property name="RightDockable">1</property> <property name="RightDockable">1</property>
<property name="TopDockable">1</property> <property name="TopDockable">1</property>
<property name="aui_layer"></property> <property name="aui_layer">0</property>
<property name="aui_name"></property> <property name="aui_name"></property>
<property name="aui_position"></property> <property name="aui_position">0</property>
<property name="aui_row"></property> <property name="aui_row">0</property>
<property name="best_size"></property> <property name="best_size"></property>
<property name="bg"></property> <property name="bg"></property>
<property name="caption"></property> <property name="caption"></property>
@ -912,7 +914,7 @@
<property name="max_size"></property> <property name="max_size"></property>
<property name="maximize_button">0</property> <property name="maximize_button">0</property>
<property name="maximum_size"></property> <property name="maximum_size"></property>
<property name="maxlength"></property> <property name="maxlength">0</property>
<property name="min_size"></property> <property name="min_size"></property>
<property name="minimize_button">0</property> <property name="minimize_button">0</property>
<property name="minimum_size"></property> <property name="minimum_size"></property>
@ -954,10 +956,10 @@
<property name="LeftDockable">1</property> <property name="LeftDockable">1</property>
<property name="RightDockable">1</property> <property name="RightDockable">1</property>
<property name="TopDockable">1</property> <property name="TopDockable">1</property>
<property name="aui_layer"></property> <property name="aui_layer">0</property>
<property name="aui_name"></property> <property name="aui_name"></property>
<property name="aui_position"></property> <property name="aui_position">0</property>
<property name="aui_row"></property> <property name="aui_row">0</property>
<property name="best_size"></property> <property name="best_size"></property>
<property name="bg"></property> <property name="bg"></property>
<property name="caption"></property> <property name="caption"></property>
@ -1023,10 +1025,10 @@
<property name="LeftDockable">1</property> <property name="LeftDockable">1</property>
<property name="RightDockable">1</property> <property name="RightDockable">1</property>
<property name="TopDockable">1</property> <property name="TopDockable">1</property>
<property name="aui_layer"></property> <property name="aui_layer">0</property>
<property name="aui_name"></property> <property name="aui_name"></property>
<property name="aui_position"></property> <property name="aui_position">0</property>
<property name="aui_row"></property> <property name="aui_row">0</property>
<property name="best_size"></property> <property name="best_size"></property>
<property name="bg"></property> <property name="bg"></property>
<property name="caption"></property> <property name="caption"></property>
@ -1095,10 +1097,10 @@
<property name="LeftDockable">1</property> <property name="LeftDockable">1</property>
<property name="RightDockable">1</property> <property name="RightDockable">1</property>
<property name="TopDockable">1</property> <property name="TopDockable">1</property>
<property name="aui_layer"></property> <property name="aui_layer">0</property>
<property name="aui_name"></property> <property name="aui_name"></property>
<property name="aui_position"></property> <property name="aui_position">0</property>
<property name="aui_row"></property> <property name="aui_row">0</property>
<property name="best_size"></property> <property name="best_size"></property>
<property name="bg"></property> <property name="bg"></property>
<property name="caption"></property> <property name="caption"></property>
@ -1164,10 +1166,10 @@
<property name="LeftDockable">1</property> <property name="LeftDockable">1</property>
<property name="RightDockable">1</property> <property name="RightDockable">1</property>
<property name="TopDockable">1</property> <property name="TopDockable">1</property>
<property name="aui_layer"></property> <property name="aui_layer">0</property>
<property name="aui_name"></property> <property name="aui_name"></property>
<property name="aui_position"></property> <property name="aui_position">0</property>
<property name="aui_row"></property> <property name="aui_row">0</property>
<property name="auth_needed">0</property> <property name="auth_needed">0</property>
<property name="best_size"></property> <property name="best_size"></property>
<property name="bg"></property> <property name="bg"></property>

View File

@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version 4.0.0-0-g0efcecf-dirty) // C++ code generated with wxFormBuilder (version 4.2.1-0-g80c4cb6)
// http://www.wxformbuilder.org/ // http://www.wxformbuilder.org/
// //
// PLEASE DO *NOT* EDIT THIS FILE! // PLEASE DO *NOT* EDIT THIS FILE!

View File

@ -40,24 +40,12 @@
bool g_selectRefDes = false; bool g_selectRefDes = false;
bool g_selectValue = false; bool g_selectValue = false;
// { change, update }
bool g_removeExtraFields[2] = { false, false };
bool g_resetEmptyFields[2] = { false, false };
bool g_resetFieldText[2] = { true, true };
bool g_resetFieldVisibilities[2] = { true, false };
bool g_resetFieldEffects[2] = { true, false };
bool g_resetFieldPositions[2] = { true, false };
bool g_resetAttributes[2] = { true, false };
bool g_resetPinVisibilities[2] = { true, false };
bool g_resetCustomPower[2] = { false, false };
bool g_resetAlternatePins[2] = { true, false };
DIALOG_CHANGE_SYMBOLS::DIALOG_CHANGE_SYMBOLS( SCH_EDIT_FRAME* aParent, SCH_SYMBOL* aSymbol, DIALOG_CHANGE_SYMBOLS::DIALOG_CHANGE_SYMBOLS( SCH_EDIT_FRAME* aParent, SCH_SYMBOL* aSymbol, MODE aMode ) :
MODE aMode ) : DIALOG_CHANGE_SYMBOLS_BASE( aParent ),
DIALOG_CHANGE_SYMBOLS_BASE( aParent ), m_symbol( aSymbol),
m_symbol( aSymbol), m_mode( aMode )
m_mode( aMode )
{ {
wxASSERT( aParent ); wxASSERT( aParent );
@ -70,73 +58,11 @@ DIALOG_CHANGE_SYMBOLS::DIALOG_CHANGE_SYMBOLS( SCH_EDIT_FRAME* aParent, SCH_SYMBO
m_matchAll->SetLabel( _( "Change all symbols in schematic" ) ); m_matchAll->SetLabel( _( "Change all symbols in schematic" ) );
SetTitle( _( "Change Symbols" ) ); SetTitle( _( "Change Symbols" ) );
m_matchSizer->FindItem( m_matchAll )->Show( false ); m_matchSizer->FindItem( m_matchAll )->Show( false );
}
if( m_symbol )
{
SCH_SHEET_PATH* currentSheet = &aParent->Schematic().CurrentSheet();
if( m_mode == MODE::CHANGE )
m_matchBySelection->SetLabel( _( "Change selected symbol(s)" ) );
m_newId->ChangeValue( UnescapeString( m_symbol->GetLibId().Format() ) );
m_specifiedReference->ChangeValue( m_symbol->GetRef( currentSheet ) );
m_specifiedValue->ChangeValue( UnescapeString( m_symbol->GetField( FIELD_T::VALUE )->GetText() ) );
m_specifiedId->ChangeValue( UnescapeString( m_symbol->GetLibId().Format() ) );
}
else
{
m_matchSizer->FindItem( m_matchBySelection )->Show( false );
}
m_matchIdBrowserButton->SetBitmap( KiBitmapBundle( BITMAPS::small_library ) );
m_newIdBrowserButton->SetBitmap( KiBitmapBundle( BITMAPS::small_library ) );
if( m_mode == MODE::CHANGE )
{
m_matchByReference->SetLabel( _( "Change symbols matching reference designator:" ) ); m_matchByReference->SetLabel( _( "Change symbols matching reference designator:" ) );
m_matchByValue->SetLabel( _( "Change symbols matching value:" ) ); m_matchByValue->SetLabel( _( "Change symbols matching value:" ) );
m_matchById->SetLabel( _( "Change symbols matching library identifier:" ) ); m_matchById->SetLabel( _( "Change symbols matching library identifier:" ) );
}
m_matchSizer->SetEmptyCellSize( wxSize( 0, 0 ) );
m_matchSizer->Layout();
for( FIELD_T fieldId : MANDATORY_FIELDS )
{
int listIdx = m_fieldsBox->GetCount();
m_fieldsBox->Append( GetDefaultFieldName( fieldId, DO_TRANSLATE ) );
if( fieldId == FIELD_T::REFERENCE )
m_fieldsBox->Check( listIdx, g_selectRefDes );
else if( fieldId == FIELD_T::VALUE )
m_fieldsBox->Check( listIdx, g_selectValue );
else
m_fieldsBox->Check( listIdx, true );
m_mandatoryFieldListIndexes[fieldId] = listIdx;
}
m_messagePanel->SetLazyUpdate( true );
m_messagePanel->SetFileName( Prj().GetProjectPath() + wxT( "report.txt" ) );
if( aSymbol && aSymbol->IsSelected() )
{
m_matchBySelection->SetValue( true );
}
else
{
if( aMode == MODE::UPDATE )
m_matchAll->SetValue( true );
else
m_matchByReference->SetValue( true );
}
updateFieldsList();
if( m_mode == MODE::CHANGE )
{
m_updateFieldsSizer->GetStaticBox()->SetLabel( _( "Update Fields" ) ); m_updateFieldsSizer->GetStaticBox()->SetLabel( _( "Update Fields" ) );
m_removeExtraBox->SetLabel( _( "Remove fields if not in new symbol" ) ); m_removeExtraBox->SetLabel( _( "Remove fields if not in new symbol" ) );
m_resetEmptyFields->SetLabel( _( "Reset fields if empty in new symbol" ) ); m_resetEmptyFields->SetLabel( _( "Reset fields if empty in new symbol" ) );
@ -148,18 +74,53 @@ DIALOG_CHANGE_SYMBOLS::DIALOG_CHANGE_SYMBOLS( SCH_EDIT_FRAME* aParent, SCH_SYMBO
m_resetPinTextVisibility->SetLabel( _( "Update pin name/number visibilities" ) ); m_resetPinTextVisibility->SetLabel( _( "Update pin name/number visibilities" ) );
m_resetAlternatePin->SetLabel( _( "Reset alternate pin functions" ) ); m_resetAlternatePin->SetLabel( _( "Reset alternate pin functions" ) );
m_resetCustomPower->SetLabel( _( "Reset custom power symbols" ) ); m_resetCustomPower->SetLabel( _( "Reset custom power symbols" ) );
if( m_symbol )
m_matchBySelection->SetLabel( _( "Change selected symbol(s)" ) );
} }
m_removeExtraBox->SetValue( g_removeExtraFields[ (int) m_mode ] ); if( !m_symbol )
m_resetEmptyFields->SetValue( g_resetEmptyFields[ (int) m_mode ] ); m_matchSizer->FindItem( m_matchBySelection )->Show( false );
m_resetFieldText->SetValue( g_resetFieldText[ (int) m_mode ] );
m_resetFieldVisibilities->SetValue( g_resetFieldVisibilities[ (int) m_mode ] ); m_matchIdBrowserButton->SetBitmap( KiBitmapBundle( BITMAPS::small_library ) );
m_resetFieldEffects->SetValue( g_resetFieldEffects[ (int) m_mode ] ); m_newIdBrowserButton->SetBitmap( KiBitmapBundle( BITMAPS::small_library ) );
m_resetFieldPositions->SetValue( g_resetFieldPositions[ (int) m_mode ] );
m_resetAttributes->SetValue( g_resetAttributes[ (int) m_mode ] ); m_matchSizer->SetEmptyCellSize( wxSize( 0, 0 ) );
m_resetPinTextVisibility->SetValue( g_resetPinVisibilities[ (int) m_mode ] ); m_matchSizer->Layout();
m_resetCustomPower->SetValue( g_resetCustomPower[ (int) m_mode ] );
m_resetAlternatePin->SetValue( g_resetAlternatePins[ (int) m_mode ] ); for( FIELD_T fieldId : MANDATORY_FIELDS )
{
int listIdx = (int) m_fieldsBox->GetCount();
m_fieldsBox->Append( GetDefaultFieldName( fieldId, DO_TRANSLATE ) );
// List boxes aren't currently handled in DIALOG_SHIM's control-state-save/restore
if( fieldId == FIELD_T::REFERENCE )
m_fieldsBox->Check( listIdx, g_selectRefDes );
else if( fieldId == FIELD_T::VALUE )
m_fieldsBox->Check( listIdx, g_selectValue );
else
m_fieldsBox->Check( listIdx, true );
m_mandatoryFieldListIndexes[fieldId] = listIdx;
}
updateFieldsList();
// initialize controls based on m_mode in case there is no saved state yet
m_removeExtraBox->SetValue( m_mode == MODE::CHANGE ? false : false );
m_resetEmptyFields->SetValue( m_mode == MODE::CHANGE ? false : false );
m_resetFieldText->SetValue( m_mode == MODE::CHANGE ? true : true );
m_resetFieldVisibilities->SetValue( m_mode == MODE::CHANGE ? true : false );
m_resetFieldEffects->SetValue( m_mode == MODE::CHANGE ? true : false );
m_resetFieldPositions->SetValue( m_mode == MODE::CHANGE ? true : false );
m_resetAttributes->SetValue( m_mode == MODE::CHANGE ? true : false );
m_resetPinTextVisibility->SetValue( m_mode == MODE::CHANGE ? true : false );
m_resetCustomPower->SetValue( m_mode == MODE::CHANGE ? false : false );
m_resetAlternatePin->SetValue( m_mode == MODE::CHANGE ? true : false );
m_messagePanel->SetLazyUpdate( true );
m_messagePanel->SetFileName( Prj().GetProjectPath() + wxT( "report.txt" ) );
// DIALOG_SHIM needs a unique hash_key because classname is not sufficient // DIALOG_SHIM needs a unique hash_key because classname is not sufficient
// because the update and change versions of this dialog have different controls. // because the update and change versions of this dialog have different controls.
@ -175,6 +136,28 @@ DIALOG_CHANGE_SYMBOLS::DIALOG_CHANGE_SYMBOLS( SCH_EDIT_FRAME* aParent, SCH_SYMBO
} }
bool DIALOG_CHANGE_SYMBOLS::TransferDataToWindow()
{
if( m_symbol )
{
SCH_SHEET_PATH* currentSheet = &m_symbol->Schematic()->CurrentSheet();
m_specifiedReference->ChangeValue( m_symbol->GetRef( currentSheet ) );
m_specifiedValue->ChangeValue( UnescapeString( m_symbol->GetField( FIELD_T::VALUE )->GetText() ) );
m_specifiedId->ChangeValue( UnescapeString( m_symbol->GetLibId().Format() ) );
}
if( m_symbol && m_symbol->IsSelected() )
m_matchBySelection->SetValue( true );
else if( m_mode == MODE::UPDATE )
m_matchAll->SetValue( true );
else
m_matchByReference->SetValue( true );
return true;
}
void DIALOG_CHANGE_SYMBOLS::onMatchByAll( wxCommandEvent& aEvent ) void DIALOG_CHANGE_SYMBOLS::onMatchByAll( wxCommandEvent& aEvent )
{ {
updateFieldsList(); updateFieldsList();
@ -231,19 +214,9 @@ void DIALOG_CHANGE_SYMBOLS::onNewLibIDKillFocus( wxFocusEvent& event )
DIALOG_CHANGE_SYMBOLS::~DIALOG_CHANGE_SYMBOLS() DIALOG_CHANGE_SYMBOLS::~DIALOG_CHANGE_SYMBOLS()
{ {
// List boxes aren't currently handled in DIALOG_SHIM's control-state-save/restore
g_selectRefDes = m_fieldsBox->IsChecked( m_mandatoryFieldListIndexes[FIELD_T::REFERENCE] ); g_selectRefDes = m_fieldsBox->IsChecked( m_mandatoryFieldListIndexes[FIELD_T::REFERENCE] );
g_selectValue = m_fieldsBox->IsChecked( m_mandatoryFieldListIndexes[FIELD_T::VALUE] ); g_selectValue = m_fieldsBox->IsChecked( m_mandatoryFieldListIndexes[FIELD_T::VALUE] );
g_removeExtraFields[ (int) m_mode ] = m_removeExtraBox->GetValue();
g_resetEmptyFields[ (int) m_mode ] = m_resetEmptyFields->GetValue();
g_resetFieldText[ (int) m_mode ] = m_resetFieldText->GetValue();
g_resetFieldVisibilities[ (int) m_mode ] = m_resetFieldVisibilities->GetValue();
g_resetFieldEffects[ (int) m_mode ] = m_resetFieldEffects->GetValue();
g_resetFieldPositions[ (int) m_mode ] = m_resetFieldPositions->GetValue();
g_resetAttributes[ (int) m_mode ] = m_resetAttributes->GetValue();
g_resetPinVisibilities[ (int) m_mode ] = m_resetPinTextVisibility->GetValue();
g_resetCustomPower[ (int) m_mode ] = m_resetCustomPower->GetValue();
g_resetAlternatePins[ (int) m_mode ] = m_resetAlternatePin->GetValue();
} }
@ -577,8 +550,7 @@ int DIALOG_CHANGE_SYMBOLS::processMatchingSymbols( SCH_COMMIT* aCommit )
if( symbols.size() > 0 ) if( symbols.size() > 0 )
matchesProcessed += processSymbols( aCommit, symbols ); matchesProcessed += processSymbols( aCommit, symbols );
else else
m_messagePanel->Report( _( "*** No symbols matching criteria found ***" ), m_messagePanel->Report( _( "*** No symbols matching criteria found ***" ), RPT_SEVERITY_ERROR );
RPT_SEVERITY_ERROR );
frame->GetCurrentSheet().UpdateAllScreenReferences(); frame->GetCurrentSheet().UpdateAllScreenReferences();
@ -586,8 +558,7 @@ int DIALOG_CHANGE_SYMBOLS::processMatchingSymbols( SCH_COMMIT* aCommit )
} }
int DIALOG_CHANGE_SYMBOLS::processSymbols( SCH_COMMIT* aCommit, int DIALOG_CHANGE_SYMBOLS::processSymbols( SCH_COMMIT* aCommit, const std::map<SCH_SYMBOL*,
const std::map<SCH_SYMBOL*,
SYMBOL_CHANGE_INFO>& aSymbols ) SYMBOL_CHANGE_INFO>& aSymbols )
{ {
wxCHECK( !aSymbols.empty(), 0 ); wxCHECK( !aSymbols.empty(), 0 );
@ -828,9 +799,12 @@ int DIALOG_CHANGE_SYMBOLS::processSymbols( SCH_COMMIT* aCommit,
// name which causes library symbol comparison errors. Clear the alternate pin // name which causes library symbol comparison errors. Clear the alternate pin
// name in this case even if the reset option is not checked. Also clear the // name in this case even if the reset option is not checked. Also clear the
// alternate pin name if it no longer exists in the alternate pin map. // alternate pin name if it no longer exists in the alternate pin map.
if( m_resetAlternatePin->IsChecked() || ( pin->GetAlt() == pin->GetBaseName() ) if( m_resetAlternatePin->IsChecked()
|| ( pin->GetAlt() == pin->GetBaseName() )
|| ( pin->GetAlternates().count( pin->GetAlt() ) == 0 ) ) || ( pin->GetAlternates().count( pin->GetAlt() ) == 0 ) )
{
pin->SetAlt( wxEmptyString ); pin->SetAlt( wxEmptyString );
}
} }
} }
} }
@ -847,15 +821,13 @@ int DIALOG_CHANGE_SYMBOLS::processSymbols( SCH_COMMIT* aCommit,
} }
wxString DIALOG_CHANGE_SYMBOLS::getSymbolReferences( SCH_SYMBOL& aSymbol, wxString DIALOG_CHANGE_SYMBOLS::getSymbolReferences( SCH_SYMBOL& aSymbol, const LIB_ID& aNewId,
const LIB_ID& aNewId,
const wxString* aOldLibLinkName ) const wxString* aOldLibLinkName )
{ {
wxString msg; wxString msg;
wxString references; wxString references;
const LIB_ID& oldId = aSymbol.GetLibId(); const LIB_ID& oldId = aSymbol.GetLibId();
wxString oldLibLinkName; // For report
wxString oldLibLinkName; // For report
if( aOldLibLinkName ) if( aOldLibLinkName )
oldLibLinkName = *aOldLibLinkName; oldLibLinkName = *aOldLibLinkName;

View File

@ -20,8 +20,7 @@
* with this program. If not, see <http://www.gnu.org/licenses/>. * with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#ifndef _DIALOG_CHANGE_SYMBOLS_H_ #pragma once
#define _DIALOG_CHANGE_SYMBOLS_H_
#include <dialog_change_symbols_base.h> #include <dialog_change_symbols_base.h>
@ -51,10 +50,11 @@ class DIALOG_CHANGE_SYMBOLS : public DIALOG_CHANGE_SYMBOLS_BASE
public: public:
enum class MODE { CHANGE = 0, UPDATE }; enum class MODE { CHANGE = 0, UPDATE };
DIALOG_CHANGE_SYMBOLS( SCH_EDIT_FRAME* aParent, SCH_SYMBOL* aSymbol, DIALOG_CHANGE_SYMBOLS( SCH_EDIT_FRAME* aParent, SCH_SYMBOL* aSymbol, MODE aMode = MODE::UPDATE );
MODE aMode = MODE::UPDATE );
~DIALOG_CHANGE_SYMBOLS() override; ~DIALOG_CHANGE_SYMBOLS() override;
bool TransferDataToWindow() override;
protected: protected:
void launchMatchIdSymbolBrowser( wxCommandEvent& aEvent ) override; void launchMatchIdSymbolBrowser( wxCommandEvent& aEvent ) override;
void launchNewIdSymbolBrowser( wxCommandEvent& aEvent ) override; void launchNewIdSymbolBrowser( wxCommandEvent& aEvent ) override;
@ -92,13 +92,11 @@ protected:
void selectAll( bool aSelect ); void selectAll( bool aSelect );
void checkAll( bool aCheck ); void checkAll( bool aCheck );
private:
void updateFieldsList(); void updateFieldsList();
bool isMatch( SCH_SYMBOL* aSymbol, SCH_SHEET_PATH* aInstance ); bool isMatch( SCH_SYMBOL* aSymbol, SCH_SHEET_PATH* aInstance );
int processMatchingSymbols( SCH_COMMIT* aCommit ); int processMatchingSymbols( SCH_COMMIT* aCommit );
int processSymbols( SCH_COMMIT* aCommit, int processSymbols( SCH_COMMIT* aCommit, const std::map<SCH_SYMBOL*, SYMBOL_CHANGE_INFO>& aSymbols );
const std::map<SCH_SYMBOL*, SYMBOL_CHANGE_INFO>& aSymbols );
wxString getSymbolReferences( SCH_SYMBOL& aSymbol, const LIB_ID& aNewId, wxString getSymbolReferences( SCH_SYMBOL& aSymbol, const LIB_ID& aNewId,
const wxString* aOldLibLinkName = nullptr ); const wxString* aOldLibLinkName = nullptr );
@ -112,5 +110,3 @@ private:
/// Index in the list control for each mandatory FIELD_T type /// Index in the list control for each mandatory FIELD_T type
std::map<FIELD_T, int> m_mandatoryFieldListIndexes; std::map<FIELD_T, int> m_mandatoryFieldListIndexes;
}; };
#endif // _DIALOG_CHANGE_SYMBOLS_H_

View File

@ -18,7 +18,6 @@
*/ */
#include "dialog_eeschema_page_settings.h" #include "dialog_eeschema_page_settings.h"
#include <kiface_base.h> #include <kiface_base.h>
#include <general.h> #include <general.h>
#include <sch_edit_frame.h> #include <sch_edit_frame.h>
@ -26,6 +25,7 @@
#include <schematic.h> #include <schematic.h>
#include <eeschema_settings.h> #include <eeschema_settings.h>
DIALOG_EESCHEMA_PAGE_SETTINGS::DIALOG_EESCHEMA_PAGE_SETTINGS( EDA_DRAW_FRAME* aParent, DIALOG_EESCHEMA_PAGE_SETTINGS::DIALOG_EESCHEMA_PAGE_SETTINGS( EDA_DRAW_FRAME* aParent,
EMBEDDED_FILES* aEmbeddedFiles, EMBEDDED_FILES* aEmbeddedFiles,
VECTOR2I aMaxUserSizeMils ) : VECTOR2I aMaxUserSizeMils ) :
@ -84,8 +84,6 @@ DIALOG_EESCHEMA_PAGE_SETTINGS::~DIALOG_EESCHEMA_PAGE_SETTINGS()
void DIALOG_EESCHEMA_PAGE_SETTINGS::onTransferDataToWindow() void DIALOG_EESCHEMA_PAGE_SETTINGS::onTransferDataToWindow()
{ {
wxString msg;
m_TextSheetCount->Show( true ); m_TextSheetCount->Show( true );
m_TextSheetNumber->Show( true ); m_TextSheetNumber->Show( true );
m_PaperExport->Show( true ); m_PaperExport->Show( true );
@ -104,44 +102,26 @@ void DIALOG_EESCHEMA_PAGE_SETTINGS::onTransferDataToWindow()
m_Comment9Export->Show( true ); m_Comment9Export->Show( true );
// Init display value for schematic sub-sheet number // Init display value for schematic sub-sheet number
wxString format = m_TextSheetCount->GetLabel(); m_TextSheetCount->SetLabel( wxString::Format( m_TextSheetCount->GetLabel(), m_screen->GetPageCount() ) );
msg.Printf( format, m_screen->GetPageCount() ); m_TextSheetNumber->SetLabel( wxString::Format( m_TextSheetNumber->GetLabel(), m_screen->GetVirtualPageNumber() ) );
m_TextSheetCount->SetLabel( msg );
format = m_TextSheetNumber->GetLabel();
msg.Printf( format, m_screen->GetVirtualPageNumber() );
m_TextSheetNumber->SetLabel( msg );
EESCHEMA_SETTINGS* cfg = dynamic_cast<EESCHEMA_SETTINGS*>( Kiface().KifaceSettings() ); EESCHEMA_SETTINGS* cfg = dynamic_cast<EESCHEMA_SETTINGS*>( Kiface().KifaceSettings() );
wxCHECK( cfg, /* void */ ); wxCHECK( cfg, /* void */ );
m_PaperExport->SetValue( cfg->m_PageSettings.export_paper ); m_PaperExport->SetValue( cfg->m_PageSettings.export_paper );
m_RevisionExport->SetValue( m_RevisionExport->SetValue( m_TextRevision->GetValue().IsEmpty() ? false : cfg->m_PageSettings.export_revision );
m_TextRevision->GetValue().IsEmpty() ? false : cfg->m_PageSettings.export_revision ); m_DateExport->SetValue( m_TextDate->GetValue().IsEmpty() ? false : cfg->m_PageSettings.export_date );
m_DateExport->SetValue( m_TextDate->GetValue().IsEmpty() ? false m_TitleExport->SetValue( m_TextTitle->GetValue().IsEmpty() ? false : cfg->m_PageSettings.export_title );
: cfg->m_PageSettings.export_date ); m_CompanyExport->SetValue( m_TextCompany->GetValue().IsEmpty() ? false : cfg->m_PageSettings.export_company );
m_TitleExport->SetValue( m_TextTitle->GetValue().IsEmpty() ? false m_Comment1Export->SetValue( m_TextComment1->GetValue().IsEmpty() ? false : cfg->m_PageSettings.export_comment1 );
: cfg->m_PageSettings.export_title ); m_Comment2Export->SetValue( m_TextComment2->GetValue().IsEmpty() ? false : cfg->m_PageSettings.export_comment2 );
m_CompanyExport->SetValue( m_Comment3Export->SetValue( m_TextComment3->GetValue().IsEmpty() ? false : cfg->m_PageSettings.export_comment3 );
m_TextCompany->GetValue().IsEmpty() ? false : cfg->m_PageSettings.export_company ); m_Comment4Export->SetValue( m_TextComment4->GetValue().IsEmpty() ? false : cfg->m_PageSettings.export_comment4 );
m_Comment1Export->SetValue( m_Comment5Export->SetValue( m_TextComment5->GetValue().IsEmpty() ? false : cfg->m_PageSettings.export_comment5 );
m_TextComment1->GetValue().IsEmpty() ? false : cfg->m_PageSettings.export_comment1 ); m_Comment6Export->SetValue( m_TextComment6->GetValue().IsEmpty() ? false : cfg->m_PageSettings.export_comment6 );
m_Comment2Export->SetValue( m_Comment7Export->SetValue( m_TextComment7->GetValue().IsEmpty() ? false : cfg->m_PageSettings.export_comment7 );
m_TextComment2->GetValue().IsEmpty() ? false : cfg->m_PageSettings.export_comment2 ); m_Comment8Export->SetValue( m_TextComment8->GetValue().IsEmpty() ? false : cfg->m_PageSettings.export_comment8 );
m_Comment3Export->SetValue( m_Comment9Export->SetValue( m_TextComment9->GetValue().IsEmpty() ? false : cfg->m_PageSettings.export_comment9 );
m_TextComment3->GetValue().IsEmpty() ? false : cfg->m_PageSettings.export_comment3 );
m_Comment4Export->SetValue(
m_TextComment4->GetValue().IsEmpty() ? false : cfg->m_PageSettings.export_comment4 );
m_Comment5Export->SetValue(
m_TextComment5->GetValue().IsEmpty() ? false : cfg->m_PageSettings.export_comment5 );
m_Comment6Export->SetValue(
m_TextComment6->GetValue().IsEmpty() ? false : cfg->m_PageSettings.export_comment6 );
m_Comment7Export->SetValue(
m_TextComment7->GetValue().IsEmpty() ? false : cfg->m_PageSettings.export_comment7 );
m_Comment8Export->SetValue(
m_TextComment8->GetValue().IsEmpty() ? false : cfg->m_PageSettings.export_comment8 );
m_Comment9Export->SetValue(
m_TextComment9->GetValue().IsEmpty() ? false : cfg->m_PageSettings.export_comment9 );
} }

View File

@ -17,8 +17,7 @@
* with this program. If not, see <http://www.gnu.org/licenses/>. * with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#ifndef DIALOG_EESCHEMA_PAGE_SETTINGS_H #pragma once
#define DIALOG_EESCHEMA_PAGE_SETTINGS_H
#include <dialogs/dialog_page_settings.h> #include <dialogs/dialog_page_settings.h>
@ -36,5 +35,3 @@ private:
void onTransferDataToWindow() override; void onTransferDataToWindow() override;
bool onSavePageSettings() override; bool onSavePageSettings() override;
}; };
#endif // DIALOG_PCBNEW_PAGE_SETTINGS

View File

@ -34,7 +34,6 @@
#include <kiway_express.h> #include <kiway_express.h>
#include <macros.h> #include <macros.h>
#include <pcb_edit_frame.h> #include <pcb_edit_frame.h>
#include <pcbnew_settings.h>
#include <widgets/wx_html_report_panel.h> #include <widgets/wx_html_report_panel.h>
#include <widgets/std_bitmap_button.h> #include <widgets/std_bitmap_button.h>
#include <tool/tool_manager.h> #include <tool/tool_manager.h>
@ -49,24 +48,13 @@
#define ID_MATCH_FP_VAL 4203 #define ID_MATCH_FP_VAL 4203
#define ID_MATCH_FP_ID 4204 #define ID_MATCH_FP_ID 4204
int g_matchModeForUpdate = ID_MATCH_FP_ALL; int g_matchModeForUpdate = ID_MATCH_FP_ALL;
int g_matchModeForUpdateSelected = ID_MATCH_FP_SELECTED; int g_matchModeForUpdateSelected = ID_MATCH_FP_SELECTED;
int g_matchModeForExchange = ID_MATCH_FP_REF; int g_matchModeForExchange = ID_MATCH_FP_REF;
int g_matchModeForExchangeSelected = ID_MATCH_FP_SELECTED; int g_matchModeForExchangeSelected = ID_MATCH_FP_SELECTED;
// { update, change }
bool g_removeExtraTextItems[2] = { false, false };
bool g_resetTextItemLayers[2] = { false, true };
bool g_resetTextItemEffects[2] = { false, true };
bool g_resetTextItemContent[2] = { false, true };
bool g_resetFabricationAttrs[2] = { false, true };
bool g_resetClearanceOverrides[2] = { true, true };
bool g_reset3DModels[2] = { true, true };
DIALOG_EXCHANGE_FOOTPRINTS::DIALOG_EXCHANGE_FOOTPRINTS( PCB_EDIT_FRAME* aParent, FOOTPRINT* aFootprint,
DIALOG_EXCHANGE_FOOTPRINTS::DIALOG_EXCHANGE_FOOTPRINTS( PCB_EDIT_FRAME* aParent,
FOOTPRINT* aFootprint,
bool updateMode, bool selectedMode ) : bool updateMode, bool selectedMode ) :
DIALOG_EXCHANGE_FOOTPRINTS_BASE( aParent ), DIALOG_EXCHANGE_FOOTPRINTS_BASE( aParent ),
m_commit( aParent ), m_commit( aParent ),
@ -98,63 +86,35 @@ DIALOG_EXCHANGE_FOOTPRINTS::DIALOG_EXCHANGE_FOOTPRINTS( PCB_EDIT_FRAME* aParent,
#endif #endif
if( m_updateMode ) if( m_updateMode )
{
m_changeSizer->Show( false ); m_changeSizer->Show( false );
}
else else
{
m_upperSizer->FindItem( m_matchAll )->Show( false ); m_upperSizer->FindItem( m_matchAll )->Show( false );
m_newIDBrowseButton->SetBitmap( KiBitmapBundle( BITMAPS::small_library ) );
}
if( m_currentFootprint ) if( !m_currentFootprint )
m_newID->AppendText( From_UTF8( m_currentFootprint->GetFPID().Format().c_str() ) );
else
m_upperSizer->FindItem( m_matchSelected )->Show( false ); m_upperSizer->FindItem( m_matchSelected )->Show( false );
// Use ChangeValue() instead of SetValue() so we don't generate events. m_newIDBrowseButton->SetBitmap( KiBitmapBundle( BITMAPS::small_library ) );
if( m_currentFootprint )
m_specifiedRef->ChangeValue( m_currentFootprint->GetReference() );
if( m_currentFootprint )
m_specifiedValue->ChangeValue( m_currentFootprint->GetValue() );
if( m_currentFootprint )
m_specifiedID->ChangeValue( From_UTF8( m_currentFootprint->GetFPID().Format().c_str() ) );
m_specifiedIDBrowseButton->SetBitmap( KiBitmapBundle( BITMAPS::small_library ) ); m_specifiedIDBrowseButton->SetBitmap( KiBitmapBundle( BITMAPS::small_library ) );
m_upperSizer->SetEmptyCellSize( wxSize( 0, 0 ) ); m_upperSizer->SetEmptyCellSize( wxSize( 0, 0 ) );
// The upper sizer has its content modified: re-layout it: // The upper sizer has its content modified: re-layout it:
m_upperSizer->Layout(); m_upperSizer->Layout();
// initialize controls based on update mode in case there is no saved state yet
m_removeExtraBox->SetValue( m_updateMode ? false : false );
m_resetTextItemLayers->SetValue( m_updateMode ? false : true );
m_resetTextItemEffects->SetValue( m_updateMode ? false : true );
m_resetTextItemContent->SetValue( m_updateMode ? false : true );
m_resetFabricationAttrs->SetValue( m_updateMode ? false : true );
m_resetClearanceOverrides->SetValue( m_updateMode ? true : true );
m_reset3DModels->SetValue( m_updateMode ? true : true );
// initialize match-mode // initialize match-mode
if( m_updateMode ) if( m_updateMode )
m_matchMode = selectedMode ? &g_matchModeForUpdateSelected : &g_matchModeForUpdate; m_matchMode = selectedMode ? &g_matchModeForUpdateSelected : &g_matchModeForUpdate;
else else
m_matchMode = selectedMode ? &g_matchModeForExchangeSelected : &g_matchModeForExchange; m_matchMode = selectedMode ? &g_matchModeForExchangeSelected : &g_matchModeForExchange;
wxCommandEvent event;
event.SetEventObject( this );
switch( *m_matchMode )
{
case ID_MATCH_FP_ALL: OnMatchAllClicked( event ); break;
case ID_MATCH_FP_SELECTED: OnMatchSelectedClicked( event ); break;
case ID_MATCH_FP_REF: OnMatchRefClicked( event ); break;
case ID_MATCH_FP_VAL: OnMatchValueClicked( event ); break;
case ID_MATCH_FP_ID: OnMatchIDClicked( event ); break;
default: break;
}
m_removeExtraBox->SetValue( g_removeExtraTextItems[ m_updateMode ? 0 : 1 ] );
m_resetTextItemLayers->SetValue( g_resetTextItemLayers[ m_updateMode ? 0 : 1 ] );
m_resetTextItemEffects->SetValue( g_resetTextItemEffects[ m_updateMode ? 0 : 1 ] );
m_resetTextItemContent->SetValue( g_resetTextItemContent[ m_updateMode ? 0 : 1 ] );
m_resetFabricationAttrs->SetValue( g_resetFabricationAttrs[ m_updateMode ? 0 : 1 ] );
m_resetClearanceOverrides->SetValue( g_resetClearanceOverrides[ m_updateMode ? 0 : 1 ] );
m_reset3DModels->SetValue( g_reset3DModels[ m_updateMode ? 0 : 1 ] );
m_MessageWindow->SetLazyUpdate( true ); m_MessageWindow->SetLazyUpdate( true );
m_MessageWindow->SetFileName( Prj().GetProjectPath() + wxT( "report.txt" ) ); m_MessageWindow->SetFileName( Prj().GetProjectPath() + wxT( "report.txt" ) );
@ -172,15 +132,32 @@ DIALOG_EXCHANGE_FOOTPRINTS::DIALOG_EXCHANGE_FOOTPRINTS( PCB_EDIT_FRAME* aParent,
} }
DIALOG_EXCHANGE_FOOTPRINTS::~DIALOG_EXCHANGE_FOOTPRINTS() bool DIALOG_EXCHANGE_FOOTPRINTS::TransferDataToWindow()
{ {
g_removeExtraTextItems[ m_updateMode ? 0 : 1 ] = m_removeExtraBox->GetValue(); if( m_currentFootprint )
g_resetTextItemLayers[ m_updateMode ? 0 : 1 ] = m_resetTextItemLayers->GetValue(); {
g_resetTextItemEffects[ m_updateMode ? 0 : 1 ] = m_resetTextItemEffects->GetValue(); m_newID->AppendText( From_UTF8( m_currentFootprint->GetFPID().Format().c_str() ) );
g_resetTextItemContent[ m_updateMode ? 0 : 1 ] = m_resetTextItemContent->GetValue();
g_resetFabricationAttrs[ m_updateMode ? 0 : 1 ] = m_resetFabricationAttrs->GetValue(); // Use ChangeValue() instead of SetValue() so we don't generate events.
g_resetClearanceOverrides[ m_updateMode ? 0 : 1 ] = m_resetClearanceOverrides->GetValue(); m_specifiedRef->ChangeValue( m_currentFootprint->GetReference() );
g_reset3DModels[ m_updateMode ? 0 : 1 ] = m_reset3DModels->GetValue(); m_specifiedValue->ChangeValue( m_currentFootprint->GetValue() );
m_specifiedID->ChangeValue( From_UTF8( m_currentFootprint->GetFPID().Format().c_str() ) );
}
wxCommandEvent event;
event.SetEventObject( this );
switch( *m_matchMode )
{
case ID_MATCH_FP_ALL: OnMatchAllClicked( event ); break;
case ID_MATCH_FP_SELECTED: OnMatchSelectedClicked( event ); break;
case ID_MATCH_FP_REF: OnMatchRefClicked( event ); break;
case ID_MATCH_FP_VAL: OnMatchValueClicked( event ); break;
case ID_MATCH_FP_ID: OnMatchIDClicked( event ); break;
default: break;
}
return true;
} }

View File

@ -38,7 +38,9 @@ class DIALOG_EXCHANGE_FOOTPRINTS : public DIALOG_EXCHANGE_FOOTPRINTS_BASE
public: public:
DIALOG_EXCHANGE_FOOTPRINTS( PCB_EDIT_FRAME* aParent, FOOTPRINT* aFootprint, bool updateMode, DIALOG_EXCHANGE_FOOTPRINTS( PCB_EDIT_FRAME* aParent, FOOTPRINT* aFootprint, bool updateMode,
bool selectedMode ); bool selectedMode );
~DIALOG_EXCHANGE_FOOTPRINTS() override; ~DIALOG_EXCHANGE_FOOTPRINTS() = default;
bool TransferDataToWindow() override;
private: private:
void updateMatchModeRadioButtons( wxUpdateUIEvent& aEvent ) override; void updateMatchModeRadioButtons( wxUpdateUIEvent& aEvent ) override;