diff --git a/src/callwidget.cpp b/src/callwidget.cpp index 6c19539f6dc34a9265a11ad291c1ba9fdec09b8b..5689802d8a195bfc048ddd62d930400715732556 100644 --- a/src/callwidget.cpp +++ b/src/callwidget.cpp @@ -663,8 +663,14 @@ CallWidget::slotShowCallView(const QString& accountId, const lrc::api::conversation::Info& convInfo) { Q_UNUSED(accountId); + qDebug() << "slotShowCallView"; + if (!convInfo.callId.isEmpty()) { + auto & accInfo = LRCInstance::getAccountInfo(convInfo.accountId); + accInfo.callModel->setCurrentCall(convInfo.callId); + } + // control visible callwidget buttons setCallPanelVisibility(true); @@ -1226,17 +1232,6 @@ CallWidget::selectConversation(const lrc::api::conversation::Info& item) LRCInstance::setSelectedConvId(item.uid); accInfo.conversationModel->selectConversation(item.uid); accInfo.conversationModel->clearUnreadInteractions(item.uid); - if (!item.callId.isEmpty()) { - // when changing conversation, current call should only be set when there is a call on pause - if (accInfo.callModel->getCall(item.callId).status == lrc::api::call::Status::PAUSED) { - QtConcurrent::run( - [convUid = item.uid, accId = item.accountId]{ - auto item = LRCInstance::getConversationFromConvUid(convUid); - auto & accInfo = LRCInstance::getAccountInfo(item.accountId); - accInfo.callModel->setCurrentCall(item.callId); - }); - } - } ui->conversationsFilterWidget->update(); return true; } @@ -1392,14 +1387,6 @@ CallWidget::connectAccount(const QString& accountId) auto convInfo = LRCInstance::getConversationFromCallId(callId, accountId); if (!convInfo.uid.isEmpty() && convInfo.uid == LRCInstance::getCurrentConvUid()) { accInfo.conversationModel->selectConversation(convInfo.uid); - if (!convInfo.callId.isEmpty()) { - QtConcurrent::run( - [convUid = convInfo.uid, accId = convInfo.accountId]{ - auto item = LRCInstance::getConversationFromConvUid(convUid); - auto & accInfo = LRCInstance::getAccountInfo(item.accountId); - accInfo.callModel->setCurrentCall(item.callId); - }); - } } LRCInstance::renderer()->addDistantRenderer(callId); ui->videoView->updateCall();