diff --git a/src/messages/MessageElement.cpp b/src/messages/MessageElement.cpp index fc2f3c54e..fc6930f89 100644 --- a/src/messages/MessageElement.cpp +++ b/src/messages/MessageElement.cpp @@ -183,8 +183,7 @@ void TextElement::addToContainer(MessageLayoutContainer &container, // Should update it in MessageLayoutElement too! if (this->getLink().type == Link::Url) { - this->linkChanged.connect( - [this, e]() { e->setLink(this->getLink()); }); + static_cast(e)->listenToLinkChanges(); } return e; }; diff --git a/src/messages/MessageElement.hpp b/src/messages/MessageElement.hpp index e9032f958..cfd4ad3dd 100644 --- a/src/messages/MessageElement.hpp +++ b/src/messages/MessageElement.hpp @@ -135,10 +135,11 @@ public: virtual void addToContainer(MessageLayoutContainer &container, MessageElementFlags flags) = 0; + pajlada::Signals::NoArgSignal linkChanged; + protected: MessageElement(MessageElementFlags flags); bool trailingSpace = true; - pajlada::Signals::NoArgSignal linkChanged; private: QString text_; diff --git a/src/messages/layouts/MessageLayoutElement.cpp b/src/messages/layouts/MessageLayoutElement.cpp index 570324fd8..aaefca5ed 100644 --- a/src/messages/layouts/MessageLayoutElement.cpp +++ b/src/messages/layouts/MessageLayoutElement.cpp @@ -181,6 +181,17 @@ TextLayoutElement::TextLayoutElement(MessageElement &_creator, QString &_text, this->setText(_text); } +void TextLayoutElement::listenToLinkChanges() +{ + this->managedConnections_.emplace_back( + static_cast(this->getCreator()) + .linkChanged.connect([this]() { + // log("Old link: {}", this->getCreator().getLink().value); + // log("This link: {}", this->getLink().value); + this->setLink(this->getCreator().getLink()); // + })); +} + void TextLayoutElement::addCopyTextToString(QString &str, int from, int to) const { diff --git a/src/messages/layouts/MessageLayoutElement.hpp b/src/messages/layouts/MessageLayoutElement.hpp index bdf490437..775328a46 100644 --- a/src/messages/layouts/MessageLayoutElement.hpp +++ b/src/messages/layouts/MessageLayoutElement.hpp @@ -83,6 +83,8 @@ public: const QSize &size, QColor color, FontStyle style, float scale); + void listenToLinkChanges(); + protected: void addCopyTextToString(QString &str, int from = 0, int to = INT_MAX) const override; @@ -96,6 +98,8 @@ private: QColor color; FontStyle style; float scale; + + std::vector managedConnections_; }; // TEXT ICON diff --git a/src/providers/LinkResolver.cpp b/src/providers/LinkResolver.cpp index feab70324..069dba691 100644 --- a/src/providers/LinkResolver.cpp +++ b/src/providers/LinkResolver.cpp @@ -12,8 +12,6 @@ namespace chatterino { void LinkResolver::getLinkInfo( const QString url, std::function successCallback) { - return; - QString requestUrl("https://braize.pajlada.com/chatterino/link_resolver/" + QUrl::toPercentEncoding(url, "", "/:"));