From 2360dfd80ae8991c557c9c7d9474c528c00fdaa6 Mon Sep 17 00:00:00 2001 From: Nicolas Werner Date: Sun, 13 Aug 2023 11:30:41 +0200 Subject: Remaining events apart from verification --- src/timeline/EventDelegateChooser.cpp | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) (limited to 'src/timeline/EventDelegateChooser.cpp') diff --git a/src/timeline/EventDelegateChooser.cpp b/src/timeline/EventDelegateChooser.cpp index 7fec38dd..2218d9ee 100644 --- a/src/timeline/EventDelegateChooser.cpp +++ b/src/timeline/EventDelegateChooser.cpp @@ -195,17 +195,22 @@ EventDelegateChooser::DelegateIncubator::setInitialState(QObject *obj) if (!forReply) { auto row = chooser.room_->idToIndex(currentId); - connect(chooser.room_, - &QAbstractItemModel::dataChanged, - obj, - [row, update](const QModelIndex &topLeft, - const QModelIndex &bottomRight, - const QList &changedRoles) { - if (row < topLeft.row() || row > bottomRight.row()) - return; - - update(changedRoles); - }); + auto connection = connect( + chooser.room_, + &QAbstractItemModel::dataChanged, + obj, + [row, update](const QModelIndex &topLeft, + const QModelIndex &bottomRight, + const QList &changedRoles) { + if (row < topLeft.row() || row > bottomRight.row()) + return; + + update(changedRoles); + }, + Qt::QueuedConnection); + connect(&this->chooser, &EventDelegateChooser::destroyed, obj, [connection]() { + QObject::disconnect(connection); + }); } } -- cgit 1.5.1