Files
qt6-migration-pipeline/Z/src/nglwidgets/nglpdfwidget.h
T

50 lines
1.0 KiB
C++
Executable File

#pragma once
#include <QWidget>
#include <memory>
#include <poppler/qt6/poppler-qt6.h>
#include "nglwidgets_export.h"
class QUrl;
namespace Ui
{
class pdfWidget;
}
namespace NGL
{
class NGLWIDGETS_EXPORT PDFWidget : public QWidget
{
Q_OBJECT
public:
explicit PDFWidget(QWidget *parent = nullptr);
~PDFWidget();
bool showPDF(const QUrl &pdf);
bool showPDF(const QByteArray &pdf);
void setZoomFactor(double newZoomFactor);
void setRotation(Poppler::Page::Rotation rot);
bool setPage(int newPage);
QVector<QImage> getPrintableImages(int resolution = 300) const;
void resizePdfToWidth();
int numPages() const;
int curPage() const;
Q_SIGNALS:
void currentPageChanged(int cur, int max);
void rotationChanged(Poppler::Page::Rotation newRotation);
protected Q_SLOTS:
void pageChanged(int cur, int max);
void rotate();
void onZoomDefault();
void onZoomFull();
void onZoomMinus();
void onZoomPlus();
protected:
double m_zoomFactor{1.0};
std::unique_ptr<Ui::pdfWidget> ui;
};
}