src/svg/qsvgstyle.cpp
changeset 3 41300fa6a67c
parent 0 1918ee327afb
child 4 3b1da2848fc7
equal deleted inserted replaced
2:56cd8111b7f7 3:41300fa6a67c
   361     if (m_strokeLineJoinSet)
   361     if (m_strokeLineJoinSet)
   362         pen.setJoinStyle(m_stroke.joinStyle());
   362         pen.setJoinStyle(m_stroke.joinStyle());
   363     if (m_strokeMiterLimitSet)
   363     if (m_strokeMiterLimitSet)
   364         pen.setMiterLimit(m_stroke.miterLimit());
   364         pen.setMiterLimit(m_stroke.miterLimit());
   365 
   365 
   366     if (setDashOffsetNeeded) {
   366     // You can have dash offset on solid strokes in SVG files, but not in Qt.
       
   367     // QPen::setDashOffset() will set the pen style to Qt::CustomDashLine,
       
   368     // so don't call the method if the pen is solid.
       
   369     if (setDashOffsetNeeded && pen.style() != Qt::SolidLine) {
   367         qreal currentWidth = pen.widthF();
   370         qreal currentWidth = pen.widthF();
   368         if (currentWidth == 0)
   371         if (currentWidth == 0)
   369             currentWidth = 1;
   372             currentWidth = 1;
   370         pen.setDashOffset(states.strokeDashOffset / currentWidth);
   373         pen.setDashOffset(states.strokeDashOffset / currentWidth);
   371     }
   374     }
   766         to1   = m_args[endElem++];
   769         to1   = m_args[endElem++];
   767 
   770 
   768         qreal transXDiff = (to1-from1) * percentOfAnimation;
   771         qreal transXDiff = (to1-from1) * percentOfAnimation;
   769         qreal transX = from1 + transXDiff;
   772         qreal transX = from1 + transXDiff;
   770         m_transform = QTransform();
   773         m_transform = QTransform();
   771         m_transform.shear(tan(transX * deg2rad), 0);
   774         m_transform.shear(qTan(transX * deg2rad), 0);
   772         break;
   775         break;
   773     }
   776     }
   774     case SkewY: {
   777     case SkewY: {
   775         startElem *= 3;
   778         startElem *= 3;
   776         endElem   *= 3;
   779         endElem   *= 3;
   781 
   784 
   782 
   785 
   783         qreal transYDiff = (to1 - from1) * percentOfAnimation;
   786         qreal transYDiff = (to1 - from1) * percentOfAnimation;
   784         qreal transY = from1 + transYDiff;
   787         qreal transY = from1 + transYDiff;
   785         m_transform = QTransform();
   788         m_transform = QTransform();
   786         m_transform.shear(0, tan(transY * deg2rad));
   789         m_transform.shear(0, qTan(transY * deg2rad));
   787         break;
   790         break;
   788     }
   791     }
   789     default:
   792     default:
   790         break;
   793         break;
   791     }
   794     }