From 139a6743a4e7a3b2e380d4f3e8f43558bc3164fa Mon Sep 17 00:00:00 2001 From: Kitsune Ral Date: Fri, 13 Apr 2018 20:32:08 +0900 Subject: Support Qt 5.4 That is until ubports move to xenial. --- lib/connection.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'lib/connection.cpp') diff --git a/lib/connection.cpp b/lib/connection.cpp index 600ab396..241fa43d 100644 --- a/lib/connection.cpp +++ b/lib/connection.cpp @@ -84,7 +84,7 @@ class Connection::Private QVector roomIdsToForget; QMap userMap; DirectChatsMap directChats; - QHash accountData; + QHash accountData; QString userId; SyncJob* syncJob = nullptr; @@ -336,7 +336,7 @@ void Connection::onSyncSuccess(SyncData &&data) { continue; } d->accountData[accountEvent->jsonType()] = - accountEvent->contentJson().toVariantHash(); + fromJson(accountEvent->contentJson()); emit accountDataChanged(accountEvent->jsonType()); } } @@ -657,7 +657,7 @@ bool Connection::hasAccountData(const QString& type) const return d->accountData.contains(type); } -QVariantHash Connection::accountData(const QString& type) const +Connection::AccountDataMap Connection::accountData(const QString& type) const { return d->accountData.value(type); } @@ -909,7 +909,7 @@ void Connection::saveState(const QUrl &toFile) const for (auto it = d->accountData.begin(); it != d->accountData.end(); ++it) accountDataEvents.append(QJsonObject { {"type", it.key()}, - {"content", QJsonObject::fromVariantHash(it.value())} + {"content", QMatrixClient::toJson(it.value())} }); rootObj.insert("account_data", QJsonObject {{ QStringLiteral("events"), accountDataEvents }}); -- cgit v1.2.3 From 3a763fd470b8aeffa3d412e6f605231492fb5b0c Mon Sep 17 00:00:00 2001 From: Kitsune Ral Date: Fri, 27 Apr 2018 13:34:52 +0900 Subject: Fix broken User::displayName() logic Also, add an assert to Connection::user() to make sure it doesn't create users with invalid ids. Closes #201. --- lib/connection.cpp | 1 + lib/user.cpp | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) (limited to 'lib/connection.cpp') diff --git a/lib/connection.cpp b/lib/connection.cpp index 241fa43d..f2bbf903 100644 --- a/lib/connection.cpp +++ b/lib/connection.cpp @@ -590,6 +590,7 @@ Room* Connection::invitation(const QString& roomId) const User* Connection::user(const QString& userId) { + Q_ASSERT(userId.startsWith('@') && userId.contains(':')); if( d->userMap.contains(userId) ) return d->userMap.value(userId); auto* user = userFactory(this, userId); diff --git a/lib/user.cpp b/lib/user.cpp index 88d20276..c4fbfe35 100644 --- a/lib/user.cpp +++ b/lib/user.cpp @@ -311,7 +311,7 @@ QString User::displayname(const Room* room) const { auto name = d->nameForRoom(room); return name.isEmpty() ? d->userId : - room ? room->roomMembername(name) : name; + room ? room->roomMembername(this) : name; } QString User::fullName(const Room* room) const -- cgit v1.2.3 From f95a915f2e496631a04e0a4d8d75788e7295aae3 Mon Sep 17 00:00:00 2001 From: Kitsune Ral Date: Fri, 27 Apr 2018 13:39:17 +0900 Subject: Cache bridge names along with user names Otherwise the bridge is forgotten after restart. This bumps the cache version. --- lib/connection.cpp | 2 +- lib/room.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'lib/connection.cpp') diff --git a/lib/connection.cpp b/lib/connection.cpp index f2bbf903..5f930d57 100644 --- a/lib/connection.cpp +++ b/lib/connection.cpp @@ -848,7 +848,7 @@ void Connection::setHomeserver(const QUrl& url) emit homeserverChanged(homeserver()); } -static constexpr int CACHE_VERSION_MAJOR = 7; +static constexpr int CACHE_VERSION_MAJOR = 8; static constexpr int CACHE_VERSION_MINOR = 0; void Connection::saveState(const QUrl &toFile) const diff --git a/lib/room.cpp b/lib/room.cpp index 128a4f48..c6c1bafd 100644 --- a/lib/room.cpp +++ b/lib/room.cpp @@ -1796,7 +1796,7 @@ QJsonObject Room::Private::toJson() const for (const auto *m : membersMap) appendStateEvent(stateEvents, QStringLiteral("m.room.member"), { { QStringLiteral("membership"), QStringLiteral("join") } - , { QStringLiteral("displayname"), m->name(q) } + , { QStringLiteral("displayname"), m->rawName(q) } , { QStringLiteral("avatar_url"), m->avatarUrl(q).toString() } }, m->id()); -- cgit v1.2.3