// pdfmodel.cpp
int PdfModel::loadProvider()
{
m_providersNumber = QThread::idealThreadCount();
qDebug() << "Ideal number of image providers is:" << m_providersNumber;
qDebug() << "Loading image provider(s)...";
QQmlEngine *engine = QQmlEngine::contextForObject(this)->engine();
for (int i=0; i<m_providersNumber; i++)
engine->addImageProvider(QLatin1String("poppler" + QByteArray::number(i)), new PageImageProvider(document));
qDebug() << "Image provider(s) loaded successfully !";
return 1;
}
// PdfViewDelegate.qml
Image {
id: pageImg
anchors.fill: parent
source: "image://poppler" + (index % poppler.providersNumber()) + "/page/" + index;
sourceSize.width: pdfPage.width
}