From 1da58e2eae6ebfe4a50a587f4968179f10920d01 Mon Sep 17 00:00:00 2001 From: Ivan Bondarev Date: Sun, 23 Oct 2022 12:37:30 +0200 Subject: [PATCH] fix pascalabcnet/pascalabcnetide#249 --- VisualPascalABCNET/FileMonitoring.cs | 54 +++++++++++++++------------- 1 file changed, 30 insertions(+), 24 deletions(-) diff --git a/VisualPascalABCNET/FileMonitoring.cs b/VisualPascalABCNET/FileMonitoring.cs index 43d29f1bd..3dbc57744 100644 --- a/VisualPascalABCNET/FileMonitoring.cs +++ b/VisualPascalABCNET/FileMonitoring.cs @@ -88,6 +88,34 @@ namespace VisualPascalABC } } + void showChangedFileMessage() + { + string mes = null; + if (!File.Exists(fileName)) + { + mes = Form1StringResources.Get("FILE_NOT_EXIST_MESSAGE"); + if (MessageBox.Show(fileName + "\n\n" + mes, Form1StringResources.Get("CHANGED_FILE"), MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) + { + WorkbenchServiceFactory.FileService.SetFileAsChanged(fileName); + } + else + { + WorkbenchServiceFactory.FileService.CloseFile(fileName); + } + return; + } + + mes = Form1StringResources.Get("FILE_CHANGED_MESSAGE"); + if (MessageBox.Show(fileName + "\n\n" + mes, Form1StringResources.Get("CHANGED_FILE"), MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) + { + WorkbenchServiceFactory.FileService.ReloadFile(fileName); + } + else + { + WorkbenchServiceFactory.FileService.SetFileAsChanged(fileName); + } + } + void MainForm_Activated(object sender, EventArgs e) { try @@ -96,30 +124,8 @@ namespace VisualPascalABC { wasChangedExternally = false; - string mes = null; - if (!File.Exists(fileName)) - { - mes = Form1StringResources.Get("FILE_NOT_EXIST_MESSAGE"); - if (MessageBox.Show(fileName + "\n\n" + mes, Form1StringResources.Get("CHANGED_FILE"), MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) - { - WorkbenchServiceFactory.FileService.SetFileAsChanged(fileName); - } - else - { - WorkbenchServiceFactory.FileService.CloseFile(fileName); - } - return; - } - - mes = Form1StringResources.Get("FILE_CHANGED_MESSAGE"); - if (MessageBox.Show(fileName + "\n\n" + mes, Form1StringResources.Get("CHANGED_FILE"), MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) - { - WorkbenchServiceFactory.FileService.ReloadFile(fileName); - } - else - { - WorkbenchServiceFactory.FileService.SetFileAsChanged(fileName); - } + WorkbenchServiceFactory.Workbench.MainForm.BeginInvoke((Action)showChangedFileMessage); + } } catch (Exception ex)