From cf2a98c05a2f5313454330faa9c1b8a0a1aeb96f Mon Sep 17 00:00:00 2001
From: Alex Shvartzkop <dudesuchamazing@gmail.com>
Date: Tue, 18 Feb 2025 22:59:45 +0300
Subject: [PATCH] Jobsets: make Execute Command job dialog usable for long
 strings.

Using a dummy string to keep decent sizing on high-DPI monitors.
---
 .../dialog_executecommand_job_settings.cpp    |  2 ++
 ...ialog_executecommand_job_settings_base.cpp | 13 ++++++----
 ...ialog_executecommand_job_settings_base.fbp | 26 +++++++++----------
 .../dialog_executecommand_job_settings_base.h |  2 +-
 4 files changed, 24 insertions(+), 19 deletions(-)

diff --git a/kicad/dialogs/dialog_executecommand_job_settings.cpp b/kicad/dialogs/dialog_executecommand_job_settings.cpp
index 087c112494..aaf6855cfc 100644
--- a/kicad/dialogs/dialog_executecommand_job_settings.cpp
+++ b/kicad/dialogs/dialog_executecommand_job_settings.cpp
@@ -27,6 +27,8 @@ DIALOG_EXECUTECOMMAND_JOB_SETTINGS::DIALOG_EXECUTECOMMAND_JOB_SETTINGS( wxWindow
         m_job( aJob )
 {
     SetupStandardButtons();
+
+    finishDialogSettings();
 }
 
 
diff --git a/kicad/dialogs/dialog_executecommand_job_settings_base.cpp b/kicad/dialogs/dialog_executecommand_job_settings_base.cpp
index a05c39d0f6..4657ab6993 100644
--- a/kicad/dialogs/dialog_executecommand_job_settings_base.cpp
+++ b/kicad/dialogs/dialog_executecommand_job_settings_base.cpp
@@ -18,17 +18,20 @@ DIALOG_EXECUTECOMMAND_JOB_SETTINGS_BASE::DIALOG_EXECUTECOMMAND_JOB_SETTINGS_BASE
 
 	wxFlexGridSizer* fgSizer1;
 	fgSizer1 = new wxFlexGridSizer( 0, 2, 5, 5 );
+	fgSizer1->AddGrowableCol( 1 );
+	fgSizer1->AddGrowableRow( 0 );
 	fgSizer1->SetFlexibleDirection( wxBOTH );
 	fgSizer1->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
 
 	m_textCommand = new wxStaticText( this, wxID_ANY, _("Command:"), wxDefaultPosition, wxDefaultSize, 0 );
 	m_textCommand->Wrap( -1 );
-	fgSizer1->Add( m_textCommand, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
+	fgSizer1->Add( m_textCommand, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
 
-	m_textCtrlCommand = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
-	m_textCtrlCommand->SetMinSize( wxSize( 350,-1 ) );
+	m_textCtrlCommand = new wxTextCtrl( this, wxID_ANY, _("Enter the command line to run SPICE\nUsually '<path to SPICE binary> \"%I\"'\n%I will be replaced by the netlist filepath"), wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE );
+	m_textCtrlCommand->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
+	m_textCtrlCommand->SetMinSize( wxSize( 400,-1 ) );
 
-	fgSizer1->Add( m_textCtrlCommand, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+	fgSizer1->Add( m_textCtrlCommand, 1, wxEXPAND|wxRIGHT, 5 );
 
 	m_textOutputPath = new wxStaticText( this, wxID_ANY, _("Output path:"), wxDefaultPosition, wxDefaultSize, 0 );
 	m_textOutputPath->Wrap( -1 );
@@ -37,7 +40,7 @@ DIALOG_EXECUTECOMMAND_JOB_SETTINGS_BASE::DIALOG_EXECUTECOMMAND_JOB_SETTINGS_BASE
 	m_textCtrlOutputPath = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
 	m_textCtrlOutputPath->SetMinSize( wxSize( 350,-1 ) );
 
-	fgSizer1->Add( m_textCtrlOutputPath, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
+	fgSizer1->Add( m_textCtrlOutputPath, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT, 5 );
 
 
 	bSizerMain->Add( fgSizer1, 1, wxALL|wxEXPAND, 5 );
diff --git a/kicad/dialogs/dialog_executecommand_job_settings_base.fbp b/kicad/dialogs/dialog_executecommand_job_settings_base.fbp
index f2d9058674..272bf0fdfd 100644
--- a/kicad/dialogs/dialog_executecommand_job_settings_base.fbp
+++ b/kicad/dialogs/dialog_executecommand_job_settings_base.fbp
@@ -50,8 +50,8 @@
       <property name="minimum_size"></property>
       <property name="name">DIALOG_EXECUTECOMMAND_JOB_SETTINGS_BASE</property>
       <property name="pos"></property>
-      <property name="size"></property>
-      <property name="style">wxDEFAULT_DIALOG_STYLE</property>
+      <property name="size">-1,-1</property>
+      <property name="style">wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER</property>
       <property name="subclass">DIALOG_SHIM; dialog_shim.h; forward_declare</property>
       <property name="title">Execute Command Job Settings</property>
       <property name="tooltip"></property>
@@ -71,8 +71,8 @@
           <object class="wxFlexGridSizer" expanded="true">
             <property name="cols">2</property>
             <property name="flexible_direction">wxBOTH</property>
-            <property name="growablecols"></property>
-            <property name="growablerows"></property>
+            <property name="growablecols">1</property>
+            <property name="growablerows">0</property>
             <property name="hgap">5</property>
             <property name="minimum_size"></property>
             <property name="name">fgSizer1</property>
@@ -82,7 +82,7 @@
             <property name="vgap">5</property>
             <object class="sizeritem" expanded="false">
               <property name="border">5</property>
-              <property name="flag">wxALL|wxALIGN_CENTER_VERTICAL</property>
+              <property name="flag">wxALIGN_CENTER_VERTICAL|wxALL</property>
               <property name="proportion">0</property>
               <object class="wxStaticText" expanded="false">
                 <property name="BottomDockable">1</property>
@@ -144,8 +144,8 @@
             </object>
             <object class="sizeritem" expanded="false">
               <property name="border">5</property>
-              <property name="flag">wxALIGN_CENTER_VERTICAL|wxRIGHT</property>
-              <property name="proportion">0</property>
+              <property name="flag">wxEXPAND|wxRIGHT</property>
+              <property name="proportion">1</property>
               <object class="wxTextCtrl" expanded="false">
                 <property name="BottomDockable">1</property>
                 <property name="LeftDockable">1</property>
@@ -171,7 +171,7 @@
                 <property name="enabled">1</property>
                 <property name="fg"></property>
                 <property name="floatable">1</property>
-                <property name="font"></property>
+                <property name="font">,90,400,-1,70,0</property>
                 <property name="gripper">0</property>
                 <property name="hidden">0</property>
                 <property name="id">wxID_ANY</property>
@@ -181,7 +181,7 @@
                 <property name="maxlength">0</property>
                 <property name="min_size"></property>
                 <property name="minimize_button">0</property>
-                <property name="minimum_size">350,-1</property>
+                <property name="minimum_size">400,-1</property>
                 <property name="moveable">1</property>
                 <property name="name">m_textCtrlCommand</property>
                 <property name="pane_border">1</property>
@@ -193,7 +193,7 @@
                 <property name="resize">Resizable</property>
                 <property name="show">1</property>
                 <property name="size"></property>
-                <property name="style"></property>
+                <property name="style">wxTE_MULTILINE</property>
                 <property name="subclass">; ; forward_declare</property>
                 <property name="toolbar_pane">0</property>
                 <property name="tooltip"></property>
@@ -201,7 +201,7 @@
                 <property name="validator_style">wxFILTER_NONE</property>
                 <property name="validator_type">wxDefaultValidator</property>
                 <property name="validator_variable"></property>
-                <property name="value"></property>
+                <property name="value">Enter the command line to run SPICE&#x0A;Usually &apos;&lt;path to SPICE binary&gt; &quot;%I&quot;&apos;&#x0A;%I will be replaced by the netlist filepath</property>
                 <property name="window_extra_style"></property>
                 <property name="window_name"></property>
                 <property name="window_style"></property>
@@ -271,8 +271,8 @@
             </object>
             <object class="sizeritem" expanded="false">
               <property name="border">5</property>
-              <property name="flag">wxALIGN_CENTER_VERTICAL|wxRIGHT</property>
-              <property name="proportion">0</property>
+              <property name="flag">wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT</property>
+              <property name="proportion">1</property>
               <object class="wxTextCtrl" expanded="false">
                 <property name="BottomDockable">1</property>
                 <property name="LeftDockable">1</property>
diff --git a/kicad/dialogs/dialog_executecommand_job_settings_base.h b/kicad/dialogs/dialog_executecommand_job_settings_base.h
index 170b026947..9979ae7abc 100644
--- a/kicad/dialogs/dialog_executecommand_job_settings_base.h
+++ b/kicad/dialogs/dialog_executecommand_job_settings_base.h
@@ -49,7 +49,7 @@ class DIALOG_EXECUTECOMMAND_JOB_SETTINGS_BASE : public DIALOG_SHIM
 
 	public:
 
-		DIALOG_EXECUTECOMMAND_JOB_SETTINGS_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Execute Command Job Settings"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE );
+		DIALOG_EXECUTECOMMAND_JOB_SETTINGS_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Execute Command Job Settings"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
 
 		~DIALOG_EXECUTECOMMAND_JOB_SETTINGS_BASE();