diff --git a/saoriviewentry.cpp b/saoriviewentry.cpp index 287ee74..2471987 100644 --- a/saoriviewentry.cpp +++ b/saoriviewentry.cpp @@ -33,6 +33,8 @@ #include #include +QMap SaoriViewEntry::m_imagecache_g; + SaoriViewEntry::SaoriViewEntry(QWidget *parent) { SaoriViewEntry(0,parent); @@ -79,9 +81,19 @@ imageurl = i.mid(p + 1); } m_urlmap[i] = imageurl; - QImage img(imageurl); - imageResizer(i.left(p),img); - document()->addResource(QTextDocument::ImageResource,QUrl("img:" + imageurl),QVariant(img)); + if (m_imagecache_g.contains(i)) { + document()->addResource(QTextDocument::ImageResource,QUrl("img:" + imageurl),QVariant(m_imagecache_g[i])); + } else if (m_imagecache_l.contains(i)) { + document()->addResource(QTextDocument::ImageResource,QUrl("img:" + imageurl),QVariant(m_imagecache_l[i])); + } else { + QImage img(imageurl); + imageResizer(i.left(p),img); + document()->addResource(QTextDocument::ImageResource,QUrl("img:" + imageurl),QVariant(img)); + auto type = i.split(':')[0]; + if (((type == "icon") || (type == "avatar") || (type == "mavatar")) && (imageurl.left(2) != ":/")) + m_imagecache_g[i] = img; + else if (imageurl != ":/icons/ionicons-md/md-hourglass.svg") m_imagecache_l[i] = img; + } } setText(designedText(cw)); // QTextBrowserのサイズを確定させるトリック。 diff --git a/saoriviewentry.h b/saoriviewentry.h index 56858ec..ba6a30d 100644 --- a/saoriviewentry.h +++ b/saoriviewentry.h @@ -30,6 +30,7 @@ #include #include #include +#include class SaoriViewEntry : public QTextBrowser { @@ -53,6 +54,8 @@ QString m_original; bool m_cw; QMap m_urlmap; + static QMap m_imagecache_g; + QMap m_imagecache_l; protected slots: void downloaded(const QUrl url);