Add direct chat handling for previews and invites

pull/416/head
Loren Burkholder 3 years ago
parent 8e5f91a579
commit 87bff3493d
  1. 12
      src/timeline/RoomlistModel.cpp
  2. 2
      src/timeline/TimelineModel.h

@ -164,6 +164,13 @@ RoomlistModel::data(const QModelIndex &index, int role) const
return false;
case Roles::Tags:
return QStringList();
case Roles::IsDirect:
return room.member_count == 1;
case Roles::DirectChatOtherUserId:
// if this is a direct chat, the front member is correct; otherwise,
// it won't be used anyway
return QString::fromStdString(
cache::roomMembers(roomid.toStdString()).front());
default:
return {};
}
@ -196,6 +203,11 @@ RoomlistModel::data(const QModelIndex &index, int role) const
return true;
case Roles::Tags:
return QStringList();
case Roles::IsDirect:
return room.member_count == 1;
case Roles::DirectChatOtherUserId:
return QString::fromStdString(
cache::roomMembers(roomid.toStdString()).front());
default:
return {};
}

@ -295,7 +295,7 @@ public:
bool isEncrypted() const { return isEncrypted_; }
crypto::Trust trustlevel() const;
int roomMemberCount() const;
bool isDirect() const { return roomMemberCount() <= 2; } // TODO: handle invites
bool isDirect() const { return roomMemberCount() <= 2; }
QString directChatOtherUserId() const;
std::optional<mtx::events::collections::TimelineEvents> eventById(const QString &id)

Loading…
Cancel
Save