From 31bc7c40541a03452991263dc96dd08f30d0cf28 Mon Sep 17 00:00:00 2001 From: Margers Date: Wed, 4 Sep 2024 08:34:51 +0000 Subject: [PATCH] On exit ask for changes to save if one file open in two windows. --- packages/ide/fpcompil.pas | 2 +- packages/ide/fptools.pas | 2 +- packages/ide/fpviews.pas | 2 +- packages/ide/wcedit.pas | 11 ++++++----- 4 files changed, 9 insertions(+), 8 deletions(-) diff --git a/packages/ide/fpcompil.pas b/packages/ide/fpcompil.pas index 3254c8f609..6ad937e38d 100644 --- a/packages/ide/fpcompil.pas +++ b/packages/ide/fpcompil.pas @@ -839,7 +839,7 @@ begin FileName:=P^.Editor^.FileName; if FileName='' then begin - P^.Editor^.SaveAsk(true); + P^.Editor^.SaveAsk(cmValid,true); FileName:=P^.Editor^.FileName; end; end diff --git a/packages/ide/fptools.pas b/packages/ide/fptools.pas index 57d36d9678..babeaf957f 100644 --- a/packages/ide/fptools.pas +++ b/packages/ide/fptools.pas @@ -1305,7 +1305,7 @@ begin begin I:=I+ReplacePart(LastWordStart,I-1,'')-1; if W<>nil then - if W^.Editor^.SaveAsk(true)=false then + if W^.Editor^.SaveAsk(cmValid,true)=false then Err:=-1; end; end else diff --git a/packages/ide/fpviews.pas b/packages/ide/fpviews.pas index 68b22ced28..5257b9a6ea 100644 --- a/packages/ide/fpviews.pas +++ b/packages/ide/fpviews.pas @@ -1892,7 +1892,7 @@ begin if OK and ({(Command=cmClose) or already handled in TFileEditor.Valid PM } (Command=cmAskSaveAll)) then if IsClipboard=false then - OK:=SaveAsk(false); + OK:=SaveAsk(Command,false); Valid:=OK; end; diff --git a/packages/ide/wcedit.pas b/packages/ide/wcedit.pas index 29adc0a0af..848156e5b4 100644 --- a/packages/ide/wcedit.pas +++ b/packages/ide/wcedit.pas @@ -234,7 +234,7 @@ type PScrollBar; AIndicator: PIndicator; ACore: PCodeEditorCore; const AFileName: string); function Save: Boolean; virtual; function SaveAs: Boolean; virtual; - function SaveAsk(Force: boolean): Boolean; virtual; + function SaveAsk(Command: Word; Force: boolean): boolean; virtual; function LoadFile: boolean; virtual; function ReloadFile: boolean; virtual; function SaveFile: boolean; virtual; @@ -265,7 +265,7 @@ implementation uses Dos, WConsts, - FVConsts, + FVConsts,FPConst, App,WViews; {$ifndef NOOBJREG} @@ -1931,7 +1931,7 @@ begin end; end; -function TFileEditor.SaveAsk(Force: boolean): boolean; +function TFileEditor.SaveAsk(Command: Word; Force: boolean): boolean; var OK: boolean; D: Sw_integer; begin @@ -1946,7 +1946,8 @@ begin begin OK:=(GetModified=false); if (OK=false) and (Core^.GetBindingCount>1) then - OK:=true; + if (command<>cmAskSaveAll) or (Core^.GetBindingIndex(PCustomCodeEditor(@self))<>0) then + OK:=true; if OK=false then begin if FileName = '' then D := edSaveUntitled else D := edSaveModify; @@ -2002,7 +2003,7 @@ begin OK:=inherited Valid(Command); if OK and (Command=cmClose) then if IsClipboard=false then - OK:=SaveAsk(false); + OK:=SaveAsk(Command,false); Valid:=OK; end;