IDE: fixed invalidate filestate cache after TSaveDialog

git-svn-id: trunk@60620 -
This commit is contained in:
mattias 2019-03-08 12:12:59 +00:00
parent 8890612608
commit 4ec3a43be3
7 changed files with 25 additions and 8 deletions

View File

@ -35,6 +35,14 @@ type
end;
TIDEOpenDialogClass = class of TIDEOpenDialog;
{ TIDESaveDialog }
TIDESaveDialog = class(TSaveDialog)
protected
function DoExecute: boolean; override;
end;
TIDESaveDialogClass = class of TIDESaveDialog;
TIDESelectDirectory = function(const Title, InitialDir: string): string of object;
TInitIDEFileDialog = procedure(AFileDialog: TFileDialog) of object;
TStoreIDEFileDialog = procedure(AFileDialog: TFileDialog) of object;
@ -44,6 +52,7 @@ var // set by the IDE
InitIDEFileDialog: TInitIDEFileDialog = nil;
StoreIDEFileDialog: TStoreIDEFileDialog = nil;
IDEOpenDialogClass: TIDEOpenDialogClass = TIDEOpenDialog;
IDESaveDialogClass: TIDESaveDialogClass = TIDESaveDialog;
// Wrapper function for LazIDESelectDirectory with a default parameter.
function LazSelectDirectory(const Title: string; const InitialDir: string = ''): string;
@ -162,6 +171,14 @@ begin
Result:=IDEQuestionDialog(aCaption,aMsg,DlgType,NewButtons,HelpKeyword);
end;
{ TIDESaveDialog }
function TIDESaveDialog.DoExecute: boolean;
begin
Result:=inherited DoExecute;
LazFileCache.InvalidateFileStateCache;
end;
{ TIDEOpenDialog }
function TIDEOpenDialog.DoExecute: boolean;

View File

@ -2840,7 +2840,7 @@ function TCodeBrowserView.ExportTree: TModalResult;
var
SaveDialog: TSaveDialog;
begin
SaveDialog:=TSaveDialog.Create(nil);
SaveDialog:=IDESaveDialogClass.Create(nil);
try
InitIDEFileDialog(SaveDialog);
SaveDialog.Title:='Save tree as text (*.txt) ...';

View File

@ -541,7 +541,7 @@ begin
if Length(aDesktops) = 0 then
Exit;
xSaveDialog := TSaveDialog.Create(nil);
xSaveDialog := IDESaveDialogClass.Create(nil);
try
try
InputHistories.ApplyFileDialogSettings(xSaveDialog);

View File

@ -3418,7 +3418,7 @@ var
Filename: String;
fs: TFileStreamUTF8;
begin
Dlg:=TSaveDialog.Create(nil);
Dlg:=IDESaveDialogClass.Create(nil);
try
Dlg.Title:=lisSaveMessages;
Dlg.FileName:='messages.txt';

View File

@ -246,7 +246,7 @@ var
AFilename: String;
begin
//debugln('TDesktopOptionsFrame.ExportDesktopButtonClick A');
SaveDialog := TSaveDialog.Create(nil);
SaveDialog := IDESaveDialogClass.Create(nil);
try
try
InputHistories.ApplyFileDialogSettings(SaveDialog);

View File

@ -3102,7 +3102,7 @@ begin
GetCurrentUnit(SrcEdit,AnUnitInfo);
if SrcEdit = nil then exit;
SaveDialog:=TSaveDialog.Create(nil);
SaveDialog:=IDESaveDialogClass.Create(nil);
try
SaveDialog.Title:=lisSaveSpace;
SaveDialog.FileName:=SrcEdit.PageName+'.html';
@ -11726,7 +11726,7 @@ begin
SaveAsFileExt:='.xml';
SaveAsFilename:=ChangeFileExt(AnUnitInfo.Filename,SaveAsFileExt);
SaveDialog:=TSaveDialog.Create(nil);
SaveDialog:=IDESaveDialogClass.Create(nil);
try
InputHistories.ApplyFileDialogSettings(SaveDialog);
SaveDialog.Title:=lisSaveSpace+SaveAsFilename+' (*'+SaveAsFileExt+')';

View File

@ -4563,7 +4563,7 @@ begin
SaveAsFilename:=LowerCase(SaveAsFilename);
// let user choose a filename
SaveDialog:=TSaveDialog.Create(nil);
SaveDialog:=IDESaveDialogClass.Create(nil);
try
InputHistories.ApplyFileDialogSettings(SaveDialog);
SaveDialog.Title:=lisSaveSpace+SaveAsFilename+' (*'+SaveAsFileExt+')';
@ -7515,7 +7515,7 @@ begin
if Project1.MainUnitInfo = nil then
UseMainSourceFile := False;
SaveDialog:=TSaveDialog.Create(nil);
SaveDialog:=IDESaveDialogClass.Create(nil);
try
InputHistories.ApplyFileDialogSettings(SaveDialog);
AFilename:='';