diff --git a/docs/user/configuration.md b/docs/user/configuration.md index 8c19db251..22d2d52bb 100644 --- a/docs/user/configuration.md +++ b/docs/user/configuration.md @@ -142,6 +142,7 @@ This section contains options used when in server mode it will begin with `[serv |Option | Valid Values |Description| |:-------------------|:-----------------:|:-----------| +| disableLockToComputer| `true` or `false` | If false pressing scroll lock will toggle your cursor to be locked to current computer. (default: false) | | enableHeartbeat | `true` or `false` | Send a heartbeat to connected clients; this has been replaced by internal keep alive (default: false)| | enableSwitchDelay | `true` or `false` | Switching will be delayed by the set value (default: false)| | enableSwitchDoubleTap | `true` or `false` | Enables the doubletap to switch method (default: false)| @@ -169,7 +170,6 @@ block of a server config file as seen below. This section is used by the GUI to clipboardSharing=true clipboardSharingSize=@Variant(\0\0\0\x84\0\0\0\0\0\0<\0) defaultLockToScreenState=false -disableLockToScreen=false hotkeys\1\actions\1\activeOnRelease=false hotkeys\1\actions\1\hasScreens=true hotkeys\1\actions\1\keys\1\key=83 diff --git a/src/lib/common/Settings.h b/src/lib/common/Settings.h index c957c8523..04bb90c1a 100644 --- a/src/lib/common/Settings.h +++ b/src/lib/common/Settings.h @@ -104,6 +104,7 @@ public: }; struct Server { + inline static const auto DisableLockToComputer = QStringLiteral("server/disableLockToComputer"); inline static const auto EnableHeatbeat = QStringLiteral("server/enableHeatbeat"); inline static const auto EnableSwitchDelay = QStringLiteral("server/enableSwitchDelay"); inline static const auto EnableSwitchDoubleTap = QStringLiteral("server/enableSwitchDoubleTap"); @@ -251,6 +252,7 @@ private: , Settings::Security::CheckPeers , Settings::Security::KeySize , Settings::Security::TlsEnabled + , Settings::Server::DisableLockToComputer , Settings::Server::EnableHeatbeat , Settings::Server::EnableSwitchDelay , Settings::Server::EnableSwitchDoubleTap @@ -284,6 +286,7 @@ private: , Settings::Client::InvertXScroll , Settings::Log::ToFile , Settings::Log::GuiDebug + , Settings::Server::DisableLockToComputer , Settings::Server::EnableHeatbeat , Settings::Server::EnableSwitchDelay , Settings::Server::EnableSwitchDoubleTap @@ -314,7 +317,8 @@ private: }; // Contains settings removed from server-configuration file inline static const QStringList m_oldServerConfigKeys = { - QStringLiteral("internalConfig/hasHeartbeat") + QStringLiteral("internalConfig/disableLockToScreen") + , QStringLiteral("internalConfig/hasHeartbeat") , QStringLiteral("internalConfig/hasSwitchDelay") , QStringLiteral("internalConfig/hasSwitchDoubleTap") , QStringLiteral("internalConfig/heartbeat") diff --git a/src/lib/gui/config/ServerConfig.cpp b/src/lib/gui/config/ServerConfig.cpp index 72db7ddc7..eefa637ff 100644 --- a/src/lib/gui/config/ServerConfig.cpp +++ b/src/lib/gui/config/ServerConfig.cpp @@ -57,7 +57,6 @@ bool ServerConfig::operator==(const ServerConfig &sc) const m_SwitchCorners == sc.m_SwitchCorners && // m_Hotkeys == sc.m_Hotkeys && // m_DefaultLockToScreenState == sc.m_DefaultLockToScreenState && // - m_DisableLockToScreen == sc.m_DisableLockToScreen && // m_ClipboardSharing == sc.m_ClipboardSharing && // m_ClipboardSharingSize == sc.m_ClipboardSharingSize; } @@ -93,7 +92,6 @@ void ServerConfig::commit() settings().setValue("switchCornerSize", switchCornerSize()); settings().setValue("defaultLockToScreenState", defaultLockToScreenState()); - settings().setValue("disableLockToScreen", disableLockToScreen()); settings().setValue("clipboardSharing", clipboardSharing()); settings().setValue("clipboardSharingSize", QVariant::fromValue(clipboardSharingSize())); @@ -136,7 +134,6 @@ void ServerConfig::recall() setSwitchCornerSize(settings().value("switchCornerSize").toInt()); setDefaultLockToScreenState(settings().value("defaultLockToScreenState", false).toBool()); - setDisableLockToScreen(settings().value("disableLockToScreen", false).toBool()); setClipboardSharingSize( settings().value("clipboardSharingSize", (int)ServerConfig::defaultClipboardSharingSize()).toULongLong() ); @@ -224,8 +221,6 @@ QTextStream &operator<<(QTextStream &outStream, const ServerConfig &config) outStream << "section: options" << Qt::endl; outStream << "\t" << "defaultLockToScreenState = " << (config.defaultLockToScreenState() ? "true" : "false") << Qt::endl; - outStream << "\t" - << "disableLockToScreen = " << (config.disableLockToScreen() ? "true" : "false") << Qt::endl; outStream << "\t" << "clipboardSharing = " << (config.clipboardSharing() ? "true" : "false") << Qt::endl; outStream << "\t" diff --git a/src/lib/gui/config/ServerConfig.h b/src/lib/gui/config/ServerConfig.h index 89a9ce929..b0ab37c6e 100644 --- a/src/lib/gui/config/ServerConfig.h +++ b/src/lib/gui/config/ServerConfig.h @@ -60,10 +60,6 @@ public: { return m_DefaultLockToScreenState; } - bool disableLockToScreen() const - { - return m_DisableLockToScreen; - } bool clipboardSharing() const { return m_ClipboardSharing; @@ -114,10 +110,6 @@ private: { m_DefaultLockToScreenState = on; } - void setDisableLockToScreen(bool on) - { - m_DisableLockToScreen = on; - } void setClipboardSharing(bool on) { m_ClipboardSharing = on; @@ -140,7 +132,6 @@ private: private: int m_SwitchCornerSize = 0; bool m_DefaultLockToScreenState = false; - bool m_DisableLockToScreen = false; bool m_ClipboardSharing = true; QList m_SwitchCorners; HotkeyList m_Hotkeys; diff --git a/src/lib/gui/dialogs/ServerConfigDialog.cpp b/src/lib/gui/dialogs/ServerConfigDialog.cpp index 1db67c4ce..4f447f38d 100644 --- a/src/lib/gui/dialogs/ServerConfigDialog.cpp +++ b/src/lib/gui/dialogs/ServerConfigDialog.cpp @@ -80,6 +80,7 @@ void ServerConfigDialog::accept() Settings::setValue(Settings::Server::Heartbeat, m_heartbeatRate); Settings::setValue(Settings::Server::EnableSwitchDelay, m_enableSwitchDelay); Settings::setValue(Settings::Server::SwitchDelay, m_switchDelay); + Settings::setValue(Settings::Server::DisableLockToComputer, m_disableLockToComputer); Settings::setValue(Settings::Server::EnableSwitchDoubleTap, m_enableSwitchDoubleTap); Settings::setValue(Settings::Server::SwitchDoubleTap, m_switchDoubleTap); Settings::setValue(Settings::Server::RelativeMouseMoves, m_relativeMouseMoves); @@ -332,9 +333,11 @@ void ServerConfigDialog::toggleDefaultLockToScreenState(bool state) onChange(); } -void ServerConfigDialog::toggleLockToScreen(bool disabled) +void ServerConfigDialog::toggleLockToComputer(bool disabled) { - serverConfig().setDisableLockToScreen(disabled); + if (m_disableLockToComputer == disabled) + return; + m_disableLockToComputer = disabled; onChange(); } @@ -363,7 +366,6 @@ void ServerConfigDialog::toggleExternalConfig(bool checked) ui->tabWidget->setTabEnabled(0, !checked); ui->tabWidget->setTabEnabled(1, !checked); ui->cbDefaultLockToScreenState->setEnabled(!checked); - ui->cbDisableLockToScreen->setEnabled(!checked); ui->cbEnableClipboard->setEnabled(!checked); ui->label_7->setEnabled(checked ? !checked : ui->cbEnableClipboard->isChecked()); ui->sbClipboardSizeLimit->setEnabled(checked ? !checked : ui->cbEnableClipboard->isChecked()); @@ -438,7 +440,9 @@ void ServerConfigDialog::loadFromConfig() ui->sbSwitchCornerSize->setValue(serverConfig().switchCornerSize()); ui->cbDefaultLockToScreenState->setChecked(serverConfig().defaultLockToScreenState()); - ui->cbDisableLockToScreen->setChecked(serverConfig().disableLockToScreen()); + m_disableLockToComputer = Settings::value(Settings::Server::DisableLockToComputer).toBool(); + ui->cbDisableLockToComputer->setChecked(m_disableLockToComputer); + ui->cbEnableClipboard->setChecked(serverConfig().clipboardSharing()); auto clipboardSharingSizeM = static_cast(serverConfig().clipboardSharingSize() / 1024); @@ -518,7 +522,7 @@ void ServerConfigDialog::initConnections() connect( ui->cbDefaultLockToScreenState, &QCheckBox::toggled, this, &ServerConfigDialog::toggleDefaultLockToScreenState ); - connect(ui->cbDisableLockToScreen, &QCheckBox::toggled, this, &ServerConfigDialog::toggleLockToScreen); + connect(ui->cbDisableLockToComputer, &QCheckBox::toggled, this, &ServerConfigDialog::toggleLockToComputer); connect(&m_screenSetupModel, &ScreenSetupModel::screensChanged, this, &ServerConfigDialog::onChange); } @@ -549,7 +553,8 @@ void ServerConfigDialog::onChange() 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_win32keepForeground == Settings::value(Settings::Server::Win32KeepForeground).toBool() && + m_disableLockToComputer == Settings::value(Settings::Server::DisableLockToComputer).toBool(); ui->buttonBox->button(QDialogButtonBox::Ok) ->setEnabled(!isAppConfigDataEqual || !(m_originalServerConfig == m_serverConfig)); } diff --git a/src/lib/gui/dialogs/ServerConfigDialog.h b/src/lib/gui/dialogs/ServerConfigDialog.h index fc0b0bcc9..6d316ce50 100644 --- a/src/lib/gui/dialogs/ServerConfigDialog.h +++ b/src/lib/gui/dialogs/ServerConfigDialog.h @@ -61,7 +61,7 @@ protected: void setSwitchDelay(int delay); void toggleDefaultLockToScreenState(bool state); - void toggleLockToScreen(bool disabled); + void toggleLockToComputer(bool disabled); void toggleWin32Foreground(bool enabled); void toggleClipboard(bool enabled); @@ -113,6 +113,7 @@ private: bool m_enableSwitchDoubleTap; bool m_originalServerConfigIsExternal; bool m_win32keepForeground; + bool m_disableLockToComputer; QString m_originalServerConfigUsesExternalFile; ServerConfig m_serverConfig; ScreenSetupModel m_screenSetupModel; diff --git a/src/lib/gui/dialogs/ServerConfigDialog.ui b/src/lib/gui/dialogs/ServerConfigDialog.ui index 99842a463..1483cc971 100644 --- a/src/lib/gui/dialogs/ServerConfigDialog.ui +++ b/src/lib/gui/dialogs/ServerConfigDialog.ui @@ -428,7 +428,7 @@ - + Disable lock to computer (scroll lock key) diff --git a/src/lib/server/Config.cpp b/src/lib/server/Config.cpp index 9bd4f1167..53fba8c5d 100644 --- a/src/lib/server/Config.cpp +++ b/src/lib/server/Config.cpp @@ -658,8 +658,6 @@ void Config::readSectionOptions(ConfigReadContext &s) addOption("", kOptionScreenSwitchNeedsAlt, s.parseBoolean(value)); } else if (name == "defaultLockToScreenState") { addOption("", kOptionDefaultLockToScreenState, s.parseBoolean(value)); - } else if (name == "disableLockToScreen") { - addOption("", kOptionDisableLockToScreen, s.parseBoolean(value)); } else if (name == "clipboardSharing") { addOption("", kOptionClipboardSharing, s.parseBoolean(value)); } else if (name == "clipboardSharingSize") { @@ -724,6 +722,7 @@ void Config::readSectionOptions(ConfigReadContext &s) addOption("", kOptionScreenSwitchTwoTap, Settings::value(Settings::Server::SwitchDoubleTap).toInt()); } + addOption("", kOptionDisableLockToScreen, Settings::value(Settings::Server::DisableLockToComputer).toInt()); addOption("", kOptionRelativeMouseMoves, Settings::value(Settings::Server::RelativeMouseMoves).toInt()); addOption("", kOptionWin32KeepForeground, Settings::value(Settings::Server::Win32KeepForeground).toInt()); diff --git a/src/lib/server/Config.h b/src/lib/server/Config.h index ff1c56c19..f0c7afc62 100644 --- a/src/lib/server/Config.h +++ b/src/lib/server/Config.h @@ -476,8 +476,9 @@ private: bool m_hasLockToScreenAction = false; IEventQueue *m_events; inline static const QStringList m_oldNames = { - QStringLiteral("protocol"), QStringLiteral("heartbeat"), QStringLiteral("switchDelay"), - QStringLiteral("switchDoubleTap"), QStringLiteral("relativeMouseMoves"), QStringLiteral("win32KeepForeground") + QStringLiteral("protocol"), QStringLiteral("heartbeat"), QStringLiteral("switchDelay"), + QStringLiteral("switchDoubleTap"), QStringLiteral("relativeMouseMoves"), QStringLiteral("win32KeepForeground"), + QStringLiteral("disableLockToScreen") }; };