Make sure user isn't surprised by Match All setting.
If they selected the dialog with a footprint selected, they're probably not expecting Match All.
This commit is contained in:
parent
9f350820ad
commit
adfe2fc267
|
@ -40,18 +40,21 @@
|
||||||
#include <dialog_exchange_footprints.h>
|
#include <dialog_exchange_footprints.h>
|
||||||
|
|
||||||
|
|
||||||
#define ID_MATCH_FP_ALL 4200
|
#define ID_MATCH_FP_ALL 4200
|
||||||
#define ID_MATCH_FP_REF 4201
|
#define ID_MATCH_FP_SELECTED 4201
|
||||||
#define ID_MATCH_FP_VAL 4202
|
#define ID_MATCH_FP_REF 4202
|
||||||
#define ID_MATCH_FP_ID 4203
|
#define ID_MATCH_FP_VAL 4203
|
||||||
|
#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_matchModeForExchange = ID_MATCH_FP_REF;
|
int g_matchModeForExchange = ID_MATCH_FP_REF;
|
||||||
|
int g_matchModeForExchangeSelected = ID_MATCH_FP_SELECTED;
|
||||||
|
|
||||||
|
|
||||||
DIALOG_EXCHANGE_FOOTPRINTS::DIALOG_EXCHANGE_FOOTPRINTS( PCB_EDIT_FRAME* aParent, MODULE* aModule,
|
DIALOG_EXCHANGE_FOOTPRINTS::DIALOG_EXCHANGE_FOOTPRINTS( PCB_EDIT_FRAME* aParent, MODULE* aModule,
|
||||||
bool updateMode ) :
|
bool updateMode, bool selectedMode ) :
|
||||||
DIALOG_EXCHANGE_FOOTPRINTS_BASE( aParent ),
|
DIALOG_EXCHANGE_FOOTPRINTS_BASE( aParent ),
|
||||||
m_commit( aParent ),
|
m_commit( aParent ),
|
||||||
m_parent( aParent ),
|
m_parent( aParent ),
|
||||||
|
@ -73,18 +76,18 @@ DIALOG_EXCHANGE_FOOTPRINTS::DIALOG_EXCHANGE_FOOTPRINTS( PCB_EDIT_FRAME* aParent,
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
m_upperSizer->FindItem( m_matchAll )->Show( false );
|
m_upperSizer->FindItem( m_matchAll )->Show( false );
|
||||||
|
|
||||||
if( m_currentModule )
|
|
||||||
{
|
|
||||||
m_newID->AppendText( FROM_UTF8( m_currentModule->GetFPID().Format().c_str() ) );
|
|
||||||
SetInitialFocus( m_newID );
|
|
||||||
}
|
|
||||||
else
|
|
||||||
SetInitialFocus( m_specifiedRef );
|
|
||||||
|
|
||||||
m_newIDBrowseButton->SetBitmap( KiBitmap( small_library_xpm ) );
|
m_newIDBrowseButton->SetBitmap( KiBitmap( small_library_xpm ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if( m_currentModule )
|
||||||
|
{
|
||||||
|
label.Printf( m_matchSelected->GetLabel(), verb );
|
||||||
|
m_matchSelected->SetLabel( label );
|
||||||
|
m_newID->AppendText( FROM_UTF8( m_currentModule->GetFPID().Format().c_str() ) );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
m_upperSizer->FindItem( m_matchSelected )->Show( false );
|
||||||
|
|
||||||
label.Printf( m_matchSpecifiedRef->GetLabel(), verb );
|
label.Printf( m_matchSpecifiedRef->GetLabel(), verb );
|
||||||
m_matchSpecifiedRef->SetLabel( label );
|
m_matchSpecifiedRef->SetLabel( label );
|
||||||
|
|
||||||
|
@ -110,14 +113,22 @@ DIALOG_EXCHANGE_FOOTPRINTS::DIALOG_EXCHANGE_FOOTPRINTS( PCB_EDIT_FRAME* aParent,
|
||||||
m_upperSizer->RecalcSizes();
|
m_upperSizer->RecalcSizes();
|
||||||
|
|
||||||
// initialize match-mode
|
// initialize match-mode
|
||||||
|
if( m_updateMode )
|
||||||
|
m_matchMode = selectedMode ? &g_matchModeForUpdateSelected : &g_matchModeForUpdate;
|
||||||
|
else
|
||||||
|
m_matchMode = selectedMode ? &g_matchModeForExchangeSelected : &g_matchModeForExchange;
|
||||||
|
|
||||||
wxCommandEvent event;
|
wxCommandEvent event;
|
||||||
switch( m_updateMode ? g_matchModeForUpdate : g_matchModeForExchange )
|
event.SetEventObject( this );
|
||||||
|
|
||||||
|
switch( *m_matchMode )
|
||||||
{
|
{
|
||||||
case ID_MATCH_FP_ALL: OnMatchAllClicked( event ); break;
|
case ID_MATCH_FP_ALL: OnMatchAllClicked( event ); break;
|
||||||
case ID_MATCH_FP_REF: OnMatchRefClicked( event ); break;
|
case ID_MATCH_FP_SELECTED: OnMatchSelectedClicked( event ); break;
|
||||||
case ID_MATCH_FP_VAL: OnMatchValueClicked( event ); break;
|
case ID_MATCH_FP_REF: OnMatchRefClicked( event ); break;
|
||||||
case ID_MATCH_FP_ID: OnMatchIDClicked( event ); break;
|
case ID_MATCH_FP_VAL: OnMatchValueClicked( event ); break;
|
||||||
default: break;
|
case ID_MATCH_FP_ID: OnMatchIDClicked( event ); break;
|
||||||
|
default: break;
|
||||||
}
|
}
|
||||||
|
|
||||||
// DIALOG_SHIM needs a unique hash_key because classname is not sufficient
|
// DIALOG_SHIM needs a unique hash_key because classname is not sufficient
|
||||||
|
@ -135,23 +146,16 @@ DIALOG_EXCHANGE_FOOTPRINTS::DIALOG_EXCHANGE_FOOTPRINTS( PCB_EDIT_FRAME* aParent,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void DIALOG_EXCHANGE_FOOTPRINTS::setMatchMode( int aMatchMode )
|
|
||||||
{
|
|
||||||
if( m_updateMode )
|
|
||||||
g_matchModeForUpdate = aMatchMode;
|
|
||||||
else
|
|
||||||
g_matchModeForExchange = aMatchMode;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
bool DIALOG_EXCHANGE_FOOTPRINTS::isMatch( MODULE* aModule )
|
bool DIALOG_EXCHANGE_FOOTPRINTS::isMatch( MODULE* aModule )
|
||||||
{
|
{
|
||||||
LIB_ID specifiedID;
|
LIB_ID specifiedID;
|
||||||
|
|
||||||
switch( m_updateMode ? g_matchModeForUpdate : g_matchModeForExchange )
|
switch( *m_matchMode )
|
||||||
{
|
{
|
||||||
case ID_MATCH_FP_ALL:
|
case ID_MATCH_FP_ALL:
|
||||||
return true;
|
return true;
|
||||||
|
case ID_MATCH_FP_SELECTED:
|
||||||
|
return aModule == m_currentModule;
|
||||||
case ID_MATCH_FP_REF:
|
case ID_MATCH_FP_REF:
|
||||||
return WildCompareString( m_specifiedRef->GetValue(), aModule->GetReference(), false );
|
return WildCompareString( m_specifiedRef->GetValue(), aModule->GetReference(), false );
|
||||||
case ID_MATCH_FP_VAL:
|
case ID_MATCH_FP_VAL:
|
||||||
|
@ -167,13 +171,14 @@ bool DIALOG_EXCHANGE_FOOTPRINTS::isMatch( MODULE* aModule )
|
||||||
|
|
||||||
wxRadioButton* DIALOG_EXCHANGE_FOOTPRINTS::getRadioButtonForMode()
|
wxRadioButton* DIALOG_EXCHANGE_FOOTPRINTS::getRadioButtonForMode()
|
||||||
{
|
{
|
||||||
switch( m_updateMode ? g_matchModeForUpdate : g_matchModeForExchange )
|
switch( *m_matchMode )
|
||||||
{
|
{
|
||||||
case ID_MATCH_FP_ALL: return m_matchAll;
|
case ID_MATCH_FP_ALL: return m_matchAll;
|
||||||
case ID_MATCH_FP_REF: return m_matchSpecifiedRef;
|
case ID_MATCH_FP_SELECTED: return m_matchSelected;
|
||||||
case ID_MATCH_FP_VAL: return m_matchSpecifiedValue;
|
case ID_MATCH_FP_REF: return m_matchSpecifiedRef;
|
||||||
case ID_MATCH_FP_ID: return m_matchSpecifiedID;
|
case ID_MATCH_FP_VAL: return m_matchSpecifiedValue;
|
||||||
default: return nullptr;
|
case ID_MATCH_FP_ID: return m_matchSpecifiedID;
|
||||||
|
default: return nullptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -184,6 +189,8 @@ void DIALOG_EXCHANGE_FOOTPRINTS::updateMatchModeRadioButtons( wxUpdateUIEvent& )
|
||||||
|
|
||||||
wxRadioButton* rb_butt_list[] =
|
wxRadioButton* rb_butt_list[] =
|
||||||
{
|
{
|
||||||
|
m_matchAll,
|
||||||
|
m_matchSelected,
|
||||||
m_matchSpecifiedRef,
|
m_matchSpecifiedRef,
|
||||||
m_matchSpecifiedValue,
|
m_matchSpecifiedValue,
|
||||||
m_matchSpecifiedID,
|
m_matchSpecifiedID,
|
||||||
|
@ -205,34 +212,55 @@ void DIALOG_EXCHANGE_FOOTPRINTS::updateMatchModeRadioButtons( wxUpdateUIEvent& )
|
||||||
|
|
||||||
void DIALOG_EXCHANGE_FOOTPRINTS::OnMatchAllClicked( wxCommandEvent& event )
|
void DIALOG_EXCHANGE_FOOTPRINTS::OnMatchAllClicked( wxCommandEvent& event )
|
||||||
{
|
{
|
||||||
setMatchMode( ID_MATCH_FP_ALL );
|
*m_matchMode = ID_MATCH_FP_ALL;
|
||||||
m_matchAll->SetFocus();
|
|
||||||
|
if( event.GetEventObject() == this )
|
||||||
|
SetInitialFocus( m_matchAll );
|
||||||
|
else
|
||||||
|
m_matchAll->SetFocus();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void DIALOG_EXCHANGE_FOOTPRINTS::OnMatchSelectedClicked( wxCommandEvent& event )
|
||||||
|
{
|
||||||
|
*m_matchMode = ID_MATCH_FP_SELECTED;
|
||||||
|
|
||||||
|
if( event.GetEventObject() == this )
|
||||||
|
SetInitialFocus( m_matchSelected );
|
||||||
|
else
|
||||||
|
m_matchSelected->SetFocus();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void DIALOG_EXCHANGE_FOOTPRINTS::OnMatchRefClicked( wxCommandEvent& event )
|
void DIALOG_EXCHANGE_FOOTPRINTS::OnMatchRefClicked( wxCommandEvent& event )
|
||||||
{
|
{
|
||||||
setMatchMode( ID_MATCH_FP_REF );
|
*m_matchMode = ID_MATCH_FP_REF;
|
||||||
|
|
||||||
if( event.GetEventObject() != m_specifiedRef )
|
if( event.GetEventObject() == this )
|
||||||
|
SetInitialFocus( m_specifiedRef );
|
||||||
|
else if( event.GetEventObject() != m_specifiedRef )
|
||||||
m_specifiedRef->SetFocus();
|
m_specifiedRef->SetFocus();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void DIALOG_EXCHANGE_FOOTPRINTS::OnMatchValueClicked( wxCommandEvent& event )
|
void DIALOG_EXCHANGE_FOOTPRINTS::OnMatchValueClicked( wxCommandEvent& event )
|
||||||
{
|
{
|
||||||
setMatchMode( ID_MATCH_FP_VAL );
|
*m_matchMode = ID_MATCH_FP_VAL;
|
||||||
|
|
||||||
if( event.GetEventObject() != m_specifiedValue )
|
if( event.GetEventObject() == this )
|
||||||
|
SetInitialFocus( m_specifiedValue );
|
||||||
|
else if( event.GetEventObject() != m_specifiedValue )
|
||||||
m_specifiedValue->SetFocus();
|
m_specifiedValue->SetFocus();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void DIALOG_EXCHANGE_FOOTPRINTS::OnMatchIDClicked( wxCommandEvent& event )
|
void DIALOG_EXCHANGE_FOOTPRINTS::OnMatchIDClicked( wxCommandEvent& event )
|
||||||
{
|
{
|
||||||
setMatchMode( ID_MATCH_FP_ID );
|
*m_matchMode = ID_MATCH_FP_ID;
|
||||||
|
|
||||||
if( event.GetEventObject() != m_specifiedID )
|
if( event.GetEventObject() == this )
|
||||||
|
SetInitialFocus( m_specifiedID );
|
||||||
|
else if( event.GetEventObject() != m_specifiedID )
|
||||||
m_specifiedID->SetFocus();
|
m_specifiedID->SetFocus();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -40,21 +40,22 @@ private:
|
||||||
PCB_EDIT_FRAME* m_parent;
|
PCB_EDIT_FRAME* m_parent;
|
||||||
MODULE* m_currentModule;
|
MODULE* m_currentModule;
|
||||||
bool m_updateMode;
|
bool m_updateMode;
|
||||||
|
int* m_matchMode;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
DIALOG_EXCHANGE_FOOTPRINTS( PCB_EDIT_FRAME* aParent, MODULE* aModule, bool updateMode );
|
DIALOG_EXCHANGE_FOOTPRINTS( PCB_EDIT_FRAME* aParent, MODULE* aModule, bool updateMode,
|
||||||
|
bool selectedMode );
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void updateMatchModeRadioButtons( wxUpdateUIEvent& event ) override;
|
void updateMatchModeRadioButtons( wxUpdateUIEvent& event ) override;
|
||||||
void OnMatchAllClicked( wxCommandEvent& event ) override;
|
void OnMatchAllClicked( wxCommandEvent& event ) override;
|
||||||
|
void OnMatchSelectedClicked( wxCommandEvent& event ) override;
|
||||||
void OnMatchRefClicked( wxCommandEvent& event ) override;
|
void OnMatchRefClicked( wxCommandEvent& event ) override;
|
||||||
void OnMatchValueClicked( wxCommandEvent& event ) override;
|
void OnMatchValueClicked( wxCommandEvent& event ) override;
|
||||||
void OnMatchIDClicked( wxCommandEvent& event ) override;
|
void OnMatchIDClicked( wxCommandEvent& event ) override;
|
||||||
void OnApplyClicked( wxCommandEvent& event ) override;
|
void OnApplyClicked( wxCommandEvent& event ) override;
|
||||||
void ViewAndSelectFootprint( wxCommandEvent& event ) override;
|
void ViewAndSelectFootprint( wxCommandEvent& event ) override;
|
||||||
|
|
||||||
void setMatchMode( int aMatchMode );
|
|
||||||
|
|
||||||
wxRadioButton* getRadioButtonForMode();
|
wxRadioButton* getRadioButtonForMode();
|
||||||
|
|
||||||
bool isMatch( MODULE* );
|
bool isMatch( MODULE* );
|
||||||
|
|
|
@ -24,22 +24,25 @@ DIALOG_EXCHANGE_FOOTPRINTS_BASE::DIALOG_EXCHANGE_FOOTPRINTS_BASE( wxWindow* pare
|
||||||
m_matchAll = new wxRadioButton( this, wxID_ANY, _("%s all footprints on board"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_matchAll = new wxRadioButton( this, wxID_ANY, _("%s all footprints on board"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_upperSizer->Add( m_matchAll, wxGBPosition( 0, 0 ), wxGBSpan( 1, 2 ), wxEXPAND|wxALL, 5 );
|
m_upperSizer->Add( m_matchAll, wxGBPosition( 0, 0 ), wxGBSpan( 1, 2 ), wxEXPAND|wxALL, 5 );
|
||||||
|
|
||||||
m_matchSpecifiedRef = new wxRadioButton( this, wxID_ANY, _("%s footprint matching reference:"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_matchSelected = new wxRadioButton( this, wxID_ANY, _("%s selected footprint"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_upperSizer->Add( m_matchSpecifiedRef, wxGBPosition( 1, 0 ), wxGBSpan( 1, 1 ), wxALL|wxEXPAND, 5 );
|
m_upperSizer->Add( m_matchSelected, wxGBPosition( 1, 0 ), wxGBSpan( 1, 1 ), wxALL, 5 );
|
||||||
|
|
||||||
|
m_matchSpecifiedRef = new wxRadioButton( this, wxID_ANY, _("%s footprints matching reference:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
m_upperSizer->Add( m_matchSpecifiedRef, wxGBPosition( 2, 0 ), wxGBSpan( 1, 1 ), wxALL|wxEXPAND, 5 );
|
||||||
|
|
||||||
m_specifiedRef = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER );
|
m_specifiedRef = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER );
|
||||||
m_specifiedRef->SetMinSize( wxSize( 200,-1 ) );
|
m_specifiedRef->SetMinSize( wxSize( 200,-1 ) );
|
||||||
|
|
||||||
m_upperSizer->Add( m_specifiedRef, wxGBPosition( 1, 1 ), wxGBSpan( 1, 1 ), wxBOTTOM|wxRIGHT|wxTOP|wxEXPAND, 5 );
|
m_upperSizer->Add( m_specifiedRef, wxGBPosition( 2, 1 ), wxGBSpan( 1, 1 ), wxBOTTOM|wxRIGHT|wxTOP|wxEXPAND, 5 );
|
||||||
|
|
||||||
m_matchSpecifiedValue = new wxRadioButton( this, wxID_ANY, _("%s footprints matching value:"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_matchSpecifiedValue = new wxRadioButton( this, wxID_ANY, _("%s footprints matching value:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_upperSizer->Add( m_matchSpecifiedValue, wxGBPosition( 2, 0 ), wxGBSpan( 1, 1 ), wxEXPAND|wxALL, 5 );
|
m_upperSizer->Add( m_matchSpecifiedValue, wxGBPosition( 3, 0 ), wxGBSpan( 1, 1 ), wxEXPAND|wxALL, 5 );
|
||||||
|
|
||||||
m_specifiedValue = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER );
|
m_specifiedValue = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER );
|
||||||
m_upperSizer->Add( m_specifiedValue, wxGBPosition( 2, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxBOTTOM|wxRIGHT, 5 );
|
m_upperSizer->Add( m_specifiedValue, wxGBPosition( 3, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxBOTTOM|wxRIGHT, 5 );
|
||||||
|
|
||||||
m_matchSpecifiedID = new wxRadioButton( this, wxID_ANY, _("%s footprints with identifier:"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_matchSpecifiedID = new wxRadioButton( this, wxID_ANY, _("%s footprints with identifier:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_upperSizer->Add( m_matchSpecifiedID, wxGBPosition( 3, 0 ), wxGBSpan( 1, 2 ), wxLEFT|wxRIGHT|wxTOP|wxEXPAND, 5 );
|
m_upperSizer->Add( m_matchSpecifiedID, wxGBPosition( 4, 0 ), wxGBSpan( 1, 2 ), wxLEFT|wxRIGHT|wxTOP|wxEXPAND, 5 );
|
||||||
|
|
||||||
|
|
||||||
m_upperSizer->AddGrowableCol( 1 );
|
m_upperSizer->AddGrowableCol( 1 );
|
||||||
|
@ -130,6 +133,7 @@ DIALOG_EXCHANGE_FOOTPRINTS_BASE::DIALOG_EXCHANGE_FOOTPRINTS_BASE( wxWindow* pare
|
||||||
// Connect Events
|
// Connect Events
|
||||||
this->Connect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( DIALOG_EXCHANGE_FOOTPRINTS_BASE::updateMatchModeRadioButtons ) );
|
this->Connect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( DIALOG_EXCHANGE_FOOTPRINTS_BASE::updateMatchModeRadioButtons ) );
|
||||||
m_matchAll->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( DIALOG_EXCHANGE_FOOTPRINTS_BASE::OnMatchAllClicked ), NULL, this );
|
m_matchAll->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( DIALOG_EXCHANGE_FOOTPRINTS_BASE::OnMatchAllClicked ), NULL, this );
|
||||||
|
m_matchSelected->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( DIALOG_EXCHANGE_FOOTPRINTS_BASE::OnMatchSelectedClicked ), NULL, this );
|
||||||
m_matchSpecifiedRef->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( DIALOG_EXCHANGE_FOOTPRINTS_BASE::OnMatchRefClicked ), NULL, this );
|
m_matchSpecifiedRef->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( DIALOG_EXCHANGE_FOOTPRINTS_BASE::OnMatchRefClicked ), NULL, this );
|
||||||
m_specifiedRef->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_EXCHANGE_FOOTPRINTS_BASE::OnMatchRefClicked ), NULL, this );
|
m_specifiedRef->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_EXCHANGE_FOOTPRINTS_BASE::OnMatchRefClicked ), NULL, this );
|
||||||
m_specifiedRef->Connect( wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler( DIALOG_EXCHANGE_FOOTPRINTS_BASE::OnMatchRefClicked ), NULL, this );
|
m_specifiedRef->Connect( wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler( DIALOG_EXCHANGE_FOOTPRINTS_BASE::OnMatchRefClicked ), NULL, this );
|
||||||
|
@ -149,6 +153,7 @@ DIALOG_EXCHANGE_FOOTPRINTS_BASE::~DIALOG_EXCHANGE_FOOTPRINTS_BASE()
|
||||||
// Disconnect Events
|
// Disconnect Events
|
||||||
this->Disconnect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( DIALOG_EXCHANGE_FOOTPRINTS_BASE::updateMatchModeRadioButtons ) );
|
this->Disconnect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( DIALOG_EXCHANGE_FOOTPRINTS_BASE::updateMatchModeRadioButtons ) );
|
||||||
m_matchAll->Disconnect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( DIALOG_EXCHANGE_FOOTPRINTS_BASE::OnMatchAllClicked ), NULL, this );
|
m_matchAll->Disconnect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( DIALOG_EXCHANGE_FOOTPRINTS_BASE::OnMatchAllClicked ), NULL, this );
|
||||||
|
m_matchSelected->Disconnect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( DIALOG_EXCHANGE_FOOTPRINTS_BASE::OnMatchSelectedClicked ), NULL, this );
|
||||||
m_matchSpecifiedRef->Disconnect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( DIALOG_EXCHANGE_FOOTPRINTS_BASE::OnMatchRefClicked ), NULL, this );
|
m_matchSpecifiedRef->Disconnect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( DIALOG_EXCHANGE_FOOTPRINTS_BASE::OnMatchRefClicked ), NULL, this );
|
||||||
m_specifiedRef->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_EXCHANGE_FOOTPRINTS_BASE::OnMatchRefClicked ), NULL, this );
|
m_specifiedRef->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_EXCHANGE_FOOTPRINTS_BASE::OnMatchRefClicked ), NULL, this );
|
||||||
m_specifiedRef->Disconnect( wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler( DIALOG_EXCHANGE_FOOTPRINTS_BASE::OnMatchRefClicked ), NULL, this );
|
m_specifiedRef->Disconnect( wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler( DIALOG_EXCHANGE_FOOTPRINTS_BASE::OnMatchRefClicked ), NULL, this );
|
||||||
|
|
|
@ -203,9 +203,100 @@
|
||||||
<property name="border">5</property>
|
<property name="border">5</property>
|
||||||
<property name="colspan">1</property>
|
<property name="colspan">1</property>
|
||||||
<property name="column">0</property>
|
<property name="column">0</property>
|
||||||
<property name="flag">wxALL|wxEXPAND</property>
|
<property name="flag">wxALL</property>
|
||||||
<property name="row">1</property>
|
<property name="row">1</property>
|
||||||
<property name="rowspan">1</property>
|
<property name="rowspan">1</property>
|
||||||
|
<object class="wxRadioButton" 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="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">%s selected footprint</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_matchSelected</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="value">0</property>
|
||||||
|
<property name="window_extra_style"></property>
|
||||||
|
<property name="window_name"></property>
|
||||||
|
<property name="window_style"></property>
|
||||||
|
<event name="OnChar"></event>
|
||||||
|
<event name="OnEnterWindow"></event>
|
||||||
|
<event name="OnEraseBackground"></event>
|
||||||
|
<event name="OnKeyDown"></event>
|
||||||
|
<event name="OnKeyUp"></event>
|
||||||
|
<event name="OnKillFocus"></event>
|
||||||
|
<event name="OnLeaveWindow"></event>
|
||||||
|
<event name="OnLeftDClick"></event>
|
||||||
|
<event name="OnLeftDown"></event>
|
||||||
|
<event name="OnLeftUp"></event>
|
||||||
|
<event name="OnMiddleDClick"></event>
|
||||||
|
<event name="OnMiddleDown"></event>
|
||||||
|
<event name="OnMiddleUp"></event>
|
||||||
|
<event name="OnMotion"></event>
|
||||||
|
<event name="OnMouseEvents"></event>
|
||||||
|
<event name="OnMouseWheel"></event>
|
||||||
|
<event name="OnPaint"></event>
|
||||||
|
<event name="OnRadioButton">OnMatchSelectedClicked</event>
|
||||||
|
<event name="OnRightDClick"></event>
|
||||||
|
<event name="OnRightDown"></event>
|
||||||
|
<event name="OnRightUp"></event>
|
||||||
|
<event name="OnSetFocus"></event>
|
||||||
|
<event name="OnSize"></event>
|
||||||
|
<event name="OnUpdateUI"></event>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="gbsizeritem" expanded="1">
|
||||||
|
<property name="border">5</property>
|
||||||
|
<property name="colspan">1</property>
|
||||||
|
<property name="column">0</property>
|
||||||
|
<property name="flag">wxALL|wxEXPAND</property>
|
||||||
|
<property name="row">2</property>
|
||||||
|
<property name="rowspan">1</property>
|
||||||
<object class="wxRadioButton" expanded="0">
|
<object class="wxRadioButton" expanded="0">
|
||||||
<property name="BottomDockable">1</property>
|
<property name="BottomDockable">1</property>
|
||||||
<property name="LeftDockable">1</property>
|
<property name="LeftDockable">1</property>
|
||||||
|
@ -234,7 +325,7 @@
|
||||||
<property name="gripper">0</property>
|
<property name="gripper">0</property>
|
||||||
<property name="hidden">0</property>
|
<property name="hidden">0</property>
|
||||||
<property name="id">wxID_ANY</property>
|
<property name="id">wxID_ANY</property>
|
||||||
<property name="label">%s footprint matching reference:</property>
|
<property name="label">%s footprints matching reference:</property>
|
||||||
<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>
|
||||||
|
@ -295,7 +386,7 @@
|
||||||
<property name="colspan">1</property>
|
<property name="colspan">1</property>
|
||||||
<property name="column">1</property>
|
<property name="column">1</property>
|
||||||
<property name="flag">wxBOTTOM|wxRIGHT|wxTOP|wxEXPAND</property>
|
<property name="flag">wxBOTTOM|wxRIGHT|wxTOP|wxEXPAND</property>
|
||||||
<property name="row">1</property>
|
<property name="row">2</property>
|
||||||
<property name="rowspan">1</property>
|
<property name="rowspan">1</property>
|
||||||
<object class="wxTextCtrl" expanded="0">
|
<object class="wxTextCtrl" expanded="0">
|
||||||
<property name="BottomDockable">1</property>
|
<property name="BottomDockable">1</property>
|
||||||
|
@ -389,7 +480,7 @@
|
||||||
<property name="colspan">1</property>
|
<property name="colspan">1</property>
|
||||||
<property name="column">0</property>
|
<property name="column">0</property>
|
||||||
<property name="flag">wxEXPAND|wxALL</property>
|
<property name="flag">wxEXPAND|wxALL</property>
|
||||||
<property name="row">2</property>
|
<property name="row">3</property>
|
||||||
<property name="rowspan">1</property>
|
<property name="rowspan">1</property>
|
||||||
<object class="wxRadioButton" expanded="0">
|
<object class="wxRadioButton" expanded="0">
|
||||||
<property name="BottomDockable">1</property>
|
<property name="BottomDockable">1</property>
|
||||||
|
@ -480,7 +571,7 @@
|
||||||
<property name="colspan">1</property>
|
<property name="colspan">1</property>
|
||||||
<property name="column">1</property>
|
<property name="column">1</property>
|
||||||
<property name="flag">wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxBOTTOM|wxRIGHT</property>
|
<property name="flag">wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxBOTTOM|wxRIGHT</property>
|
||||||
<property name="row">2</property>
|
<property name="row">3</property>
|
||||||
<property name="rowspan">1</property>
|
<property name="rowspan">1</property>
|
||||||
<object class="wxTextCtrl" expanded="0">
|
<object class="wxTextCtrl" expanded="0">
|
||||||
<property name="BottomDockable">1</property>
|
<property name="BottomDockable">1</property>
|
||||||
|
@ -574,7 +665,7 @@
|
||||||
<property name="colspan">2</property>
|
<property name="colspan">2</property>
|
||||||
<property name="column">0</property>
|
<property name="column">0</property>
|
||||||
<property name="flag">wxLEFT|wxRIGHT|wxTOP|wxEXPAND</property>
|
<property name="flag">wxLEFT|wxRIGHT|wxTOP|wxEXPAND</property>
|
||||||
<property name="row">3</property>
|
<property name="row">4</property>
|
||||||
<property name="rowspan">1</property>
|
<property name="rowspan">1</property>
|
||||||
<object class="wxRadioButton" expanded="0">
|
<object class="wxRadioButton" expanded="0">
|
||||||
<property name="BottomDockable">1</property>
|
<property name="BottomDockable">1</property>
|
||||||
|
|
|
@ -49,6 +49,7 @@ class DIALOG_EXCHANGE_FOOTPRINTS_BASE : public DIALOG_SHIM
|
||||||
wxBoxSizer* m_mainSizer;
|
wxBoxSizer* m_mainSizer;
|
||||||
wxGridBagSizer* m_upperSizer;
|
wxGridBagSizer* m_upperSizer;
|
||||||
wxRadioButton* m_matchAll;
|
wxRadioButton* m_matchAll;
|
||||||
|
wxRadioButton* m_matchSelected;
|
||||||
wxRadioButton* m_matchSpecifiedRef;
|
wxRadioButton* m_matchSpecifiedRef;
|
||||||
wxTextCtrl* m_specifiedRef;
|
wxTextCtrl* m_specifiedRef;
|
||||||
wxRadioButton* m_matchSpecifiedValue;
|
wxRadioButton* m_matchSpecifiedValue;
|
||||||
|
@ -71,6 +72,7 @@ class DIALOG_EXCHANGE_FOOTPRINTS_BASE : public DIALOG_SHIM
|
||||||
// Virtual event handlers, overide them in your derived class
|
// Virtual event handlers, overide them in your derived class
|
||||||
virtual void updateMatchModeRadioButtons( wxUpdateUIEvent& event ) { event.Skip(); }
|
virtual void updateMatchModeRadioButtons( wxUpdateUIEvent& event ) { event.Skip(); }
|
||||||
virtual void OnMatchAllClicked( wxCommandEvent& event ) { event.Skip(); }
|
virtual void OnMatchAllClicked( wxCommandEvent& event ) { event.Skip(); }
|
||||||
|
virtual void OnMatchSelectedClicked( wxCommandEvent& event ) { event.Skip(); }
|
||||||
virtual void OnMatchRefClicked( wxCommandEvent& event ) { event.Skip(); }
|
virtual void OnMatchRefClicked( wxCommandEvent& event ) { event.Skip(); }
|
||||||
virtual void OnMatchValueClicked( wxCommandEvent& event ) { event.Skip(); }
|
virtual void OnMatchValueClicked( wxCommandEvent& event ) { event.Skip(); }
|
||||||
virtual void OnMatchIDClicked( wxCommandEvent& event ) { event.Skip(); }
|
virtual void OnMatchIDClicked( wxCommandEvent& event ) { event.Skip(); }
|
||||||
|
|
|
@ -837,7 +837,7 @@ void PCB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event )
|
||||||
case ID_POPUP_PCB_UPDATE_FOOTPRINTS:
|
case ID_POPUP_PCB_UPDATE_FOOTPRINTS:
|
||||||
if( GetCurItem() && GetCurItem()->Type() == PCB_MODULE_T )
|
if( GetCurItem() && GetCurItem()->Type() == PCB_MODULE_T )
|
||||||
{
|
{
|
||||||
InstallExchangeModuleFrame( (MODULE*) GetCurItem(), true );
|
InstallExchangeModuleFrame( (MODULE*) GetCurItem(), true, true );
|
||||||
m_canvas->MoveCursorToCrossHair();
|
m_canvas->MoveCursorToCrossHair();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -845,7 +845,7 @@ void PCB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event )
|
||||||
case ID_POPUP_PCB_EXCHANGE_FOOTPRINTS:
|
case ID_POPUP_PCB_EXCHANGE_FOOTPRINTS:
|
||||||
if( GetCurItem() && GetCurItem()->Type() == PCB_MODULE_T )
|
if( GetCurItem() && GetCurItem()->Type() == PCB_MODULE_T )
|
||||||
{
|
{
|
||||||
InstallExchangeModuleFrame( (MODULE*) GetCurItem(), false );
|
InstallExchangeModuleFrame( (MODULE*) GetCurItem(), false, true );
|
||||||
m_canvas->MoveCursorToCrossHair();
|
m_canvas->MoveCursorToCrossHair();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -1216,11 +1216,11 @@ void PCB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ID_MENU_PCB_UPDATE_FOOTPRINTS:
|
case ID_MENU_PCB_UPDATE_FOOTPRINTS:
|
||||||
InstallExchangeModuleFrame( (MODULE*) GetCurItem(), true );
|
InstallExchangeModuleFrame( (MODULE*) GetCurItem(), true, false );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ID_MENU_PCB_EXCHANGE_FOOTPRINTS:
|
case ID_MENU_PCB_EXCHANGE_FOOTPRINTS:
|
||||||
InstallExchangeModuleFrame( (MODULE*) GetCurItem(), false );
|
InstallExchangeModuleFrame( (MODULE*) GetCurItem(), false, false );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ID_MENU_PCB_SWAP_LAYERS:
|
case ID_MENU_PCB_SWAP_LAYERS:
|
||||||
|
|
|
@ -1303,19 +1303,20 @@ void PCB_EDIT_FRAME::InstallFootprintPropertiesDialog( MODULE* Module, wxDC* DC
|
||||||
|
|
||||||
else if( retvalue == DIALOG_FOOTPRINT_BOARD_EDITOR::PRM_EDITOR_WANT_UPDATE_FP )
|
else if( retvalue == DIALOG_FOOTPRINT_BOARD_EDITOR::PRM_EDITOR_WANT_UPDATE_FP )
|
||||||
{
|
{
|
||||||
InstallExchangeModuleFrame( Module, true );
|
InstallExchangeModuleFrame( Module, true, true );
|
||||||
}
|
}
|
||||||
|
|
||||||
else if( retvalue == DIALOG_FOOTPRINT_BOARD_EDITOR::PRM_EDITOR_WANT_EXCHANGE_FP )
|
else if( retvalue == DIALOG_FOOTPRINT_BOARD_EDITOR::PRM_EDITOR_WANT_EXCHANGE_FP )
|
||||||
{
|
{
|
||||||
InstallExchangeModuleFrame( Module, false );
|
InstallExchangeModuleFrame( Module, false, true );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int PCB_EDIT_FRAME::InstallExchangeModuleFrame( MODULE* Module, bool updateMode )
|
int PCB_EDIT_FRAME::InstallExchangeModuleFrame( MODULE* aModule, bool updateMode,
|
||||||
|
bool selectedMode )
|
||||||
{
|
{
|
||||||
DIALOG_EXCHANGE_FOOTPRINTS dialog( this, Module, updateMode );
|
DIALOG_EXCHANGE_FOOTPRINTS dialog( this, aModule, updateMode, selectedMode );
|
||||||
|
|
||||||
return dialog.ShowQuasiModal();
|
return dialog.ShowQuasiModal();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1173,7 +1173,7 @@ public:
|
||||||
*/
|
*/
|
||||||
void Change_Side_Module( MODULE* Module, wxDC* DC );
|
void Change_Side_Module( MODULE* Module, wxDC* DC );
|
||||||
|
|
||||||
int InstallExchangeModuleFrame( MODULE* ExchangeModuleModule, bool updateMode );
|
int InstallExchangeModuleFrame( MODULE* aModule, bool updateMode, bool selectedMode );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function Exchange_Module
|
* Function Exchange_Module
|
||||||
|
|
|
@ -1180,7 +1180,7 @@ int EDIT_TOOL::ExchangeFootprints( const TOOL_EVENT& aEvent )
|
||||||
|
|
||||||
// invoke the exchange dialog process
|
// invoke the exchange dialog process
|
||||||
{
|
{
|
||||||
DIALOG_EXCHANGE_FOOTPRINTS dialog( frame(), mod, updateMode );
|
DIALOG_EXCHANGE_FOOTPRINTS dialog( frame(), mod, updateMode, mod != nullptr );
|
||||||
dialog.ShowQuasiModal();
|
dialog.ShowQuasiModal();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue