diff options
Diffstat (limited to 'src/enginio_client/enginiobasemodel_p.h')
-rw-r--r-- | src/enginio_client/enginiobasemodel_p.h | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/src/enginio_client/enginiobasemodel_p.h b/src/enginio_client/enginiobasemodel_p.h index bd6bd2f..c615a23 100644 --- a/src/enginio_client/enginiobasemodel_p.h +++ b/src/enginio_client/enginiobasemodel_p.h @@ -586,21 +586,27 @@ public: filter.insert(EnginioString::data, objectType); _notifications.connectToBackend(this, _enginio, filter); - // send full query - QJsonObject query = queryAsJson(); - ObjectAdaptor<QJsonObject> aQuery(query); - QNetworkReply *nreply = _enginio->query(aQuery, static_cast<Enginio::Operation>(_operation)); - EnginioReplyState *ereply = _enginio->createReply(nreply); - if (_canFetchMore) - _latestRequestedOffset = query[EnginioString::limit].toDouble(); - FinishedFullQueryRequest finshedRequest = { this, ereply }; - QObject::connect(ereply, &EnginioReplyState::dataChanged, _replyConnectionConntext, finshedRequest); + EnginioReplyState *ereply = reload(); QObject::connect(ereply, &EnginioReplyState::dataChanged, ereply, &EnginioReplyState::deleteLater); } else { fullQueryReset(QJsonArray()); } } + EnginioReplyState *reload() + { + // send full query + QJsonObject query = queryAsJson(); + ObjectAdaptor<QJsonObject> aQuery(query); + QNetworkReply *nreply = _enginio->query(aQuery, static_cast<Enginio::Operation>(_operation)); + EnginioReplyState *ereply = _enginio->createReply(nreply); + if (_canFetchMore) + _latestRequestedOffset = query[EnginioString::limit].toDouble(); + FinishedFullQueryRequest finshedRequest = { this, ereply }; + QObject::connect(ereply, &EnginioReplyState::dataChanged, _replyConnectionConntext, finshedRequest); + return ereply; + } + void finishedIncrementalUpdateRequest(const EnginioReplyState *reply, const QJsonObject &query) { Q_ASSERT(_canFetchMore); @@ -993,6 +999,7 @@ struct EnginioModelPrivateT : public EnginioBaseModelPrivate Reply *append(const QJsonObject &value) { return static_cast<Reply*>(Base::append(value)); } Reply *remove(int row) { return static_cast<Reply*>(Base::remove(row)); } Reply *setValue(int row, const QString &role, const QVariant &value) { return static_cast<Reply*>(Base::setValue(row, role, value)); } + Reply *reload() { return static_cast<Reply*>(Base::reload()); } bool queryIsEmpty() const Q_DECL_OVERRIDE { |