Elide Qt invitation links with consistent layout and full-address selection

This commit is contained in:
evgeny committed 2026-10-04 18:08:43 +02:00
1 parent 12e09cb0ed
commit 6ad89a4f6a
2 files changed
+43 -14

No files matched your search

+9
View File
@@ -1151,6 +1151,14 @@ void MessageList::onDmMessages(const uint8_t* data, int len) {
qint64 ts = (qint64)message.value("ts").toDouble();
quint64 author = message.value("author").toString().toULongLong();
QString text = message.value("data").toString();
const bool invite = message.value("ct").toString() == QStringLiteral("invite");
const QString inviteLink = invite ? text : QString();
if (invite) {
const QString groupName = message.value("tags").toObject().value("group_name").toString();
text = tr("Приглашение в группу «%1»").arg(groupName) + '\n' + inviteLink;
GUI_DEBUG("invite PM: rendered conv=%s seq=%lld group_name_bytes=%d link_bytes=%d", qPrintable(m_currentChannelId),
(long long)seq, (int)groupName.toUtf8().size(), (int)inviteLink.size());
}
bool file = message.value("ct").toString() == "file";
QString state = message.value("media_status").toString();
QString status;
@@ -1181,6 +1189,7 @@ void MessageList::onDmMessages(const uint8_t* data, int len) {
item->setData(m_currentChannelId, MsgChannelIdRole);
QString type = message.value("content_type").toString(QStringLiteral("text/plain"));
item->setData(type, MsgContentTypeRole);
if (invite) item->setData(inviteLink, MsgInviteLinkRole);
if (file) {
QString path = message.value("media_path").toString();
item->setData(path, MsgVoiceFileRole);