diff --git a/src/chatlog/chatmessage.cpp b/src/chatlog/chatmessage.cpp index 6b9e08e79..54f46562b 100644 --- a/src/chatlog/chatmessage.cpp +++ b/src/chatlog/chatmessage.cpp @@ -26,6 +26,8 @@ #include "content/image.h" #include "content/notificationicon.h" +#include + #include "src/persistence/settings.h" #include "src/persistence/smileypack.h" #include "src/widget/style.h" @@ -202,7 +204,8 @@ QString ChatMessage::detectMarkdown(const QString &str) int offset = 0; while ((offset = exp.indexIn(out, offset)) != -1) { - QString snippet = exp.cap(); + QString snipCheck = out.mid(offset-1,exp.cap(0).length()+2); + QString snippet = exp.cap(0).trimmed(); QString htmledSnippet; @@ -219,21 +222,26 @@ QString ChatMessage::detectMarkdown(const QString &str) if (Settings::getInstance().getMarkdownPreference() == 2) mul = 2; + if (snippet.length() > 0) + { + qDebug() << "Offset: " << offset << " Grabbed snippet: " << snippet << " exp.cap(7): " << exp.cap(7); + } + // Match captured string to corresponding md format if (exp.cap(1) == "**") // Bold **text** - htmledSnippet = QString("%1").arg(snippet.mid(mul,snippet.length()-2*mul)); + htmledSnippet = QString(" %1 ").arg(snippet.mid(mul,snippet.length()-2*mul)); else if (exp.cap(4) == "*" && snippet.length() > 2) // Italics *text* - htmledSnippet = QString("%1").arg(snippet.mid(mul/2,snippet.length()-mul)); + htmledSnippet = QString(" %1 ").arg(snippet.mid(mul/2,snippet.length()-mul)); else if (exp.cap(7) == "_" && snippet.length() > 2) // Italics _text_ - htmledSnippet = QString("%1").arg(snippet.mid(mul/2,snippet.length()-mul)); + htmledSnippet = QString(" %1 ").arg(snippet.mid(mul/2,snippet.length()-mul)); else if (exp.cap(10) == "__"&& snippet.length() > 4) // Italics __text__ - htmledSnippet = QString("%1").arg(snippet.mid(mul,snippet.length()-2*mul)); + htmledSnippet = QString(" %1 ").arg(snippet.mid(mul,snippet.length()-2*mul)); else if (exp.cap(13) == "-" && snippet.length() > 2) // Underline -text- - htmledSnippet = QString("%1").arg(snippet.mid(mul/2,snippet.length()-mul)); + htmledSnippet = QString(" %1 ").arg(snippet.mid(mul/2,snippet.length()-mul)); else if (exp.cap(16) == "~" && snippet.length() > 2) // Strikethrough ~text~ - htmledSnippet = QString("%1").arg(snippet.mid(mul/2,snippet.length()-mul)); + htmledSnippet = QString(" %1 ").arg(snippet.mid(mul/2,snippet.length()-mul)); else if (exp.cap(19) == "~~" && snippet.length() > 4) // Strikethrough ~~text~~ - htmledSnippet = QString("%1").arg(snippet.mid(mul,snippet.length()-2*mul)); + htmledSnippet = QString(" %1 ").arg(snippet.mid(mul,snippet.length()-2*mul)); else htmledSnippet = snippet; out.replace(offset, exp.cap().length(), htmledSnippet);