mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-17 22:09:28 +02:00
Packager: Reuse TPkgDependency.AsString.
git-svn-id: trunk@63956 -
This commit is contained in:
parent
5382b08b6e
commit
ab4eeb5ffc
@ -71,7 +71,7 @@ uses
|
||||
LazarusIDEStrConsts, MainIntf, IDEProcs, DialogProcs, IDEOptionDefs,
|
||||
PackageDefs, Project, InputHistory, MainBase, EnvironmentOpts,
|
||||
AddToProjectDlg, AddPkgDependencyDlg, AddFPMakeDependencyDlg,
|
||||
ProjPackChecks, ProjPackEditing, ProjPackFilePropGui, PackageSystem, PackageLinks;
|
||||
ProjPackChecks, ProjPackEditing, ProjPackFilePropGui, PackageSystem;
|
||||
|
||||
type
|
||||
TOnAddUnitToProject =
|
||||
@ -821,7 +821,7 @@ begin
|
||||
Exit;
|
||||
end;
|
||||
end else begin
|
||||
PackageLink:=FPropGui.FindOPLink(CurDependency);
|
||||
PackageLink:=FindOPLink(CurDependency);
|
||||
if PackageLink<>nil then
|
||||
PkgLinks.Add(PackageLink);
|
||||
end;
|
||||
@ -1222,7 +1222,6 @@ procedure TProjectInspectorForm.UpdateRequiredPackages;
|
||||
var
|
||||
Dependency: TPkgDependency;
|
||||
RequiredBranch, RemovedBranch: TTreeFilterBranch;
|
||||
NodeText, AFilename: String;
|
||||
ANodeData : TPENodeData;
|
||||
begin
|
||||
if not CanUpdate(pefNeedUpdateRequiredPkgs) then exit;
|
||||
@ -1234,23 +1233,9 @@ begin
|
||||
// required packages
|
||||
Dependency:=LazProject.FirstRequiredDependency;
|
||||
while Dependency<>nil do begin
|
||||
// Figure out the item's caption
|
||||
NodeText:=Dependency.AsString;
|
||||
if Dependency.DefaultFilename<>'' then begin
|
||||
AFilename:=Dependency.MakeFilenameRelativeToOwner(Dependency.DefaultFilename);
|
||||
if Dependency.PreferDefaultFilename then
|
||||
NodeText:=Format(lisCEIn, [NodeText,AFilename]) // like the 'in' keyword in the uses section
|
||||
else
|
||||
NodeText:=Format(lisPckEditDefault, [NodeText, AFilename]);
|
||||
end;
|
||||
if Dependency.LoadPackageResult<>lprSuccess then
|
||||
if FPropGui.FindOPLink(Dependency)<>nil then
|
||||
NodeText:=NodeText+' '+lisPckEditAvailableOnline;
|
||||
if Dependency.DependencyType=pdtFPMake then
|
||||
NodeText:=NodeText+' '+lisPckEditFPMakePackage;
|
||||
// Add the required package under the branch
|
||||
ANodeData := FPropGui.CreateNodeData(penDependency, Dependency.PackageName, False);
|
||||
RequiredBranch.AddNodeData(NodeText, ANodeData);
|
||||
ANodeData:=FPropGui.CreateNodeData(penDependency, Dependency.PackageName, False);
|
||||
RequiredBranch.AddNodeData(Dependency.AsString(False,True)+OPNote(Dependency), ANodeData);
|
||||
Dependency:=Dependency.NextRequiresDependency;
|
||||
end;
|
||||
|
||||
|
@ -278,7 +278,7 @@ type
|
||||
procedure ConsistencyCheck;
|
||||
function IsCompatible(Pkg: TLazPackageID): boolean; overload;
|
||||
procedure MakeCompatible(const PkgName: string; const Version: TPkgVersion);
|
||||
function AsString(WithOwner: boolean; WithDefaults: boolean): string; overload;
|
||||
function AsString(WithOwner, WithDefaults: boolean): string; overload;
|
||||
// API for iterating dependencies.
|
||||
function NextUsedByDependency: TPkgDependency; override;
|
||||
function PrevUsedByDependency: TPkgDependency; override;
|
||||
@ -1933,21 +1933,25 @@ begin
|
||||
if MaxVersion.Compare(Version)<0 then MaxVersion.Assign(Version);
|
||||
end;
|
||||
|
||||
function TPkgDependency.AsString(WithOwner: boolean; WithDefaults: boolean): string;
|
||||
function TPkgDependency.AsString(WithOwner, WithDefaults: boolean): string;
|
||||
var
|
||||
FN: String;
|
||||
begin
|
||||
Result:=inherited AsString;
|
||||
if WithOwner and (Owner<>nil) then
|
||||
Result:=GetDependencyOwnerAsString(Self)+' uses '+Result;
|
||||
if WithDefaults then
|
||||
begin
|
||||
if DefaultFilename<>'' then begin
|
||||
Result+=', ';
|
||||
if DefaultFilename<>'' then
|
||||
begin
|
||||
FN:=MakeFilenameRelativeToOwner(DefaultFilename);
|
||||
if PreferDefaultFilename then
|
||||
Result+='preferred'
|
||||
Result:=Format(lisCEIn, [Result,FN]) // like 'in' keyword in uses section
|
||||
else
|
||||
Result+='default';
|
||||
Result+='="'+DefaultFilename+'"';
|
||||
Result:=Format(lisPckEditDefault, [Result,FN]);
|
||||
end;
|
||||
if DependencyType=pdtFPMake then
|
||||
Result:=Result+' '+lisPckEditFPMakePackage;
|
||||
end;
|
||||
end;
|
||||
|
||||
|
@ -579,25 +579,6 @@ begin
|
||||
PkgEditMenuViewPackageSource:=RegisterIDEMenuCommand(AParent,'View Package Source',lisPckEditViewPackageSource);
|
||||
end;
|
||||
|
||||
function DependencyAsString(ADependency: TPkgDependency): string;
|
||||
// A display text for a dependency including min/max versions + other info.
|
||||
// ToDo: Modify Dependency.AsString output to replace this function,
|
||||
// or create a new method for the task.
|
||||
var
|
||||
aFilename: String;
|
||||
begin
|
||||
Result:=ADependency.AsString;
|
||||
if ADependency.DefaultFilename<>'' then begin
|
||||
aFilename:=ADependency.MakeFilenameRelativeToOwner(ADependency.DefaultFilename);
|
||||
if ADependency.PreferDefaultFilename then
|
||||
Result:=Result+' in '+aFilename // like the 'in' keyword in uses section
|
||||
else
|
||||
Result:=Format(lisPckEditDefault, [Result, aFilename]);
|
||||
end;
|
||||
if ADependency.DependencyType=pdtFPMake then
|
||||
Result:=Result+' '+lisPckEditFPMakePackage;
|
||||
end;
|
||||
|
||||
{ TPackageEditorForm }
|
||||
|
||||
procedure TPackageEditorForm.PublishClick(Sender: TObject);
|
||||
@ -2323,7 +2304,7 @@ begin
|
||||
and (FNextSelectedPart.Name=NodeData.Name)
|
||||
then
|
||||
FilterEdit.SelectedPart:=NodeData;
|
||||
RequiredBranch.AddNodeData(DependencyAsString(Dependency), NodeData);
|
||||
RequiredBranch.AddNodeData(Dependency.AsString(False,True)+OPNote(Dependency), NodeData);
|
||||
Dependency:=Dependency.NextRequiresDependency;
|
||||
end;
|
||||
if (FNextSelectedPart<>nil) and (FNextSelectedPart.Typ=penDependency) then
|
||||
@ -2342,7 +2323,7 @@ begin
|
||||
RemovedBranch.ClearNodeData;
|
||||
while Dependency<>nil do begin
|
||||
NodeData:=FPropGui.CreateNodeData(penDependency,Dependency.PackageName,true);
|
||||
RemovedBranch.AddNodeData(DependencyAsString(Dependency), NodeData);
|
||||
RemovedBranch.AddNodeData(Dependency.AsString(False,True)+OPNote(Dependency), NodeData);
|
||||
Dependency:=Dependency.NextRequiresDependency;
|
||||
end;
|
||||
RemovedBranch.InvalidateBranch;
|
||||
@ -2993,18 +2974,18 @@ var
|
||||
OldIndex, NewIndex: Integer;
|
||||
RequiredBranch: TTreeFilterBranch;
|
||||
Moved: Boolean;
|
||||
CurDependency: TPkgDependency;
|
||||
Dependency: TPkgDependency;
|
||||
begin
|
||||
CurDependency:=GetSingleSelectedDependency;
|
||||
if (LazPackage=nil) or (CurDependency=nil) then exit;
|
||||
Dependency:=GetSingleSelectedDependency;
|
||||
if (LazPackage=nil) or (Dependency=nil) then exit;
|
||||
if Offset<0 then
|
||||
Moved := LazPackage.MoveRequiredDependencyUp(CurDependency)
|
||||
Moved := LazPackage.MoveRequiredDependencyUp(Dependency)
|
||||
else
|
||||
Moved := LazPackage.MoveRequiredDependencyDown(CurDependency);
|
||||
Moved := LazPackage.MoveRequiredDependencyDown(Dependency);
|
||||
if not Moved then exit;
|
||||
LazPackage.ModifySilently;
|
||||
RequiredBranch:=FilterEdit.GetExistingBranch(FRequiredPackagesNode);
|
||||
OldIndex:=RequiredBranch.Items.IndexOf(DependencyAsString(CurDependency));
|
||||
OldIndex:=RequiredBranch.Items.IndexOf(Dependency.AsString(False,True)+OPNote(Dependency));
|
||||
NewIndex:=OldIndex+Offset;
|
||||
RequiredBranch.Move(OldIndex,NewIndex);
|
||||
UpdatePEProperties;
|
||||
|
@ -87,7 +87,6 @@ type
|
||||
function CreateNodeData(Typ: TPENodeType; aName: string; aRemoved: boolean): TPENodeData;
|
||||
procedure FreeNodeData(Typ: TPENodeType);
|
||||
function GetDependencyImageIndex(aDep: TPkgDependencyID): Integer;
|
||||
function FindOPLink(const ADependency: TPkgDependencyID): TPackageLink;
|
||||
procedure SetAddToUsesCB(State: TMultiBool);
|
||||
procedure SetCallRegisterProcCB(State: TMultiBool);
|
||||
procedure SetRegisteredPluginsGB(aPlugins: TStringList);
|
||||
@ -102,6 +101,8 @@ type
|
||||
|
||||
function GetNodeData(TVNode: TTreeNode): TPENodeData;
|
||||
function NodeTreeIsIn(xIterNode, xParentNode: TTreeNode): Boolean;
|
||||
function FindOPLink(const ADependency: TPkgDependencyID): TPackageLink;
|
||||
function OPNote(ADep: TPkgDependencyID): string;
|
||||
|
||||
|
||||
implementation
|
||||
@ -127,6 +128,27 @@ begin
|
||||
Result := NodeTreeIsIn(xIterNode.Parent, xParentNode);
|
||||
end;
|
||||
|
||||
function FindOPLink(const ADependency: TPkgDependencyID): TPackageLink;
|
||||
var
|
||||
PackageLink: TPackageLink;
|
||||
begin
|
||||
Result := nil;
|
||||
if OPMInterface = Nil then Exit;
|
||||
PackageLink := LazPackageLinks.FindLinkWithPkgName(ADependency.AsString);
|
||||
if Assigned(PackageLink) and (PackageLink.Origin = ploOnline)
|
||||
and (ADependency.IsCompatible(PackageLink.Version)) then
|
||||
Result := PackageLink;
|
||||
end;
|
||||
|
||||
function OPNote(ADep: TPkgDependencyID): string;
|
||||
// Returns a note about online package's availability, if there is one.
|
||||
begin
|
||||
if (ADep.LoadPackageResult<>lprSuccess) and (FindOPLink(ADep)<>nil) then
|
||||
Result:=' '+lisPckEditAvailableOnline
|
||||
else
|
||||
Result:='';
|
||||
end;
|
||||
|
||||
{ TProjPackFilePropGui }
|
||||
|
||||
constructor TProjPackFilePropGui.Create(aOwner: TWinControl; aPackageGui: Boolean);
|
||||
@ -306,18 +328,6 @@ begin
|
||||
Result := ImageIndexConflict;
|
||||
end;
|
||||
|
||||
function TProjPackFilePropGui.FindOPLink(const ADependency: TPkgDependencyID): TPackageLink;
|
||||
var
|
||||
PackageLink: TPackageLink;
|
||||
begin
|
||||
Result := nil;
|
||||
if OPMInterface = Nil then Exit;
|
||||
PackageLink := LazPackageLinks.FindLinkWithPkgName(ADependency.AsString);
|
||||
if Assigned(PackageLink) and (PackageLink.Origin = ploOnline)
|
||||
and (ADependency.IsCompatible(PackageLink.Version)) then
|
||||
Result := PackageLink;
|
||||
end;
|
||||
|
||||
procedure SetCheckBox(Box: TCheckBox; aVisible: boolean; State: TMultiBool);
|
||||
begin
|
||||
Box.Visible:=aVisible;
|
||||
|
Loading…
Reference in New Issue
Block a user