From 39a8150faea00a6ba6202df3f0bc1a0bb4868646 Mon Sep 17 00:00:00 2001 From: Konstantinos Sideris Date: Mon, 12 Mar 2018 00:15:06 +0200 Subject: Update room name & avatar on new rooms fixes #253 --- src/RoomState.cc | 33 +++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-) (limited to 'src/RoomState.cc') diff --git a/src/RoomState.cc b/src/RoomState.cc index 244d9e51..de816524 100644 --- a/src/RoomState.cc +++ b/src/RoomState.cc @@ -51,32 +51,41 @@ RoomState::resolveName() } QSettings settings; - auto user_id = settings.value("auth/user_id"); + auto user_id = settings.value("auth/user_id").toString(); // TODO: Display names should be sorted alphabetically. for (const auto membership : memberships) { const auto stateKey = QString::fromStdString(membership.second.state_key); - if (stateKey == user_id) + if (stateKey == user_id) { + name_ = QString::fromStdString(membership.second.content.display_name); + + if (name_.isEmpty()) + name_ = stateKey; + + userAvatar_ = stateKey; + continue; + } - if (membership.second.content.membership == mtx::events::state::Membership::Join) { + if (membership.second.content.membership == mtx::events::state::Membership::Join || + membership.second.content.membership == + mtx::events::state::Membership::Invite) { userAvatar_ = stateKey; - auto displayName = - QString::fromStdString(membership.second.content.display_name); - if (displayName.isEmpty()) + name_ = QString::fromStdString(membership.second.content.display_name); + + if (name_.isEmpty()) name_ = stateKey; - else - name_ = displayName; + // TODO: pluralization + if (memberships.size() > 2) + name_ = QString("%1 and %2 others") + .arg(name_) + .arg(memberships.size() - 2); break; } } - - // TODO: pluralization - if (memberships.size() > 2) - name_ = QString("%1 and %2 others").arg(name_).arg(memberships.size()); } void -- cgit 1.5.1