TimelineView: remove unneeded date separators when deleting a redacted message (#279)

fixes #276
This commit is contained in:
Hawkheart 2018-03-20 02:59:00 -04:00 committed by mujx
parent d2d65b6662
commit 42733eeb86
1 changed files with 17 additions and 4 deletions

View File

@ -730,15 +730,28 @@ TimelineView::removeEvent(const QString &event_id)
auto removedItem = eventIds_[event_id];
// Find the next and the previous widgets in the timeline
auto prevItem = qobject_cast<TimelineItem *>(relativeWidget(removedItem, -1));
auto nextItem = qobject_cast<TimelineItem *>(relativeWidget(removedItem, 1));
auto prevWidget = relativeWidget(removedItem, -1);
auto nextWidget = relativeWidget(removedItem, 1);
// See if they are timeline items
auto prevItem = qobject_cast<TimelineItem *>(prevWidget);
auto nextItem = qobject_cast<TimelineItem *>(nextWidget);
// ... or a date separator
auto prevLabel = qobject_cast<QLabel *>(prevWidget);
// If it's a TimelineItem add an avatar.
if (prevItem)
if (prevItem) {
prevItem->addAvatar();
}
if (nextItem)
if (nextItem) {
nextItem->addAvatar();
} else if (prevLabel) {
// If there's no chat message after this, and we have a label before us, delete the
// label.
prevLabel->deleteLater();
}
// Finally remove the event.
removedItem->deleteLater();