implement requested changes

This commit is contained in:
LordMZTE 2021-03-28 14:00:35 +02:00
parent 64e29b07e2
commit 4e6150f28e
2 changed files with 8 additions and 11 deletions

View File

@ -18,7 +18,7 @@
#include <QXmlStreamReader>
#include <cmath>
#include <qtextboundaryfinder.h>
#include <QTextBoundaryFinder>
#include <variant>
#include <cmark.h>
@ -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;
}

View File

@ -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);
}
}