From 149a0f58a8c023567b7e6c77c70c2c7ea0e094ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabi=C3=A1n=20Inostroza?= Date: Tue, 3 Jul 2018 02:54:45 -0400 Subject: [PATCH] Add checkbox to the interactive router settings dialog to change initial track posture. MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------2.18.0" This is a multi-part message in MIME format. --------------2.18.0 Content-Type: text/plain; charset=UTF-8; format=fixed Content-Transfer-Encoding: 8bit --- pcbnew/dialogs/dialog_pns_settings.cpp | 2 + pcbnew/dialogs/dialog_pns_settings_base.cpp | 9 ++- pcbnew/dialogs/dialog_pns_settings_base.fbp | 88 +++++++++++++++++++++ pcbnew/dialogs/dialog_pns_settings_base.h | 4 +- pcbnew/router/pns_routing_settings.h | 1 + 5 files changed, 102 insertions(+), 2 deletions(-) --------------2.18.0 Content-Type: text/x-patch; name="0001-Add-checkbox-to-the-interactive-router-settings-dial.patch" Content-Transfer-Encoding: 8bit Content-Disposition: attachment; filename="0001-Add-checkbox-to-the-interactive-router-settings-dial.patch" diff --git a/pcbnew/dialogs/dialog_pns_settings.cpp b/pcbnew/dialogs/dialog_pns_settings.cpp index 5d79c1a62..b89c167dc 100644 --- a/pcbnew/dialogs/dialog_pns_settings.cpp +++ b/pcbnew/dialogs/dialog_pns_settings.cpp @@ -47,6 +47,7 @@ DIALOG_PNS_SETTINGS::DIALOG_PNS_SETTINGS( wxWindow* aParent, PNS::ROUTING_SETTIN m_violateDrc->SetValue( m_settings.CanViolateDRC() ); m_freeAngleMode->SetValue( m_settings.GetFreeAngleMode() ); m_dragToolMode->SetSelection ( m_settings.InlineDragEnabled() ? 1 : 0 ); + m_startDiagonal->SetValue ( m_settings.StartDiagonal() ? 1 : 0 ); // Don't show options that are not implemented m_suggestEnding->Hide(); @@ -72,6 +73,7 @@ void DIALOG_PNS_SETTINGS::OnOkClick( wxCommandEvent& aEvent ) m_settings.SetCanViolateDRC( m_violateDrc->GetValue() ); m_settings.SetFreeAngleMode( m_freeAngleMode->GetValue() ); m_settings.SetInlineDragEnabled( m_dragToolMode->GetSelection () ? true : false ); + m_settings.SetStartDiagonal( m_startDiagonal->GetValue() ); aEvent.Skip(); // ends returning wxID_OK (default behavior) } diff --git a/pcbnew/dialogs/dialog_pns_settings_base.cpp b/pcbnew/dialogs/dialog_pns_settings_base.cpp index 01e51a6ac..c35d1ec55 100644 --- a/pcbnew/dialogs/dialog_pns_settings_base.cpp +++ b/pcbnew/dialogs/dialog_pns_settings_base.cpp @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version Apr 19 2018) +// C++ code generated with wxFormBuilder (version Jul 3 2018) // http://www.wxformbuilder.org/ // // PLEASE DO *NOT* EDIT THIS FILE! @@ -83,6 +83,11 @@ DIALOG_PNS_SETTINGS_BASE::DIALOG_PNS_SETTINGS_BASE( wxWindow* parent, wxWindowID bOptions->Add( m_suggestEnding, 0, wxALL, 5 ); + m_startDiagonal = new wxCheckBox( bOptions->GetStaticBox(), wxID_ANY, _("Start tracks in diagonal direction"), wxDefaultPosition, wxDefaultSize, 0 ); + m_startDiagonal->SetToolTip( _("When enabled, the initial track posture will be 45 degrees") ); + + bOptions->Add( m_startDiagonal, 0, wxALL, 5 ); + m_staticline1 = new wxStaticLine( bOptions->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL ); bOptions->Add( m_staticline1, 0, wxEXPAND | wxALL, 5 ); @@ -151,6 +156,7 @@ DIALOG_PNS_SETTINGS_BASE::DIALOG_PNS_SETTINGS_BASE( wxWindow* parent, wxWindowID // Connect Events m_mode->Connect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( DIALOG_PNS_SETTINGS_BASE::onModeChange ), NULL, this ); m_freeAngleMode->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PNS_SETTINGS_BASE::onFreeAngleModeChange ), NULL, this ); + m_startDiagonal->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PNS_SETTINGS_BASE::onStartDiagonalChange ), NULL, this ); m_stdButtonsOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PNS_SETTINGS_BASE::OnOkClick ), NULL, this ); } @@ -159,6 +165,7 @@ DIALOG_PNS_SETTINGS_BASE::~DIALOG_PNS_SETTINGS_BASE() // Disconnect Events m_mode->Disconnect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( DIALOG_PNS_SETTINGS_BASE::onModeChange ), NULL, this ); m_freeAngleMode->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PNS_SETTINGS_BASE::onFreeAngleModeChange ), NULL, this ); + m_startDiagonal->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_PNS_SETTINGS_BASE::onStartDiagonalChange ), NULL, this ); m_stdButtonsOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PNS_SETTINGS_BASE::OnOkClick ), NULL, this ); } diff --git a/pcbnew/dialogs/dialog_pns_settings_base.fbp b/pcbnew/dialogs/dialog_pns_settings_base.fbp index 1d72be008..1f0aeecec 100644 --- a/pcbnew/dialogs/dialog_pns_settings_base.fbp +++ b/pcbnew/dialogs/dialog_pns_settings_base.fbp @@ -1090,6 +1090,94 @@ + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Start tracks in diagonal direction + + 0 + + + 0 + + 1 + m_startDiagonal + 1 + + + protected + 1 + + Resizable + 1 + + + ; forward_declare + 0 + When enabled, the initial track posture will be 45 degrees + + wxFILTER_NONE + wxDefaultValidator + + + + + + onStartDiagonalChange + + + + + + + + + + + + + + + + + + + + + + + + 5 wxEXPAND | wxALL diff --git a/pcbnew/dialogs/dialog_pns_settings_base.h b/pcbnew/dialogs/dialog_pns_settings_base.h index 4f05ccadc..c0b50c72e 100644 --- a/pcbnew/dialogs/dialog_pns_settings_base.h +++ b/pcbnew/dialogs/dialog_pns_settings_base.h @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version Apr 19 2018) +// C++ code generated with wxFormBuilder (version Jul 3 2018) // http://www.wxformbuilder.org/ // // PLEASE DO *NOT* EDIT THIS FILE! @@ -50,6 +50,7 @@ class DIALOG_PNS_SETTINGS_BASE : public DIALOG_SHIM wxCheckBox* m_smoothDragged; wxCheckBox* m_violateDrc; wxCheckBox* m_suggestEnding; + wxCheckBox* m_startDiagonal; wxStaticLine* m_staticline1; wxStaticText* m_effortLabel; wxSlider* m_effort; @@ -62,6 +63,7 @@ class DIALOG_PNS_SETTINGS_BASE : public DIALOG_SHIM // Virtual event handlers, overide them in your derived class virtual void onModeChange( wxCommandEvent& event ) { event.Skip(); } virtual void onFreeAngleModeChange( wxCommandEvent& event ) { event.Skip(); } + virtual void onStartDiagonalChange( wxCommandEvent& event ) { event.Skip(); } virtual void OnOkClick( wxCommandEvent& event ) { event.Skip(); } diff --git a/pcbnew/router/pns_routing_settings.h b/pcbnew/router/pns_routing_settings.h index 46534bc3f..e382fc714 100644 --- a/pcbnew/router/pns_routing_settings.h +++ b/pcbnew/router/pns_routing_settings.h @@ -116,6 +116,7 @@ public: ///> Enables/disables jumping over unmovable obstacles. void SetJumpOverObstacles( bool aJumpOverObstacles ) { m_jumpOverObstacles = aJumpOverObstacles; } + bool StartDiagonal() const { return m_startDiagonal; } void SetStartDiagonal( bool aStartDiagonal ) { m_startDiagonal = aStartDiagonal; } bool CanViolateDRC() const { return m_canViolateDRC; } --------------2.18.0--