mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-11 09:36:10 +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 AddLayerAndSetAsCurrent(AName: string): TvLayer;
|
||||
procedure ClearLayerSelection();
|
||||
function SetCurrentLayer(ALayer: TvLayer): Boolean;
|
||||
function GetCurrentLayer: TvLayer;
|
||||
// Dimensions
|
||||
function AddAlignedDimension(BaseLeft, BaseRight, DimLeft, DimRight: T3DPoint; AOnlyCreate: Boolean = False): TvAlignedDimension;
|
||||
function AddRadialDimension(AIsDiameter: Boolean; ACenter, ADimLeft, ADimRight: T3DPoint; AOnlyCreate: Boolean = False): TvRadialDimension;
|
||||
@ -3724,6 +3726,17 @@ begin
|
||||
FCurrentLayer := nil;
|
||||
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,
|
||||
DimRight: T3DPoint; AOnlyCreate: Boolean = False): TvAlignedDimension;
|
||||
|
@ -916,7 +916,7 @@ var
|
||||
lNodeName: DOMString;
|
||||
lLayerName: string = '';
|
||||
lCurNode, lLayerNameNode: TDOMNode;
|
||||
lLayer: TvLayer;
|
||||
lLayer, lParentLayer: TvLayer;
|
||||
i: Integer;
|
||||
lLayerStyleKeys, lLayerStyleValues: TStringList;
|
||||
begin
|
||||
@ -938,6 +938,7 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
lParentLayer := AData.GetCurrentLayer();
|
||||
lLayer := AData.AddLayerAndSetAsCurrent(lLayerName);
|
||||
|
||||
lCurNode := ANode.FirstChild;
|
||||
@ -952,6 +953,10 @@ begin
|
||||
lLayerStyleKeys.Free;
|
||||
FLayerStylesValues.Remove(lLayerStyleValues);
|
||||
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;
|
||||
|
||||
procedure TvSVGVectorialReader.ReadLineFromNode(ANode: TDOMNode;
|
||||
|
Loading…
Reference in New Issue
Block a user