summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorKonstantinos Sideris <sideris.konstantin@gmail.com>2017-05-14 16:31:59 +0300
committerKonstantinos Sideris <sideris.konstantin@gmail.com>2017-05-14 16:31:59 +0300
commit7502f167aec63002a1724c165f63ed974bc0c3bf (patch)
treea75dfbae716caed5bda359dabe4b930a8022af08 /src
parentFix ripple size on RoomListItem (diff)
downloadnheko-7502f167aec63002a1724c165f63ed974bc0c3bf.tar.xz
Use QSharedPointer to manage TimelineViews and RoomInfoListItems
Diffstat (limited to 'src')
-rw-r--r--src/RoomList.cc5
-rw-r--r--src/TimelineView.cc6
-rw-r--r--src/TimelineViewManager.cc11
3 files changed, 5 insertions, 17 deletions
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;