mirror of
https://github.com/JakubMelka/PDF4QT.git
synced 2025-02-19 13:10:51 +01:00
Issue #45: Blank page in DocPage Organizer
This commit is contained in:
parent
9a064508ab
commit
238e275e46
@ -37,7 +37,7 @@ PageItemDelegate::PageItemDelegate(PageItemModel* model, QObject* parent) :
|
|||||||
m_rasterizer = new pdf::PDFRasterizer(this);
|
m_rasterizer = new pdf::PDFRasterizer(this);
|
||||||
QSurfaceFormat format;
|
QSurfaceFormat format;
|
||||||
format.setSamples(16);
|
format.setSamples(16);
|
||||||
m_rasterizer->reset(true, format);
|
m_rasterizer->reset(false, format);
|
||||||
}
|
}
|
||||||
|
|
||||||
PageItemDelegate::~PageItemDelegate()
|
PageItemDelegate::~PageItemDelegate()
|
||||||
@ -56,6 +56,7 @@ void PageItemDelegate::paint(QPainter* painter, const QStyleOptionViewItem& opti
|
|||||||
|
|
||||||
QRect rect = option.rect;
|
QRect rect = option.rect;
|
||||||
|
|
||||||
|
m_dpiScaleRatio = option.widget->devicePixelRatioF();
|
||||||
QSize scaledSize = pdf::PDFWidgetUtils::scaleDPI(option.widget, m_pageImageSize);
|
QSize scaledSize = pdf::PDFWidgetUtils::scaleDPI(option.widget, m_pageImageSize);
|
||||||
int verticalSpacing = pdf::PDFWidgetUtils::scaleDPI_y(option.widget, getVerticalSpacing());
|
int verticalSpacing = pdf::PDFWidgetUtils::scaleDPI_y(option.widget, getVerticalSpacing());
|
||||||
int horizontalSpacing = pdf::PDFWidgetUtils::scaleDPI_x(option.widget, getHorizontalSpacing());
|
int horizontalSpacing = pdf::PDFWidgetUtils::scaleDPI_x(option.widget, getHorizontalSpacing());
|
||||||
@ -191,7 +192,7 @@ QPixmap PageItemDelegate::getPageImagePixmap(const PageGroupItem* item, QRect re
|
|||||||
pdf::PDFRenderer renderer(&document, &fontCache, cms.data(), &optionalContentActivity, pdf::PDFRenderer::getDefaultFeatures(), pdf::PDFMeshQualitySettings());
|
pdf::PDFRenderer renderer(&document, &fontCache, cms.data(), &optionalContentActivity, pdf::PDFRenderer::getDefaultFeatures(), pdf::PDFMeshQualitySettings());
|
||||||
renderer.compile(&compiledPage, pageIndex);
|
renderer.compile(&compiledPage, pageIndex);
|
||||||
|
|
||||||
QSize imageSize = rect.size();
|
QSize imageSize = rect.size() * m_dpiScaleRatio;
|
||||||
QImage pageImage = m_rasterizer->render(pageIndex, page, &compiledPage, imageSize, pdf::PDFRenderer::getDefaultFeatures(), nullptr, groupItem.pageAdditionalRotation);
|
QImage pageImage = m_rasterizer->render(pageIndex, page, &compiledPage, imageSize, pdf::PDFRenderer::getDefaultFeatures(), nullptr, groupItem.pageAdditionalRotation);
|
||||||
pixmap = QPixmap::fromImage(qMove(pageImage));
|
pixmap = QPixmap::fromImage(qMove(pageImage));
|
||||||
}
|
}
|
||||||
|
@ -55,6 +55,7 @@ private:
|
|||||||
PageItemModel* m_model;
|
PageItemModel* m_model;
|
||||||
QSize m_pageImageSize;
|
QSize m_pageImageSize;
|
||||||
pdf::PDFRasterizer* m_rasterizer;
|
pdf::PDFRasterizer* m_rasterizer;
|
||||||
|
mutable double m_dpiScaleRatio = 1.0;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace pdfdocpage
|
} // namespace pdfdocpage
|
||||||
|
Loading…
x
Reference in New Issue
Block a user