diff --git a/post.h b/post.h index d34160d..c7c05ed 100644 --- a/post.h +++ b/post.h @@ -9,7 +9,7 @@ class Post : public QObject { Q_OBJECT - Q_PROPERTY(QString title READ title) + Q_PROPERTY(QString title READ title CONSTANT) Q_PROPERTY(QString feedTitle READ feedTitle) Q_PROPERTY(QString id READ id) Q_PROPERTY(QString feedId READ feedId) diff --git a/tinytinyrss.cpp b/tinytinyrss.cpp index 38b9a81..abb719f 100644 --- a/tinytinyrss.cpp +++ b/tinytinyrss.cpp @@ -8,6 +8,8 @@ TinyTinyRSS::TinyTinyRSS(QObject *parent) : QObject(parent) { + qRegisterMetaType >(); + mNetworkManager = new QNetworkAccessManager(this); mPosts = QList(); } @@ -87,3 +89,18 @@ void TinyTinyRSS::reply() reply->deleteLater(); } } + +QQmlListProperty TinyTinyRSS::posts() +{ + return QQmlListProperty(this, mPosts); +} + +int TinyTinyRSS::postsCount() const +{ + return mPosts.count(); +} + +Post *TinyTinyRSS::post(int index) const +{ + return mPosts.at(index); +} diff --git a/tinytinyrss.h b/tinytinyrss.h index b5285e0..82619f9 100644 --- a/tinytinyrss.h +++ b/tinytinyrss.h @@ -5,22 +5,26 @@ #include #include #include +#include #include "post.h" class TinyTinyRSS : public QObject { Q_OBJECT - Q_PROPERTY(QList posts READ posts NOTIFY postsChanged) + Q_PROPERTY(QQmlListProperty posts READ posts NOTIFY postsChanged) public: TinyTinyRSS(QObject *parent = 0); ~TinyTinyRSS(); - QList posts() const { return mPosts; } Q_INVOKABLE void initialize(const QString serverUrl, const QString sessionId); Q_INVOKABLE void reload(); + QQmlListProperty posts(); + int postsCount() const; + Post *post(int) const; + signals: void postsChanged(QList); @@ -32,7 +36,7 @@ private: QString mServerUrl; QString mSessionId; - QList mPosts; + QList mPosts; QNetworkAccessManager *mNetworkManager; };