mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-18 19:39:17 +02:00
IDE: DoRenameUnit: check if saving to absolute filename, IDE: save new lrs file to default location instead of test directory
git-svn-id: trunk@21098 -
This commit is contained in:
parent
9f0a0a4510
commit
f0c7b749b8
22
ide/main.pp
22
ide/main.pp
@ -4692,6 +4692,7 @@ var
|
|||||||
UnitOwners: TFPList;
|
UnitOwners: TFPList;
|
||||||
APackage: TLazPackage;
|
APackage: TLazPackage;
|
||||||
i: Integer;
|
i: Integer;
|
||||||
|
LRSFilename: String;
|
||||||
begin
|
begin
|
||||||
Result:=mrCancel;
|
Result:=mrCancel;
|
||||||
|
|
||||||
@ -4942,10 +4943,13 @@ begin
|
|||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
// save binary stream (.lrs)
|
// save binary stream (.lrs)
|
||||||
if ResourceCode<>nil then begin
|
if ResourceCode<>nil then begin
|
||||||
if (not (sfSaveToTestDir in Flags)) and (not ResourceCode.IsVirtual) then
|
if (not (sfSaveToTestDir in Flags)) then
|
||||||
begin
|
begin
|
||||||
if (ResourceCode.Modified) then begin
|
if (ResourceCode.Modified) then begin
|
||||||
Result:=SaveCodeBufferToFile(ResourceCode,ResourceCode.Filename);
|
LRSFilename:=ResourceCode.Filename;
|
||||||
|
if not FilenameIsAbsolute(LRSFilename) then
|
||||||
|
LRSFilename:=MainBuildBoss.GetDefaultLRSFilename(AnUnitInfo);
|
||||||
|
Result:=SaveCodeBufferToFile(ResourceCode,LRSFilename);
|
||||||
if not Result=mrOk then exit;
|
if not Result=mrOk then exit;
|
||||||
end;
|
end;
|
||||||
end else begin
|
end else begin
|
||||||
@ -5029,7 +5033,7 @@ begin
|
|||||||
SrcEdit:=GetSourceEditorForUnitInfo(AnUnitInfo);
|
SrcEdit:=GetSourceEditorForUnitInfo(AnUnitInfo);
|
||||||
if NewUnitName='' then
|
if NewUnitName='' then
|
||||||
NewUnitName:=AnUnitInfo.UnitName;
|
NewUnitName:=AnUnitInfo.UnitName;
|
||||||
//debugln(['TMainIDE.DoRenameUnit ',AnUnitInfo.Filename,' NewUnitName=',NewUnitName,' OldUnitName=',AnUnitInfo.UnitName,' ResourceCode=',ResourceCode<>nil]);
|
//debugln(['TMainIDE.DoRenameUnit ',AnUnitInfo.Filename,' NewUnitName=',NewUnitName,' OldUnitName=',AnUnitInfo.UnitName,' ResourceCode=',ResourceCode<>nil,' NewFilename="',NewFilename,'"']);
|
||||||
|
|
||||||
// check new resource file
|
// check new resource file
|
||||||
NewLFMFilename:=ChangeFileExt(NewFilename,'.lfm');
|
NewLFMFilename:=ChangeFileExt(NewFilename,'.lfm');
|
||||||
@ -5113,7 +5117,8 @@ begin
|
|||||||
NewResFilename:=NewResFilePath
|
NewResFilename:=NewResFilePath
|
||||||
+ExtractFileNameOnly(NewFilename)+ResourceFileExt;
|
+ExtractFileNameOnly(NewFilename)+ResourceFileExt;
|
||||||
end;
|
end;
|
||||||
CodeToolBoss.SaveBufferAs(ResourceCode,NewResFilename,ResourceCode);
|
if FilenameIsAbsolute(NewResFilename) then
|
||||||
|
CodeToolBoss.SaveBufferAs(ResourceCode,NewResFilename,ResourceCode);
|
||||||
if (AnUnitInfo.Component<>nil) then
|
if (AnUnitInfo.Component<>nil) then
|
||||||
FormEditor1.RenameJITComponentUnitname(AnUnitInfo.Component,NewUnitName);
|
FormEditor1.RenameJITComponentUnitname(AnUnitInfo.Component,NewUnitName);
|
||||||
|
|
||||||
@ -5134,7 +5139,7 @@ begin
|
|||||||
if FilenameIsAbsolute(OldLFMFilename) and FileExistsUTF8(OldLFMFilename) then
|
if FilenameIsAbsolute(OldLFMFilename) and FileExistsUTF8(OldLFMFilename) then
|
||||||
begin
|
begin
|
||||||
LFMBuf:=CodeToolBoss.LoadFile(OldLFMFilename,false,false);
|
LFMBuf:=CodeToolBoss.LoadFile(OldLFMFilename,false,false);
|
||||||
if LFMBuf<>nil then begin
|
if (LFMBuf<>nil) and FilenameIsAbsolute(NewLFMFilename) then begin
|
||||||
Result:=SaveCodeBufferToFile(LFMBuf,NewLFMFilename,true);
|
Result:=SaveCodeBufferToFile(LFMBuf,NewLFMFilename,true);
|
||||||
if Result<>mrOk then begin
|
if Result<>mrOk then begin
|
||||||
DebugLn(['TMainIDE.DoRenameUnit SaveCodeBufferToFile failed for ',NewLFMFilename]);
|
DebugLn(['TMainIDE.DoRenameUnit SaveCodeBufferToFile failed for ',NewLFMFilename]);
|
||||||
@ -5173,8 +5178,11 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
// save file
|
// save file
|
||||||
Result:=SaveCodeBufferToFile(NewSource,NewSource.Filename);
|
if not NewSource.IsVirtual then begin
|
||||||
if Result<>mrOk then exit;
|
Result:=AnUnitInfo.WriteUnitSource;
|
||||||
|
if Result<>mrOk then exit;
|
||||||
|
AnUnitInfo.Modified:=false;
|
||||||
|
end;
|
||||||
|
|
||||||
// change packages containing the file
|
// change packages containing the file
|
||||||
Result:=PkgBoss.OnRenameFile(OldFilename,AnUnitInfo.Filename,
|
Result:=PkgBoss.OnRenameFile(OldFilename,AnUnitInfo.Filename,
|
||||||
|
@ -1470,6 +1470,7 @@ end;
|
|||||||
function TUnitInfo.NeedsSaveToDisk: boolean;
|
function TUnitInfo.NeedsSaveToDisk: boolean;
|
||||||
begin
|
begin
|
||||||
Result:=IsVirtual or Modified or ChangedOnDisk(true);
|
Result:=IsVirtual or Modified or ChangedOnDisk(true);
|
||||||
|
//DebugLn(['TUnitInfo.NeedsSaveToDisk ',filename,' Result=',Result,' Modified=',Modified]);
|
||||||
if not Result then begin
|
if not Result then begin
|
||||||
if Source<>nil then
|
if Source<>nil then
|
||||||
Result:=Source.FileOnDiskNeedsUpdate
|
Result:=Source.FileOnDiskNeedsUpdate
|
||||||
|
Loading…
Reference in New Issue
Block a user