From aa7abbf629e085f2c02310fbdece43ae2b78f886 Mon Sep 17 00:00:00 2001 From: MaxED Date: Fri, 4 Nov 2016 12:41:50 +0000 Subject: [PATCH] Updater: replaced "The editor needs to be closed" message with a custom window. --- Build/Updater.exe | Bin 188928 -> 191488 bytes Source/Tools/Updater/MainForm.cs | 54 +++---- .../Tools/Updater/Properties/AssemblyInfo.cs | 4 +- .../Updater/UpdateBlockedForm.Designer.cs | 138 ++++++++++++++++++ Source/Tools/Updater/UpdateBlockedForm.cs | 27 ++++ Source/Tools/Updater/UpdateBlockedForm.resx | 120 +++++++++++++++ Source/Tools/Updater/Updater.csproj | 11 ++ 7 files changed, 327 insertions(+), 27 deletions(-) create mode 100644 Source/Tools/Updater/UpdateBlockedForm.Designer.cs create mode 100644 Source/Tools/Updater/UpdateBlockedForm.cs create mode 100644 Source/Tools/Updater/UpdateBlockedForm.resx diff --git a/Build/Updater.exe b/Build/Updater.exe index 95fe67fafcb583f926cf43b55dcd843fef247466..4b1372e3066f6b4828573fcf840010e7c2c4e011 100644 GIT binary patch delta 14124 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 diff --git a/Source/Tools/Updater/MainForm.cs b/Source/Tools/Updater/MainForm.cs index d195c2b4..3de91037 100644 --- a/Source/Tools/Updater/MainForm.cs +++ b/Source/Tools/Updater/MainForm.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; using System.ComponentModel; using System.Diagnostics; +using System.Drawing; using System.IO; using System.Reflection; using System.Security.AccessControl; @@ -46,8 +47,9 @@ namespace mxd.GZDBUpdater public static string ErrorDescription; public static bool AppClosing { get { return appclosing; } } + public static Icon AppIcon { get { return me.Icon; } } - #endregion + #endregion #region ======================== Constructor @@ -126,49 +128,51 @@ namespace mxd.GZDBUpdater { try { - Process[] processes = Process.GetProcesses(); - List toclose = new List(); - - // Gather all running editor processes... - foreach(Process process in processes) - { - if(process.ProcessName == processToEnd && Path.GetDirectoryName(process.MainModule.FileName) == Application.StartupPath) - { - toclose.Add(process); - break; - } - } + // Gather processes... + List toclose = GetProcesses(processToEnd); // Ask the user how to proceed... if(toclose.Count > 0) { TaskbarProgress.SetState(this.Handle, TaskbarProgress.TaskbarStates.Paused); - - switch(MessageBox.Show(this, "The editor needs to be closed.\n\n" - + "Press \"Abort\" to cancel the update.\n" - + "Close the editor, then press \"Retry\" to proceed with the update.\n" - + "Press \"Ignore\" to terminate the editor and proceed with the update.", - MESSAGEBOX_TITLE, MessageBoxButtons.AbortRetryIgnore)) + UpdateBlockedForm form = new UpdateBlockedForm(); + switch(form.ShowDialog(this)) { - case DialogResult.Abort: return false; - case DialogResult.Retry: return EditorClosed(); - case DialogResult.Ignore: + case DialogResult.Cancel: return false; + case DialogResult.OK: UpdateLabel(label1, "3/6: Stopping " + processToEnd); - Thread.Sleep(500); + Thread.Sleep(50); + toclose = GetProcesses(processToEnd); // Re-gather processes foreach(Process p in toclose) if(p != null) p.Kill(); - break; + return true; } } } catch(Exception ex) { - ErrorDescription = "Failed to stop the main process...\n" + ex.Message; + ErrorDescription = "Failed to stop the editor process...\n" + ex.Message; return false; } return true; } + private static List GetProcesses(string processToEnd) + { + Process[] processes = Process.GetProcesses(); + List toclose = new List(); + + // Gather all running editor processes... + foreach(Process process in processes) + { + if(process.ProcessName == processToEnd + && Path.GetDirectoryName(process.MainModule.FileName) == Application.StartupPath) + toclose.Add(process); + } + + return toclose; + } + private static void StopBackgroundWorker() { if(worker != null && !worker.CancellationPending) diff --git a/Source/Tools/Updater/Properties/AssemblyInfo.cs b/Source/Tools/Updater/Properties/AssemblyInfo.cs index afb0930e..4a4f974c 100644 --- a/Source/Tools/Updater/Properties/AssemblyInfo.cs +++ b/Source/Tools/Updater/Properties/AssemblyInfo.cs @@ -29,5 +29,5 @@ using System.Runtime.InteropServices; // Build Number // Revision // -[assembly: AssemblyVersion("1.0.0.4")] -[assembly: AssemblyFileVersion("1.0.0.4")] +[assembly: AssemblyVersion("1.0.0.5")] +[assembly: AssemblyFileVersion("1.0.0.5")] diff --git a/Source/Tools/Updater/UpdateBlockedForm.Designer.cs b/Source/Tools/Updater/UpdateBlockedForm.Designer.cs new file mode 100644 index 00000000..8994bda1 --- /dev/null +++ b/Source/Tools/Updater/UpdateBlockedForm.Designer.cs @@ -0,0 +1,138 @@ +namespace mxd.GZDBUpdater +{ + partial class UpdateBlockedForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if(disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.accept = new System.Windows.Forms.Button(); + this.label1 = new System.Windows.Forms.Label(); + this.panel1 = new System.Windows.Forms.Panel(); + this.panel2 = new System.Windows.Forms.Panel(); + this.proceed = new System.Windows.Forms.RadioButton(); + this.cancel = new System.Windows.Forms.RadioButton(); + this.panel1.SuspendLayout(); + this.panel2.SuspendLayout(); + this.SuspendLayout(); + // + // accept + // + this.accept.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.accept.Location = new System.Drawing.Point(244, 114); + this.accept.Name = "accept"; + this.accept.Size = new System.Drawing.Size(120, 28); + this.accept.TabIndex = 0; + this.accept.Text = "Continue"; + this.accept.UseVisualStyleBackColor = true; + this.accept.Click += new System.EventHandler(this.accept_Click); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); + this.label1.Location = new System.Drawing.Point(12, 24); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(245, 13); + this.label1.TabIndex = 1; + this.label1.Text = "The editor needs to be closed to apply the update."; + // + // panel1 + // + this.panel1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.panel1.BackColor = System.Drawing.SystemColors.ControlLightLight; + this.panel1.Controls.Add(this.panel2); + this.panel1.Controls.Add(this.label1); + this.panel1.Location = new System.Drawing.Point(0, 0); + this.panel1.Margin = new System.Windows.Forms.Padding(0); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(369, 109); + this.panel1.TabIndex = 2; + // + // panel2 + // + this.panel2.Controls.Add(this.proceed); + this.panel2.Controls.Add(this.cancel); + this.panel2.Location = new System.Drawing.Point(12, 55); + this.panel2.Name = "panel2"; + this.panel2.Size = new System.Drawing.Size(354, 51); + this.panel2.TabIndex = 4; + // + // proceed + // + this.proceed.AutoSize = true; + this.proceed.Checked = true; + this.proceed.Location = new System.Drawing.Point(3, 3); + this.proceed.Name = "proceed"; + this.proceed.Size = new System.Drawing.Size(322, 17); + this.proceed.TabIndex = 2; + this.proceed.TabStop = true; + this.proceed.Text = "Proceed with the update (this will automatically close the editor)"; + this.proceed.UseVisualStyleBackColor = true; + // + // cancel + // + this.cancel.AutoSize = true; + this.cancel.Location = new System.Drawing.Point(3, 26); + this.cancel.Name = "cancel"; + this.cancel.Size = new System.Drawing.Size(94, 17); + this.cancel.TabIndex = 3; + this.cancel.Text = "Cancel update"; + this.cancel.UseVisualStyleBackColor = true; + // + // UpdateBlockedForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(369, 147); + this.Controls.Add(this.panel1); + this.Controls.Add(this.accept); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "UpdateBlockedForm"; + this.ShowInTaskbar = false; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "GZDoom Builder Updater"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.UpdateBlockedForm_FormClosing); + this.panel1.ResumeLayout(false); + this.panel1.PerformLayout(); + this.panel2.ResumeLayout(false); + this.panel2.PerformLayout(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Button accept; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.RadioButton cancel; + private System.Windows.Forms.RadioButton proceed; + private System.Windows.Forms.Panel panel2; + } +} \ No newline at end of file diff --git a/Source/Tools/Updater/UpdateBlockedForm.cs b/Source/Tools/Updater/UpdateBlockedForm.cs new file mode 100644 index 00000000..ba66e22f --- /dev/null +++ b/Source/Tools/Updater/UpdateBlockedForm.cs @@ -0,0 +1,27 @@ +using System; +using System.Windows.Forms; + +namespace mxd.GZDBUpdater +{ + public partial class UpdateBlockedForm : Form + { + private bool formaccepted; + + public UpdateBlockedForm() + { + InitializeComponent(); + this.Icon = MainForm.AppIcon; + } + + private void UpdateBlockedForm_FormClosing(object sender, FormClosingEventArgs e) + { + this.DialogResult = (formaccepted && proceed.Checked ? DialogResult.OK : DialogResult.Cancel); + } + + private void accept_Click(object sender, EventArgs e) + { + formaccepted = true; + this.Close(); + } + } +} diff --git a/Source/Tools/Updater/UpdateBlockedForm.resx b/Source/Tools/Updater/UpdateBlockedForm.resx new file mode 100644 index 00000000..ff31a6db --- /dev/null +++ b/Source/Tools/Updater/UpdateBlockedForm.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Source/Tools/Updater/Updater.csproj b/Source/Tools/Updater/Updater.csproj index 2bce076d..888ef3d8 100644 --- a/Source/Tools/Updater/Updater.csproj +++ b/Source/Tools/Updater/Updater.csproj @@ -65,8 +65,10 @@ 3.5 + + @@ -97,6 +99,12 @@ + + Form + + + UpdateBlockedForm.cs + @@ -130,6 +138,9 @@ + + UpdateBlockedForm.cs +