diff --git a/callwidget.cpp b/callwidget.cpp index ecf5d035a8db4ae743f9cb8d67a7eaf5ff0175c5..ba6cba06b5d90419ad6168d124af560a398218a5 100644 --- a/callwidget.cpp +++ b/callwidget.cpp @@ -613,10 +613,14 @@ CallWidget::on_contactMethodComboBox_currentIndexChanged(const QString& number) ui->listMessageView->setVisible(messagesPresent); ui->noMessagesLabel->setVisible(!messagesPresent); if (not messagesPresent) { - QMetaObject::Connection connection = connect(txtRecording->instantMessagingModel(), &QAbstractItemModel::rowsInserted, [&]() { + imVisibleConnection_ = connect(txtRecording->instantMessagingModel(), + &QAbstractItemModel::rowsInserted, + [this, txtRecording]() { + if (imVisibleConnection_) + disconnect(imVisibleConnection_); + auto messagesPresent = txtRecording->instantMessagingModel()->rowCount() > 0; ui->listMessageView->setVisible(messagesPresent); ui->noMessagesLabel->setVisible(!messagesPresent); - disconnect(connection); }); } } diff --git a/callwidget.h b/callwidget.h index 4cc9353b63c9998d9148fa8dc3068ffbdb899875..cf9777a3c953752d2abde412e3e875ae72efd2a3 100644 --- a/callwidget.h +++ b/callwidget.h @@ -103,6 +103,7 @@ private: QModelIndex highLightedIndex_; ImDelegate* imDelegate_; QMetaObject::Connection imConnection_; + QMetaObject::Connection imVisibleConnection_; QPropertyAnimation* messagingPageAnim_; QPropertyAnimation* welcomePageAnim_;