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:
sekelsenmat 2013-04-05 09:12:43 +00:00
parent 5c01b41999
commit 2fa374f22e
2 changed files with 19 additions and 1 deletions

View File

@ -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;

View File

@ -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;