Use more stl containers & minor refactorings
This commit is contained in:
parent
9eedcd700a
commit
1fad9398fc
16 changed files with 292 additions and 328 deletions
|
|
@ -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_;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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_;
|
||||
|
|
|
|||
|
|
@ -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_;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -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_;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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_;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -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_;
|
||||
|
|
|
|||
|
|
@ -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_;
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue