From ec8dbc5a91634ea016d20b40281b435dd099c850 Mon Sep 17 00:00:00 2001 From: r3sus <49620111+r3sus@users.noreply.github.com> Date: Thu, 9 Mar 2023 19:22:46 +0300 Subject: [PATCH] prevent installer from closing during installation --- CleanFlashInstaller/InstallForm.Designer.cs | 1 + CleanFlashInstaller/InstallForm.cs | 30 +++++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/CleanFlashInstaller/InstallForm.Designer.cs b/CleanFlashInstaller/InstallForm.Designer.cs index 44db441..7270eba 100644 --- a/CleanFlashInstaller/InstallForm.Designer.cs +++ b/CleanFlashInstaller/InstallForm.Designer.cs @@ -621,6 +621,7 @@ namespace CleanFlashInstaller { this.Name = "InstallForm"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; this.Text = "Clean Flash Player Dev Installer"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.InstallForm_FormClosing); this.Load += new System.EventHandler(this.InstallForm_Load); ((System.ComponentModel.ISupportInitialize)(this.flashLogo)).EndInit(); this.disclaimerPanel.ResumeLayout(false); diff --git a/CleanFlashInstaller/InstallForm.cs b/CleanFlashInstaller/InstallForm.cs index f3ccf7f..da79f58 100644 --- a/CleanFlashInstaller/InstallForm.cs +++ b/CleanFlashInstaller/InstallForm.cs @@ -293,5 +293,35 @@ If you ever change your mind, check out Clean Flash Player's website!"; debugChosen = MessageBox.Show("Are you sure you want to install the debug version?\n\nThis version is only meant to be used by experienced developers!\nIf you are not sure, choose No.", "Clean Flash Installer", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes; OpenBeforeInstall(); } + + private void InstallForm_FormClosing(object sender, FormClosingEventArgs e) + { + bool v1 = true; + // if installing + // note: msgbox not pauses the process + if (installPanel.Visible) + { + if (v1) + { + // hardlock, only force quit process + // follows current design since Back button is disabled + MessageBox.Show("Please, wait until process end", "Clean Flash Installer", MessageBoxButtons.OK, MessageBoxIcon.Warning); + e.Cancel = true; + } + else + // soft alternative, expert mode, todo: better warning of consequences + if (MessageBox.Show("Are you sure you want to interrupt the process ?", "Clean Flash Installer", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) + { + e.Cancel = true; + } + else + { + // use cases ? + // uninstall, currently not implemented + } + + //todo: same for uninstaller: share same F + } + } } }