|
|
|
@ -26,29 +26,30 @@ NhekoDBusBackend::rooms(const QDBusMessage &message) |
|
|
|
|
new QVector<nheko::dbus::RoomInfoItem>}; |
|
|
|
|
|
|
|
|
|
for (const auto &room : roomListModel) { |
|
|
|
|
auto addRoom = |
|
|
|
|
[room, roomListModelSize = roomListModel.size(), message, model](const QImage &image) { |
|
|
|
|
const auto aliases = cache::client()->getRoomAliases(room->roomId().toStdString()); |
|
|
|
|
QString alias; |
|
|
|
|
if (aliases.has_value()) { |
|
|
|
|
const auto &val = aliases.value(); |
|
|
|
|
if (!val.alias.empty()) |
|
|
|
|
alias = QString::fromStdString(val.alias); |
|
|
|
|
else if (val.alt_aliases.size() > 0) |
|
|
|
|
alias = QString::fromStdString(val.alt_aliases.front()); |
|
|
|
|
} |
|
|
|
|
auto addRoom = [room, roomListModelSize = roomListModel.size(), message, model]( |
|
|
|
|
const QImage &image) { |
|
|
|
|
const auto aliases = cache::client()->getStateEvent<mtx::events::state::CanonicalAlias>( |
|
|
|
|
room->roomId().toStdString()); |
|
|
|
|
QString alias; |
|
|
|
|
if (aliases.has_value()) { |
|
|
|
|
const auto &val = aliases.value().content; |
|
|
|
|
if (!val.alias.empty()) |
|
|
|
|
alias = QString::fromStdString(val.alias); |
|
|
|
|
else if (val.alt_aliases.size() > 0) |
|
|
|
|
alias = QString::fromStdString(val.alt_aliases.front()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
model->push_back(nheko::dbus::RoomInfoItem{ |
|
|
|
|
room->roomId(), alias, room->roomName(), image, room->notificationCount()}); |
|
|
|
|
model->push_back(nheko::dbus::RoomInfoItem{ |
|
|
|
|
room->roomId(), alias, room->roomName(), image, room->notificationCount()}); |
|
|
|
|
|
|
|
|
|
if (model->length() == roomListModelSize) { |
|
|
|
|
auto reply = message.createReply(); |
|
|
|
|
nhlog::ui()->debug("Sending {} rooms over D-Bus...", model->size()); |
|
|
|
|
reply << QVariant::fromValue(*model); |
|
|
|
|
QDBusConnection::sessionBus().send(reply); |
|
|
|
|
nhlog::ui()->debug("Rooms successfully sent to D-Bus."); |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
if (model->length() == roomListModelSize) { |
|
|
|
|
auto reply = message.createReply(); |
|
|
|
|
nhlog::ui()->debug("Sending {} rooms over D-Bus...", model->size()); |
|
|
|
|
reply << QVariant::fromValue(*model); |
|
|
|
|
QDBusConnection::sessionBus().send(reply); |
|
|
|
|
nhlog::ui()->debug("Rooms successfully sent to D-Bus."); |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
auto avatarUrl = room->roomAvatarUrl(); |
|
|
|
|
if (avatarUrl.isEmpty()) |
|
|
|
|