diff --git a/settingswidget.cpp b/settingswidget.cpp index 1cd2a433f0031731a15c28656c46dd0c1929f79a..97bcd7cc64a3f7ebe0aef461e50eb5a964e36495 100644 --- a/settingswidget.cpp +++ b/settingswidget.cpp @@ -172,7 +172,9 @@ void SettingsWidget::setSelected(Button sel) ui->accountSettingsButton->setChecked(true); ui->generalSettingsButton->setChecked(false); ui->mediaSettingsButton->setChecked(false); - if (pastButton_ == sel) { return; } + if (pastButton_ == sel && pastAccount_ == LRCInstance::getCurrentAccountInfo().profileInfo.type) { + return; + } if (!LRCInstance::getActiveCalls().size()) { QtConcurrent::run( [this] { LRCInstance::avModel().stopPreview(); }); @@ -183,11 +185,13 @@ void SettingsWidget::setSelected(Button sel) if (advancedSIPSettingsDropped_) { toggleAdvancedSIPSettings(); } + pastAccount_ = lrc::api::profile::Type::SIP; } else { ui->stackedWidget->setCurrentWidget(ui->currentAccountSettingsScrollWidget); if (advancedSettingsDropped_) { toggleAdvancedSettings(); } + pastAccount_ = lrc::api::profile::Type::RING; } break; diff --git a/settingswidget.h b/settingswidget.h index 43cbd6f181a5e96e9817ba8052b9bf632edbaa86..7c7f9ee11d1aeeae0d025539556d1b1dd4a7dfb1 100644 --- a/settingswidget.h +++ b/settingswidget.h @@ -93,6 +93,7 @@ private: AdvancedSettingsWidget* advancedSettingsWidget_; QScrollArea* scrollArea_; Button pastButton_ = Button::generalSettingsButton; + lrc::api::profile::Type pastAccount_ = lrc::api::profile::Type::INVALID; bool advancedSettingsDropped_ = false; QList<QPair<std::string, float>> formatIndexList_; std::string currentDisplayedVideoDevice_;