Fix double href links on username pills
This commit is contained in:
parent
896fe069b6
commit
a21db789e7
3 changed files with 59 additions and 9 deletions
|
|
@ -3,10 +3,13 @@
|
|||
#include <QApplication>
|
||||
#include <QDesktopWidget>
|
||||
#include <QSettings>
|
||||
#include <QXmlStreamReader>
|
||||
#include <cmath>
|
||||
|
||||
#include <boost/variant.hpp>
|
||||
|
||||
#include "Config.h"
|
||||
|
||||
using TimelineEvent = mtx::events::collections::TimelineEvents;
|
||||
|
||||
QString
|
||||
|
|
@ -276,3 +279,51 @@ utils::humanReadableFingerprint(const QString &ed25519)
|
|||
}
|
||||
return fingerprintList.join(" ");
|
||||
}
|
||||
|
||||
QString
|
||||
utils::linkifyMessage(const QString &body)
|
||||
{
|
||||
QXmlStreamReader xml{"<html>" + body + "</html>"};
|
||||
|
||||
QString textString;
|
||||
while (!xml.atEnd() && !xml.hasError()) {
|
||||
auto t = xml.readNext();
|
||||
|
||||
switch (t) {
|
||||
case QXmlStreamReader::Characters: {
|
||||
auto text = xml.text().toString();
|
||||
text.replace(conf::strings::url_regex, conf::strings::url_html);
|
||||
|
||||
textString += text;
|
||||
break;
|
||||
}
|
||||
case QXmlStreamReader::StartDocument:
|
||||
case QXmlStreamReader::EndDocument:
|
||||
break;
|
||||
case QXmlStreamReader::StartElement: {
|
||||
if (xml.name() == "html")
|
||||
break;
|
||||
|
||||
textString += "<" + xml.name() + ">";
|
||||
break;
|
||||
}
|
||||
case QXmlStreamReader::EndElement: {
|
||||
if (xml.name() == "html")
|
||||
break;
|
||||
|
||||
textString += "</" + xml.name() + ">";
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (xml.hasError()) {
|
||||
// qWarning() << "error while parsing xml";
|
||||
return body;
|
||||
}
|
||||
|
||||
return textString;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue