From 688602704d5c5226491b0d0ab7f596f9568966d6 Mon Sep 17 00:00:00 2001 From: Shawn Rutledge Date: Thu, 6 May 2021 21:13:29 +0200 Subject: Support CSS text-decoration-color in underlines, overlines, strikethrough Also add a feature to the textedit example to set this value. [ChangeLog][QtGui][CSS] The CSS text-decoration-color attribute is now supported in rich text spans with underlines, overlines and strikethrough. Fixes: QTBUG-82114 Task-number: QTBUG-39617 Change-Id: I0065cb5431833da55b0f503ce7ff2b83b74b718a Reviewed-by: Allan Sandfeld Jensen --- .../richtext/textedit/images/mac/textundercolor.png | Bin 0 -> 6916 bytes .../richtext/textedit/images/win/textundercolor.png | Bin 0 -> 6916 bytes examples/widgets/richtext/textedit/textedit.cpp | 15 +++++++++++++++ examples/widgets/richtext/textedit/textedit.h | 2 ++ examples/widgets/richtext/textedit/textedit.qrc | 2 ++ 5 files changed, 19 insertions(+) create mode 100644 examples/widgets/richtext/textedit/images/mac/textundercolor.png create mode 100644 examples/widgets/richtext/textedit/images/win/textundercolor.png (limited to 'examples') diff --git a/examples/widgets/richtext/textedit/images/mac/textundercolor.png b/examples/widgets/richtext/textedit/images/mac/textundercolor.png new file mode 100644 index 0000000000..30e24e61c3 Binary files /dev/null and b/examples/widgets/richtext/textedit/images/mac/textundercolor.png differ diff --git a/examples/widgets/richtext/textedit/images/win/textundercolor.png b/examples/widgets/richtext/textedit/images/win/textundercolor.png new file mode 100644 index 0000000000..30e24e61c3 Binary files /dev/null and b/examples/widgets/richtext/textedit/images/win/textundercolor.png differ diff --git a/examples/widgets/richtext/textedit/textedit.cpp b/examples/widgets/richtext/textedit/textedit.cpp index 3a1b3321a1..ed91f6e250 100644 --- a/examples/widgets/richtext/textedit/textedit.cpp +++ b/examples/widgets/richtext/textedit/textedit.cpp @@ -354,6 +354,10 @@ void TextEdit::setupTextActions() actionTextColor = menu->addAction(pix, tr("&Color..."), this, &TextEdit::textColor); tb->addAction(actionTextColor); + const QIcon underlineColorIcon(rsrcPath + "/textundercolor.png"); + actionUnderlineColor = menu->addAction(underlineColorIcon, tr("Underline color..."), this, &TextEdit::underlineColor); + tb->addAction(actionUnderlineColor); + menu->addSeparator(); const QIcon checkboxIcon = QIcon::fromTheme("status-checkbox-checked", QIcon(rsrcPath + "/checkbox-checked.png")); @@ -729,6 +733,17 @@ void TextEdit::textColor() colorChanged(col); } +void TextEdit::underlineColor() +{ + QColor col = QColorDialog::getColor(Qt::black, this); + if (!col.isValid()) + return; + QTextCharFormat fmt; + fmt.setUnderlineColor(col); + mergeFormatOnWordOrSelection(fmt); + colorChanged(col); +} + void TextEdit::textAlign(QAction *a) { if (a == actionAlignLeft) diff --git a/examples/widgets/richtext/textedit/textedit.h b/examples/widgets/richtext/textedit/textedit.h index 07a307f83d..debc401150 100644 --- a/examples/widgets/richtext/textedit/textedit.h +++ b/examples/widgets/richtext/textedit/textedit.h @@ -95,6 +95,7 @@ private slots: void textSize(const QString &p); void textStyle(int styleIndex); void textColor(); + void underlineColor(); void textAlign(QAction *a); void setChecked(bool checked); void indent(); @@ -125,6 +126,7 @@ private: QAction *actionTextUnderline; QAction *actionTextItalic; QAction *actionTextColor; + QAction *actionUnderlineColor; QAction *actionAlignLeft; QAction *actionAlignCenter; QAction *actionAlignRight; diff --git a/examples/widgets/richtext/textedit/textedit.qrc b/examples/widgets/richtext/textedit/textedit.qrc index 1641acc207..a30d50fdbf 100644 --- a/examples/widgets/richtext/textedit/textedit.qrc +++ b/examples/widgets/richtext/textedit/textedit.qrc @@ -22,6 +22,7 @@ images/mac/textleft.png images/mac/textright.png images/mac/textunder.png + images/mac/textundercolor.png images/mac/zoomin.png images/mac/zoomout.png images/win/checkbox.png @@ -45,6 +46,7 @@ images/win/textleft.png images/win/textright.png images/win/textunder.png + images/win/textundercolor.png images/win/zoomin.png images/win/zoomout.png example.html -- cgit v1.2.3