Clean up roomlistmodel.

This commit is contained in:
Black Hat
2019-05-20 13:42:18 +08:00
parent 561236e963
commit c0126cea95
2 changed files with 5 additions and 19 deletions

View File

@@ -48,7 +48,8 @@ void RoomListModel::setConnection(Connection* connection) {
Connection::DirectChatsMap removals) { Connection::DirectChatsMap removals) {
for (QString roomID : additions.values() + removals.values()) { for (QString roomID : additions.values() + removals.values()) {
auto room = connection->room(roomID); auto room = connection->room(roomID);
if (room) refresh(static_cast<SpectralRoom*>(room)); if (room)
refresh(static_cast<SpectralRoom*>(room));
} }
}); });
@@ -79,11 +80,9 @@ void RoomListModel::doAddRoom(Room* r) {
} }
void RoomListModel::connectRoomSignals(SpectralRoom* room) { void RoomListModel::connectRoomSignals(SpectralRoom* room) {
connect(room, &Room::displaynameChanged, this, [=] { namesChanged(room); }); connect(room, &Room::displaynameChanged, this, [=] { refresh(room); });
connect(room, &Room::unreadMessagesChanged, this, connect(room, &Room::unreadMessagesChanged, this, [=] { refresh(room); });
[=] { unreadMessagesChanged(room); }); connect(room, &Room::notificationCountChanged, this, [=] { refresh(room); });
connect(room, &Room::notificationCountChanged, this,
[=] { unreadMessagesChanged(room); });
connect(room, &Room::avatarChanged, this, connect(room, &Room::avatarChanged, this,
[this, room] { refresh(room, {AvatarRole}); }); [this, room] { refresh(room, {AvatarRole}); });
connect(room, &Room::tagsChanged, this, [=] { refresh(room); }); connect(room, &Room::tagsChanged, this, [=] { refresh(room); });
@@ -207,11 +206,6 @@ QVariant RoomListModel::data(const QModelIndex& index, int role) const {
return QVariant(); return QVariant();
} }
void RoomListModel::namesChanged(SpectralRoom* room) {
int row = m_rooms.indexOf(room);
emit dataChanged(index(row), index(row));
}
void RoomListModel::refresh(SpectralRoom* room, const QVector<int>& roles) { void RoomListModel::refresh(SpectralRoom* room, const QVector<int>& roles) {
const auto it = std::find(m_rooms.begin(), m_rooms.end(), room); const auto it = std::find(m_rooms.begin(), m_rooms.end(), room);
if (it == m_rooms.end()) { if (it == m_rooms.end()) {
@@ -222,11 +216,6 @@ void RoomListModel::refresh(SpectralRoom* room, const QVector<int>& roles) {
emit dataChanged(idx, idx, roles); emit dataChanged(idx, idx, roles);
} }
void RoomListModel::unreadMessagesChanged(SpectralRoom* room) {
int row = m_rooms.indexOf(room);
emit dataChanged(index(row), index(row));
}
QHash<int, QByteArray> RoomListModel::roleNames() const { QHash<int, QByteArray> RoomListModel::roleNames() const {
QHash<int, QByteArray> roles; QHash<int, QByteArray> roles;
roles[NameRole] = "name"; roles[NameRole] = "name";

View File

@@ -60,9 +60,6 @@ class RoomListModel : public QAbstractListModel {
QHash<int, QByteArray> roleNames() const; QHash<int, QByteArray> roleNames() const;
private slots: private slots:
void namesChanged(SpectralRoom* room);
void unreadMessagesChanged(SpectralRoom* room);
void doAddRoom(Room* room); void doAddRoom(Room* room);
void updateRoom(Room* room, Room* prev); void updateRoom(Room* room, Room* prev);
void deleteRoom(Room* room); void deleteRoom(Room* room);