267,6 → 267,7 |
double GradientAngle; |
bool HaveGradient = false; |
int GradientType = 0; |
double xGoff, yGoff; |
double lwidth = 0; |
double x, y, w, h; |
double FillTrans = 0; |
339,6 → 340,7 |
else if( fill == "gradient" ) |
{ |
HaveGradient = true; |
GradientAngle = 0; |
gradient.clearStops(); |
gradient.setRepeatMethod( VGradient::none ); |
QString style = m_styleStack.attribute( "draw:fill-gradient-name" ); |
361,10 → 363,22 |
GradientAngle = draw->attribute( "draw:angle" ).toDouble() / 10; |
GradientType = 1; |
} |
else if( type == "radial" || type == "ellipsoid" ) |
{ |
if( draw->hasAttribute( "draw:cx" ) ) |
xGoff = draw->attribute( "draw:cx" ).remove( '%' ).toDouble() / 100.0; |
else |
xGoff = 0.5; |
if( draw->hasAttribute( "draw:cy" ) ) |
yGoff = draw->attribute( "draw:cy" ).remove( '%' ).toDouble() / 100.0; |
else |
yGoff = 0.5; |
GradientType = 2; |
} |
QString c, c2; |
c = parseColor( draw->attribute( "draw:start-color" ) ); |
c2 = parseColor( draw->attribute( "draw:end-color" ) ); |
if ((GradientAngle > 90) && (GradientAngle < 271)) |
if (((GradientAngle > 90) && (GradientAngle < 271)) || (GradientType == 2)) |
{ |
gradient.addStop( Doku->PageColors[c2].getRGBColor(), 0.0, 0.5, 1, c2, shadeE ); |
gradient.addStop( Doku->PageColors[c].getRGBColor(), 1.0 - border, 0.5, 1, c, shadeS ); |
515,6 → 529,14 |
w = parseUnit(b.attribute("svg:width")); |
h = parseUnit(b.attribute("svg:height")); |
z = Doku->ActPage->PaintText(x, y, w, h+(h*0.1), lwidth, StrokeColor); |
} |
else |
{ |
qDebug("Not supported yet: "+STag); |
continue; |
} |
if (z != -1) |
{ |
PageItem* ite = Doku->ActPage->Items.at(z); |
ite->Extra = 0; |
ite->TExtra = 0; |
524,7 → 546,17 |
for ( QDomNode n = b.firstChild(); !n.isNull(); n = n.nextSibling() ) |
{ |
int FontSize = Doku->Dsize; |
int AbsStyle = 0; |
QDomElement e = n.toElement(); |
if( m_styleStack.hasAttribute("fo:text-align")) |
{ |
if (m_styleStack.attribute("fo:text-align") == "left") |
AbsStyle = 0; |
if (m_styleStack.attribute("fo:text-align") == "center") |
AbsStyle = 1; |
if (m_styleStack.attribute("fo:text-align") == "right") |
AbsStyle = 2; |
} |
if( m_styleStack.hasAttribute("fo:font-family")) |
{ |
FontSize = m_styleStack.attribute("fo:font-size").remove( "pt" ).toInt(); |
531,20 → 563,14 |
} |
/* ToDo: Add reading of Textstyles here */ |
Serializer *ss = new Serializer(""); |
ss->Objekt = QString::fromUtf8(e.text()); |
ss->GetText(ite, 0, Doku->Dfont, FontSize, firstPa); |
ite->LineSp = FontSize + FontSize * 0.2; |
ss->Objekt = QString::fromUtf8(e.text())+QChar(10); |
ss->GetText(ite, AbsStyle, Doku->Dfont, FontSize, firstPa); |
delete ss; |
firstPa = true; |
if (ite->PType != 7) |
ite->PType = 4; |
} |
} |
else |
{ |
qDebug("Not supported yet: "+STag); |
continue; |
} |
if (z != -1) |
{ |
PageItem* ite = Doku->ActPage->Items.at(z); |
ite->Transparency = FillTrans; |
ite->TranspStroke = StrokeTrans; |
if (dashes.count() != 0) |
628,6 → 654,23 |
ite->GrType = 6; |
} |
} |
if (GradientType == 2) |
{ |
ite->GrType = 7; |
ite->GrStartX = ite->Width * xGoff; |
ite->GrStartY = ite->Height* yGoff; |
if (ite->Width >= ite->Height) |
{ |
ite->GrEndX = ite->Width; |
ite->GrEndY = ite->Height / 2.0; |
} |
else |
{ |
ite->GrEndX = ite->Width / 2.0; |
ite->GrEndY = ite->Height; |
} |
Doku->ActPage->updateGradientVectors(ite); |
} |
HaveGradient = false; |
} |
GElements.append(ite); |