r20640 by jghali -

scribus-commit scribus-commit at lists.scribus.net
Wed Dec 30 01:43:00 UTC 2015


Author: jghali
Date: Wed Dec 30 01:43:00 2015
New Revision: 20640

URL: http://scribus.net/websvn/listing.php?repname=Scribus&sc=1&rev=20640
Log:
#13366: Underlining is not visible on exported image

Modified:
    trunk/Scribus/scribus/pageitem.cpp
    trunk/Scribus/scribus/scpageoutput.cpp
    trunk/Scribus/scribus/scpainter.cpp
    trunk/Scribus/scribus/scpainter.h

Modified: trunk/Scribus/scribus/pageitem.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=20640&path=/trunk/Scribus/scribus/pageitem.cpp
==============================================================================
--- trunk/Scribus/scribus/pageitem.cpp	(original)
+++ trunk/Scribus/scribus/pageitem.cpp	Wed Dec 30 01:43:00 2015
@@ -2803,12 +2803,15 @@
 			if (style.baselineOffset() != 0)
 				st += (style.fontSize() / 10.0) * glyphs.scaleV * (style.baselineOffset() / 1000.0);
 			QColor tmpC = p->pen();
+			int oldStrokeMode = p->strokeMode();
 			p->setPen(p->brush());
 			p->setLineWidth(lw);
+			p->setStrokeMode(1);
 			if (style.effects() & ScStyle_Subscript)
 				p->drawLine(FPoint(glyphs.xoffset, glyphs.yoffset - st), FPoint(glyphs.xoffset + glyphs.xadvance, glyphs.yoffset - st));
 			else
 				p->drawLine(FPoint(glyphs.xoffset, -st), FPoint(glyphs.xoffset + glyphs.xadvance, -st));
+			p->setStrokeMode(oldStrokeMode);
 			p->setPen(tmpC);
 		}
 		if (gly.size() > 3)

Modified: trunk/Scribus/scribus/scpageoutput.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=20640&path=/trunk/Scribus/scribus/scpageoutput.cpp
==============================================================================
--- trunk/Scribus/scribus/scpageoutput.cpp	(original)
+++ trunk/Scribus/scribus/scpageoutput.cpp	Wed Dec 30 01:43:00 2015
@@ -553,12 +553,15 @@
 			if (style.baselineOffset() != 0)
 				st += (style.fontSize() / 10.0) * glyphs.scaleV * (style.baselineOffset() / 1000.0);
 			ScColorShade tmpPen = painter->pen();
+			int tmpStrokeMode = painter->strokeMode();
 			painter->setPen(painter->brush());
 			painter->setLineWidth(lw);
+			painter->setStrokeMode(1);
 			if (style.effects() & ScStyle_Subscript)
 				painter->drawLine(FPoint(glyphs.xoffset, glyphs.yoffset - st), FPoint(glyphs.xoffset + glyphs.xadvance, glyphs.yoffset - st));
 			else
 				painter->drawLine(FPoint(glyphs.xoffset, -st), FPoint(glyphs.xoffset + glyphs.xadvance, -st));
+			painter->setStrokeMode(tmpStrokeMode);
 			painter->setPen(tmpPen);
 		}
 		if (gly.size() > 3)

Modified: trunk/Scribus/scribus/scpainter.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=20640&path=/trunk/Scribus/scribus/scpainter.cpp
==============================================================================
--- trunk/Scribus/scribus/scpainter.cpp	(original)
+++ trunk/Scribus/scribus/scpainter.cpp	Wed Dec 30 01:43:00 2015
@@ -21,13 +21,13 @@
 	m_width = w;
 	m_height= h;
 	m_stroke = QColor(0,0,0);
-	strokeMode = 0;
+	m_strokeMode = 0;
 	maskMode = 0;
 	m_fill = QColor(0,0,0);
 	fill_trans = 1.0;
 	stroke_trans = 1.0;
 	m_fillRule = true;
-	fillMode = 1;
+	m_fillMode = 1;
 	LineWidth = 1.0;
 	m_offset = 0;
 	m_layerTransparency = transparency;
@@ -264,12 +264,12 @@
 
 void ScPainter::setFillMode( int fill )
 {
-	fillMode = fill;
+	m_fillMode = fill;
 }
 
 void ScPainter::setStrokeMode( int stroke )
 {
-	strokeMode = stroke;
+	m_strokeMode = stroke;
 }
 
 void ScPainter::setGradient(VGradient::VGradientType mode, FPoint orig, FPoint vec, FPoint foc, double scale, double skew)
@@ -402,7 +402,7 @@
 
 void ScPainter::fillPath()
 {
-	if (fillMode != 0)
+	if (m_fillMode != 0)
 		fillPathHelper();
 }
 
@@ -410,7 +410,7 @@
 {
 //	if( LineWidth == 0 )
 //		return;
-	if (strokeMode != 0)
+	if (m_strokeMode != 0)
 		strokePathHelper();
 }
 
@@ -680,7 +680,7 @@
 		cairo_set_fill_rule (m_cr, CAIRO_FILL_RULE_EVEN_ODD);
 	else
 		cairo_set_fill_rule (m_cr, CAIRO_FILL_RULE_WINDING);
-	if (fillMode == 1)
+	if (m_fillMode == 1)
 	{
 		double r, g, b;
 		m_fill.getRgbF(&r, &g, &b);
@@ -702,7 +702,7 @@
 			cairo_fill_preserve(m_cr);
 		}
 	}
-	else if (fillMode == 2)
+	else if (m_fillMode == 2)
 	{
 		cairo_pattern_t *pat = NULL;
 		cairo_surface_t *img = NULL;
@@ -1434,7 +1434,7 @@
 		}
 #endif
 	}
-	else if (fillMode == 3)
+	else if (m_fillMode == 3)
 	{
 		cairo_set_antialias(m_cr, CAIRO_ANTIALIAS_NONE);
 		cairo_surface_t *image2 = cairo_image_surface_create_for_data ((uchar*)m_pattern->getPattern()->bits(), CAIRO_FORMAT_ARGB32, m_pattern->getPattern()->width(), m_pattern->getPattern()->height(), m_pattern->getPattern()->width()*4);
@@ -1475,7 +1475,7 @@
 		cairo_surface_destroy (image2);
 		cairo_set_antialias(m_cr, CAIRO_ANTIALIAS_DEFAULT);
 	}
-	else if (fillMode == 4)
+	else if (m_fillMode == 4)
 	{
 		cairo_path_t *path;
 		path = cairo_copy_path(m_cr);
@@ -1594,7 +1594,7 @@
 		cairo_set_line_join( m_cr, CAIRO_LINE_JOIN_BEVEL );
 	else if( PLineJoin == Qt::MiterJoin )
 		cairo_set_line_join( m_cr, CAIRO_LINE_JOIN_MITER );
-	if (strokeMode == 3)
+	if (m_strokeMode == 3)
 	{
 		cairo_push_group(m_cr);
 		cairo_set_antialias(m_cr, CAIRO_ANTIALIAS_NONE);
@@ -1626,7 +1626,7 @@
 		setRasterOp(m_blendModeStroke);
 		cairo_paint_with_alpha (m_cr, stroke_trans);
 	}
-	else if (strokeMode == 2)
+	else if (m_strokeMode == 2)
 	{
 		cairo_push_group(m_cr);
 		cairo_pattern_t *pat;

Modified: trunk/Scribus/scribus/scpainter.h
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=20640&path=/trunk/Scribus/scribus/scpainter.h
==============================================================================
--- trunk/Scribus/scribus/scpainter.h	(original)
+++ trunk/Scribus/scribus/scpainter.h	Wed Dec 30 01:43:00 2015
@@ -65,7 +65,9 @@
 	virtual void setFillRule( bool fillRule );
 	virtual bool fillRule() { return m_fillRule; }
 	virtual void setFillMode( int fill );
+	virtual int  fillMode() { return m_fillMode; }
 	virtual void setStrokeMode( int stroke );
+	virtual int  strokeMode() { return m_strokeMode; }
 	virtual void setGradient( VGradient::VGradientType mode, FPoint orig, FPoint vec, FPoint foc, double scale, double skew);
 	virtual void setPattern(ScPattern *pattern, double scaleX, double scaleY, double offsetX, double offsetY, double rotation, double skewX, double skewY, bool mirrorX, bool mirrorY);
 
@@ -184,7 +186,7 @@
 	QColor m_fill;
 	double fill_trans;
 	bool m_fillRule;
-	int fillMode;				// 0 = none, 1 = solid, 2 = gradient 3 = pattern 4 = hatch
+	int m_fillMode;				// 0 = none, 1 = solid, 2 = gradient 3 = pattern 4 = hatch
 	double patternScaleX;
 	double patternScaleY;
 	double patternOffsetX;
@@ -223,7 +225,7 @@
 	QColor m_stroke;
 	double stroke_trans;
 	double LineWidth;
-	int strokeMode;				// 0 = none, 1 = solid, 2 = gradient 3 = pattern
+	int m_strokeMode;				// 0 = none, 1 = solid, 2 = gradient 3 = pattern
 	int maskMode;				// 0 = none, 1 = gradient 2 = pattern
 	double mask_patternScaleX;
 	double mask_patternScaleY;




More information about the scribus-commit mailing list