diff --git a/src/Utils.cpp b/src/Utils.cpp index 4be3c480..05e1a584 100644 --- a/src/Utils.cpp +++ b/src/Utils.cpp @@ -18,7 +18,7 @@ #include #include -#include +#include #include #include @@ -26,7 +26,6 @@ #include "Cache.h" #include "Config.h" #include "EventAccessors.h" -#include "Logging.h" #include "MatrixClient.h" #include "UserSettingsPage.h" @@ -509,24 +508,22 @@ utils::markdownToHtml(const QString &text, bool rainbowify) continue; // get text in current node - const char *tmp_buf = cmark_node_get_literal(cur); - std::string nodeText(tmp_buf); - auto qNodeText = QString::fromStdString(nodeText); + QString nodeText(cmark_node_get_literal(cur)); // create buffer to append rainbow text to std::string buf; int boundaryStart = 0; int boundaryEnd = 0; // use QTextBoundaryFinder to iterate ofer graphemes QTextBoundaryFinder tbf(QTextBoundaryFinder::BoundaryType::Grapheme, - qNodeText); + nodeText); while ((boundaryEnd = tbf.toNextBoundary()) != -1) { // Split text to get current char auto curChar = - qNodeText.mid(boundaryStart, boundaryEnd - boundaryStart); + nodeText.midRef(boundaryStart, boundaryEnd - boundaryStart); boundaryStart = boundaryEnd; - // Don't rainbowify spaces - if (curChar == " ") { - buf.push_back(' '); + // Don't rainbowify whitespaces + if (curChar.trimmed().isEmpty()) { + buf.append(curChar.toString().toStdString()); continue; } diff --git a/src/timeline/InputBar.cpp b/src/timeline/InputBar.cpp index 2d76e7fb..69d129ce 100644 --- a/src/timeline/InputBar.cpp +++ b/src/timeline/InputBar.cpp @@ -525,7 +525,7 @@ InputBar::command(QString command, QString args) } else if (command == "plain") { message(args, MarkdownOverride::OFF); } else if (command == "rainbow") { - message(args, MarkdownOverride::NOT_SPECIFIED, true); + message(args, MarkdownOverride::ON, true); } }