From a2e115833c605e2420e0daa49fb781754d46899f Mon Sep 17 00:00:00 2001
From: Ian McInerney <ian.s.mcinerney@ieee.org>
Date: Thu, 2 Jan 2025 14:42:06 +0000
Subject: [PATCH] Cleanup UI for global edit tracks and pad dialog

* Don't hide the annular rings control - makes confusing UI
* Always show annular rings control - all boards must have >2 layers
  anyway
* Move into single column of choice boxes to be cleaner and take less
  monitor space

https://gitlab.com/kicad/code/kicad/-/issues/19457
---
 .../dialog_global_edit_tracks_and_vias.cpp    |  3 --
 ...ialog_global_edit_tracks_and_vias_base.cpp | 23 ++------
 ...ialog_global_edit_tracks_and_vias_base.fbp | 54 +++----------------
 3 files changed, 12 insertions(+), 68 deletions(-)

diff --git a/pcbnew/dialogs/dialog_global_edit_tracks_and_vias.cpp b/pcbnew/dialogs/dialog_global_edit_tracks_and_vias.cpp
index 2462df52c1..6bdeb8ac26 100644
--- a/pcbnew/dialogs/dialog_global_edit_tracks_and_vias.cpp
+++ b/pcbnew/dialogs/dialog_global_edit_tracks_and_vias.cpp
@@ -145,9 +145,6 @@ DIALOG_GLOBAL_EDIT_TRACKS_AND_VIAS::DIALOG_GLOBAL_EDIT_TRACKS_AND_VIAS( PCB_EDIT
     m_layerCtrl->SetUndefinedLayerName( INDETERMINATE_ACTION );
     m_layerCtrl->Resync();
 
-    m_annularRingsLabel->Show( m_brd->GetCopperLayerCount() > 2 );
-    m_annularRingsCtrl->Show( m_brd->GetCopperLayerCount() > 2 );
-
     if( g_setToSpecifiedValues == true )
         m_setToSpecifiedValues->SetValue( true );
     else
diff --git a/pcbnew/dialogs/dialog_global_edit_tracks_and_vias_base.cpp b/pcbnew/dialogs/dialog_global_edit_tracks_and_vias_base.cpp
index 63fdbb7a05..b9c5f71c1d 100644
--- a/pcbnew/dialogs/dialog_global_edit_tracks_and_vias_base.cpp
+++ b/pcbnew/dialogs/dialog_global_edit_tracks_and_vias_base.cpp
@@ -135,10 +135,9 @@ DIALOG_GLOBAL_EDIT_TRACKS_AND_VIAS_BASE::DIALOG_GLOBAL_EDIT_TRACKS_AND_VIAS_BASE
 	sbAction->Add( m_setToSpecifiedValues, 0, 0, 5 );
 
 	wxFlexGridSizer* fgSizerTrackViaPopups;
-	fgSizerTrackViaPopups = new wxFlexGridSizer( 3, 4, 0, 0 );
+	fgSizerTrackViaPopups = new wxFlexGridSizer( 4, 2, 0, 0 );
 	fgSizerTrackViaPopups->AddGrowableCol( 0 );
 	fgSizerTrackViaPopups->AddGrowableCol( 1 );
-	fgSizerTrackViaPopups->AddGrowableCol( 2 );
 	fgSizerTrackViaPopups->AddGrowableRow( 0 );
 	fgSizerTrackViaPopups->AddGrowableRow( 1 );
 	fgSizerTrackViaPopups->SetFlexibleDirection( wxBOTH );
@@ -151,12 +150,6 @@ DIALOG_GLOBAL_EDIT_TRACKS_AND_VIAS_BASE::DIALOG_GLOBAL_EDIT_TRACKS_AND_VIAS_BASE
 	m_layerCtrl = new PCB_LAYER_BOX_SELECTOR( sbAction->GetStaticBox(), wxID_ANY, _("-- leave unchanged --  "), wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
 	fgSizerTrackViaPopups->Add( m_layerCtrl, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
 
-
-	fgSizerTrackViaPopups->Add( 0, 0, 1, wxEXPAND, 5 );
-
-
-	fgSizerTrackViaPopups->Add( 0, 0, 1, wxEXPAND, 5 );
-
 	m_trackWidthLabel = new wxStaticText( sbAction->GetStaticBox(), wxID_ANY, _("Track width:"), wxDefaultPosition, wxDefaultSize, 0 );
 	m_trackWidthLabel->Wrap( -1 );
 	fgSizerTrackViaPopups->Add( m_trackWidthLabel, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM, 5 );
@@ -166,30 +159,24 @@ DIALOG_GLOBAL_EDIT_TRACKS_AND_VIAS_BASE::DIALOG_GLOBAL_EDIT_TRACKS_AND_VIAS_BASE
 	m_trackWidthCtrl->SetSelection( 0 );
 	fgSizerTrackViaPopups->Add( m_trackWidthCtrl, 4, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
 
-
-	fgSizerTrackViaPopups->Add( 0, 0, 1, wxEXPAND, 5 );
-
-
-	fgSizerTrackViaPopups->Add( 0, 0, 1, wxEXPAND, 5 );
-
 	m_viaSizeLabel = new wxStaticText( sbAction->GetStaticBox(), wxID_ANY, _("Via size:"), wxDefaultPosition, wxDefaultSize, 0 );
 	m_viaSizeLabel->Wrap( -1 );
-	fgSizerTrackViaPopups->Add( m_viaSizeLabel, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+	fgSizerTrackViaPopups->Add( m_viaSizeLabel, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 );
 
 	wxArrayString m_viaSizesCtrlChoices;
 	m_viaSizesCtrl = new wxChoice( sbAction->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_viaSizesCtrlChoices, 0 );
 	m_viaSizesCtrl->SetSelection( 0 );
-	fgSizerTrackViaPopups->Add( m_viaSizesCtrl, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
+	fgSizerTrackViaPopups->Add( m_viaSizesCtrl, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 );
 
 	m_annularRingsLabel = new wxStaticText( sbAction->GetStaticBox(), wxID_ANY, _("Annular rings:"), wxDefaultPosition, wxDefaultSize, 0 );
 	m_annularRingsLabel->Wrap( -1 );
-	fgSizerTrackViaPopups->Add( m_annularRingsLabel, 0, wxLEFT|wxALIGN_CENTER_VERTICAL, 15 );
+	fgSizerTrackViaPopups->Add( m_annularRingsLabel, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 15 );
 
 	wxString m_annularRingsCtrlChoices[] = { _("All copper layers"), _("Start, end, and connected layers"), _("Connected layers only") };
 	int m_annularRingsCtrlNChoices = sizeof( m_annularRingsCtrlChoices ) / sizeof( wxString );
 	m_annularRingsCtrl = new wxChoice( sbAction->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_annularRingsCtrlNChoices, m_annularRingsCtrlChoices, 0 );
 	m_annularRingsCtrl->SetSelection( 1 );
-	fgSizerTrackViaPopups->Add( m_annularRingsCtrl, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
+	fgSizerTrackViaPopups->Add( m_annularRingsCtrl, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxLEFT|wxRIGHT, 5 );
 
 
 	sbAction->Add( fgSizerTrackViaPopups, 0, wxBOTTOM|wxEXPAND|wxLEFT, 25 );
diff --git a/pcbnew/dialogs/dialog_global_edit_tracks_and_vias_base.fbp b/pcbnew/dialogs/dialog_global_edit_tracks_and_vias_base.fbp
index 4891cc6ed6..ba67d9dfe3 100644
--- a/pcbnew/dialogs/dialog_global_edit_tracks_and_vias_base.fbp
+++ b/pcbnew/dialogs/dialog_global_edit_tracks_and_vias_base.fbp
@@ -1248,16 +1248,16 @@
               <property name="flag">wxBOTTOM|wxEXPAND|wxLEFT</property>
               <property name="proportion">0</property>
               <object class="wxFlexGridSizer" expanded="true">
-                <property name="cols">4</property>
+                <property name="cols">2</property>
                 <property name="flexible_direction">wxBOTH</property>
-                <property name="growablecols">0,1,2</property>
+                <property name="growablecols">0,1</property>
                 <property name="growablerows">0,1</property>
                 <property name="hgap">0</property>
                 <property name="minimum_size"></property>
                 <property name="name">fgSizerTrackViaPopups</property>
                 <property name="non_flexible_grow_mode">wxFLEX_GROWMODE_NONE</property>
                 <property name="permission">none</property>
-                <property name="rows">3</property>
+                <property name="rows">4</property>
                 <property name="vgap">0</property>
                 <object class="sizeritem" expanded="true">
                   <property name="border">5</property>
@@ -1387,26 +1387,6 @@
                     <property name="window_style"></property>
                   </object>
                 </object>
-                <object class="sizeritem" expanded="true">
-                  <property name="border">5</property>
-                  <property name="flag">wxEXPAND</property>
-                  <property name="proportion">1</property>
-                  <object class="spacer" expanded="true">
-                    <property name="height">0</property>
-                    <property name="permission">protected</property>
-                    <property name="width">0</property>
-                  </object>
-                </object>
-                <object class="sizeritem" expanded="true">
-                  <property name="border">5</property>
-                  <property name="flag">wxEXPAND</property>
-                  <property name="proportion">1</property>
-                  <object class="spacer" expanded="true">
-                    <property name="height">0</property>
-                    <property name="permission">protected</property>
-                    <property name="width">0</property>
-                  </object>
-                </object>
                 <object class="sizeritem" expanded="true">
                   <property name="border">5</property>
                   <property name="flag">wxALIGN_CENTER_VERTICAL|wxBOTTOM</property>
@@ -1536,27 +1516,7 @@
                 </object>
                 <object class="sizeritem" expanded="true">
                   <property name="border">5</property>
-                  <property name="flag">wxEXPAND</property>
-                  <property name="proportion">1</property>
-                  <object class="spacer" expanded="true">
-                    <property name="height">0</property>
-                    <property name="permission">protected</property>
-                    <property name="width">0</property>
-                  </object>
-                </object>
-                <object class="sizeritem" expanded="true">
-                  <property name="border">5</property>
-                  <property name="flag">wxEXPAND</property>
-                  <property name="proportion">1</property>
-                  <object class="spacer" expanded="true">
-                    <property name="height">0</property>
-                    <property name="permission">protected</property>
-                    <property name="width">0</property>
-                  </object>
-                </object>
-                <object class="sizeritem" expanded="true">
-                  <property name="border">5</property>
-                  <property name="flag">wxALIGN_CENTER_VERTICAL|wxRIGHT</property>
+                  <property name="flag">wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT</property>
                   <property name="proportion">0</property>
                   <object class="wxStaticText" expanded="true">
                     <property name="BottomDockable">1</property>
@@ -1618,7 +1578,7 @@
                 </object>
                 <object class="sizeritem" expanded="true">
                   <property name="border">5</property>
-                  <property name="flag">wxEXPAND|wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT</property>
+                  <property name="flag">wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT</property>
                   <property name="proportion">0</property>
                   <object class="wxChoice" expanded="true">
                     <property name="BottomDockable">1</property>
@@ -1683,7 +1643,7 @@
                 </object>
                 <object class="sizeritem" expanded="true">
                   <property name="border">15</property>
-                  <property name="flag">wxLEFT|wxALIGN_CENTER_VERTICAL</property>
+                  <property name="flag">wxALIGN_CENTER_VERTICAL|wxRIGHT</property>
                   <property name="proportion">0</property>
                   <object class="wxStaticText" expanded="true">
                     <property name="BottomDockable">1</property>
@@ -1745,7 +1705,7 @@
                 </object>
                 <object class="sizeritem" expanded="true">
                   <property name="border">5</property>
-                  <property name="flag">wxALIGN_CENTER_VERTICAL|wxLEFT</property>
+                  <property name="flag">wxALIGN_CENTER_VERTICAL|wxEXPAND|wxLEFT|wxRIGHT</property>
                   <property name="proportion">0</property>
                   <object class="wxChoice" expanded="true">
                     <property name="BottomDockable">1</property>