diff --git a/src/lib/gui/MainWindow.cpp b/src/lib/gui/MainWindow.cpp index 0cfbe93e9..b3f2e6b5a 100644 --- a/src/lib/gui/MainWindow.cpp +++ b/src/lib/gui/MainWindow.cpp @@ -523,8 +523,14 @@ void MainWindow::showMyFingerprint() fingerprintDialog.exec(); } -void MainWindow::coreModeToggled() +void MainWindow::coreModeToggled(bool checked) { + // this method is called when rbClient or rbServer toggles + // with both being in the same group one must be turned on if the other is turned off + // only react to toggle on to avoid calling everything twice when the user switches modes + if (!checked) + return; + auto serverMode = ui->rbModeServer->isChecked(); const auto mode = serverMode ? QStringLiteral("server enabled") : QStringLiteral("client enabled"); diff --git a/src/lib/gui/MainWindow.h b/src/lib/gui/MainWindow.h index 0ffacfbf2..7134dbc19 100644 --- a/src/lib/gui/MainWindow.h +++ b/src/lib/gui/MainWindow.h @@ -124,7 +124,7 @@ private: void updateSecurityIcon(bool visible); void updateNetworkInfo(); - void coreModeToggled(); + void coreModeToggled(bool checked); void updateModeControls(bool serverMode); void updateModeControlLabels(); std::unique_ptr ui;