void ScrPainter::setBrush(const libwpg::WPGBrush& brush) { ScColor tmp; ColorList::Iterator it; CurrColorFill = "Black"; CurrFillShade = 100.0; int Rc, Gc, Bc; if(brush.style == libwpg::WPGBrush::Solid) { Rc = brush.foreColor.red; Gc = brush.foreColor.green; Bc = brush.foreColor.blue; tmp.setColorRGB(Rc, Gc, Bc); tmp.setSpotColor(false); tmp.setRegistrationColor(false); QString newColorName = "FromWPG"+tmp.name(); QString fNam = m_Doc->PageColors.tryAddColor(newColorName, tmp); if (fNam == newColorName) importedColors.append(newColorName); CurrColorFill = fNam; CurrFillTrans = brush.foreColor.alpha / 255.0; } else if (brush.style == libwpg::WPGBrush::Gradient) { gradientAngle = brush.gradient.angle(); isGradient = true; currentGradient = VGradient(VGradient::linear); currentGradient.clearStops(); for(unsigned c = 0; c < brush.gradient.count(); c++) { QString currStopColor = CommonStrings::None; Rc = brush.gradient.stopColor(c).red; Gc = brush.gradient.stopColor(c).green; Bc = brush.gradient.stopColor(c).blue; tmp.setColorRGB(Rc, Gc, Bc); tmp.setSpotColor(false); tmp.setRegistrationColor(false); QString newColorName = "FromWPG"+tmp.name(); QString fNam = m_Doc->PageColors.tryAddColor(newColorName, tmp); if (fNam == newColorName) importedColors.append(newColorName); currStopColor = fNam; const ScColor& gradC = m_Doc->PageColors[currStopColor]; double pos = qBound(0.0, fabs(brush.gradient.stopOffset(c)), 1.0); currentGradient.addStop( ScColorEngine::getRGBColor(gradC, m_Doc), pos, 0.5, 1.0, currStopColor, 100 ); } } else if (brush.style == libwpg::WPGBrush::NoBrush) CurrColorFill = CommonStrings::None; fillSet = true; }
void ScrPainter::setPen(const libwpg::WPGPen& pen) { LineW = 72 * pen.width; ScColor tmp; ColorList::Iterator it; CurrColorStroke = "Black"; CurrStrokeShade = 100.0; int Rc, Gc, Bc; Rc = pen.foreColor.red; Gc = pen.foreColor.green; Bc = pen.foreColor.blue; tmp.setColorRGB(Rc, Gc, Bc); tmp.setSpotColor(false); tmp.setRegistrationColor(false); QString newColorName = "FromWPG"+tmp.name(); QString fNam = m_Doc->PageColors.tryAddColor(newColorName, tmp); if (fNam == newColorName) importedColors.append(newColorName); CurrColorStroke = fNam; CurrStrokeTrans = pen.foreColor.alpha / 255.0; if(!pen.solid) { dashArray.clear(); for(unsigned i = 0; i < pen.dashArray.count(); i++) { dashArray.append(pen.dashArray.at(i)*LineW); } } switch (pen.joinstyle) { case 1: lineJoin = Qt::BevelJoin; break; case 2: lineJoin = Qt::MiterJoin; break; case 3: lineJoin = Qt::RoundJoin; break; default: lineJoin = Qt::MiterJoin; break; } switch (pen.capstyle) { case 0: lineEnd = Qt::FlatCap; break; case 1: lineEnd = Qt::RoundCap; break; case 2: lineEnd = Qt::SquareCap; break; default: lineEnd = Qt::FlatCap; break; } strokeSet = true; }
QString SmlPlug::processColor(QDomElement &elem) { QString colnam = elem.attribute("color","#ffffff"); QColor stroke; stroke.setNamedColor("#"+colnam.right(6)); ScColor tmp; tmp.fromQColor(stroke); tmp.setSpotColor(false); tmp.setRegistrationColor(false); QString newColorName = "FromSML"+tmp.name(); QString fNam = m_Doc->PageColors.tryAddColor(newColorName, tmp); if (fNam == newColorName) importedColors.append(newColorName); return fNam; }