QString MessageAction::getMessage(QString div) { QString message_; if(Settings::getInstance().getUseEmoticons()) message_ = SmileyPack::getInstance().smileyfied(toHtmlChars(message)); else message_ = toHtmlChars(message); // detect urls QRegExp exp("(?:\\b)(www\\.|http[s]?:\\/\\/|ftp:\\/\\/|tox:\\/\\/|tox:)\\S+"); int offset = 0; while ((offset = exp.indexIn(message_, offset)) != -1) { QString url = exp.cap(); // If there's a trailing " it's a HTML attribute, e.g. a smiley img's title=":tox:" if (url == "tox:\"") { offset += url.length(); continue; } // add scheme if not specified if (exp.cap(1) == "www.") url.prepend("http://"); QString htmledUrl = QString("<a href=\"%1\">%1</a>").arg(url); message_.replace(offset, exp.cap().length(), htmledUrl); offset += htmledUrl.length(); } // detect text quotes QStringList messageLines = message_.split("\n"); message_ = ""; for (QString& s : messageLines) { if (QRegExp("^[ ]*>.*").exactMatch(s)) message_ += "<span class=quote>" + s + "</span><br/>"; else message_ += s + "<br/>"; } message_ = message_.left(message_.length()-4); return QString(QString("<div class=%1>").arg(div) + message_ + "</div>"); }
QString ActionAction::getMessage() { QString message_ = SmileyPack::getInstance().smileyfied(toHtmlChars(message)); // detect urls QRegExp exp("(www\\.|http[s]?:\\/\\/|ftp:\\/\\/)\\S+"); int offset = 0; while ((offset = exp.indexIn(message_, offset)) != -1) { QString url = exp.cap(); // add scheme if not specified if (exp.cap(1) == "www.") url.prepend("http://"); QString htmledUrl = QString("<a href=\"%1\">%1</a>").arg(url); message_.replace(offset, exp.cap().length(), htmledUrl); offset += htmledUrl.length(); } return QString("<div class=action>%1 %2</div>").arg(name).arg(message_); }