Fix #138.
This commit is contained in:
@@ -32,6 +32,9 @@ class SpectralRoom : public Room {
|
||||
backgroundChanged)
|
||||
Q_PROPERTY(
|
||||
QString backgroundMediaId READ backgroundMediaId NOTIFY backgroundChanged)
|
||||
// Q_PROPERTY(QUrl avatarUrl READ avatarUrl NOTIFY avatarChanged)
|
||||
Q_PROPERTY(QString avatarMediaId READ avatarMediaId NOTIFY avatarChanged
|
||||
STORED false)
|
||||
|
||||
public:
|
||||
explicit SpectralRoom(Connection* connection,
|
||||
@@ -90,6 +93,32 @@ class SpectralRoom : public Room {
|
||||
|
||||
Q_INVOKABLE QUrl urlToMxcUrl(QUrl mxcUrl);
|
||||
|
||||
QUrl avatarUrl() const {
|
||||
if (!Room::avatarUrl().isEmpty())
|
||||
return Room::avatarUrl();
|
||||
|
||||
// Use the first (excluding self) user's avatar for direct chats
|
||||
const auto dcUsers = directChatUsers();
|
||||
for (auto* u : dcUsers)
|
||||
if (u != localUser())
|
||||
return u->avatarUrl();
|
||||
|
||||
return {};
|
||||
}
|
||||
|
||||
QString avatarMediaId() const {
|
||||
if (!Room::avatarMediaId().isEmpty())
|
||||
return Room::avatarMediaId();
|
||||
|
||||
// Use the first (excluding self) user's avatar for direct chats
|
||||
const auto dcUsers = directChatUsers();
|
||||
for (auto* u : dcUsers)
|
||||
if (u != localUser())
|
||||
return u->avatarMediaId();
|
||||
|
||||
return {};
|
||||
}
|
||||
|
||||
QUrl backgroundUrl();
|
||||
Q_INVOKABLE void setBackgroundUrl(QUrl url);
|
||||
Q_INVOKABLE void clearBackground();
|
||||
|
||||
Reference in New Issue
Block a user