mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-11-09 11:11:34 +01:00
Converter: Backup the original .dfm also when it is used directly for Lazarus. Issue #29631.
git-svn-id: trunk@51632 -
This commit is contained in:
parent
d7e4677c9f
commit
5ec79158ce
@ -556,33 +556,40 @@ var
|
|||||||
begin
|
begin
|
||||||
Result:=mrOK;
|
Result:=mrOK;
|
||||||
fLFMBuffer:=nil;
|
fLFMBuffer:=nil;
|
||||||
if ADfmFilename<>'' then begin
|
if ADfmFilename<>'' then
|
||||||
|
begin
|
||||||
Result:=LazarusIDE.DoCloseEditorFile(ADfmFilename,[cfSaveFirst]);
|
Result:=LazarusIDE.DoCloseEditorFile(ADfmFilename,[cfSaveFirst]);
|
||||||
if Result<>mrOK then exit;
|
if Result<>mrOK then exit;
|
||||||
|
// Save before using .dfm.
|
||||||
|
Result:=fOwnerConverter.fSettings.MaybeBackupFile(ADfmFilename);
|
||||||
|
if Result<>mrOK then exit;
|
||||||
end;
|
end;
|
||||||
if fOwnerConverter.fSettings.SameDfmFile then
|
if fOwnerConverter.fSettings.SameDfmFile then
|
||||||
LfmFilename:=ADfmFilename
|
LfmFilename:=ADfmFilename
|
||||||
else
|
else begin
|
||||||
with fOwnerConverter do begin
|
// Create a form file name based on the unit file name.
|
||||||
// Create a form file name based on the unit file name.
|
with fOwnerConverter.fSettings do
|
||||||
LfmFilename:=fSettings.DelphiToLazFilename(fOrigUnitFilename, '.lfm',
|
LfmFilename:=DelphiToLazFilename(fOrigUnitFilename, '.lfm',
|
||||||
cdtlufRenameLowercase in fFlags);
|
cdtlufRenameLowercase in fFlags);
|
||||||
if ADfmFilename<>'' then begin
|
if ADfmFilename<>'' then
|
||||||
if FileExistsUTF8(LfmFilename) then
|
begin
|
||||||
if (FileAgeUTF8(LfmFilename)<FileAgeUTF8(ADfmFilename)) then
|
if FileExistsUTF8(LfmFilename) then
|
||||||
DeleteFileUTF8(LfmFilename); // .lfm is older than .dfm -> remove .lfm
|
if (FileAgeUTF8(LfmFilename)<FileAgeUTF8(ADfmFilename)) then
|
||||||
if not FileExistsUTF8(LfmFilename) then begin
|
DeleteFileUTF8(LfmFilename); // .lfm is older than .dfm -> remove .lfm
|
||||||
// TODO: update project
|
if not FileExistsUTF8(LfmFilename) then
|
||||||
if fSettings.SupportDelphi and not fSettings.SameDfmFile then
|
begin
|
||||||
Result:=CopyFileWithErrorDialogs(ADfmFilename,LfmFilename,[mbAbort])
|
// TODO: update project
|
||||||
else
|
if fOwnerConverter.fSettings.SupportDelphi then
|
||||||
Result:=fSettings.RenameFile(ADfmFilename,LfmFilename);
|
Result:=CopyFileWithErrorDialogs(ADfmFilename, LfmFilename, [mbAbort])
|
||||||
if Result<>mrOK then exit;
|
else
|
||||||
end;
|
Result:=RenameFileWithErrorDialogs(ADfmFilename, LfmFilename, [mbAbort]);
|
||||||
|
if Result<>mrOK then exit;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
end;
|
||||||
// Convert Unit .dfm file to .lfm file (without context type checking)
|
// Convert Unit .dfm file to .lfm file (without context type checking)
|
||||||
if FileExistsUTF8(LfmFilename) then begin
|
if FileExistsUTF8(LfmFilename) then
|
||||||
|
begin
|
||||||
DFMConverter:=TDFMConverter.Create;
|
DFMConverter:=TDFMConverter.Create;
|
||||||
try
|
try
|
||||||
DFMConverter.Settings:=fOwnerConverter.fSettings;
|
DFMConverter.Settings:=fOwnerConverter.fSettings;
|
||||||
@ -595,17 +602,17 @@ begin
|
|||||||
Result:=LoadCodeBuffer(TempLFMBuffer,LfmFilename,
|
Result:=LoadCodeBuffer(TempLFMBuffer,LfmFilename,
|
||||||
[lbfCheckIfText,lbfUpdateFromDisk],true);
|
[lbfCheckIfText,lbfUpdateFromDisk],true);
|
||||||
// Change encoding to UTF-8
|
// Change encoding to UTF-8
|
||||||
if TempLFMBuffer.DiskEncoding<>EncodingUTF8 then begin
|
if TempLFMBuffer.DiskEncoding<>EncodingUTF8 then
|
||||||
|
begin
|
||||||
fOwnerConverter.fSettings.AddLogLine(Format(lisConvDelphiChangedEncodingToUTF8,
|
fOwnerConverter.fSettings.AddLogLine(Format(lisConvDelphiChangedEncodingToUTF8,
|
||||||
[TempLFMBuffer.DiskEncoding]));
|
[TempLFMBuffer.DiskEncoding]));
|
||||||
TempLFMBuffer.DiskEncoding:=EncodingUTF8;
|
TempLFMBuffer.DiskEncoding:=EncodingUTF8;
|
||||||
TempLFMBuffer.Save;
|
TempLFMBuffer.Save;
|
||||||
end;
|
end;
|
||||||
// Read form file code in.
|
// Read form file code in.
|
||||||
if not fOwnerConverter.fSettings.SameDfmFile then begin
|
if not fOwnerConverter.fSettings.SameDfmFile then
|
||||||
Result:=LoadCodeBuffer(fLFMBuffer,LfmFilename,
|
Result:=LoadCodeBuffer(fLFMBuffer,LfmFilename,
|
||||||
[lbfCheckIfText,lbfUpdateFromDisk],true);
|
[lbfCheckIfText,lbfUpdateFromDisk],true);
|
||||||
end;
|
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user