diff options
author | Konstantinos Sideris <sideris.konstantin@gmail.com> | 2018-01-24 20:46:37 +0200 |
---|---|---|
committer | Konstantinos Sideris <sideris.konstantin@gmail.com> | 2018-01-24 20:46:37 +0200 |
commit | 1fad9398fce58a8d7bf96bdaa2629a80b336b14c (patch) | |
tree | 28483acf18d91d6ccfa40eaa0564e50dd9291c51 /include | |
parent | Remove trailing whitespace from text messages (diff) | |
download | nheko-1fad9398fce58a8d7bf96bdaa2629a80b336b14c.tar.xz |
Use more stl containers & minor refactorings
Diffstat (limited to 'include')
-rw-r--r-- | include/AvatarProvider.h | 4 | ||||
-rw-r--r-- | include/Cache.h | 5 | ||||
-rw-r--r-- | include/ChatPage.h | 14 | ||||
-rw-r--r-- | include/CommunitiesList.h | 25 | ||||
-rw-r--r-- | include/Community.h | 42 | ||||
-rw-r--r-- | include/QuickSwitcher.h | 4 | ||||
-rw-r--r-- | include/RoomList.h | 26 | ||||
-rw-r--r-- | include/timeline/TimelineViewManager.h | 12 |
8 files changed, 57 insertions, 75 deletions
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<MatrixClient> client_; using UserID = QString; - static QMap<UserID, AvatarData> avatars_; - static QMap<UserID, QList<std::function<void(QImage)>>> toBeResolved_; + static std::map<UserID, AvatarData> avatars_; + static std::map<UserID, std::vector<std::function<void(QImage)>>> 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 <QDir> -#include <QMap> #include <json.hpp> #include <lmdb++.h> #include <mtx/responses.hpp> @@ -53,7 +52,7 @@ public: Cache(const QString &userId, QObject *parent = nullptr); void setState(const QString &nextBatchToken, - const QMap<QString, QSharedPointer<RoomState>> &states); + const std::map<QString, QSharedPointer<RoomState>> &states); bool isInitialized() const; QString nextBatchToken() const; @@ -90,7 +89,7 @@ public: void saveImage(const QString &url, const QByteArray &data); signals: - void statesLoaded(QMap<QString, RoomState> states); + void statesLoaded(std::map<QString, RoomState> 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<UserID, QSharedPointer<RoomState>>; + using RoomStates = std::map<UserID, QSharedPointer<RoomState>>; using Membership = mtx::events::StateEvent<mtx::events::state::Member>; using Memberships = std::map<std::string, Membership>; @@ -105,7 +105,7 @@ private: void removeLeftRooms(const LeftRooms &rooms); void updateJoinedRooms(const JoinedRooms &rooms); - QMap<QString, QSharedPointer<RoomState>> generateMembershipDifference( + std::map<QString, QSharedPointer<RoomState>> generateMembershipDifference( const JoinedRooms &rooms, const RoomStates &states) const; @@ -160,18 +160,18 @@ private: QString current_room_; QString current_community_; - QMap<QString, QPixmap> room_avatars_; - QMap<QString, QPixmap> community_avatars_; + std::map<QString, QPixmap> roomAvatars_; + std::map<QString, QPixmap> community_avatars_; UserInfoWidget *user_info_widget_; RoomStates roomStates_; - QMap<QString, QSharedPointer<RoomSettings>> roomSettings_; + std::map<QString, QSharedPointer<RoomSettings>> roomSettings_; - QMap<QString, QSharedPointer<Community>> communityManager_; + std::map<QString, QSharedPointer<Community>> communities_; // Keeps track of the users currently typing on each room. - QMap<QString, QList<QString>> typingUsers_; + std::map<QString, QList<QString>> typingUsers_; QTimer *typingRefresher_; QSharedPointer<QuickSwitcher> 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 <QScrollArea> #include <QSharedPointer> #include <QVBoxLayout> -#include <QWidget> #include "CommunitiesListItem.h" #include "Community.h" @@ -16,27 +15,33 @@ class CommunitiesList : public QWidget public: CommunitiesList(QSharedPointer<MatrixClient> client, QWidget *parent = nullptr); - ~CommunitiesList(); - void setCommunities(const QMap<QString, QSharedPointer<Community>> &communities); - void clear(); + void setCommunities(const std::map<QString, QSharedPointer<Community>> &communities); + void clear() { communities_.clear(); } + + void addCommunity(QSharedPointer<Community> community, const QString &id); + void removeCommunity(const QString &id); - void addCommunity(QSharedPointer<Community> 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<QString, QSharedPointer<CommunitiesListItem>> communities_; + std::map<QString, QSharedPointer<CommunitiesListItem>> communities_; QSharedPointer<MatrixClient> 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<QString> 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<QString> getRoomList() const { return rooms_; } private: QUrl avatar_; @@ -25,35 +25,5 @@ private: QString short_description_; QString long_description_; - QList<QString> rooms_; + std::vector<QString> 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<QString> -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<QString, QString> &rooms); + void setRoomList(const std::map<QString, QString> &rooms); signals: void closing(); @@ -65,5 +65,5 @@ private: RoomSearchInput *roomSearch_; QCompleter *completer_; - QMap<QString, QString> rooms_; + std::map<QString, QString> 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 <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_; 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 <QMap> #include <QSharedPointer> #include <QStackedWidget> @@ -41,13 +40,13 @@ public: // Initialize with timeline events. void initialize(const mtx::responses::Rooms &rooms); // Empty initialization. - void initialize(const QList<QString> &rooms); + void initialize(const std::vector<QString> &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<QString, QString> DISPLAY_NAMES; + static std::map<QString, QString> 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<QString, QSharedPointer<TimelineView>> views_; + std::map<QString, QSharedPointer<TimelineView>> views_; QSharedPointer<MatrixClient> client_; }; |