refactor(Settings): add helper method to get network protocol as NetworkProtocol directly

This commit is contained in:
sithlord48 2026-06-08 22:14:54 -04:00 committed by Nick Bolton
parent b91a39492f
commit 516f24a0ba
5 changed files with 17 additions and 11 deletions

View file

@ -208,7 +208,7 @@ QVariant Settings::defaultValue(const QString &key)
return 1.0; return 1.0;
if (key == Server::Protocol) if (key == Server::Protocol)
return QVariant::fromValue(NetworkProtocol::Barrier); return networkProtocolToOption(NetworkProtocol::Barrier);
if (key == Server::GridWidth) if (key == Server::GridWidth)
return kServerGridWidth; return kServerGridWidth;
@ -224,6 +224,11 @@ QSettingsProxy &Settings::proxy()
return *instance()->m_settingsProxy; return *instance()->m_settingsProxy;
} }
NetworkProtocol Settings::networkProtocol()
{
return networkProtocolFromString(Settings::value(Server::Protocol).toString());
}
void Settings::save(bool emitSaving) void Settings::save(bool emitSaving)
{ {
if (emitSaving) if (emitSaving)

View file

@ -12,6 +12,7 @@
#include <QDir> #include <QDir>
#include "common/Constants.h" #include "common/Constants.h"
#include "common/NetworkProtocol.h"
#include "common/QSettingsProxy.h" #include "common/QSettingsProxy.h"
class Settings : public QObject class Settings : public QObject
@ -151,6 +152,7 @@ public:
static QString tlsTrustedClientsDb(); static QString tlsTrustedClientsDb();
static QString logLevelText(); static QString logLevelText();
static QSettingsProxy &proxy(); static QSettingsProxy &proxy();
static NetworkProtocol networkProtocol();
static void save(bool emitSaving = true); static void save(bool emitSaving = true);
static QStringList validKeys(); static QStringList validKeys();
static QString portableSettingsFile(); static QString portableSettingsFile();

View file

@ -35,7 +35,7 @@ ServerConfigDialog::ServerConfigDialog(QWidget *parent, ServerConfig &config)
{ {
ui->setupUi(this); ui->setupUi(this);
m_originalProtocol = Settings::value(Settings::Server::Protocol).value<NetworkProtocol>(); m_protocol = Settings::networkProtocol();
connect(ui->buttonBox, &QDialogButtonBox::accepted, this, &ServerConfigDialog::accept); connect(ui->buttonBox, &QDialogButtonBox::accepted, this, &ServerConfigDialog::accept);
connect(ui->buttonBox, &QDialogButtonBox::rejected, this, &ServerConfigDialog::reject); connect(ui->buttonBox, &QDialogButtonBox::rejected, this, &ServerConfigDialog::reject);
@ -70,7 +70,7 @@ ServerConfigDialog::ServerConfigDialog(QWidget *parent, ServerConfig &config)
ui->btnBrowseConfigFile->setIcon(QIcon::fromTheme(QIcon::ThemeIcon::DocumentOpen)); ui->btnBrowseConfigFile->setIcon(QIcon::fromTheme(QIcon::ThemeIcon::DocumentOpen));
ui->lineConfigFile->setText(serverConfig().configFile()); ui->lineConfigFile->setText(serverConfig().configFile());
const auto networkProtocol = networkProtocolFromString(Settings::value(Settings::Server::Protocol).toString()); const auto networkProtocol = Settings::networkProtocol();
ui->rbProtocolSynergy->setChecked(networkProtocol == NetworkProtocol::Synergy); ui->rbProtocolSynergy->setChecked(networkProtocol == NetworkProtocol::Synergy);
ui->rbProtocolBarrier->setChecked(networkProtocol == NetworkProtocol::Barrier); ui->rbProtocolBarrier->setChecked(networkProtocol == NetworkProtocol::Barrier);
connect(ui->rbProtocolBarrier, &QRadioButton::toggled, this, &ServerConfigDialog::toggleProtocol); connect(ui->rbProtocolBarrier, &QRadioButton::toggled, this, &ServerConfigDialog::toggleProtocol);
@ -201,6 +201,7 @@ void ServerConfigDialog::accept()
// now that the dialog has been accepted, copy the new server config to the // now that the dialog has been accepted, copy the new server config to the
// original one, which is a reference to the one in MainWindow. // original one, which is a reference to the one in MainWindow.
setOriginalServerConfig(serverConfig()); setOriginalServerConfig(serverConfig());
Settings::setValue(Settings::Server::Protocol, networkProtocolToOption(m_protocol));
QDialog::accept(); QDialog::accept();
} }
@ -368,8 +369,7 @@ void ServerConfigDialog::toggleRelativeMouseMoves(bool enabled)
void ServerConfigDialog::toggleProtocol() void ServerConfigDialog::toggleProtocol()
{ {
auto proto = ui->rbProtocolBarrier->isChecked() ? NetworkProtocol::Barrier : NetworkProtocol::Synergy; m_protocol = ui->rbProtocolBarrier->isChecked() ? NetworkProtocol::Barrier : NetworkProtocol::Synergy;
Settings::setValue(Settings::Server::Protocol, networkProtocolToOption(proto));
onChange(); onChange();
} }
@ -511,10 +511,9 @@ bool ServerConfigDialog::addComputer(const QString &clientName, bool doSilent)
void ServerConfigDialog::onChange() void ServerConfigDialog::onChange()
{ {
bool isAppConfigDataEqual = bool isAppConfigDataEqual = m_originalServerConfigIsExternal == serverConfig().useExternalConfig() &&
m_originalServerConfigIsExternal == serverConfig().useExternalConfig() &&
m_originalServerConfigUsesExternalFile == serverConfig().configFile() && m_originalServerConfigUsesExternalFile == serverConfig().configFile() &&
m_originalProtocol == Settings::value(Settings::Server::Protocol).value<NetworkProtocol>(); m_protocol == Settings::networkProtocol();
ui->buttonBox->button(QDialogButtonBox::Ok) ui->buttonBox->button(QDialogButtonBox::Ok)
->setEnabled(!isAppConfigDataEqual || !(m_originalServerConfig == m_serverConfig)); ->setEnabled(!isAppConfigDataEqual || !(m_originalServerConfig == m_serverConfig));
} }

View file

@ -101,7 +101,7 @@ private:
int m_columns; int m_columns;
int m_rows; int m_rows;
ServerConfig &m_originalServerConfig; ServerConfig &m_originalServerConfig;
NetworkProtocol m_originalProtocol; NetworkProtocol m_protocol;
bool m_originalServerConfigIsExternal; bool m_originalServerConfigIsExternal;
QString m_originalServerConfigUsesExternalFile; QString m_originalServerConfigUsesExternalFile;
ServerConfig m_serverConfig; ServerConfig m_serverConfig;

View file

@ -1130,7 +1130,7 @@ void Server::processOptions()
stopRelativeMoves(); stopRelativeMoves();
} }
m_relativeMoves = newRelativeMoves; m_relativeMoves = newRelativeMoves;
m_protocol = networkProtocolFromString(Settings::value(Settings::Server::Protocol).toString()); m_protocol = Settings::networkProtocol();
} }
void Server::handleShapeChanged(BaseClientProxy *client) void Server::handleShapeChanged(BaseClientProxy *client)