@@ -32,7 +32,7 @@ class MirSurfaceItem : public QQuickPaintedItem
32 Q_PROPERTY(State state READ state NOTIFY stateChanged)
32 Q_PROPERTY(State state READ state NOTIFY stateChanged)
33 Q_PROPERTY(QString name READ name NOTIFY nameChanged)
33 Q_PROPERTY(QString name READ name NOTIFY nameChanged)
34 Q_PROPERTY(MirSurfaceItem* parentSurface READ parentSurface NOTIFY parentSurfaceChanged)
34 Q_PROPERTY(MirSurfaceItem* parentSurface READ parentSurface NOTIFY parentSurfaceChanged)
35− Q_PROPERTY(QList<QObject*> childSurfaces READ childSurfaces NOTIFY childSurfacesChanged)
35+ Q_PROPERTY(QQmlListProperty<MirSurfaceItem> childSurfaces READ childSurfaces NOTIFY childSurfacesChanged DESIGNABLE false)
38 enum Type {
38 enum Type {
@@ -68,7 +68,7 @@ public:
68 State state() const { return m_state; }
68 State state() const { return m_state; }
69 QString name() const { return m_name; }
69 QString name() const { return m_name; }
70 MirSurfaceItem* parentSurface() const { return m_parentSurface; }
70 MirSurfaceItem* parentSurface() const { return m_parentSurface; }
71− QList<QObject*> childSurfaces() const;
71+ void foreachChildSurface(std::function<void(MirSurfaceItem*)> f) const;
73 void setState(State newState);
73 void setState(State newState);
74 void setApplication(ApplicationInfo* item);
74 void setApplication(ApplicationInfo* item);
@@ -101,6 +101,10 @@ private:
101 void addChildSurface(MirSurfaceItem* surface);
101 void addChildSurface(MirSurfaceItem* surface);
102 void removeChildSurface(MirSurfaceItem* surface);
102 void removeChildSurface(MirSurfaceItem* surface);
104+ QQmlListProperty<MirSurfaceItem> childSurfaces();
105+ static int childSurfaceCount(QQmlListProperty<MirSurfaceItem> *prop);
106+ static MirSurfaceItem* childSurfaceAt(QQmlListProperty<MirSurfaceItem> *prop, int index);
104 ApplicationInfo* m_application;
108 ApplicationInfo* m_application;
105 const QString m_name;
109 const QString m_name;
106 const Type m_type;
110 const Type m_type;