summaryrefslogtreecommitdiff
path: root/filter/source/svg
diff options
context:
space:
mode:
authorChr. Rossmanith <ChrRossmanith@gmx.de>2013-01-01 21:38:06 +0100
committerChr. Rossmanith <ChrRossmanith@gmx.de>2013-01-07 19:39:46 +0100
commit6eb0522395c236ae6930a300992ad092449f9592 (patch)
tree0302cf16978c9cc6b91af9735b2ecc0f49b79422 /filter/source/svg
parentf1043aaed082824ca423eee10be5802873e058f3 (diff)
dummy commit (WIP)
Change-Id: Ibeee6553312323b75b2403ad6832595f228e0e3c
Diffstat (limited to 'filter/source/svg')
-rw-r--r--filter/source/svg/svgreader.cxx24
1 files changed, 20 insertions, 4 deletions
diff --git a/filter/source/svg/svgreader.cxx b/filter/source/svg/svgreader.cxx
index 5e9e994de348..51a0860c8bfb 100644
--- a/filter/source/svg/svgreader.cxx
+++ b/filter/source/svg/svgreader.cxx
@@ -179,7 +179,6 @@ struct AnnotatingVisitor
case XML_LINEARGRADIENT:
{
const sal_Int32 nNumAttrs( xAttributes->getLength() );
- rtl::OUString sAttributeValue;
maGradientVector.push_back(Gradient(Gradient::LINEAR));
// do we have a reference to a parent gradient? parse
@@ -217,7 +216,6 @@ struct AnnotatingVisitor
case XML_RADIALGRADIENT:
{
const sal_Int32 nNumAttrs( xAttributes->getLength() );
- rtl::OUString sAttributeValue;
maGradientVector.push_back(Gradient(Gradient::RADIAL));
// do we have a reference to a parent gradient? parse
@@ -255,7 +253,6 @@ struct AnnotatingVisitor
case XML_STOP:
{
const sal_Int32 nNumAttrs( xAttributes->getLength() );
- rtl::OUString sAttributeValue;
maGradientStopVector.push_back(GradientStop());
maGradientVector.back().maStops.push_back(maGradientStopVector.size()-1);
for( sal_Int32 i=0; i<nNumAttrs; ++i )
@@ -518,7 +515,8 @@ struct AnnotatingVisitor
double rRotate, rShearX;
if( rState.maFillGradient.maTransform.decompose(rScale, rTranslate, rRotate, rShearX) )
xAttrs->AddAttribute( "draw:angle",
- rtl::OUString::valueOf(rRotate*1800.0/M_PI ) );
+ rtl::OUString::valueOf(rRotate*1800.0/M_PI + 900) );
+ SAL_INFO("svg", "maStops " << rState.maFillGradient.maStops[0] << " " << rState.maFillGradient.maStops[1] );
xAttrs->AddAttribute( "draw:start-color",
getOdfColor(
maGradientStopVector[
@@ -813,6 +811,11 @@ struct AnnotatingVisitor
const sal_Int32 nTokenId,
const rtl::OUString& sValue )
{
+ rtl::OString aValueUtf8( sValue.getStr(),
+ sValue.getLength(),
+ RTL_TEXTENCODING_UTF8 );
+
+ SAL_INFO("svg", "nTokenId " << nTokenId);
switch(nTokenId)
{
case XML_HREF:
@@ -836,7 +839,18 @@ struct AnnotatingVisitor
case XML_STYLE:
parseStyle( sValue );
break;
+ case XML_STOP_COLOR:
+ parseColor( aValueUtf8.getStr(), io_rGradientStop.maStopColor );
+ break;
+ case XML_STOP_OPACITY:
+ io_rGradientStop.maStopColor.a = sValue.toDouble();
+ if (io_rGradientStop.maStopColor.a < 0)
+ io_rGradientStop.maStopColor.a = 0;
+ else if (io_rGradientStop.maStopColor.a > 1)
+ io_rGradientStop.maStopColor.a = 1;
+ break;
default:
+ SAL_INFO("svg", "nTokenId unknown " << getTokenName(nTokenId));
break;
}
}
@@ -1031,9 +1045,11 @@ struct AnnotatingVisitor
parseTextAlign(maCurrState,aValueUtf8.getStr());
break;
case XML_STOP_COLOR:
+ SAL_INFO("svg", "XML_STOP_COLOR1");
if( maGradientVector.empty() ||
maGradientVector.back().maStops.empty() )
break;
+ SAL_INFO("svg", "XML_STOP_COLOR2");
parseColor( aValueUtf8.getStr(),
maGradientStopVector[
maGradientVector.back().maStops.back()].maStopColor );