JKQTMathText: improved rendering of decorations
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 4.1 KiB After Width: | Height: | Size: 3.9 KiB |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.0 KiB |
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 4.1 KiB After Width: | Height: | Size: 3.9 KiB |
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |
@ -57,7 +57,7 @@ MTDwidetilde.png
|
||||
$\widetilde{x}\widetilde{i}\widetilde{X}\widetilde{\psi}\widetilde{abc}$
|
||||
---
|
||||
jkqtmathtext_mathdeco.png
|
||||
$\vec{x} \dot{x} \ddot{x} \overline{x} \underline{x} \hat{x} \tilde{x} \uul{x} \ool{x} \bar{x} \arrow{x} \widehat{x} \widetilde{x} ...$
|
||||
$\vec{x}\ \dot{x}\ \ddot{x}\ \overline{x}\ \underline{x}\ \hat{x}\ \tilde{x}\ \uul{x}\ \ool{x}\ \bar{x}\ \arrow{x}\ \widehat{x}\ \widetilde{x}\ ...$
|
||||
---
|
||||
jkqtmathtext_textaccents.png
|
||||
\begin{array}
|
||||
|
@ -217,8 +217,8 @@ double JKQTMathTextDecoratedNode::draw(QPainter& painter, double x, double y, JK
|
||||
const double italic_xcorrection=getNonItalicXCorretion(painter, cwidth, ev, getChild());
|
||||
const double deco_xoffset=parentMathText->getDecorationWidthReductionXFactor()*width_X/2.0;
|
||||
const double deco_width=std::max<double>(width_x*0.5,cwidth-2.0*deco_xoffset-italic_xcorrection);
|
||||
const double deco_vecwidth=width_x*0.33;
|
||||
const double deco_vecheight=deco_height*0.33;
|
||||
const double deco_vecwidth=width_x*0.18;
|
||||
const double deco_vecheight=deco_height*0.25;
|
||||
const double deco_accentwidth=deco_height/4.0;
|
||||
const double deco_miniwidth=((decoration==MTDtilde||decoration==MTDbreve)?fm.boundingRect("j").width():fm.boundingRect("^").width())-italic_xcorrection;
|
||||
const double decotop_xcenter=x+italic_xcorrection+(cwidth-italic_xcorrection)/2.0;
|
||||
@ -236,7 +236,7 @@ double JKQTMathTextDecoratedNode::draw(QPainter& painter, double x, double y, JK
|
||||
QPen pold=painter.pen();
|
||||
QPen p=pold;
|
||||
p.setColor(ev.color);
|
||||
p.setWidthF(linewidth);//ceil(currentEv.fontSize/16.0));
|
||||
p.setWidthF(linewidth*0.75);
|
||||
p.setCapStyle(Qt::RoundCap);
|
||||
p.setJoinStyle(Qt::RoundJoin);
|
||||
|
||||
@ -246,7 +246,7 @@ double JKQTMathTextDecoratedNode::draw(QPainter& painter, double x, double y, JK
|
||||
if (!aDirect.isNull() && fm.inFont(aDirect)) {
|
||||
painter.save(); auto __finalpaint=JKQTPFinally([&painter]() {painter.restore();});
|
||||
const QRectF tbra=fm.tightBoundingRect(aDirect);
|
||||
painter.translate(decotop_xcenter-tbra.width()/2.0, (deco_ytopcenter+deco_ytopbot)/2.0);
|
||||
painter.translate(decotop_xcenter-tbra.width()/2.0, (deco_ytopcenter+deco_ytoptop)/2.0);
|
||||
//painter.setPen("red");
|
||||
//painter.drawEllipse(0-2,0-2,4,4);
|
||||
painter.translate(-tbra.x(), -tbra.y());
|
||||
@ -264,7 +264,7 @@ double JKQTMathTextDecoratedNode::draw(QPainter& painter, double x, double y, JK
|
||||
if (!aFallback.isNull() && fm.inFont(aFallback)) {
|
||||
painter.save(); auto __finalpaint=JKQTPFinally([&painter]() {painter.restore();});
|
||||
const QRectF tbra=fm.tightBoundingRect(aFallback);
|
||||
painter.translate(decotop_xcenter-tbra.width()/2.0, deco_ytopcenter);
|
||||
painter.translate(decotop_xcenter-tbra.width()/2.0, (deco_ytopcenter+deco_ytoptop)/2.0);
|
||||
//painter.setPen("yellow");
|
||||
//painter.drawEllipse(0-2,0-2,4,4);
|
||||
painter.translate(-tbra.x(), -tbra.y());
|
||||
@ -302,7 +302,7 @@ double JKQTMathTextDecoratedNode::draw(QPainter& painter, double x, double y, JK
|
||||
painter.setPen(p);
|
||||
const QLineF l(decotop_xstart, deco_ytopbot, decotop_xend, deco_ytopbot);
|
||||
if (l.length()>0) painter.drawLine(l);
|
||||
const QLineF l2(decotop_xstart, deco_ytopbot-2.0*p.widthF(), decotop_xend, deco_ytopbot-2.0*p.widthF());
|
||||
const QLineF l2(decotop_xstart, deco_ytopbot-3.0*p.widthF(), decotop_xend, deco_ytopbot-3.0*p.widthF());
|
||||
if (l2.length()>0) painter.drawLine(l2);
|
||||
painter.setPen(pold);
|
||||
} else if (decoration==MTDunderline) {
|
||||
@ -314,7 +314,7 @@ double JKQTMathTextDecoratedNode::draw(QPainter& painter, double x, double y, JK
|
||||
painter.setPen(p);
|
||||
const QLineF l(decobot_xstart, decobelow_ypos, decobot_xend, decobelow_ypos);
|
||||
if (l.length()>0) painter.drawLine(l);
|
||||
QLineF l2(decobot_xstart, decobelow_ypos+2.0*p.widthF(), decobot_xend, decobelow_ypos+2.0*p.widthF());
|
||||
QLineF l2(decobot_xstart, decobelow_ypos+3.0*p.widthF(), decobot_xend, decobelow_ypos+3.0*p.widthF());
|
||||
if (l2.length()>0) painter.drawLine(l2);
|
||||
painter.setPen(pold);
|
||||
} else if (decoration==MTDarrow) {
|
||||
|
@ -341,7 +341,6 @@ void JKQTMathTextModifiedTextPropsInstructionNode::fillInstructions()
|
||||
ev.underlined=true;
|
||||
}, 0);
|
||||
instructions["ul"] = i;
|
||||
instructions["underline"] = i;
|
||||
instructions["underlined"]= i;
|
||||
}
|
||||
{
|
||||
@ -349,7 +348,6 @@ void JKQTMathTextModifiedTextPropsInstructionNode::fillInstructions()
|
||||
ev.overline=true;
|
||||
}, 0);
|
||||
instructions["ol"] = i;
|
||||
instructions["overline"] = i;
|
||||
instructions["overlined"]= i;
|
||||
}
|
||||
{
|
||||
|