diff options
-rw-r--r-- | examples/widgets/pdfviewer/pagecache.cpp | 11 | ||||
-rw-r--r-- | examples/widgets/pdfviewer/pagecache.h | 8 |
2 files changed, 8 insertions, 11 deletions
diff --git a/examples/widgets/pdfviewer/pagecache.cpp b/examples/widgets/pdfviewer/pagecache.cpp index 5943b90c2..589a7b09a 100644 --- a/examples/widgets/pdfviewer/pagecache.cpp +++ b/examples/widgets/pdfviewer/pagecache.cpp @@ -3,13 +3,11 @@ #include <QPdfDocument> #include <QLoggingCategory> #include <QElapsedTimer> -#include <QThread> Q_DECLARE_LOGGING_CATEGORY(lcExample) PageCache::PageCache(QPdfDocument *doc, qreal zoom) - : QObject(Q_NULLPTR) - , m_thread(new QThread(this)) + : QThread(Q_NULLPTR) , m_doc(doc) , m_zoom(zoom) , m_placeholderIcon(":icons/images/busy.png") @@ -19,8 +17,6 @@ PageCache::PageCache(QPdfDocument *doc, qreal zoom) , m_totalRenderTime(0.) , m_totalPagesRendered(0) { - moveToThread(m_thread); - connect(this, &PageCache::pagesNeeded, this, &PageCache::run, Qt::QueuedConnection); } PageCache::~PageCache() @@ -36,9 +32,8 @@ QPixmap PageCache::get(int page) m_lastPageRequested = page; if (m_pageCache.contains(page)) return m_pageCache[page]; - if (!m_thread->isRunning()) - m_thread->start(QThread::LowestPriority); - emit pagesNeeded(); + if (!isRunning()) + start(QThread::LowestPriority); QSizeF sizeF = m_doc->pageSize(page); if (!sizeF.isValid()) return QPixmap(); diff --git a/examples/widgets/pdfviewer/pagecache.h b/examples/widgets/pdfviewer/pagecache.h index 49d8bf8e7..6d93211dc 100644 --- a/examples/widgets/pdfviewer/pagecache.h +++ b/examples/widgets/pdfviewer/pagecache.h @@ -5,10 +5,11 @@ #include <QHash> #include <QPixmap> #include <QRunnable> +#include <QThread> class QPdfDocument; -class PageCache : public QObject +class PageCache : public QThread { Q_OBJECT public: @@ -21,14 +22,15 @@ public slots: void run(); signals: - void pagesNeeded(); void pageReady(int page); +protected: + Q_DECL_OVERRIDE void run(); + private: void insertPage(int page); private: - QThread *m_thread; QPdfDocument *m_doc; QHash<int, QPixmap> m_pageCache; qreal m_zoom; |