mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-14 10:39:18 +02:00
fpvectorial: Fixes a bug in the layers code of the SVG reader, it didnt return the current layer to the parent
git-svn-id: trunk@40718 -
This commit is contained in:
parent
5c01b41999
commit
2fa374f22e
@ -791,6 +791,8 @@ type
|
|||||||
function AddLayer(AName: string): TvLayer;
|
function AddLayer(AName: string): TvLayer;
|
||||||
function AddLayerAndSetAsCurrent(AName: string): TvLayer;
|
function AddLayerAndSetAsCurrent(AName: string): TvLayer;
|
||||||
procedure ClearLayerSelection();
|
procedure ClearLayerSelection();
|
||||||
|
function SetCurrentLayer(ALayer: TvLayer): Boolean;
|
||||||
|
function GetCurrentLayer: TvLayer;
|
||||||
// Dimensions
|
// Dimensions
|
||||||
function AddAlignedDimension(BaseLeft, BaseRight, DimLeft, DimRight: T3DPoint; AOnlyCreate: Boolean = False): TvAlignedDimension;
|
function AddAlignedDimension(BaseLeft, BaseRight, DimLeft, DimRight: T3DPoint; AOnlyCreate: Boolean = False): TvAlignedDimension;
|
||||||
function AddRadialDimension(AIsDiameter: Boolean; ACenter, ADimLeft, ADimRight: T3DPoint; AOnlyCreate: Boolean = False): TvRadialDimension;
|
function AddRadialDimension(AIsDiameter: Boolean; ACenter, ADimLeft, ADimRight: T3DPoint; AOnlyCreate: Boolean = False): TvRadialDimension;
|
||||||
@ -3724,6 +3726,17 @@ begin
|
|||||||
FCurrentLayer := nil;
|
FCurrentLayer := nil;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TvVectorialPage.SetCurrentLayer(ALayer: TvLayer): Boolean;
|
||||||
|
begin
|
||||||
|
Result := True;
|
||||||
|
FCurrentLayer := ALayer;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TvVectorialPage.GetCurrentLayer: TvLayer;
|
||||||
|
begin
|
||||||
|
Result := FCurrentLayer;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
function TvVectorialPage.AddAlignedDimension(BaseLeft, BaseRight, DimLeft,
|
function TvVectorialPage.AddAlignedDimension(BaseLeft, BaseRight, DimLeft,
|
||||||
DimRight: T3DPoint; AOnlyCreate: Boolean = False): TvAlignedDimension;
|
DimRight: T3DPoint; AOnlyCreate: Boolean = False): TvAlignedDimension;
|
||||||
|
@ -916,7 +916,7 @@ var
|
|||||||
lNodeName: DOMString;
|
lNodeName: DOMString;
|
||||||
lLayerName: string = '';
|
lLayerName: string = '';
|
||||||
lCurNode, lLayerNameNode: TDOMNode;
|
lCurNode, lLayerNameNode: TDOMNode;
|
||||||
lLayer: TvLayer;
|
lLayer, lParentLayer: TvLayer;
|
||||||
i: Integer;
|
i: Integer;
|
||||||
lLayerStyleKeys, lLayerStyleValues: TStringList;
|
lLayerStyleKeys, lLayerStyleValues: TStringList;
|
||||||
begin
|
begin
|
||||||
@ -938,6 +938,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
lParentLayer := AData.GetCurrentLayer();
|
||||||
lLayer := AData.AddLayerAndSetAsCurrent(lLayerName);
|
lLayer := AData.AddLayerAndSetAsCurrent(lLayerName);
|
||||||
|
|
||||||
lCurNode := ANode.FirstChild;
|
lCurNode := ANode.FirstChild;
|
||||||
@ -952,6 +953,10 @@ begin
|
|||||||
lLayerStyleKeys.Free;
|
lLayerStyleKeys.Free;
|
||||||
FLayerStylesValues.Remove(lLayerStyleValues);
|
FLayerStylesValues.Remove(lLayerStyleValues);
|
||||||
lLayerStyleValues.Free;
|
lLayerStyleValues.Free;
|
||||||
|
|
||||||
|
// Set the current layer to the parent node,
|
||||||
|
// or else items read next will be put as children of this layer
|
||||||
|
AData.SetCurrentLayer(lParentLayer);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TvSVGVectorialReader.ReadLineFromNode(ANode: TDOMNode;
|
procedure TvSVGVectorialReader.ReadLineFromNode(ANode: TDOMNode;
|
||||||
|
Loading…
Reference in New Issue
Block a user