From 1fad9398fce58a8d7bf96bdaa2629a80b336b14c Mon Sep 17 00:00:00 2001 From: Konstantinos Sideris Date: Wed, 24 Jan 2018 20:46:37 +0200 Subject: Use more stl containers & minor refactorings --- include/AvatarProvider.h | 4 ++-- include/Cache.h | 5 ++-- include/ChatPage.h | 14 ++++++------ include/CommunitiesList.h | 25 ++++++++++++-------- include/Community.h | 42 +++++----------------------------- include/QuickSwitcher.h | 4 ++-- include/RoomList.h | 26 +++++++++++++-------- include/timeline/TimelineViewManager.h | 12 ++++++---- 8 files changed, 57 insertions(+), 75 deletions(-) (limited to 'include') diff --git a/include/AvatarProvider.h b/include/AvatarProvider.h index 77f9ebb4..f3441290 100644 --- a/include/AvatarProvider.h +++ b/include/AvatarProvider.h @@ -48,6 +48,6 @@ private: static QSharedPointer client_; using UserID = QString; - static QMap avatars_; - static QMap>> toBeResolved_; + static std::map avatars_; + static std::map>> toBeResolved_; }; diff --git a/include/Cache.h b/include/Cache.h index e8d797dd..93668b8c 100644 --- a/include/Cache.h +++ b/include/Cache.h @@ -18,7 +18,6 @@ #pragma once #include -#include #include #include #include @@ -53,7 +52,7 @@ public: Cache(const QString &userId, QObject *parent = nullptr); void setState(const QString &nextBatchToken, - const QMap> &states); + const std::map> &states); bool isInitialized() const; QString nextBatchToken() const; @@ -90,7 +89,7 @@ public: void saveImage(const QString &url, const QByteArray &data); signals: - void statesLoaded(QMap states); + void statesLoaded(std::map states); private: void setNextBatchToken(lmdb::txn &txn, const QString &token); diff --git a/include/ChatPage.h b/include/ChatPage.h index 3da84b33..3cc6e6c8 100644 --- a/include/ChatPage.h +++ b/include/ChatPage.h @@ -95,7 +95,7 @@ private: static ChatPage *instance_; using UserID = QString; - using RoomStates = QMap>; + using RoomStates = std::map>; using Membership = mtx::events::StateEvent; using Memberships = std::map; @@ -105,7 +105,7 @@ private: void removeLeftRooms(const LeftRooms &rooms); void updateJoinedRooms(const JoinedRooms &rooms); - QMap> generateMembershipDifference( + std::map> generateMembershipDifference( const JoinedRooms &rooms, const RoomStates &states) const; @@ -160,18 +160,18 @@ private: QString current_room_; QString current_community_; - QMap room_avatars_; - QMap community_avatars_; + std::map roomAvatars_; + std::map community_avatars_; UserInfoWidget *user_info_widget_; RoomStates roomStates_; - QMap> roomSettings_; + std::map> roomSettings_; - QMap> communityManager_; + std::map> communities_; // Keeps track of the users currently typing on each room. - QMap> typingUsers_; + std::map> typingUsers_; QTimer *typingRefresher_; QSharedPointer quickSwitcher_; diff --git a/include/CommunitiesList.h b/include/CommunitiesList.h index 53715363..8bb6aaad 100644 --- a/include/CommunitiesList.h +++ b/include/CommunitiesList.h @@ -3,7 +3,6 @@ #include #include #include -#include #include "CommunitiesListItem.h" #include "Community.h" @@ -16,27 +15,33 @@ class CommunitiesList : public QWidget public: CommunitiesList(QSharedPointer client, QWidget *parent = nullptr); - ~CommunitiesList(); - void setCommunities(const QMap> &communities); - void clear(); + void setCommunities(const std::map> &communities); + void clear() { communities_.clear(); } + + void addCommunity(QSharedPointer community, const QString &id); + void removeCommunity(const QString &id); - void addCommunity(QSharedPointer community, const QString &community_id); - void removeCommunity(const QString &community_id); signals: - void communityChanged(const QString &community_id); + void communityChanged(const QString &id); public slots: - void updateCommunityAvatar(const QString &community_id, const QPixmap &img); - void highlightSelectedCommunity(const QString &community_id); + void updateCommunityAvatar(const QString &id, const QPixmap &img); + void highlightSelectedCommunity(const QString &id); private: + //! Check whether or not a community id is currently managed. + bool communityExists(const QString &id) + { + return communities_.find(id) != communities_.end(); + } + QVBoxLayout *topLayout_; QVBoxLayout *contentsLayout_; QWidget *scrollAreaContents_; QScrollArea *scrollArea_; - QMap> communities_; + std::map> communities_; QSharedPointer client_; }; diff --git a/include/Community.h b/include/Community.h index 5f3adba0..5b759e55 100644 --- a/include/Community.h +++ b/include/Community.h @@ -13,11 +13,11 @@ public: void parseProfile(const QJsonObject &profile); void parseRooms(const QJsonObject &rooms); - inline QUrl getAvatar() const; - inline QString getName() const; - inline QString getShortDescription() const; - inline QString getLongDescription() const; - inline const QList getRoomList() const; + QUrl getAvatar() const { return avatar_; } + QString getName() const { return name_; } + QString getShortDescription() const { return short_description_; } + QString getLongDescription() const { return long_description_; } + std::vector getRoomList() const { return rooms_; } private: QUrl avatar_; @@ -25,35 +25,5 @@ private: QString short_description_; QString long_description_; - QList rooms_; + std::vector rooms_; }; - -inline QUrl -Community::getAvatar() const -{ - return avatar_; -} - -inline QString -Community::getName() const -{ - return name_; -} - -inline QString -Community::getShortDescription() const -{ - return short_description_; -} - -inline QString -Community::getLongDescription() const -{ - return long_description_; -} - -inline const QList -Community::getRoomList() const -{ - return rooms_; -} diff --git a/include/QuickSwitcher.h b/include/QuickSwitcher.h index 5cbd0f1f..115161ab 100644 --- a/include/QuickSwitcher.h +++ b/include/QuickSwitcher.h @@ -47,7 +47,7 @@ class QuickSwitcher : public QFrame public: explicit QuickSwitcher(QWidget *parent = nullptr); - void setRoomList(const QMap &rooms); + void setRoomList(const std::map &rooms); signals: void closing(); @@ -65,5 +65,5 @@ private: RoomSearchInput *roomSearch_; QCompleter *completer_; - QMap rooms_; + std::map rooms_; }; 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 #include #include #include @@ -50,22 +49,22 @@ public: ~RoomList(); void setCache(QSharedPointer cache) { cache_ = cache; } - void setInitialRooms(const QMap> &settings, - const QMap> &states); - void sync(const QMap> &states, - const QMap> &settings); + void setInitialRooms(const std::map> &settings, + const std::map> &states); + void sync(const std::map> &states, + const std::map> &settings); void syncInvites(const std::map &rooms); void clear(); void updateAvatar(const QString &room_id, const QString &url); - void addRoom(const QMap> &settings, + void addRoom(const QSharedPointer &settings, const QSharedPointer &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 room_ids); + void setRoomFilter(std::vector 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> 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 leaveRoomModal_; QSharedPointer leaveRoomDialog_; - QMap> rooms_; + std::map> rooms_; QString selectedRoom_; - bool filterRooms_ = false; - QList roomFilter_ = QList(); // which rooms to include in the room list + //! Which rooms to include in the room list. + std::vector roomFilter_; QSharedPointer client_; QSharedPointer cache_; diff --git a/include/timeline/TimelineViewManager.h b/include/timeline/TimelineViewManager.h index c19031c6..81fedfb2 100644 --- a/include/timeline/TimelineViewManager.h +++ b/include/timeline/TimelineViewManager.h @@ -17,7 +17,6 @@ #pragma once -#include #include #include @@ -41,13 +40,13 @@ public: // Initialize with timeline events. void initialize(const mtx::responses::Rooms &rooms); // Empty initialization. - void initialize(const QList &rooms); + void initialize(const std::vector &rooms); void addRoom(const mtx::responses::JoinedRoom &room, const QString &room_id); void addRoom(const QString &room_id); void sync(const mtx::responses::Rooms &rooms); - void clearAll(); + void clearAll() { views_.clear(); } // Check if all the timelines have been loaded. bool hasLoaded() const; @@ -55,7 +54,7 @@ public: static QString chooseRandomColor(); static QString displayName(const QString &userid); - static QMap DISPLAY_NAMES; + static std::map DISPLAY_NAMES; signals: void clearRoomMessageCount(QString roomid); @@ -78,7 +77,10 @@ private slots: void messageSendFailed(const QString &roomid, int txnid); private: + //! Check if the given room id is managed by a TimelineView. + bool timelineViewExists(const QString &id) { return views_.find(id) != views_.end(); } + QString active_room_; - QMap> views_; + std::map> views_; QSharedPointer client_; }; -- cgit 1.5.1