From 1ceac51771394bc479eee8043e61f25755575484 Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Wed, 9 Oct 2019 00:21:40 +0200 Subject: [PATCH] Encode HTML messages, reported as bug in Discord --- src/blackgui/components/textmessagecomponent.cpp | 4 ++-- src/blackgui/textmessagetextedit.cpp | 2 +- src/blackmisc/network/textmessage.cpp | 6 ++++++ src/blackmisc/network/textmessage.h | 3 +++ 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/blackgui/components/textmessagecomponent.cpp b/src/blackgui/components/textmessagecomponent.cpp index 7dde34ff6..b5e143723 100644 --- a/src/blackgui/components/textmessagecomponent.cpp +++ b/src/blackgui/components/textmessagecomponent.cpp @@ -101,7 +101,7 @@ namespace BlackGui c = connect(sGui->getIContextOwnAircraft(), &IContextOwnAircraft::changedAircraftCockpit, this, &CTextMessageComponent::onChangedAircraftCockpit, Qt::QueuedConnection); Q_ASSERT_X(c, Q_FUNC_INFO, "Missing connect"); } - Q_UNUSED(c); + Q_UNUSED(c) // init by settings const QPointer myself(this); @@ -267,7 +267,7 @@ namespace BlackGui void CTextMessageComponent::onChangedAircraftCockpit(const CSimulatedAircraft &aircraft, const CIdentifier &originator) { // this is called for every overlay widget as well - Q_UNUSED(originator); + Q_UNUSED(originator) if (!this->isActivated()) { return; } this->showCurrentFrequenciesFromCockpit(aircraft); } diff --git a/src/blackgui/textmessagetextedit.cpp b/src/blackgui/textmessagetextedit.cpp index 90d603a64..fe9edd316 100644 --- a/src/blackgui/textmessagetextedit.cpp +++ b/src/blackgui/textmessagetextedit.cpp @@ -131,7 +131,7 @@ namespace BlackGui html += u"" % message.getRecipientCallsignOrFrequency() % u""; } - html += u"" % message.getMessage() % u""; + html += u"" % message.getHtmlEncodedMessage() % u""; return html; } diff --git a/src/blackmisc/network/textmessage.cpp b/src/blackmisc/network/textmessage.cpp index e2f979ab2..b462d343a 100644 --- a/src/blackmisc/network/textmessage.cpp +++ b/src/blackmisc/network/textmessage.cpp @@ -164,6 +164,12 @@ namespace BlackMisc return asciiOnlyString(simplifyAccents(m_message)); } + QString CTextMessage::getHtmlEncodedMessage() const + { + if (m_message.isEmpty()) { return {}; } + return m_message.toHtmlEscaped(); + } + void CTextMessage::setMessage(const QString &message) { m_message = message.simplified().trimmed(); diff --git a/src/blackmisc/network/textmessage.h b/src/blackmisc/network/textmessage.h index f4e3470dd..7ad3a155b 100644 --- a/src/blackmisc/network/textmessage.h +++ b/src/blackmisc/network/textmessage.h @@ -90,6 +90,9 @@ namespace BlackMisc //! Get ASCII only message QString getAsciiOnlyMessage() const; + //! Get HTML escaped message + QString getHtmlEncodedMessage() const; + //! Empty message bool isEmpty() const { return m_message.isEmpty(); }