From f9ad745d4ed27981af190a8991a387bdfe928b9c Mon Sep 17 00:00:00 2001
From: biwa <6475593+biwa@users.noreply.github.com>
Date: Sat, 11 Dec 2021 12:43:33 +0100
Subject: [PATCH] When choosing a difficulty or engine in the test toolbar
button the engine will not be launched immediately. This can be reverted in
the preferences. Resolves #626
---
Source/Core/Config/ProgramConfiguration.cs | 12 +++++---
Source/Core/Windows/MainForm.cs | 28 +++++++++++++++++--
.../Core/Windows/PreferencesForm.Designer.cs | 13 +++++++++
Source/Core/Windows/PreferencesForm.cs | 4 +--
Source/Core/Windows/PreferencesForm.resx | 3 ++
5 files changed, 51 insertions(+), 9 deletions(-)
diff --git a/Source/Core/Config/ProgramConfiguration.cs b/Source/Core/Config/ProgramConfiguration.cs
index b996911..9be464b 100644
--- a/Source/Core/Config/ProgramConfiguration.cs
+++ b/Source/Core/Config/ProgramConfiguration.cs
@@ -93,7 +93,8 @@ namespace CodeImp.DoomBuilder.Config
private MergeGeometryMode mergegeomode; //mxd
private bool splitjoinedsectors; //mxd
private bool usehighlight; //mxd
- private bool switchviewmodes; //mxd
+ private bool switchviewmodes; //mxd\
+ private bool autolaunchontest;
//mxd. Script editor settings
private string scriptfontname;
@@ -213,7 +214,8 @@ namespace CodeImp.DoomBuilder.Config
public bool KeepTextureFilterFocused { get { return keeptexturefilterfocused; } internal set { keeptexturefilterfocused = value; } } //mxd
public SplitLineBehavior SplitLineBehavior { get { return splitlinebehavior; } set { splitlinebehavior = value; } } //mxd
public MergeGeometryMode MergeGeometryMode { get { return mergegeomode; } internal set { mergegeomode = value; } } //mxd
- public bool SplitJoinedSectors { get { return splitjoinedsectors; } internal set { splitjoinedsectors = value; } } //mxd
+ public bool SplitJoinedSectors { get { return splitjoinedsectors; } internal set { splitjoinedsectors = value; } } //mxd\
+ public bool AutoLaunchOnTest { get { return autolaunchontest; } internal set { autolaunchontest = value; } }
//mxd. Highlight mode
public bool UseHighlight
@@ -372,7 +374,8 @@ namespace CodeImp.DoomBuilder.Config
mergegeomode = (MergeGeometryMode)General.Clamp(cfg.ReadSetting("mergegeometrymode", (int)MergeGeometryMode.REPLACE), 0, Enum.GetValues(typeof(MergeGeometryMode)).Length - 1); //mxd
splitjoinedsectors = cfg.ReadSetting("splitjoinedsectors", true); //mxd
usehighlight = cfg.ReadSetting("usehighlight", true); //mxd
- switchviewmodes = cfg.ReadSetting("switchviewmodes", false); //mxd
+ switchviewmodes = cfg.ReadSetting("switchviewmodes", false); //mxd\
+ autolaunchontest = cfg.ReadSetting("autolaunchontest", false);
//mxd. Script editor
scriptfontname = cfg.ReadSetting("scriptfontname", "Courier New");
@@ -496,7 +499,8 @@ namespace CodeImp.DoomBuilder.Config
cfg.WriteSetting("mergegeometrymode", (int)mergegeomode); //mxd
cfg.WriteSetting("splitjoinedsectors", splitjoinedsectors); //mxd
cfg.WriteSetting("usehighlight", usehighlight); //mxd
- cfg.WriteSetting("switchviewmodes", switchviewmodes); //mxd
+ cfg.WriteSetting("switchviewmodes", switchviewmodes); //mxd\
+ cfg.WriteSetting("autolaunchontest", autolaunchontest);
//mxd. Script editor
cfg.WriteSetting("scriptfontname", scriptfontname);
diff --git a/Source/Core/Windows/MainForm.cs b/Source/Core/Windows/MainForm.cs
index a49a00a..618994b 100644
--- a/Source/Core/Windows/MainForm.cs
+++ b/Source/Core/Windows/MainForm.cs
@@ -602,6 +602,9 @@ namespace CodeImp.DoomBuilder.Windows
this.DragEnter += OnDragEnter;
this.DragDrop += OnDragDrop;
+ // For checking if the drop down should really be closed
+ buttontest.DropDown.Closing += ButtonTestDropDown_Closing;
+
// Info panel state?
bool expandedpanel = General.Settings.ReadSetting("windows." + configname + ".expandedinfopanel", true);
if(expandedpanel != IsInfoPanelExpanded) ToggleInfoPanel();
@@ -1531,7 +1534,10 @@ namespace CodeImp.DoomBuilder.Windows
{
General.Map.ConfigSettings.CurrentEngineIndex = (int)(((ToolStripMenuItem)sender).Tag);
General.Map.ConfigSettings.Changed = true;
- General.Map.Launcher.TestAtSkill(General.Map.ConfigSettings.TestSkill);
+
+ if(General.Settings.AutoLaunchOnTest)
+ General.Map.Launcher.TestAtSkill(General.Map.ConfigSettings.TestSkill);
+
UpdateSkills();
}
@@ -1541,7 +1547,10 @@ namespace CodeImp.DoomBuilder.Windows
int skill = (int)((sender as ToolStripMenuItem).Tag);
General.Settings.TestMonsters = (skill > 0);
General.Map.ConfigSettings.TestSkill = Math.Abs(skill);
- General.Map.Launcher.TestAtSkill(Math.Abs(skill));
+
+ if(General.Settings.AutoLaunchOnTest)
+ General.Map.Launcher.TestAtSkill(Math.Abs(skill));
+
UpdateSkills();
}
@@ -2218,7 +2227,20 @@ namespace CodeImp.DoomBuilder.Windows
buttontogglesky.Checked = General.Settings.GZDrawSky;
}
- #endregion
+ ///
+ /// Called when the test button drop down wants to close. Prevents closing when auto-launching is disabled
+ ///
+ /// The sneder
+ /// The event
+ private void ButtonTestDropDown_Closing(object sender, ToolStripDropDownClosingEventArgs e)
+ {
+ if (General.Settings.AutoLaunchOnTest == false && e.CloseReason == ToolStripDropDownCloseReason.ItemClicked)
+ {
+ e.Cancel = true;
+ }
+ }
+
+ #endregion
#region ================== Toolbar context menu (mxd)
diff --git a/Source/Core/Windows/PreferencesForm.Designer.cs b/Source/Core/Windows/PreferencesForm.Designer.cs
index 07106e8..3e4d712 100644
--- a/Source/Core/Windows/PreferencesForm.Designer.cs
+++ b/Source/Core/Windows/PreferencesForm.Designer.cs
@@ -231,6 +231,7 @@ namespace CodeImp.DoomBuilder.Windows
this.pasteoptions = new CodeImp.DoomBuilder.Controls.PasteOptionsControl();
this.toolTip1 = new System.Windows.Forms.ToolTip(this.components);
this.browseScreenshotsFolderDialog = new System.Windows.Forms.FolderBrowserDialog();
+ this.autolaunchontest = new System.Windows.Forms.CheckBox();
label7 = new System.Windows.Forms.Label();
label5 = new System.Windows.Forms.Label();
groupBox1 = new System.Windows.Forms.GroupBox();
@@ -301,6 +302,7 @@ namespace CodeImp.DoomBuilder.Windows
//
// groupBox1
//
+ groupBox1.Controls.Add(this.autolaunchontest);
groupBox1.Controls.Add(this.keepfilterfocused);
groupBox1.Controls.Add(this.maxBackups);
groupBox1.Controls.Add(this.labelBackups);
@@ -2640,6 +2642,16 @@ namespace CodeImp.DoomBuilder.Windows
//
this.browseScreenshotsFolderDialog.Description = "Select a Folder to Save Screenshots Into";
//
+ // autolaunchontest
+ //
+ this.autolaunchontest.AutoSize = true;
+ this.autolaunchontest.Location = new System.Drawing.Point(16, 392);
+ this.autolaunchontest.Name = "autolaunchontest";
+ this.autolaunchontest.Size = new System.Drawing.Size(301, 17);
+ this.autolaunchontest.TabIndex = 50;
+ this.autolaunchontest.Text = "Automatically launch engine when test parameters change";
+ this.autolaunchontest.UseVisualStyleBackColor = true;
+ //
// PreferencesForm
//
this.AcceptButton = this.apply;
@@ -2910,5 +2922,6 @@ namespace CodeImp.DoomBuilder.Windows
private System.Windows.Forms.Label label33;
private System.Windows.Forms.ComboBox textlabelfontsize;
private CodeImp.DoomBuilder.Controls.ColorControl colorguidelines;
+ private System.Windows.Forms.CheckBox autolaunchontest;
}
}
\ No newline at end of file
diff --git a/Source/Core/Windows/PreferencesForm.cs b/Source/Core/Windows/PreferencesForm.cs
index 1dd8160..199ba5a 100644
--- a/Source/Core/Windows/PreferencesForm.cs
+++ b/Source/Core/Windows/PreferencesForm.cs
@@ -90,6 +90,7 @@ namespace CodeImp.DoomBuilder.Windows
toolbar_geometry.Checked = General.Settings.ToolbarGeometry;
toolbar_testing.Checked = General.Settings.ToolbarTesting;
showtexturesizes.Checked = General.Settings.ShowTextureSizes;
+ autolaunchontest.Checked = General.Settings.AutoLaunchOnTest;
//mxd
locatetexturegroup.Checked = General.Settings.LocateTextureGroup;
@@ -342,8 +343,7 @@ namespace CodeImp.DoomBuilder.Windows
General.Settings.LocateTextureGroup = locatetexturegroup.Checked; //mxd
General.Settings.KeepTextureFilterFocused = keepfilterfocused.Checked; //mxd
General.Settings.MaxRecentFiles = recentFiles.Value; //mxd
- General.Settings.MaxBackups = maxBackups.Value;
- General.Settings.ScreenshotsPath = screenshotsfolderpath.Text.Trim(); //mxd
+ General.Settings.AutoLaunchOnTest = autolaunchontest.Checked;
// Script settings
General.Settings.ScriptFontBold = scriptfontbold.Checked;
diff --git a/Source/Core/Windows/PreferencesForm.resx b/Source/Core/Windows/PreferencesForm.resx
index 9b5b631..c6bb4dd 100644
--- a/Source/Core/Windows/PreferencesForm.resx
+++ b/Source/Core/Windows/PreferencesForm.resx
@@ -150,6 +150,9 @@
False
+
+ 17, 17
+
When enabled, the opening brace
will be placed on a new line when