diff --git a/src/RoomList.cc b/src/RoomList.cc
index a0312113..58053bbd 100644
--- a/src/RoomList.cc
+++ b/src/RoomList.cc
@@ -51,9 +51,6 @@ RoomList::~RoomList()
void RoomList::clear()
{
- for (const auto &room : rooms_)
- room->deleteLater();
-
rooms_.clear();
}
@@ -93,7 +90,7 @@ void RoomList::setInitialRooms(const QMap<QString, RoomState> &states)
RoomInfoListItem *room_item = new RoomInfoListItem(state, room_id, ui->scrollArea);
connect(room_item, &RoomInfoListItem::clicked, this, &RoomList::highlightSelectedRoom);
- rooms_.insert(room_id, room_item);
+ rooms_.insert(room_id, QSharedPointer<RoomInfoListItem>(room_item));
int pos = ui->scrollVerticalLayout->count() - 1;
ui->scrollVerticalLayout->insertWidget(pos, room_item);
diff --git a/src/TimelineView.cc b/src/TimelineView.cc
index aec519ed..7881aee4 100644
--- a/src/TimelineView.cc
+++ b/src/TimelineView.cc
@@ -49,12 +49,6 @@ TimelineView::TimelineView(const Timeline &timeline,
addEvents(timeline);
}
-void TimelineView::clear()
-{
- for (const auto msg : scroll_layout_->children())
- msg->deleteLater();
-}
-
void TimelineView::sliderRangeChanged(int min, int max)
{
Q_UNUSED(min);
diff --git a/src/TimelineViewManager.cc b/src/TimelineViewManager.cc
index d07e8075..008dc5dc 100644
--- a/src/TimelineViewManager.cc
+++ b/src/TimelineViewManager.cc
@@ -65,11 +65,8 @@ void TimelineViewManager::clearAll()
{
NICK_COLORS.clear();
- for (const auto &view : views_) {
- view->clear();
- removeWidget(view);
- view->deleteLater();
- }
+ for (auto view : views_)
+ removeWidget(view.data());
views_.clear();
}
@@ -81,7 +78,7 @@ void TimelineViewManager::initialize(const Rooms &rooms)
// Create a history view with the room events.
TimelineView *view = new TimelineView(it.value().timeline(), client_, it.key());
- views_.insert(it.key(), view);
+ views_.insert(it.key(), QSharedPointer<TimelineView>(view));
// Add the view in the widget stack.
addWidget(view);
@@ -124,7 +121,7 @@ void TimelineViewManager::setHistoryView(const QString &room_id)
auto widget = views_.value(room_id);
widget->scrollDown();
- setCurrentWidget(widget);
+ setCurrentWidget(widget.data());
}
QMap<QString, QString> TimelineViewManager::NICK_COLORS;
|