Mark own read messages with a double checkmark (#377)
This commit is contained in:
parent
40facd116e
commit
e4dedbcaba
12 changed files with 248 additions and 1 deletions
|
|
@ -42,6 +42,7 @@ StatusIndicator::StatusIndicator(QWidget *parent)
|
|||
lockIcon_.addFile(":/icons/icons/ui/lock.png");
|
||||
clockIcon_.addFile(":/icons/icons/ui/clock.png");
|
||||
checkmarkIcon_.addFile(":/icons/icons/ui/checkmark.png");
|
||||
doubleCheckmarkIcon_.addFile(":/icons/icons/ui/double-tick-indicator.png");
|
||||
}
|
||||
|
||||
void
|
||||
|
|
@ -79,6 +80,10 @@ StatusIndicator::paintEvent(QPaintEvent *)
|
|||
paintIcon(p, checkmarkIcon_);
|
||||
break;
|
||||
}
|
||||
case StatusIndicatorState::Read: {
|
||||
paintIcon(p, doubleCheckmarkIcon_);
|
||||
break;
|
||||
}
|
||||
case StatusIndicatorState::Empty:
|
||||
break;
|
||||
}
|
||||
|
|
@ -302,6 +307,8 @@ TimelineItem::TimelineItem(ImageItem *image,
|
|||
setupWidgetLayout<mtx::events::RoomEvent<mtx::events::msg::Image>, ImageItem>(
|
||||
image, event, with_sender);
|
||||
|
||||
markOwnMessagesAsReceived(event.sender);
|
||||
|
||||
addSaveImageAction(image);
|
||||
}
|
||||
|
||||
|
|
@ -315,6 +322,8 @@ TimelineItem::TimelineItem(StickerItem *image,
|
|||
{
|
||||
setupWidgetLayout<mtx::events::Sticker, StickerItem>(image, event, with_sender);
|
||||
|
||||
markOwnMessagesAsReceived(event.sender);
|
||||
|
||||
addSaveImageAction(image);
|
||||
}
|
||||
|
||||
|
|
@ -328,6 +337,8 @@ TimelineItem::TimelineItem(FileItem *file,
|
|||
{
|
||||
setupWidgetLayout<mtx::events::RoomEvent<mtx::events::msg::File>, FileItem>(
|
||||
file, event, with_sender);
|
||||
|
||||
markOwnMessagesAsReceived(event.sender);
|
||||
}
|
||||
|
||||
TimelineItem::TimelineItem(AudioItem *audio,
|
||||
|
|
@ -340,6 +351,8 @@ TimelineItem::TimelineItem(AudioItem *audio,
|
|||
{
|
||||
setupWidgetLayout<mtx::events::RoomEvent<mtx::events::msg::Audio>, AudioItem>(
|
||||
audio, event, with_sender);
|
||||
|
||||
markOwnMessagesAsReceived(event.sender);
|
||||
}
|
||||
|
||||
TimelineItem::TimelineItem(VideoItem *video,
|
||||
|
|
@ -352,6 +365,8 @@ TimelineItem::TimelineItem(VideoItem *video,
|
|||
{
|
||||
setupWidgetLayout<mtx::events::RoomEvent<mtx::events::msg::Video>, VideoItem>(
|
||||
video, event, with_sender);
|
||||
|
||||
markOwnMessagesAsReceived(event.sender);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -367,6 +382,8 @@ TimelineItem::TimelineItem(const mtx::events::RoomEvent<mtx::events::msg::Notice
|
|||
init();
|
||||
addReplyAction();
|
||||
|
||||
markOwnMessagesAsReceived(event.sender);
|
||||
|
||||
event_id_ = QString::fromStdString(event.event_id);
|
||||
const auto sender = QString::fromStdString(event.sender);
|
||||
const auto timestamp = QDateTime::fromMSecsSinceEpoch(event.origin_server_ts);
|
||||
|
|
@ -413,6 +430,8 @@ TimelineItem::TimelineItem(const mtx::events::RoomEvent<mtx::events::msg::Emote>
|
|||
init();
|
||||
addReplyAction();
|
||||
|
||||
markOwnMessagesAsReceived(event.sender);
|
||||
|
||||
event_id_ = QString::fromStdString(event.event_id);
|
||||
const auto sender = QString::fromStdString(event.sender);
|
||||
|
||||
|
|
@ -455,6 +474,8 @@ TimelineItem::TimelineItem(const mtx::events::RoomEvent<mtx::events::msg::Text>
|
|||
init();
|
||||
addReplyAction();
|
||||
|
||||
markOwnMessagesAsReceived(event.sender);
|
||||
|
||||
event_id_ = QString::fromStdString(event.event_id);
|
||||
const auto sender = QString::fromStdString(event.sender);
|
||||
|
||||
|
|
@ -495,6 +516,21 @@ TimelineItem::markSent()
|
|||
statusIndicator_->setState(StatusIndicatorState::Sent);
|
||||
}
|
||||
|
||||
void
|
||||
TimelineItem::markOwnMessagesAsReceived(const std::string &sender)
|
||||
{
|
||||
QSettings settings;
|
||||
if (sender == settings.value("auth/user_id").toString().toStdString())
|
||||
statusIndicator_->setState(StatusIndicatorState::Received);
|
||||
}
|
||||
|
||||
void
|
||||
TimelineItem::markRead()
|
||||
{
|
||||
if (statusIndicator_->state() != StatusIndicatorState::Encrypted)
|
||||
statusIndicator_->setState(StatusIndicatorState::Read);
|
||||
}
|
||||
|
||||
void
|
||||
TimelineItem::markReceived(bool isEncrypted)
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue