Render clickable compact replies for text and media messages

This commit is contained in:
evgeny committed 2026-10-08 00:23:16 +02:00
1 parent 68df26d4a5
commit eebef4d14f
2 files changed
+51 -19

No files matched your search

+5
View File
@@ -48,6 +48,8 @@ enum MessageDataRole {
MsgInviteLinkRole = Qt::UserRole + 37, /* полная ссылка; MsgTextRole содержит локализованный заголовок и ссылку */
MsgMessageKeyRole = Qt::UserRole + 38,
MsgRawTimestampRole = Qt::UserRole + 39,
MsgReplyToRole = Qt::UserRole + 40,
MsgHighlightRole = Qt::UserRole + 41,
};
class MessageDelegate : public QStyledItemDelegate {
@@ -76,6 +78,7 @@ signals:
void avatarRequested(const QString& channel, quint64 owner);
void reactionRequested(const QModelIndex& index, int emoji); /* -1 открывает выбор реакции */
void pollRequested(const QString& messageId);
void replyRequested(const QString& messageId);
private:
struct ReactionChip { QRect rect; int id; QString emoji; int count; bool mine; };
@@ -131,6 +134,8 @@ private:
int m_pressedReaction = -2;
QPersistentModelIndex m_pollPress;
QPoint m_pollPressPosition;
QPersistentModelIndex m_quotePress;
QPoint m_quotePressPosition;
std::function<bool(const QModelIndex&)> m_downloadCb;
Layout calcLayout(const QStyleOptionViewItem &option,