aboutsummaryrefslogtreecommitdiff
path: root/lib/connection.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/connection.cpp')
-rw-r--r--lib/connection.cpp30
1 files changed, 25 insertions, 5 deletions
diff --git a/lib/connection.cpp b/lib/connection.cpp
index 26c33767..76e61ed1 100644
--- a/lib/connection.cpp
+++ b/lib/connection.cpp
@@ -94,6 +94,7 @@ class Connection::Private
bool cacheState = true;
bool cacheToBinary = SettingsGroup("libqmatrixclient")
.value("cache_type").toString() != "json";
+ bool lazyLoading;
void connectWithToken(const QString& user, const QString& accessToken,
const QString& deviceId);
@@ -287,11 +288,11 @@ void Connection::sync(int timeout)
if (d->syncJob)
return;
- // Raw string: http://en.cppreference.com/w/cpp/language/string_literal
- const auto filter =
- QStringLiteral(R"({"room": { "timeline": { "limit": 100 } } })");
+ Filter filter;
+ filter.room->timeline->limit = 100;
+ filter.room->state->lazyLoadMembers = d->lazyLoading;
auto job = d->syncJob = callApi<SyncJob>(BackgroundRequest,
- d->data->lastEvent(), filter, timeout);
+ d->data->lastEvent(), filter, timeout);
connect( job, &SyncJob::success, this, [this, job] {
onSyncSuccess(job->takeData());
d->syncJob = nullptr;
@@ -411,6 +412,11 @@ void Connection::stopSync()
}
}
+QString Connection::nextBatchToken() const
+{
+ return d->data->lastEvent();
+}
+
PostReceiptJob* Connection::postReceipt(Room* room, RoomEvent* event) const
{
return callApi<PostReceiptJob>(room->id(), "m.read", event->id());
@@ -561,7 +567,7 @@ void Connection::doInDirectChat(User* u,
{
Q_ASSERT(r->id() == roomId);
// A direct chat with yourself should only involve yourself :)
- if (userId == d->userId && r->memberCount() > 1)
+ if (userId == d->userId && r->totalMemberCount() > 1)
continue;
qCDebug(MAIN) << "Requested direct chat with" << userId
<< "is already available as" << r->id();
@@ -1181,6 +1187,20 @@ void Connection::setCacheState(bool newValue)
}
}
+bool QMatrixClient::Connection::lazyLoading() const
+{
+ return d->lazyLoading;
+}
+
+void QMatrixClient::Connection::setLazyLoading(bool newValue)
+{
+ if (d->lazyLoading != newValue)
+ {
+ d->lazyLoading = newValue;
+ emit lazyLoadingChanged();
+ }
+}
+
void Connection::getTurnServers()
{
auto job = callApi<GetTurnServerJob>();