diff --git a/src/harbour-spoon.cpp b/src/harbour-spoon.cpp index 65f798b5e2df2feca5427c98eebaa828dd58cf26..fe31bb76cf6e26cb2b5bd3ea5695f0df34f11e3e 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 6e6743724b070518126b29bcef5900784d6dc80c..fd4cffdcb3bb2746a883b0cbaff5ff7ff893aedf 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 d98b4a39fea0a46973cac701c004bd2c792cb631..967820fa135a8f72f2c6a9c4d6cad84ac5bc2948 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 b63a7475bb351cdc1c5aebdbbe12c4b5e9015f28..462c835aa4487ec216af1163736d0906f4295825 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;