Make use of polymorphism for locking/unlocking.

Fixes https://gitlab.com/kicad/code/kicad/issues/6350
This commit is contained in:
Jeff Young 2020-11-10 22:07:30 +00:00
parent 13e939ffa0
commit 3a35a5d5f8
4 changed files with 3 additions and 33 deletions

View File

@ -433,7 +433,7 @@ bool DIALOG_TRACK_VIA_PROPERTIES::TransferDataFromWindow()
bool changeLock = m_lockedCbox->Get3StateValue() != wxCHK_UNDETERMINED; bool changeLock = m_lockedCbox->Get3StateValue() != wxCHK_UNDETERMINED;
bool setLock = m_lockedCbox->Get3StateValue() == wxCHK_CHECKED; bool setLock = m_lockedCbox->Get3StateValue() == wxCHK_CHECKED;
for( auto item : m_items ) for( EDA_ITEM* item : m_items )
{ {
m_commit.Modify( item ); m_commit.Modify( item );

View File

@ -215,14 +215,9 @@ void CLIPBOARD_IO::SaveSelection( const PCBNEW_SELECTION& aSelected, bool isModE
copy = static_cast<BOARD_ITEM*>( item->Clone() ); copy = static_cast<BOARD_ITEM*>( item->Clone() );
} }
auto prepItem = [&]( BOARD_ITEM* titem ) auto prepItem = [&]( BOARD_ITEM* aItem )
{ {
// locked means "locked in place"; copied items therefore can't aItem->SetLocked( false );
// be locked
if( MODULE* footprint = dyn_cast<MODULE*>( titem ) )
footprint->SetLocked( false );
else if( TRACK* track = dyn_cast<TRACK*>( titem ) )
track->SetLocked( false );
}; };
if( copy ) if( copy )

View File

@ -1601,29 +1601,6 @@ void PCB_EDIT_FRAME::ProjectChanged()
} }
void PCB_EDIT_FRAME::LockModule( MODULE* aModule, bool aLocked )
{
const wxString ModulesMaskSelection = wxT( "*" );
if( aModule )
{
aModule->SetLocked( aLocked );
SetMsgPanel( aModule );
OnModify();
}
else
{
for( auto mod : GetBoard()->Modules() )
{
if( WildCompareString( ModulesMaskSelection, mod->GetReference() ) )
{
mod->SetLocked( aLocked );
OnModify();
}
}
}
}
bool ExportBoardToHyperlynx( BOARD* aBoard, const wxFileName& aPath ); bool ExportBoardToHyperlynx( BOARD* aBoard, const wxFileName& aPath );

View File

@ -850,8 +850,6 @@ public:
void ScriptingConsoleEnableDisable(); void ScriptingConsoleEnableDisable();
#endif #endif
void LockModule( MODULE* aModule, bool aLocked );
/** /**
* Function SendMessageToEESCHEMA * Function SendMessageToEESCHEMA
* sends a message to the schematic editor so that it may move its cursor * sends a message to the schematic editor so that it may move its cursor