Freehand curve tool

This commit is contained in:
Jakub Melka
2020-12-08 20:18:11 +01:00
parent 010842cb04
commit 75f7f38984
4 changed files with 200 additions and 0 deletions

View File

@ -191,6 +191,42 @@ private:
QColor m_fillColor;
};
class PDFFORQTLIBSHARED_EXPORT PDFCreateFreehandCurveTool : public PDFCreateAnnotationTool
{
Q_OBJECT
private:
using BaseClass = PDFCreateAnnotationTool;
public:
explicit PDFCreateFreehandCurveTool(PDFDrawWidgetProxy* proxy, PDFToolManager* toolManager, QAction* action, QObject* parent);
virtual void drawPage(QPainter* painter, PDFInteger pageIndex,
const PDFPrecompiledPage* compiledPage,
PDFTextLayoutGetter& layoutGetter,
const QMatrix& pagePointToDevicePointMatrix,
QList<PDFRenderError>& errors) const override;
virtual void mousePressEvent(QWidget* widget, QMouseEvent* event) override;
virtual void mouseReleaseEvent(QWidget* widget, QMouseEvent* event) override;
virtual void mouseMoveEvent(QWidget* widget, QMouseEvent* event) override;
PDFReal getPenWidth() const;
void setPenWidth(const PDFReal& penWidth);
QColor getStrokeColor() const;
void setStrokeColor(const QColor& strokeColor);
private:
void resetTool();
PDFToolManager* m_toolManager;
PDFInteger m_pageIndex;
std::vector<QPointF> m_pickedPoints;
PDFReal m_penWidth;
QColor m_strokeColor;
};
} // namespace pdf
#endif // PDFADVANCEDTOOLS_H