initial commit
This commit is contained in:
commit
9d20827c46
2469 changed files with 470994 additions and 0 deletions
60
qt-patches/020-all-all-prettify wavy underline.patch
Normal file
60
qt-patches/020-all-all-prettify wavy underline.patch
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
diff --git a/src/gui/painting/qpainter.cpp b/src/gui/painting/qpainter.cpp
|
||||
index 263e53e..01af043 100644
|
||||
--- a/src/gui/painting/qpainter.cpp
|
||||
+++ b/src/gui/painting/qpainter.cpp
|
||||
@@ -6007,6 +6007,31 @@ static QPainterPath generateWavyPath(qreal minWidth, qreal maxRadius, QPaintDevi
|
||||
return path;
|
||||
}
|
||||
|
||||
+static QPixmap createTransparentPixmap(int width, int height)
|
||||
+{
|
||||
+ QPixmap pix(width, height);
|
||||
+ QBitmap mask(width, height);
|
||||
+ pix.fill();
|
||||
+ mask.clear();
|
||||
+ pix.setMask(mask);
|
||||
+ return pix;
|
||||
+}
|
||||
+
|
||||
+static QPixmap generateWavyPattern(QPainter* painter)
|
||||
+{
|
||||
+ static QPixmap pattern;
|
||||
+ if (pattern.isNull()) {
|
||||
+ pattern = createTransparentPixmap(4, 2);
|
||||
+ QPainter p2(&pattern);
|
||||
+ p2.setPen(painter->pen());
|
||||
+ p2.fillRect(pattern.rect(), Qt::transparent);
|
||||
+ p2.drawLine(0, 0, 0, 0);
|
||||
+ p2.drawLine(1, 1, 2, 1);
|
||||
+ p2.drawLine(3, 0, 4, 0);
|
||||
+ }
|
||||
+ return pattern;
|
||||
+}
|
||||
+
|
||||
static void drawTextItemDecoration(QPainter *painter, const QPointF &pos, const QTextItemInt &ti)
|
||||
{
|
||||
QTextCharFormat::UnderlineStyle underlineStyle = ti.underlineStyle;
|
||||
@@ -6035,16 +6060,19 @@ static void drawTextItemDecoration(QPainter *painter, const QPointF &pos, const
|
||||
|
||||
if (underlineStyle == QTextCharFormat::WaveUnderline) {
|
||||
painter->save();
|
||||
- painter->setRenderHint(QPainter::Antialiasing);
|
||||
+ // painter->setRenderHint(QPainter::Antialiasing);
|
||||
painter->translate(pos.x(), underlinePos);
|
||||
|
||||
QColor uc = ti.charFormat.underlineColor();
|
||||
if (uc.isValid())
|
||||
painter->setPen(uc);
|
||||
|
||||
- painter->drawPath(generateWavyPath(ti.width.toReal(),
|
||||
- fe->underlinePosition().toReal(),
|
||||
- painter->device()));
|
||||
+ QPixmap pattern = generateWavyPattern(painter);
|
||||
+ QRect underlineRect(0, 0, ti.width.toInt(), pattern.height());
|
||||
+ painter->drawTiledPixmap(underlineRect, pattern);
|
||||
+ // painter->drawPath(generateWavyPath(ti.width.toReal(),
|
||||
+ // fe->underlinePosition().toReal(),
|
||||
+ // painter->device()));
|
||||
painter->restore();
|
||||
} else if (underlineStyle != QTextCharFormat::NoUnderline) {
|
||||
QLineF underLine(line.x1(), underlinePos, line.x2(), underlinePos);
|
||||
Reference in a new issue