From 01a15e610f1aef67c5534dba25fc55d159080e29 Mon Sep 17 00:00:00 2001 From: Basile Burg <basile.burg@gmx.com> Date: Wed, 20 May 2015 16:13:47 +0200 Subject: [PATCH] option editor, warn about unsaved changes on close --- src/ce_optionseditor.lfm | 1 + src/ce_optionseditor.pas | 15 +++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/src/ce_optionseditor.lfm b/src/ce_optionseditor.lfm index 3b050c93..5922b1d1 100644 --- a/src/ce_optionseditor.lfm +++ b/src/ce_optionseditor.lfm @@ -7,6 +7,7 @@ inherited CEOptionEditorWidget: TCEOptionEditorWidget Caption = 'Options editor' ClientHeight = 493 ClientWidth = 559 + OnCloseQuery = FormCloseQuery inherited Back: TPanel Height = 493 Width = 559 diff --git a/src/ce_optionseditor.pas b/src/ce_optionseditor.pas index 8666407b..d7fefbaa 100644 --- a/src/ce_optionseditor.pas +++ b/src/ce_optionseditor.pas @@ -33,6 +33,7 @@ type selCat: TTreeView; procedure btnAcceptClick(Sender: TObject); procedure btnCancelClick(Sender: TObject); + procedure FormCloseQuery(Sender: TObject; var CanClose: boolean); procedure inspectorEditorFilter(Sender: TObject; aEditor: TPropertyEditor; var aShow: boolean); procedure inspectorModified(Sender: TObject); @@ -204,6 +205,20 @@ begin .optionedEvent(oeeCancel); end; +procedure TCEOptionEditorWidget.FormCloseQuery(Sender: TObject; + var CanClose: boolean); +begin + if fCatChanged then + begin + CanClose := dlgOkCancel( + 'The modifications of the current category are not validated, ' + + 'discard them and continue ?' ) = mrOk; + if CanClose then + btnCancelClick(nil); + end + else CanClose := true; +end; + procedure TCEOptionEditorWidget.inspectorEditorFilter(Sender: TObject;aEditor: TPropertyEditor; var aShow: boolean); begin