summary refs log tree commit diff
path: root/include/RoomList.h
diff options
context:
space:
mode:
authorKonstantinos Sideris <sideris.konstantin@gmail.com>2018-01-24 20:46:37 +0200
committerKonstantinos Sideris <sideris.konstantin@gmail.com>2018-01-24 20:46:37 +0200
commit1fad9398fce58a8d7bf96bdaa2629a80b336b14c (patch)
tree28483acf18d91d6ccfa40eaa0564e50dd9291c51 /include/RoomList.h
parentRemove trailing whitespace from text messages (diff)
downloadnheko-1fad9398fce58a8d7bf96bdaa2629a80b336b14c.tar.xz
Use more stl containers & minor refactorings
Diffstat (limited to 'include/RoomList.h')
-rw-r--r--include/RoomList.h26
1 files changed, 16 insertions, 10 deletions
diff --git a/include/RoomList.h b/include/RoomList.h

index 43b95f12..ed93f17d 100644 --- a/include/RoomList.h +++ b/include/RoomList.h
@@ -17,7 +17,6 @@ #pragma once -#include <QMap> #include <QPushButton> #include <QScrollArea> #include <QSharedPointer> @@ -50,22 +49,22 @@ public: ~RoomList(); void setCache(QSharedPointer<Cache> cache) { cache_ = cache; } - void setInitialRooms(const QMap<QString, QSharedPointer<RoomSettings>> &settings, - const QMap<QString, QSharedPointer<RoomState>> &states); - void sync(const QMap<QString, QSharedPointer<RoomState>> &states, - const QMap<QString, QSharedPointer<RoomSettings>> &settings); + void setInitialRooms(const std::map<QString, QSharedPointer<RoomSettings>> &settings, + const std::map<QString, QSharedPointer<RoomState>> &states); + void sync(const std::map<QString, QSharedPointer<RoomState>> &states, + const std::map<QString, QSharedPointer<RoomSettings>> &settings); void syncInvites(const std::map<std::string, mtx::responses::InvitedRoom> &rooms); void clear(); void updateAvatar(const QString &room_id, const QString &url); - void addRoom(const QMap<QString, QSharedPointer<RoomSettings>> &settings, + void addRoom(const QSharedPointer<RoomSettings> &settings, const QSharedPointer<RoomState> &state, const QString &room_id); void addInvitedRoom(const QString &room_id, const mtx::responses::InvitedRoom &room); void removeRoom(const QString &room_id, bool reset); void setFilterRooms(bool filterRooms); - void setRoomFilter(QList<QString> room_ids); + void setRoomFilter(std::vector<QString> room_ids); signals: void roomChanged(const QString &room_id); @@ -92,7 +91,14 @@ private slots: void sortRoomsByLastMessage(); private: + //! Return the first non-null room. + std::pair<QString, QSharedPointer<RoomInfoListItem>> firstRoom() const; void calculateUnreadMessageCount(); + bool roomExists(const QString &room_id) { return rooms_.find(room_id) != rooms_.end(); } + bool filterItemExists(const QString &id) + { + return std::find(roomFilter_.begin(), roomFilter_.end(), id) != roomFilter_.end(); + } QVBoxLayout *topLayout_; QVBoxLayout *contentsLayout_; @@ -106,11 +112,11 @@ private: QSharedPointer<OverlayModal> leaveRoomModal_; QSharedPointer<dialogs::LeaveRoom> leaveRoomDialog_; - QMap<QString, QSharedPointer<RoomInfoListItem>> rooms_; + std::map<QString, QSharedPointer<RoomInfoListItem>> rooms_; QString selectedRoom_; - bool filterRooms_ = false; - QList<QString> roomFilter_ = QList<QString>(); // which rooms to include in the room list + //! Which rooms to include in the room list. + std::vector<QString> roomFilter_; QSharedPointer<MatrixClient> client_; QSharedPointer<Cache> cache_;