summaryrefslogtreecommitdiffstats
path: root/src/svg/qsvggraphics_p.h
diff options
context:
space:
mode:
authorPaul Olav Tvete <paul.tvete@qt.io>2023-10-05 08:43:55 +0200
committerPaul Olav Tvete <paul.tvete@qt.io>2023-10-30 10:36:06 +0200
commite9913b70717f55efb88e3022254299c848bcb940 (patch)
tree99672b7cfe9d10a5ae84f8610cb9cab546db747f /src/svg/qsvggraphics_p.h
parent24e0d715a6e14f06c9da7604086789431960a41a (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.h26
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;