diff options
author | Paul Olav Tvete <paul.tvete@qt.io> | 2023-10-05 08:43:55 +0200 |
---|---|---|
committer | Paul Olav Tvete <paul.tvete@qt.io> | 2023-10-30 10:36:06 +0200 |
commit | e9913b70717f55efb88e3022254299c848bcb940 (patch) | |
tree | 99672b7cfe9d10a5ae84f8610cb9cab546db747f /src/svg/qsvggraphics_p.h | |
parent | 24e0d715a6e14f06c9da7604086789431960a41a (diff) |
Private API for iterating over QSvgTinyDocument
Expose more node information in the internal API. Also
use the new API to implement a debug operator for
QSvgTinyDocument. Includes a drive-by fix: use floating
point instead of int for rounded rect radius.
Task-number: QTBUG-116883
Change-Id: I238b7313c10b88abd7c2ca755b898ecb6f8c3e8b
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
Diffstat (limited to 'src/svg/qsvggraphics_p.h')
-rw-r--r-- | src/svg/qsvggraphics_p.h | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/src/svg/qsvggraphics_p.h b/src/svg/qsvggraphics_p.h index 9bb005b..42406e3 100644 --- a/src/svg/qsvggraphics_p.h +++ b/src/svg/qsvggraphics_p.h @@ -55,6 +55,7 @@ public: Type type() const override; QRectF fastBounds(QPainter *p, QSvgExtraStates &states) const override; QRectF bounds(QPainter *p, QSvgExtraStates &states) const override; + QRectF rect() const { return m_bounds; } private: QRectF m_bounds; }; @@ -74,6 +75,9 @@ public: void draw(QPainter *p, QSvgExtraStates &states) override; Type type() const override; QRectF bounds(QPainter *p, QSvgExtraStates &states) const override; + + QRectF rect() const { return m_bounds; } + const QImage &image() const { return m_image; } private: QImage m_image; QRectF m_bounds; @@ -87,6 +91,7 @@ public: Type type() const override; QRectF fastBounds(QPainter *p, QSvgExtraStates &states) const override; QRectF bounds(QPainter *p, QSvgExtraStates &states) const override; + QLineF line() const { return m_line; } private: QLineF m_line; }; @@ -100,9 +105,10 @@ public: QRectF fastBounds(QPainter *p, QSvgExtraStates &states) const override; QRectF bounds(QPainter *p, QSvgExtraStates &states) const override; - QPainterPath *qpath() { - return &m_path; + const QPainterPath &path() const { + return m_path; } + private: QPainterPath m_path; }; @@ -115,6 +121,9 @@ public: Type type() const override; QRectF fastBounds(QPainter *p, QSvgExtraStates &states) const override; QRectF bounds(QPainter *p, QSvgExtraStates &states) const override; + const QPolygonF &polygon() const { + return m_poly; + } private: QPolygonF m_poly; }; @@ -127,6 +136,9 @@ public: Type type() const override; QRectF fastBounds(QPainter *p, QSvgExtraStates &states) const override; QRectF bounds(QPainter *p, QSvgExtraStates &states) const override; + const QPolygonF &polygon() const { + return m_poly; + } private: QPolygonF m_poly; }; @@ -134,14 +146,16 @@ private: class Q_SVG_PRIVATE_EXPORT QSvgRect : public QSvgNode { public: - QSvgRect(QSvgNode *paren, const QRectF &rect, int rx=0, int ry=0); + QSvgRect(QSvgNode *paren, const QRectF &rect, qreal rx=0, qreal ry=0); Type type() const override; void draw(QPainter *p, QSvgExtraStates &states) override; QRectF fastBounds(QPainter *p, QSvgExtraStates &states) const override; QRectF bounds(QPainter *p, QSvgExtraStates &states) const override; + QRectF rect() const { return m_rect; } + QPointF radius() const { return { m_rx, m_ry }; } private: QRectF m_rect; - int m_rx, m_ry; + qreal m_rx, m_ry; }; class QSvgTspan; @@ -163,6 +177,7 @@ public: Type type() const override; void addTspan(QSvgTspan *tspan) {m_tspans.append(tspan);} + const QList<QSvgTspan *> tspans() const { return m_tspans; } void addText(const QString &text); void addLineBreak() {m_tspans.append(LINEBREAK);} void setWhitespaceMode(WhitespaceMode mode) {m_mode = mode;} @@ -170,6 +185,9 @@ public: QRectF fastBounds(QPainter *p, QSvgExtraStates &states) const override; QRectF bounds(QPainter *p, QSvgExtraStates &states) const override; + QPointF position() const { return m_coord; } + QSizeF size() const { return m_size; } + private: bool precheck(QPainter *p) const; void draw_helper(QPainter *p, QSvgExtraStates &states, QRectF *boundingRect = nullptr) const; |