mirror of
https://github.com/Nheko-Reborn/nheko.git
synced 2024-10-30 17:40:47 +03:00
Get direct chat jdenticons to line up
This commit is contained in:
parent
7a200d7e77
commit
1fdecdcc21
6 changed files with 29 additions and 0 deletions
|
@ -143,6 +143,8 @@ Page {
|
|||
required property int notificationCount
|
||||
required property bool hasLoudNotification
|
||||
required property bool hasUnreadMessages
|
||||
required property int roomMemberCount
|
||||
required property string directChatAvatarMxid
|
||||
|
||||
color: background
|
||||
height: avatarSize + 2 * Nheko.paddingMedium
|
||||
|
@ -237,6 +239,7 @@ Page {
|
|||
width: avatarSize
|
||||
url: avatarUrl.replace("mxc://", "image://MxcImage/")
|
||||
displayName: roomName
|
||||
userid: roomMemberCount < 3 ? directChatAvatarMxid : roomId
|
||||
|
||||
Rectangle {
|
||||
id: collapsedNotificationBubble
|
||||
|
|
|
@ -65,6 +65,7 @@ Rectangle {
|
|||
width: Nheko.avatarSize
|
||||
height: Nheko.avatarSize
|
||||
url: avatarUrl.replace("mxc://", "image://MxcImage/")
|
||||
userid: room.roomMemberCount < 3 ? room.directChatAvatarMxid : room.roomId
|
||||
displayName: roomName
|
||||
onClicked: {
|
||||
if (room)
|
||||
|
|
|
@ -76,6 +76,8 @@ RoomlistModel::roleNames() const
|
|||
{IsSpace, "isSpace"},
|
||||
{Tags, "tags"},
|
||||
{ParentSpaces, "parentSpaces"},
|
||||
{RoomMemberCount, "roomMemberCount"},
|
||||
{DirectChatAvatarMxid, "directChatAvatarMxid"},
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -129,6 +131,10 @@ RoomlistModel::data(const QModelIndex &index, int role) const
|
|||
list.push_back(QString::fromStdString(t));
|
||||
return list;
|
||||
}
|
||||
case Roles::RoomMemberCount:
|
||||
return room->roomMemberCount();
|
||||
case Roles::DirectChatAvatarMxid:
|
||||
return room->directChatAvatarMxid();
|
||||
default:
|
||||
return {};
|
||||
}
|
||||
|
|
|
@ -65,6 +65,8 @@ public:
|
|||
IsPreviewFetched,
|
||||
Tags,
|
||||
ParentSpaces,
|
||||
RoomMemberCount,
|
||||
DirectChatAvatarMxid,
|
||||
};
|
||||
|
||||
RoomlistModel(TimelineViewManager *parent = nullptr);
|
||||
|
|
|
@ -2073,3 +2073,16 @@ TimelineModel::roomMemberCount() const
|
|||
{
|
||||
return (int)cache::client()->memberCount(room_id_.toStdString());
|
||||
}
|
||||
|
||||
QString
|
||||
TimelineModel::directChatAvatarMxid() const
|
||||
{
|
||||
if (roomMemberCount() < 3) {
|
||||
QString id;
|
||||
for (auto member : cache::getMembers(room_id_.toStdString()))
|
||||
if (member.user_id != UserSettings::instance()->userId())
|
||||
id = member.user_id;
|
||||
return id;
|
||||
} else
|
||||
return "";
|
||||
}
|
||||
|
|
|
@ -176,6 +176,8 @@ class TimelineModel : public QAbstractListModel
|
|||
Q_PROPERTY(bool isEncrypted READ isEncrypted NOTIFY encryptionChanged)
|
||||
Q_PROPERTY(bool isSpace READ isSpace CONSTANT)
|
||||
Q_PROPERTY(int trustlevel READ trustlevel NOTIFY trustlevelChanged)
|
||||
Q_PROPERTY(
|
||||
QString directChatAvatarMxid READ directChatAvatarMxid NOTIFY directChatAvatarMxidChanged)
|
||||
Q_PROPERTY(InputBar *input READ input CONSTANT)
|
||||
Q_PROPERTY(Permissions *permissions READ permissions NOTIFY permissionsChanged)
|
||||
|
||||
|
@ -292,6 +294,7 @@ public:
|
|||
bool isEncrypted() const { return isEncrypted_; }
|
||||
crypto::Trust trustlevel() const;
|
||||
int roomMemberCount() const;
|
||||
QString directChatAvatarMxid() const;
|
||||
|
||||
std::optional<mtx::events::collections::TimelineEvents> eventById(const QString &id)
|
||||
{
|
||||
|
@ -391,6 +394,7 @@ signals:
|
|||
void roomTopicChanged();
|
||||
void roomAvatarUrlChanged();
|
||||
void roomMemberCountChanged();
|
||||
void directChatAvatarMxidChanged();
|
||||
void permissionsChanged();
|
||||
void forwardToRoom(mtx::events::collections::TimelineEvents *e, QString roomId);
|
||||
|
||||
|
|
Loading…
Reference in a new issue