refactor(ServerConfigDialog): new isGeneralConfigModified method to track if the general config items changed use it in onChanged

This commit is contained in:
sithlord48 2026-08-14 22:23:24 -04:00 committed by Nick Bolton
parent fc95339477
commit 4107e7bdda
2 changed files with 22 additions and 17 deletions

View file

@ -541,23 +541,27 @@ bool ServerConfigDialog::addComputer(const QString &clientName, bool doSilent)
return isAccepted; return isAccepted;
} }
bool ServerConfigDialog::isGeneralConfigModified() const
{
return m_originalServerConfigIsExternal != Settings::value(Settings::Server::ExternalConfig).toBool() ||
m_originalServerConfigUsesExternalFile != Settings::value(Settings::Server::ExternalConfigFile).toString() ||
m_protocol != Settings::networkProtocol() ||
m_enableClipboard != Settings::value(Settings::Server::EnableClipboard).toBool() ||
m_clipboardSize != Settings::value(Settings::Server::ClipboardSize).toUInt() ||
m_enableHeartbeat != Settings::value(Settings::Server::EnableHeatbeat).toBool() ||
m_heartbeatRate != Settings::value(Settings::Server::Heartbeat).toInt() ||
m_enableSwitchDelay != Settings::value(Settings::Server::EnableSwitchDelay).toBool() ||
m_switchDelay != Settings::value(Settings::Server::SwitchDelay).toInt() ||
m_enableSwitchDoubleTap != Settings::value(Settings::Server::EnableSwitchDoubleTap).toBool() ||
m_switchDoubleTap != Settings::value(Settings::Server::SwitchDoubleTap).toInt() ||
m_relativeMouseMoves != Settings::value(Settings::Server::RelativeMouseMoves).toBool() ||
m_win32keepForeground != Settings::value(Settings::Server::Win32KeepForeground).toBool() ||
m_disableLockToComputer != Settings::value(Settings::Server::DisableLockToComputer).toBool() ||
m_defaultLockToComputerState != Settings::value(Settings::Server::DefaultLockToComputerState).toBool();
}
void ServerConfigDialog::onChange() void ServerConfigDialog::onChange()
{ {
bool isAppConfigDataEqual = const bool writable = Settings::isWritable();
m_originalServerConfigIsExternal == serverConfig().useExternalConfig() && m_buttonBox->enableSave(writable && (isGeneralConfigModified() || !(m_originalServerConfig == m_serverConfig)));
m_originalServerConfigUsesExternalFile == serverConfig().configFile() &&
m_protocol == Settings::networkProtocol() &&
m_enableClipboard == Settings::value(Settings::Server::EnableClipboard).toBool() &&
m_clipboardSize == Settings::value(Settings::Server::ClipboardSize).toUInt() &&
m_enableHeartbeat == Settings::value(Settings::Server::EnableHeatbeat).toBool() &&
m_heartbeatRate == Settings::value(Settings::Server::Heartbeat).toInt() &&
m_enableSwitchDelay == Settings::value(Settings::Server::EnableSwitchDelay).toBool() &&
m_switchDelay == Settings::value(Settings::Server::SwitchDelay).toInt() &&
m_enableSwitchDoubleTap == Settings::value(Settings::Server::EnableSwitchDoubleTap).toBool() &&
m_switchDoubleTap == Settings::value(Settings::Server::SwitchDoubleTap).toInt() &&
m_relativeMouseMoves == Settings::value(Settings::Server::RelativeMouseMoves).toBool() &&
m_win32keepForeground == Settings::value(Settings::Server::Win32KeepForeground).toBool() &&
m_disableLockToComputer == Settings::value(Settings::Server::DisableLockToComputer).toBool() &&
m_defaultLockToComputerState == Settings::value(Settings::Server::DefaultLockToComputerState).toBool();
m_buttonBox->enableSave(!isAppConfigDataEqual || !(m_originalServerConfig == m_serverConfig));
} }

View file

@ -90,6 +90,7 @@ private:
void loadFromConfig(); void loadFromConfig();
void initConnections() const; void initConnections() const;
void updateControls() const; void updateControls() const;
bool isGeneralConfigModified() const;
void onChange(); void onChange();
std::unique_ptr<Ui::ServerConfigDialog> ui; std::unique_ptr<Ui::ServerConfigDialog> ui;
QString m_message = ""; QString m_message = "";