Editor plugin: WIP

This commit is contained in:
Jakub Melka
2023-03-06 16:09:09 +01:00
parent 1e52c0c063
commit 1b6bb6086c
32 changed files with 2243 additions and 311 deletions

View File

@@ -37,6 +37,7 @@ namespace pdf
class PDFWidget;
class PDFDocument;
class PDFPageContentScene;
class PDFEditedPageContentElement;
class PDF4QTLIBWIDGETSSHARED_EXPORT PDFPageContentElement
{
@@ -89,6 +90,7 @@ public:
enum ManipulationModes : uint
{
None = 0,
Select,
Translate,
Top,
Left,
@@ -353,6 +355,24 @@ private:
Qt::Alignment m_alignment = Qt::AlignCenter;
};
class PDF4QTLIBWIDGETSSHARED_EXPORT PDFPageContentElementEdited : public PDFPageContentElement
{
public:
PDFPageContentElementEdited(const PDFEditedPageContentElement* element);
virtual ~PDFPageContentElementEdited();
virtual PDFPageContentElementEdited* clone() const override;
virtual void drawPage(QPainter* painter, PDFInteger pageIndex, const PDFPrecompiledPage* compiledPage, PDFTextLayoutGetter& layoutGetter, const QTransform& pagePointToDevicePointMatrix, QList<PDFRenderError>& errors) const override;
virtual uint getManipulationMode(const QPointF& point, PDFReal snapPointDistanceThreshold) const override;
virtual void performManipulation(uint mode, const QPointF& offset) override;
virtual QRectF getBoundingBox() const override;
virtual void setSize(QSizeF size) override;
virtual QString getDescription() const override;
private:
std::unique_ptr<PDFEditedPageContentElement> m_element;
};
class PDF4QTLIBWIDGETSSHARED_EXPORT PDFPageContentElementManipulator : public QObject
{
Q_OBJECT