23#include <QApplication>
27#include <QQuickWidget>
31 , m_view(new QQuickWidget())
32 , m_size(QSize(450, 253) * qApp->devicePixelRatio())
35 m_view->setAttribute(Qt::WA_DontShowOnScreen);
36 m_view->setSource(QUrl(
QSL(
"qrc:data/thumbnailer.qml")));
37 m_view->rootContext()->setContextProperty(
QSL(
"thumbnailer"),
this);
72 QString
title = m_title.isEmpty() ? m_url.host() : m_title;
73 if (
title.isEmpty()) {
74 title = m_url.toString();
82 m_view->rootObject()->setProperty(
"url", m_url);
84 QTimer::singleShot(500,
this, [
this]() {
102 QTimer::singleShot(1000,
this, [
this]() {
103 m_title = m_view->rootObject()->property(
"title").toString().trimmed();
104 Q_EMIT
thumbnailCreated(QPixmap::fromImage(m_view->grabFramebuffer().scaled(m_size, Qt::IgnoreAspectRatio, Qt::SmoothTransformation)));
110 m_view->deleteLater();
void setSize(const QSize &size)
void createThumbnail(bool status)
void thumbnailCreated(const QPixmap &)
void setUrl(const QUrl &url)
void setLoadTitle(bool load)
PageThumbnailer(QObject *parent=nullptr)
QString afterLoadScript() const
static QString setCss(const QString &css)
static bool isUrlValid(const QUrl &url)