From 4a27b97799d6be562a8b805e17092d842ac839a5 Mon Sep 17 00:00:00 2001 From: Nicolas Werner <nicolas.werner@hotmail.de> Date: Mon, 17 Jun 2019 01:40:43 +0200 Subject: [PATCH] Add invites to initial sync --- src/harbour-spoon.cpp | 3 ++- src/models/roommodel.h | 2 +- src/sync.cpp | 13 ++++++++++++- src/sync.h | 1 + 4 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/harbour-spoon.cpp b/src/harbour-spoon.cpp index 65f798b..fe31bb7 100644 --- a/src/harbour-spoon.cpp +++ b/src/harbour-spoon.cpp @@ -36,6 +36,7 @@ int main(int argc, char *argv[]) { Sync sync(rooms, &login); QObject::connect(&login, &Login::loginSuccess, &sync, &Sync::startSync); QObject::connect(&sync, &Sync::newRoom, &rooms, &RoomModel::addRoom, Qt::QueuedConnection); + QObject::connect(&sync, &Sync::newInvite, &rooms, &RoomModel::addInvite, Qt::QueuedConnection); QSharedPointer<Room> a = QSharedPointer<Room>(new Room); a->tag = "group"; @@ -60,7 +61,7 @@ int main(int argc, char *argv[]) { i->lastMessage = "Hey, Nico hier!"; i->unreadNotifications = 3; i->name = "Example invite"; - rooms.addRoom(i); + rooms.addInvite(i); v->rootContext()->setContextProperty("rooms", &rooms); // If you wish to publish your app on the Jolla harbour, it is recommended diff --git a/src/models/roommodel.h b/src/models/roommodel.h index 6e67437..fd4cffd 100644 --- a/src/models/roommodel.h +++ b/src/models/roommodel.h @@ -10,7 +10,7 @@ struct Room { std::string name, lastMessage, picture, tag; - int unreadNotifications; + int unreadNotifications = 0; }; class RoomModel : public QAbstractListModel { diff --git a/src/sync.cpp b/src/sync.cpp index d98b4a3..967820f 100644 --- a/src/sync.cpp +++ b/src/sync.cpp @@ -17,10 +17,10 @@ void Sync::startSync() { for (const std::pair<std::string, mtx::responses::JoinedRoom> &join : res.rooms.join) { const mtx::responses::JoinedRoom &r = join.second; + QSharedPointer<Room> room = QSharedPointer<Room>(new Room); room->name = join.first; - qDebug() << QString::fromStdString(room->name); // room.picture = r.avatar(); @@ -28,5 +28,16 @@ void Sync::startSync() { room->unreadNotifications = r.unread_notifications.highlight_count; emit newRoom(room); } + + for (const std::pair<std::string, mtx::responses::InvitedRoom> &invite : res.rooms.invite) { + const mtx::responses::InvitedRoom &r = invite.second; + + QSharedPointer<Room> room = QSharedPointer<Room>(new Room); + + room->name = invite.first; + room->tag = "invite"; + qDebug() << QString::fromStdString(room->name); + emit newInvite(room); + } }); } diff --git a/src/sync.h b/src/sync.h index b63a747..462c835 100644 --- a/src/sync.h +++ b/src/sync.h @@ -15,6 +15,7 @@ class Sync : public QObject { signals: void newRoom(QSharedPointer<Room> room); + void newInvite(QSharedPointer<Room> room); private: RoomModel &rooms; -- GitLab