#ifndef BOARDMODEL_H #define BOARDMODEL_H #include #include class Board; class BoardModel : public QAbstractListModel { Q_OBJECT Q_PROPERTY(QString boardUrl READ boardUrl WRITE setBoardUrl NOTIFY boardUrlChanged) Q_PROPERTY(int rootForumId READ rootForumId WRITE setRootForumId NOTIFY rootForumIdChanged) public: BoardModel(QObject *parent = 0); enum DataRoles { NameRole = Qt::DisplayRole, LogoRole = Qt::DecorationRole, DescriptionRole = Qt::StatusTipRole, ForumIdRole = Qt::UserRole, SubOnlyRole, CategoryRole }; QString boardUrl() const; void setBoardUrl(const QString& url); int rootForumId() const; void setRootForumId(const int id); int rowCount(const QModelIndex &parent = QModelIndex()) const; QVariant data(const QModelIndex &index, int role) const; bool canFetchMore(const QModelIndex &parent = QModelIndex()) const; void fetchMore(const QModelIndex &parent = QModelIndex()); signals: void boardUrlChanged(); void rootForumIdChanged(); private slots: void reload(); private: QString _boardUrl; int _rootForumId; mutable QSqlQuery _query; int _records; bool _eof; }; #endif // BOARDMODEL_H