Fix change footprints dialog to use correct selection state.
This commit is contained in:
parent
a2b7bf97b9
commit
899fe8be17
|
@ -25,8 +25,6 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <bitmaps.h>
|
#include <bitmaps.h>
|
||||||
#include <board_commit.h>
|
|
||||||
#include <board.h>
|
|
||||||
#include <footprint.h>
|
#include <footprint.h>
|
||||||
#include <pad.h>
|
#include <pad.h>
|
||||||
#include <dialog_exchange_footprints.h>
|
#include <dialog_exchange_footprints.h>
|
||||||
|
@ -35,8 +33,8 @@
|
||||||
#include <macros.h>
|
#include <macros.h>
|
||||||
#include <pcb_edit_frame.h>
|
#include <pcb_edit_frame.h>
|
||||||
#include <pcbnew_settings.h>
|
#include <pcbnew_settings.h>
|
||||||
#include <project.h>
|
|
||||||
#include <widgets/wx_html_report_panel.h>
|
#include <widgets/wx_html_report_panel.h>
|
||||||
|
#include <widgets/std_bitmap_button.h>
|
||||||
|
|
||||||
|
|
||||||
#define ID_MATCH_FP_ALL 4200
|
#define ID_MATCH_FP_ALL 4200
|
||||||
|
@ -100,9 +98,7 @@ DIALOG_EXCHANGE_FOOTPRINTS::DIALOG_EXCHANGE_FOOTPRINTS( PCB_EDIT_FRAME* aParent,
|
||||||
}
|
}
|
||||||
|
|
||||||
if( m_currentFootprint )
|
if( m_currentFootprint )
|
||||||
{
|
|
||||||
m_newID->AppendText( From_UTF8( m_currentFootprint->GetFPID().Format().c_str() ) );
|
m_newID->AppendText( From_UTF8( m_currentFootprint->GetFPID().Format().c_str() ) );
|
||||||
}
|
|
||||||
else
|
else
|
||||||
m_upperSizer->FindItem( m_matchSelected )->Show( false );
|
m_upperSizer->FindItem( m_matchSelected )->Show( false );
|
||||||
|
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
// PLEASE DO *NOT* EDIT THIS FILE!
|
// PLEASE DO *NOT* EDIT THIS FILE!
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#include "widgets/std_bitmap_button.h"
|
||||||
#include "widgets/wx_html_report_panel.h"
|
#include "widgets/wx_html_report_panel.h"
|
||||||
|
|
||||||
#include "dialog_exchange_footprints_base.h"
|
#include "dialog_exchange_footprints_base.h"
|
||||||
|
@ -57,8 +58,8 @@ DIALOG_EXCHANGE_FOOTPRINTS_BASE::DIALOG_EXCHANGE_FOOTPRINTS_BASE( wxWindow* pare
|
||||||
|
|
||||||
bSizer4->Add( m_specifiedID, 1, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
|
bSizer4->Add( m_specifiedID, 1, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
|
||||||
|
|
||||||
m_specifiedIDBrowseButton = new wxBitmapButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW|0 );
|
m_specifiedIDBrowseButton = new STD_BITMAP_BUTTON( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW|0 );
|
||||||
bSizer4->Add( m_specifiedIDBrowseButton, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 2 );
|
bSizer4->Add( m_specifiedIDBrowseButton, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 2 );
|
||||||
|
|
||||||
|
|
||||||
m_mainSizer->Add( bSizer4, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 10 );
|
m_mainSizer->Add( bSizer4, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 10 );
|
||||||
|
@ -82,8 +83,8 @@ DIALOG_EXCHANGE_FOOTPRINTS_BASE::DIALOG_EXCHANGE_FOOTPRINTS_BASE( wxWindow* pare
|
||||||
|
|
||||||
bSizer3->Add( m_newID, 1, wxALIGN_CENTER_VERTICAL, 5 );
|
bSizer3->Add( m_newID, 1, wxALIGN_CENTER_VERTICAL, 5 );
|
||||||
|
|
||||||
m_newIDBrowseButton = new wxBitmapButton( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW|0 );
|
m_newIDBrowseButton = new STD_BITMAP_BUTTON( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW|0 );
|
||||||
bSizer3->Add( m_newIDBrowseButton, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 2 );
|
bSizer3->Add( m_newIDBrowseButton, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 2 );
|
||||||
|
|
||||||
|
|
||||||
m_changeSizer->Add( bSizer3, 1, wxEXPAND|wxLEFT, 5 );
|
m_changeSizer->Add( bSizer3, 1, wxEXPAND|wxLEFT, 5 );
|
||||||
|
|
|
@ -634,7 +634,7 @@
|
||||||
</object>
|
</object>
|
||||||
<object class="sizeritem" expanded="1">
|
<object class="sizeritem" expanded="1">
|
||||||
<property name="border">2</property>
|
<property name="border">2</property>
|
||||||
<property name="flag">wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT</property>
|
<property name="flag">wxALIGN_CENTER_VERTICAL|wxRIGHT</property>
|
||||||
<property name="proportion">0</property>
|
<property name="proportion">0</property>
|
||||||
<object class="wxBitmapButton" expanded="1">
|
<object class="wxBitmapButton" expanded="1">
|
||||||
<property name="BottomDockable">1</property>
|
<property name="BottomDockable">1</property>
|
||||||
|
@ -693,7 +693,7 @@
|
||||||
<property name="show">1</property>
|
<property name="show">1</property>
|
||||||
<property name="size"></property>
|
<property name="size"></property>
|
||||||
<property name="style"></property>
|
<property name="style"></property>
|
||||||
<property name="subclass">; forward_declare</property>
|
<property name="subclass">STD_BITMAP_BUTTON; widgets/std_bitmap_button.h; forward_declare</property>
|
||||||
<property name="toolbar_pane">0</property>
|
<property name="toolbar_pane">0</property>
|
||||||
<property name="tooltip"></property>
|
<property name="tooltip"></property>
|
||||||
<property name="validator_data_type"></property>
|
<property name="validator_data_type"></property>
|
||||||
|
@ -911,7 +911,7 @@
|
||||||
</object>
|
</object>
|
||||||
<object class="sizeritem" expanded="1">
|
<object class="sizeritem" expanded="1">
|
||||||
<property name="border">2</property>
|
<property name="border">2</property>
|
||||||
<property name="flag">wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT</property>
|
<property name="flag">wxALIGN_CENTER_VERTICAL|wxRIGHT</property>
|
||||||
<property name="proportion">0</property>
|
<property name="proportion">0</property>
|
||||||
<object class="wxBitmapButton" expanded="1">
|
<object class="wxBitmapButton" expanded="1">
|
||||||
<property name="BottomDockable">1</property>
|
<property name="BottomDockable">1</property>
|
||||||
|
@ -970,7 +970,7 @@
|
||||||
<property name="show">1</property>
|
<property name="show">1</property>
|
||||||
<property name="size"></property>
|
<property name="size"></property>
|
||||||
<property name="style"></property>
|
<property name="style"></property>
|
||||||
<property name="subclass">; forward_declare</property>
|
<property name="subclass">STD_BITMAP_BUTTON; widgets/std_bitmap_button.h; forward_declare</property>
|
||||||
<property name="toolbar_pane">0</property>
|
<property name="toolbar_pane">0</property>
|
||||||
<property name="tooltip"></property>
|
<property name="tooltip"></property>
|
||||||
<property name="validator_data_type"></property>
|
<property name="validator_data_type"></property>
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
#include <wx/artprov.h>
|
#include <wx/artprov.h>
|
||||||
#include <wx/xrc/xmlres.h>
|
#include <wx/xrc/xmlres.h>
|
||||||
#include <wx/intl.h>
|
#include <wx/intl.h>
|
||||||
|
class STD_BITMAP_BUTTON;
|
||||||
class WX_HTML_REPORT_PANEL;
|
class WX_HTML_REPORT_PANEL;
|
||||||
|
|
||||||
#include "dialog_shim.h"
|
#include "dialog_shim.h"
|
||||||
|
@ -55,10 +56,10 @@ class DIALOG_EXCHANGE_FOOTPRINTS_BASE : public DIALOG_SHIM
|
||||||
wxTextCtrl* m_specifiedValue;
|
wxTextCtrl* m_specifiedValue;
|
||||||
wxRadioButton* m_matchSpecifiedID;
|
wxRadioButton* m_matchSpecifiedID;
|
||||||
wxTextCtrl* m_specifiedID;
|
wxTextCtrl* m_specifiedID;
|
||||||
wxBitmapButton* m_specifiedIDBrowseButton;
|
STD_BITMAP_BUTTON* m_specifiedIDBrowseButton;
|
||||||
wxBoxSizer* m_changeSizer;
|
wxBoxSizer* m_changeSizer;
|
||||||
wxTextCtrl* m_newID;
|
wxTextCtrl* m_newID;
|
||||||
wxBitmapButton* m_newIDBrowseButton;
|
STD_BITMAP_BUTTON* m_newIDBrowseButton;
|
||||||
wxStaticBoxSizer* m_updateOptionsSizer;
|
wxStaticBoxSizer* m_updateOptionsSizer;
|
||||||
wxCheckBox* m_removeExtraBox;
|
wxCheckBox* m_removeExtraBox;
|
||||||
wxCheckBox* m_resetTextItemLayers;
|
wxCheckBox* m_resetTextItemLayers;
|
||||||
|
|
|
@ -210,8 +210,24 @@ bool EDIT_TOOL::Init()
|
||||||
auto singleFootprintCondition = SELECTION_CONDITIONS::OnlyTypes( { PCB_FOOTPRINT_T } )
|
auto singleFootprintCondition = SELECTION_CONDITIONS::OnlyTypes( { PCB_FOOTPRINT_T } )
|
||||||
&& SELECTION_CONDITIONS::Count( 1 );
|
&& SELECTION_CONDITIONS::Count( 1 );
|
||||||
|
|
||||||
auto multipleFootprintsCondition = SELECTION_CONDITIONS::OnlyTypes( { PCB_FOOTPRINT_T } )
|
auto multipleFootprintsCondition =
|
||||||
&& SELECTION_CONDITIONS::MoreThan( 1 );
|
[]( const SELECTION& aSelection )
|
||||||
|
{
|
||||||
|
bool foundFirst = false;
|
||||||
|
|
||||||
|
for( EDA_ITEM* item : aSelection )
|
||||||
|
{
|
||||||
|
if( item->Type() == PCB_FOOTPRINT_T )
|
||||||
|
{
|
||||||
|
if( foundFirst )
|
||||||
|
return true;
|
||||||
|
else
|
||||||
|
foundFirst = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
};
|
||||||
|
|
||||||
auto noActiveToolCondition =
|
auto noActiveToolCondition =
|
||||||
[ this ]( const SELECTION& aSelection )
|
[ this ]( const SELECTION& aSelection )
|
||||||
|
|
|
@ -79,7 +79,7 @@ int GLOBAL_EDIT_TOOL::ExchangeFootprints( const TOOL_EVENT& aEvent )
|
||||||
else if( aEvent.IsAction( &PCB_ACTIONS::updateFootprints ) )
|
else if( aEvent.IsAction( &PCB_ACTIONS::updateFootprints ) )
|
||||||
{
|
{
|
||||||
updateMode = true;
|
updateMode = true;
|
||||||
currentMode = false;
|
currentMode = selection.CountType( PCB_FOOTPRINT_T ) > 0;
|
||||||
}
|
}
|
||||||
else if( aEvent.IsAction( &PCB_ACTIONS::changeFootprint ) )
|
else if( aEvent.IsAction( &PCB_ACTIONS::changeFootprint ) )
|
||||||
{
|
{
|
||||||
|
@ -89,7 +89,7 @@ int GLOBAL_EDIT_TOOL::ExchangeFootprints( const TOOL_EVENT& aEvent )
|
||||||
else if( aEvent.IsAction( &PCB_ACTIONS::changeFootprints ) )
|
else if( aEvent.IsAction( &PCB_ACTIONS::changeFootprints ) )
|
||||||
{
|
{
|
||||||
updateMode = false;
|
updateMode = false;
|
||||||
currentMode = false;
|
currentMode = selection.CountType( PCB_FOOTPRINT_T ) > 0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue