From 5d8d6fed3fd7dd796a5a3093a7dbd46fab8d380a Mon Sep 17 00:00:00 2001 From: "Javier S. Pedro" Date: Thu, 4 Apr 2013 00:00:38 +0200 Subject: pass Board objects instead of boardUrls around QML --- forummodel.cpp | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) (limited to 'forummodel.cpp') 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 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(); -- cgit v1.2.3