From 82ead56d9a38cc02fd33dbdeb1209bb9b77f706e Mon Sep 17 00:00:00 2001 From: Wayne Stambaugh Date: Sat, 22 Feb 2025 15:48:00 -0500 Subject: [PATCH] Fix zone manager dialog layout issues. Fixes https://gitlab.com/kicad/code/kicad/-/issues/20046 (cherry picked from commit 4e4ebe536e32d3c944317aad7d7a4b5a65233488) --- pcbnew/zone_manager/dialog_zone_manager.cpp | 2 +- .../zone_manager/dialog_zone_manager_base.cpp | 19 ++++++++------- .../zone_manager/dialog_zone_manager_base.fbp | 24 +++++++++---------- .../zone_manager/dialog_zone_manager_base.h | 2 +- 4 files changed, 24 insertions(+), 23 deletions(-) diff --git a/pcbnew/zone_manager/dialog_zone_manager.cpp b/pcbnew/zone_manager/dialog_zone_manager.cpp index ebadae9d04..e19549d05a 100644 --- a/pcbnew/zone_manager/dialog_zone_manager.cpp +++ b/pcbnew/zone_manager/dialog_zone_manager.cpp @@ -76,7 +76,7 @@ DIALOG_ZONE_MANAGER::DIALOG_ZONE_MANAGER( PCB_BASE_FRAME* aParent, ZONE_SETTINGS m_sizerProperties->Add( m_panelZoneProperties, 1, wxTOP | wxEXPAND, 5 ); m_zoneViewer = new PANE_ZONE_VIEWER( this, aParent ); - m_sizerTop->Add( m_zoneViewer, 1, wxBOTTOM | wxLEFT | wxEXPAND, 10 ); + m_sizerTop->Add( m_zoneViewer, 1, wxBOTTOM | wxLEFT | wxRIGHT | wxEXPAND, 5 ); m_checkRepour->SetValue( ZONE_MANAGER_PREFERENCE::GetRepourOnClose() ); //m_zoneViewer->SetId( ZONE_VIEWER ); diff --git a/pcbnew/zone_manager/dialog_zone_manager_base.cpp b/pcbnew/zone_manager/dialog_zone_manager_base.cpp index 00c905ee8e..81a2fdad5b 100644 --- a/pcbnew/zone_manager/dialog_zone_manager_base.cpp +++ b/pcbnew/zone_manager/dialog_zone_manager_base.cpp @@ -30,7 +30,7 @@ DIALOG_ZONE_MANAGER_BASE::DIALOG_ZONE_MANAGER_BASE( wxWindow* parent, wxWindowID m_filterCtrl->ShowSearchButton( true ); #endif m_filterCtrl->ShowCancelButton( true ); - searchSizer->Add( m_filterCtrl, 1, wxEXPAND|wxBOTTOM, 1 ); + searchSizer->Add( m_filterCtrl, 1, wxALIGN_CENTER_VERTICAL, 1 ); searchSizer->Add( 10, 0, 0, wxEXPAND, 5 ); @@ -44,12 +44,12 @@ DIALOG_ZONE_MANAGER_BASE::DIALOG_ZONE_MANAGER_BASE( wxWindow* parent, wxWindowID searchSizer->Add( m_checkNet, 0, wxALIGN_CENTER_VERTICAL, 5 ); - leftColumn->Add( searchSizer, 0, wxEXPAND|wxTOP|wxBOTTOM, 3 ); + leftColumn->Add( searchSizer, 0, wxBOTTOM|wxEXPAND|wxTOP, 5 ); m_viewZonesOverview = new wxDataViewCtrl( this, wxID_ANY, wxDefaultPosition, wxSize( -1,240 ), wxDV_HORIZ_RULES|wxDV_SINGLE|wxDV_VERT_RULES ); m_viewZonesOverview->SetMinSize( wxSize( -1,240 ) ); - leftColumn->Add( m_viewZonesOverview, 1, wxEXPAND, 0 ); + leftColumn->Add( m_viewZonesOverview, 1, wxEXPAND, 5 ); m_sizerZoneOP = new wxBoxSizer( wxHORIZONTAL ); @@ -67,10 +67,10 @@ DIALOG_ZONE_MANAGER_BASE::DIALOG_ZONE_MANAGER_BASE( wxWindow* parent, wxWindowID leftColumn->Add( m_sizerZoneOP, 0, wxEXPAND|wxTOP, 5 ); - m_sizerTop->Add( leftColumn, 1, wxEXPAND|wxTOP|wxRIGHT, 5 ); + m_sizerTop->Add( leftColumn, 1, wxEXPAND|wxLEFT, 5 ); - m_MainBoxSizer->Add( m_sizerTop, 1, wxEXPAND|wxRIGHT|wxLEFT, 10 ); + m_MainBoxSizer->Add( m_sizerTop, 1, wxEXPAND|wxLEFT|wxRIGHT, 5 ); m_sizerProperties = new wxBoxSizer( wxVERTICAL ); @@ -82,7 +82,7 @@ DIALOG_ZONE_MANAGER_BASE::DIALOG_ZONE_MANAGER_BASE( wxWindow* parent, wxWindowID m_checkRepour = new wxCheckBox( this, wxID_ANY, _("Refill zones"), wxDefaultPosition, wxDefaultSize, 0 ); m_checkRepour->SetToolTip( _("Refill zones after changes made on board") ); - m_sizerBottom->Add( m_checkRepour, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 10 ); + m_sizerBottom->Add( m_checkRepour, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 ); m_sizerBottom->Add( 25, 0, 1, wxEXPAND, 5 ); @@ -90,7 +90,7 @@ DIALOG_ZONE_MANAGER_BASE::DIALOG_ZONE_MANAGER_BASE( wxWindow* parent, wxWindowID m_updateDisplayedZones = new wxButton( this, wxID_ANY, _("Update Displayed Zones"), wxDefaultPosition, wxDefaultSize, 0 ); m_updateDisplayedZones->SetToolTip( _("Update filled areas shown in dialog, according to the new current settings") ); - m_sizerBottom->Add( m_updateDisplayedZones, 0, wxALL, 5 ); + m_sizerBottom->Add( m_updateDisplayedZones, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 ); m_sdbSizer = new wxStdDialogButtonSizer(); m_sdbSizerOK = new wxButton( this, wxID_OK ); @@ -99,14 +99,15 @@ DIALOG_ZONE_MANAGER_BASE::DIALOG_ZONE_MANAGER_BASE( wxWindow* parent, wxWindowID m_sdbSizer->AddButton( m_sdbSizerCancel ); m_sdbSizer->Realize(); - m_sizerBottom->Add( m_sdbSizer, 0, wxALL|wxEXPAND, 5 ); + m_sizerBottom->Add( m_sdbSizer, 0, wxEXPAND, 5 ); - m_MainBoxSizer->Add( m_sizerBottom, 0, wxEXPAND, 5 ); + m_MainBoxSizer->Add( m_sizerBottom, 0, wxBOTTOM|wxEXPAND|wxTOP, 5 ); this->SetSizer( m_MainBoxSizer ); this->Layout(); + m_MainBoxSizer->Fit( this ); // Connect Events this->Connect( wxEVT_SIZE, wxSizeEventHandler( DIALOG_ZONE_MANAGER_BASE::onDialogResize ) ); diff --git a/pcbnew/zone_manager/dialog_zone_manager_base.fbp b/pcbnew/zone_manager/dialog_zone_manager_base.fbp index 541b35386b..60978e03dc 100644 --- a/pcbnew/zone_manager/dialog_zone_manager_base.fbp +++ b/pcbnew/zone_manager/dialog_zone_manager_base.fbp @@ -50,7 +50,7 @@ -1,-1 DIALOG_ZONE_MANAGER_BASE - 556,369 + -1,-1 wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER DIALOG_SHIM; dialog_shim.h Zone Manager @@ -66,8 +66,8 @@ wxVERTICAL protected - 10 - wxEXPAND|wxRIGHT|wxLEFT + 5 + wxEXPAND|wxLEFT|wxRIGHT 1 @@ -76,7 +76,7 @@ protected 5 - wxEXPAND|wxTOP|wxRIGHT + wxEXPAND|wxLEFT 1 @@ -84,8 +84,8 @@ wxVERTICAL none - 3 - wxEXPAND|wxTOP|wxBOTTOM + 5 + wxBOTTOM|wxEXPAND|wxTOP 0 @@ -94,7 +94,7 @@ none 1 - wxEXPAND|wxBOTTOM + wxALIGN_CENTER_VERTICAL 1 1 @@ -305,7 +305,7 @@ - 0 + 5 wxEXPAND 1 @@ -514,7 +514,7 @@ 5 - wxEXPAND + wxBOTTOM|wxEXPAND|wxTOP 0 @@ -522,7 +522,7 @@ wxHORIZONTAL protected - 10 + 5 wxALIGN_CENTER_VERTICAL|wxLEFT 0 @@ -599,7 +599,7 @@ 5 - wxALL + wxALIGN_CENTER_VERTICAL|wxRIGHT 0 1 @@ -674,7 +674,7 @@ 5 - wxALL|wxEXPAND + wxEXPAND 0 0 diff --git a/pcbnew/zone_manager/dialog_zone_manager_base.h b/pcbnew/zone_manager/dialog_zone_manager_base.h index 9ce2572506..696c709d9f 100644 --- a/pcbnew/zone_manager/dialog_zone_manager_base.h +++ b/pcbnew/zone_manager/dialog_zone_manager_base.h @@ -75,7 +75,7 @@ class DIALOG_ZONE_MANAGER_BASE : public DIALOG_SHIM public: - DIALOG_ZONE_MANAGER_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Zone Manager"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 556,369 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); + DIALOG_ZONE_MANAGER_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Zone Manager"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); ~DIALOG_ZONE_MANAGER_BASE();