mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-09-01 21:40:25 +02:00
IDE: saving package links in lazarus source directory relative
git-svn-id: trunk@21923 -
This commit is contained in:
parent
3a996a5dad
commit
4f168cab7d
@ -40,6 +40,9 @@ uses
|
|||||||
Classes, SysUtils, AVL_Tree, Laz_XMLCfg, FileProcs,
|
Classes, SysUtils, AVL_Tree, Laz_XMLCfg, FileProcs,
|
||||||
LCLProc, FileUtil, IDEProcs, MacroIntf, EnvironmentOpts, PackageDefs, LazConf;
|
LCLProc, FileUtil, IDEProcs, MacroIntf, EnvironmentOpts, PackageDefs, LazConf;
|
||||||
|
|
||||||
|
const
|
||||||
|
PkgLinksFileVersion = 2;
|
||||||
|
|
||||||
type
|
type
|
||||||
|
|
||||||
{ TPackageLink
|
{ TPackageLink
|
||||||
@ -452,6 +455,7 @@ var
|
|||||||
i: Integer;
|
i: Integer;
|
||||||
NewPkgLink: TPackageLink;
|
NewPkgLink: TPackageLink;
|
||||||
ItemPath: String;
|
ItemPath: String;
|
||||||
|
FileVersion: LongInt;
|
||||||
begin
|
begin
|
||||||
if fUpdateLock>0 then begin
|
if fUpdateLock>0 then begin
|
||||||
Include(FStates,plsUserLinksNeedUpdate);
|
Include(FStates,plsUserLinksNeedUpdate);
|
||||||
@ -470,11 +474,13 @@ begin
|
|||||||
|
|
||||||
FUserLinksSortID.FreeAndClear;
|
FUserLinksSortID.FreeAndClear;
|
||||||
FUserLinksSortFile.Clear;
|
FUserLinksSortFile.Clear;
|
||||||
|
FileVersion:=PkgLinksFileVersion;
|
||||||
XMLConfig:=nil;
|
XMLConfig:=nil;
|
||||||
try
|
try
|
||||||
XMLConfig:=TXMLConfig.Create(ConfigFilename);
|
XMLConfig:=TXMLConfig.Create(ConfigFilename);
|
||||||
|
|
||||||
Path:='UserPkgLinks/';
|
Path:='UserPkgLinks/';
|
||||||
|
FileVersion:=XMLConfig.GetValue(Path+'Version',0);
|
||||||
LinkCount:=XMLConfig.GetValue(Path+'Count',0);
|
LinkCount:=XMLConfig.GetValue(Path+'Count',0);
|
||||||
for i:=1 to LinkCount do begin
|
for i:=1 to LinkCount do begin
|
||||||
ItemPath:=Path+'Item'+IntToStr(i)+'/';
|
ItemPath:=Path+'Item'+IntToStr(i)+'/';
|
||||||
@ -523,7 +529,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
RemoveOldUserLinks;
|
RemoveOldUserLinks;
|
||||||
Modified:=false;
|
Modified:=FileVersion<>PkgLinksFileVersion;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TPackageLinks.UpdateAll;
|
procedure TPackageLinks.UpdateAll;
|
||||||
@ -581,6 +587,8 @@ var
|
|||||||
ANode: TAVLTreeNode;
|
ANode: TAVLTreeNode;
|
||||||
ItemPath: String;
|
ItemPath: String;
|
||||||
i: Integer;
|
i: Integer;
|
||||||
|
LazSrcDir: String;
|
||||||
|
AFilename: String;
|
||||||
begin
|
begin
|
||||||
ConfigFilename:=GetUserLinkFile;
|
ConfigFilename:=GetUserLinkFile;
|
||||||
|
|
||||||
@ -591,6 +599,8 @@ begin
|
|||||||
exit;
|
exit;
|
||||||
//DebugLn(['TPackageLinks.SaveUserLinks saving ... ',ConfigFilename]);
|
//DebugLn(['TPackageLinks.SaveUserLinks saving ... ',ConfigFilename]);
|
||||||
|
|
||||||
|
LazSrcDir:=EnvironmentOptions.LazarusDirectory;
|
||||||
|
|
||||||
XMLConfig:=nil;
|
XMLConfig:=nil;
|
||||||
try
|
try
|
||||||
XMLConfig:=TXMLConfig.CreateClean(ConfigFilename);
|
XMLConfig:=TXMLConfig.CreateClean(ConfigFilename);
|
||||||
@ -604,7 +614,15 @@ begin
|
|||||||
CurPkgLink:=TPackageLink(ANode.Data);
|
CurPkgLink:=TPackageLink(ANode.Data);
|
||||||
XMLConfig.SetDeleteValue(ItemPath+'Name/Value',CurPkgLink.Name,'');
|
XMLConfig.SetDeleteValue(ItemPath+'Name/Value',CurPkgLink.Name,'');
|
||||||
CurPkgLink.Version.SaveToXMLConfig(XMLConfig,ItemPath+'Version/');
|
CurPkgLink.Version.SaveToXMLConfig(XMLConfig,ItemPath+'Version/');
|
||||||
XMLConfig.SetDeleteValue(ItemPath+'Filename/Value',CurPkgLink.Filename,'');
|
|
||||||
|
// save package files in lazarus directory relative
|
||||||
|
AFilename:=CurPkgLink.Filename;
|
||||||
|
if (LazSrcDir<>'') and FileIsInPath(AFilename,LazSrcDir) then begin
|
||||||
|
AFilename:=CreateRelativePath(AFilename,LazSrcDir);
|
||||||
|
//DebugLn(['TPackageLinks.SaveUserLinks ',AFilename]);
|
||||||
|
end;
|
||||||
|
XMLConfig.SetDeleteValue(ItemPath+'Filename/Value',AFilename,'');
|
||||||
|
|
||||||
XMLConfig.SetDeleteValue(ItemPath+'LastCheckValid/Value',
|
XMLConfig.SetDeleteValue(ItemPath+'LastCheckValid/Value',
|
||||||
CurPkgLink.LastCheckValid,false);
|
CurPkgLink.LastCheckValid,false);
|
||||||
if CurPkgLink.LastCheckValid then
|
if CurPkgLink.LastCheckValid then
|
||||||
|
@ -56,8 +56,8 @@ uses
|
|||||||
// package registration
|
// package registration
|
||||||
LazarusPackageIntf,
|
LazarusPackageIntf,
|
||||||
// IDE
|
// IDE
|
||||||
LazarusIDEStrConsts, IDEProcs, LazConf, TransferMacros, DialogProcs,
|
LazarusIDEStrConsts, EnvironmentOpts, IDEProcs, LazConf, TransferMacros,
|
||||||
IDETranslations, CompilerOptions, PackageLinks, PackageDefs,
|
DialogProcs, IDETranslations, CompilerOptions, PackageLinks, PackageDefs,
|
||||||
ComponentReg, RegisterFCL, RegisterLCL, RegisterSynEdit, RegisterIDEIntf;
|
ComponentReg, RegisterFCL, RegisterLCL, RegisterSynEdit, RegisterIDEIntf;
|
||||||
|
|
||||||
type
|
type
|
||||||
@ -450,6 +450,10 @@ begin
|
|||||||
BeginUpdate(false);
|
BeginUpdate(false);
|
||||||
try
|
try
|
||||||
AFilename:=PkgLink.Filename;
|
AFilename:=PkgLink.Filename;
|
||||||
|
if not FilenameIsAbsolute(AFilename) then begin
|
||||||
|
// a package in the lazarus sources
|
||||||
|
AFilename:=TrimFilename(EnvironmentOptions.LazarusDirectory+PathDelim+AFilename);
|
||||||
|
end;
|
||||||
if not FileExistsUTF8(AFilename) then begin
|
if not FileExistsUTF8(AFilename) then begin
|
||||||
DebugLn('invalid Package Link: file "'+AFilename+'" does not exist.');
|
DebugLn('invalid Package Link: file "'+AFilename+'" does not exist.');
|
||||||
PkgLink.FileDateValid:=false;
|
PkgLink.FileDateValid:=false;
|
||||||
|
Loading…
Reference in New Issue
Block a user