diff --git a/src/neochatconnection.cpp b/src/neochatconnection.cpp index 707628217..fb4e48a19 100644 --- a/src/neochatconnection.cpp +++ b/src/neochatconnection.cpp @@ -9,7 +9,6 @@ #include "controller.h" #include "jobs/neochatchangepasswordjob.h" #include "jobs/neochatdeactivateaccountjob.h" -#include "linkpreviewer.h" #include "neochatconfig.h" #include "neochatroom.h" #include "notificationsmanager.h" @@ -45,6 +44,7 @@ NeoChatConnection::NeoChatConnection(QObject *parent) : Connection(parent) , m_threePIdModel(new ThreePIdModel(this)) { + m_linkPreviewers.setMaxCost(20); connectSignals(); } @@ -52,6 +52,7 @@ NeoChatConnection::NeoChatConnection(const QUrl &server, QObject *parent) : Connection(server, parent) , m_threePIdModel(new ThreePIdModel(this)) { + m_linkPreviewers.setMaxCost(20); connectSignals(); } @@ -563,13 +564,13 @@ LinkPreviewer *NeoChatConnection::previewerForLink(const QUrl &link) return nullptr; } - auto previewer = m_linkPreviewers.value(link, nullptr); + auto previewer = m_linkPreviewers.object(link); if (previewer != nullptr) { return previewer; } previewer = new LinkPreviewer(link, this); - m_linkPreviewers[link] = previewer; + m_linkPreviewers.insert(link, previewer); return previewer; } diff --git a/src/neochatconnection.h b/src/neochatconnection.h index 49fd19a50..d31d285d9 100644 --- a/src/neochatconnection.h +++ b/src/neochatconnection.h @@ -3,6 +3,7 @@ #pragma once +#include #include #include @@ -13,10 +14,9 @@ #include #endif +#include "linkpreviewer.h" #include "models/threepidmodel.h" -class LinkPreviewer; - class NeoChatConnection : public Quotient::Connection { Q_OBJECT @@ -222,7 +222,7 @@ private: int m_badgeNotificationCount = 0; - QHash m_linkPreviewers; + QCache m_linkPreviewers; bool m_canCheckMutualRooms = false; };