diff --git a/callwidget.cpp b/callwidget.cpp index 4667a205ccaf3b5d35fa16e0561105709740f685..1c4d25e55f3d9289e85bbfef10b4301f4a4f828d 100644 --- a/callwidget.cpp +++ b/callwidget.cpp @@ -798,7 +798,7 @@ CallWidget::setSelectedAccount(const std::string& accountId) // First, we get back to the welcome view (except if in call) if (ui->stackedWidget->currentWidget() != ui->videoPage && ui->stackedWidget->currentWidget() != ui->welcomePage) { - Utils::setStackWidget(ui->stackedWidget, ui->welcomePage); + backToWelcomePage(); } // We setup the ringIdLabel and the QRCode @@ -1176,6 +1176,10 @@ CallWidget::selectConversation( const lrc::api::conversation::Info& item, void CallWidget::deselectConversation() { + if (LRCInstance::getSelectedConvUid().empty()) { + return; + } + auto currentConversationModel = LRCInstance::getCurrentConversationModel(); if (currentConversationModel == nullptr) { @@ -1183,7 +1187,7 @@ CallWidget::deselectConversation() } currentConversationModel->selectConversation(""); - LRCInstance::setSelectedConvId(""); + LRCInstance::setSelectedConvId(); ui->smartList->selectionModel()->clear(); disconnect(imConnection_); diff --git a/lrcinstance.h b/lrcinstance.h index a66f715fb398bbcd970bc59278ec1f8e89cbc428..9b3b8ac6f383a0c6476700652d115bc199db5f22 100644 --- a/lrcinstance.h +++ b/lrcinstance.h @@ -121,7 +121,7 @@ public: return instance().selectedAccountId_; }; - static void setSelectedAccountId(const std::string& accountId) { + static void setSelectedAccountId(const std::string& accountId = {}) { instance().selectedAccountId_ = accountId; QSettings settings("jami.net", "Jami"); settings.setValue(SettingsKey::selectedAccount, QString::fromStdString(accountId)); @@ -131,7 +131,7 @@ public: return instance().selectedConvUid_; }; - static void setSelectedConvId(const std::string& convUid) { + static void setSelectedConvId(const std::string& convUid = {}) { instance().selectedConvUid_ = convUid; }; diff --git a/settingswidget.cpp b/settingswidget.cpp index 68caee5a1d1472590cd6531cb212412b43aee395..f961688ed16b1bebbab89284518f23cbe0a7e82b 100644 --- a/settingswidget.cpp +++ b/settingswidget.cpp @@ -492,13 +492,13 @@ void SettingsWidget::delAccountSlot() auto ret = delDialog.exec(); if (ret == QDialog::Accepted) { - LRCInstance::setSelectedAccountId(""); + LRCInstance::setSelectedAccountId(); if (!LRCInstance::accountModel().getAccountList().size()) { emit NavigationRequested(ScreenEnum::WizardScreen); } else { - LRCInstance::setSelectedConvId(""); + LRCInstance::setSelectedConvId(); emit NavigationRequested(ScreenEnum::CallScreen); } }