diff options
author | Javier S. Pedro <maemo@javispedro.com> | 2013-04-04 00:00:38 +0200 |
---|---|---|
committer | Javier S. Pedro <maemo@javispedro.com> | 2013-04-04 00:00:38 +0200 |
commit | 5d8d6fed3fd7dd796a5a3093a7dbd46fab8d380a (patch) | |
tree | 56d1aa55260d0081cfd99b52c53f5ddc78cba200 /forummodel.cpp | |
parent | a6d8b23fd03993c0b94d21806ac3a36e251c8b9c (diff) | |
download | tapasboard-5d8d6fed3fd7dd796a5a3093a7dbd46fab8d380a.tar.gz tapasboard-5d8d6fed3fd7dd796a5a3093a7dbd46fab8d380a.zip |
pass Board objects instead of boardUrls around QML
Diffstat (limited to 'forummodel.cpp')
-rw-r--r-- | forummodel.cpp | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/forummodel.cpp b/forummodel.cpp index c66d3a8..bdc2d17 100644 --- a/forummodel.cpp +++ b/forummodel.cpp @@ -8,7 +8,7 @@ #include "forummodel.h" ForumModel::ForumModel(QObject *parent) : - QAbstractListModel(parent), _boardUrl(), _board(0), _forumId(-1) + QAbstractListModel(parent), _board(0), _forumId(-1), _eof(false) { QHash<int, QByteArray> roles = roleNames(); roles[TitleRole] = QByteArray("title"); @@ -17,21 +17,20 @@ ForumModel::ForumModel(QObject *parent) : setRoleNames(roles); } -QString ForumModel::boardUrl() const +Board * ForumModel::board() const { - return _boardUrl; + return _board; } -void ForumModel::setBoardUrl(const QString &url) +void ForumModel::setBoard(Board *board) { - if (_boardUrl != url) { + if (_board != board) { disconnect(this, SLOT(handleForumTopicsChanged(int,int,int))); clearModel(); - _board = 0; - _boardUrl = url; - if (!_boardUrl.isEmpty()) { - _board = board_manager->getBoard(_boardUrl); + _board = board; + + if (_board) { connect(_board, SIGNAL(forumTopicsChanged(int,int,int)), SLOT(handleForumTopicsChanged(int,int,int))); if (_forumId >= 0) { @@ -39,7 +38,7 @@ void ForumModel::setBoardUrl(const QString &url) reload(); } } - emit boardUrlChanged(); + emit boardChanged(); } } @@ -91,14 +90,14 @@ QVariant ForumModel::data(const QModelIndex &index, int role) const bool ForumModel::canFetchMore(const QModelIndex &parent) const { - if (parent.isValid() || !_board) return false; // Invalid state + if (parent.isValid() || !_board || _forumId < 0) return false; // Invalid state return !_eof; } void ForumModel::fetchMore(const QModelIndex &parent) { if (parent.isValid()) return; - if (!_board) return; + if (!_board || _forumId < 0) return; if (_eof) return; const int start = _data.size(); |