From 2ff6a6aee1b3837dac49c2af6df3a33120ff6a7f Mon Sep 17 00:00:00 2001 From: Stefan Hamminga Date: Thu, 25 Aug 2022 09:26:25 +0300 Subject: [PATCH] Implement and enable option to not shove vias during push & shove routing --- pcbnew/dialogs/dialog_pns_settings.cpp | 1 - pcbnew/dialogs/dialog_pns_settings_base.cpp | 1 - pcbnew/router/pns_shove.cpp | 2 +- 3 files changed, 1 insertion(+), 3 deletions(-) diff --git a/pcbnew/dialogs/dialog_pns_settings.cpp b/pcbnew/dialogs/dialog_pns_settings.cpp index 43ca143cc6..d3757c04bf 100644 --- a/pcbnew/dialogs/dialog_pns_settings.cpp +++ b/pcbnew/dialogs/dialog_pns_settings.cpp @@ -55,7 +55,6 @@ DIALOG_PNS_SETTINGS::DIALOG_PNS_SETTINGS( wxWindow* aParent, PNS::ROUTING_SETTIN // Don't show options that are not implemented m_suggestEnding->Hide(); - m_shoveVias->Hide(); SetDefaultItem( m_stdButtonsOK ); GetSizer()->Fit( this ); diff --git a/pcbnew/dialogs/dialog_pns_settings_base.cpp b/pcbnew/dialogs/dialog_pns_settings_base.cpp index 26afa58248..1104621db7 100644 --- a/pcbnew/dialogs/dialog_pns_settings_base.cpp +++ b/pcbnew/dialogs/dialog_pns_settings_base.cpp @@ -29,7 +29,6 @@ DIALOG_PNS_SETTINGS_BASE::DIALOG_PNS_SETTINGS_BASE( wxWindow* parent, wxWindowID bOptions->Add( m_freeAngleMode, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); m_shoveVias = new wxCheckBox( bOptions->GetStaticBox(), wxID_ANY, _("Shove vias"), wxDefaultPosition, wxDefaultSize, 0 ); - m_shoveVias->Enable( false ); m_shoveVias->SetToolTip( _("When disabled, vias are treated as un-movable objects and hugged instead of shoved.") ); bOptions->Add( m_shoveVias, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); diff --git a/pcbnew/router/pns_shove.cpp b/pcbnew/router/pns_shove.cpp index 42ba929ddf..df20ba9e89 100644 --- a/pcbnew/router/pns_shove.cpp +++ b/pcbnew/router/pns_shove.cpp @@ -880,7 +880,7 @@ SHOVE::SHOVE_STATUS SHOVE::pushOrShoveVia( VIA* aVia, const VECTOR2I& aForce, in return SH_INCOMPLETE; } - if( aVia->IsLocked() ) + if( Settings().ShoveVias() == false || aVia->IsLocked() ) return SH_TRY_WALK; if( jt->IsLocked() )