summary refs log tree commit diff
path: root/src/timeline/EventDelegateChooser.cpp
diff options
context:
space:
mode:
authorNicolas Werner <nicolas.werner@hotmail.de>2023-08-13 11:30:41 +0200
committerNicolas Werner <nicolas.werner@hotmail.de>2023-08-25 19:03:16 +0200
commit2360dfd80ae8991c557c9c7d9474c528c00fdaa6 (patch)
tree70a357307798038525871a5e12e422babc342ccd /src/timeline/EventDelegateChooser.cpp
parentGet rid of redundant constructions and make room implicit (diff)
downloadnheko-2360dfd80ae8991c557c9c7d9474c528c00fdaa6.tar.xz
Remaining events apart from verification
Diffstat (limited to 'src/timeline/EventDelegateChooser.cpp')
-rw-r--r--src/timeline/EventDelegateChooser.cpp25
1 files changed, 15 insertions, 10 deletions
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<int> &changedRoles) { - if (row < topLeft.row() || row > bottomRight.row()) - return; + auto connection = connect( + chooser.room_, + &QAbstractItemModel::dataChanged, + obj, + [row, update](const QModelIndex &topLeft, + const QModelIndex &bottomRight, + const QList<int> &changedRoles) { + if (row < topLeft.row() || row > bottomRight.row()) + return; - update(changedRoles); - }); + update(changedRoles); + }, + Qt::QueuedConnection); + connect(&this->chooser, &EventDelegateChooser::destroyed, obj, [connection]() { + QObject::disconnect(connection); + }); } }