see also: https://invent.kde.org/kdevelop/kdevelop/-/merge_requests/370#note_487717
| 196 | |
| 197 | // see also: https://invent.kde.org/kdevelop/kdevelop/-/merge_requests/370#note_487717 |
| 198 | void WidgetColorizer::convertDocumentToDarkTheme(QTextDocument* doc) |
| 199 | { |
| 200 | const auto palette = QApplication::palette(); |
| 201 | const auto bgcolor = palette.color(QPalette::Base); |
| 202 | const auto fgcolor = palette.color(QPalette::Text); |
| 203 | |
| 204 | if (fgcolor.value() < bgcolor.value()) |
| 205 | return; |
| 206 | |
| 207 | std::vector<FormatRange> ranges; |
| 208 | collectRanges(doc->rootFrame(), fgcolor, bgcolor, false, ranges); |
| 209 | |
| 210 | auto cur = QTextCursor(doc); |
| 211 | cur.beginEditBlock(); |
| 212 | for (const auto& [start, end, format] : ranges) { |
| 213 | cur.setPosition(start); |
| 214 | cur.setPosition(end, QTextCursor::KeepAnchor); |
| 215 | cur.setCharFormat(format); |
| 216 | } |
| 217 | cur.endEditBlock(); |
| 218 | } |
nothing calls this directly
no test coverage detected