summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMartin Jones <martin.jones@nokia.com>2009-11-18 04:23:34 (GMT)
committerMartin Jones <martin.jones@nokia.com>2009-11-18 04:23:34 (GMT)
commitee5d533bfa7b07927a6c62182f0a0377503c0f2b (patch)
tree14d8429935d83fd95efdbe841e9c6ae3dc97d9d9 /src
parent26bbfd3c1afd34cd10f4d111b05b13e2f052cd6a (diff)
downloadQt-ee5d533bfa7b07927a6c62182f0a0377503c0f2b.zip
Qt-ee5d533bfa7b07927a6c62182f0a0377503c0f2b.tar.gz
Qt-ee5d533bfa7b07927a6c62182f0a0377503c0f2b.tar.bz2
More PathView testing
Diffstat (limited to 'src')
-rw-r--r--src/declarative/graphicsitems/qmlgraphicspath.cpp16
-rw-r--r--src/declarative/graphicsitems/qmlgraphicspath_p.h3
-rw-r--r--src/declarative/graphicsitems/qmlgraphicspath_p_p.h3
3 files changed, 20 insertions, 2 deletions
diff --git a/src/declarative/graphicsitems/qmlgraphicspath.cpp b/src/declarative/graphicsitems/qmlgraphicspath.cpp
index 0812d11..1791074 100644
--- a/src/declarative/graphicsitems/qmlgraphicspath.cpp
+++ b/src/declarative/graphicsitems/qmlgraphicspath.cpp
@@ -107,7 +107,7 @@ QmlGraphicsPath::~QmlGraphicsPath()
/*!
\qmlproperty real Path::startX
\qmlproperty real Path::startY
- This property holds the starting position of the path.
+ These properties hold the starting position of the path.
*/
qreal QmlGraphicsPath::startX() const
{
@@ -134,6 +134,16 @@ void QmlGraphicsPath::setStartY(qreal y)
}
/*!
+ \qmlproperty bool Path::closed
+ This property holds whether the start and end of the path are identical.
+*/
+bool QmlGraphicsPath::isClosed() const
+{
+ Q_D(const QmlGraphicsPath);
+ return d->closed;
+}
+
+/*!
\qmlproperty list<PathElement> Path::pathElements
This property holds the objects composing the path.
@@ -220,12 +230,14 @@ void QmlGraphicsPath::processPath()
d->_path.moveTo(d->startX, d->startY);
+ QmlGraphicsCurve *lastCurve = 0;
foreach (QmlGraphicsPathElement *pathElement, d->_pathElements) {
if (QmlGraphicsCurve *curve = qobject_cast<QmlGraphicsCurve *>(pathElement)) {
curve->addToPath(d->_path);
AttributePoint p;
p.origpercent = d->_path.length();
d->_attributePoints << p;
+ lastCurve = curve;
} else if (QmlGraphicsPathAttribute *attribute = qobject_cast<QmlGraphicsPathAttribute *>(pathElement)) {
AttributePoint &point = d->_attributePoints.last();
point.values[attribute->name()] = attribute->value();
@@ -266,6 +278,8 @@ void QmlGraphicsPath::processPath()
}
}
+ d->closed = lastCurve && d->startX == lastCurve->x() && d->startY == lastCurve->y();
+
emit changed();
}
diff --git a/src/declarative/graphicsitems/qmlgraphicspath_p.h b/src/declarative/graphicsitems/qmlgraphicspath_p.h
index 4b0c772..30a377e 100644
--- a/src/declarative/graphicsitems/qmlgraphicspath_p.h
+++ b/src/declarative/graphicsitems/qmlgraphicspath_p.h
@@ -191,6 +191,7 @@ class Q_DECLARATIVE_EXPORT QmlGraphicsPath : public QObject, public QmlParserSta
Q_PROPERTY(QList<QmlGraphicsPathElement *>* pathElements READ pathElements)
Q_PROPERTY(qreal startX READ startX WRITE setStartX)
Q_PROPERTY(qreal startY READ startY WRITE setStartY)
+ Q_PROPERTY(bool closed READ isClosed NOTIFY changed)
Q_CLASSINFO("DefaultProperty", "pathElements")
Q_INTERFACES(QmlParserStatus)
public:
@@ -205,6 +206,8 @@ public:
qreal startY() const;
void setStartY(qreal y);
+ bool isClosed() const;
+
QPainterPath path() const;
QStringList attributes() const;
qreal attributeAt(const QString &, qreal) const;
diff --git a/src/declarative/graphicsitems/qmlgraphicspath_p_p.h b/src/declarative/graphicsitems/qmlgraphicspath_p_p.h
index 36e8945..8c4c962 100644
--- a/src/declarative/graphicsitems/qmlgraphicspath_p_p.h
+++ b/src/declarative/graphicsitems/qmlgraphicspath_p_p.h
@@ -64,7 +64,7 @@ class QmlGraphicsPathPrivate : public QObjectPrivate
Q_DECLARE_PUBLIC(QmlGraphicsPath)
public:
- QmlGraphicsPathPrivate() : startX(0), startY(0) { }
+ QmlGraphicsPathPrivate() : startX(0), startY(0), closed(false) { }
QPainterPath _path;
QList<QmlGraphicsPathElement*> _pathElements;
@@ -73,6 +73,7 @@ public:
QStringList _attributes;
int startX;
int startY;
+ bool closed;
};
QT_END_NAMESPACE