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