// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: LGPL-3.0-or-later #ifndef DSVGRENDERER_H #define DSVGRENDERER_H #include #include QT_BEGIN_NAMESPACE class QPainter; QT_END_NAMESPACE class DSvgRendererPrivate; class DSvgRenderer : public QObject { Q_PROPERTY(QRectF viewBox READ viewBoxF WRITE setViewBox) public: explicit DSvgRenderer(QObject *parent = Q_NULLPTR); DSvgRenderer(const QString &filename, QObject *parent = Q_NULLPTR); DSvgRenderer(const QByteArray &contents, QObject *parent = Q_NULLPTR); ~DSvgRenderer(); bool isValid() const; QSize defaultSize() const; QRect viewBox() const; QRectF viewBoxF() const; void setViewBox(const QRect &viewbox); void setViewBox(const QRectF &viewbox); QRectF boundsOnElement(const QString &id) const; bool elementExists(const QString &id) const; QImage toImage(const QSize sz, const QString &elementId = QString()) const; public Q_SLOTS: bool load(const QString &filename); bool load(const QByteArray &contents); void render(QPainter *p); void render(QPainter *p, const QRectF &bounds); void render(QPainter *p, const QString &elementId, const QRectF &bounds = QRectF()); private: Q_DECLARE_PRIVATE(DSvgRenderer) }; #endif // DSVGRENDERER_H