From cd1ceccda515dbe04776f967d8d4f067469a7dd2 Mon Sep 17 00:00:00 2001 From: sithlord48 Date: Mon, 8 Jun 2026 19:30:05 -0400 Subject: [PATCH] refactor: move numColumns to general configuation server/gridWidth --- docs/user/configuration.md | 1 + src/lib/common/Constants.h.in | 4 +++- src/lib/common/Settings.cpp | 5 ++++- src/lib/common/Settings.h | 7 +++++++ src/lib/gui/config/ServerConfig.cpp | 3 +-- src/lib/gui/config/ServerConfig.h | 4 ++-- 6 files changed, 18 insertions(+), 6 deletions(-) diff --git a/docs/user/configuration.md b/docs/user/configuration.md index 6a8825557..0b13c8d1c 100644 --- a/docs/user/configuration.md +++ b/docs/user/configuration.md @@ -144,6 +144,7 @@ This section contains options used when in server mode it will begin with `[serv |:-------------------|:-----------------:|:-----------| | externalConfig | `true` or `false` | When true use the external config path | | externalConfigFile | Filepath | Path the server config file if it does not exist the GUI will it generated based on the `internalConfig` section.| +| gridWidth | int | Width of the server's intenal grid used for the computer layout (default: 5) | | protocol | `barrier` or `synergy` | The protocol to use when saying hello to clients. Can be set to barrier or synergy. If not set barrier is used as the default | | xdpRestoreToken | UUID | Restore token provided by XDG portals | diff --git a/src/lib/common/Constants.h.in b/src/lib/common/Constants.h.in index 3dc793047..da9d93cee 100644 --- a/src/lib/common/Constants.h.in +++ b/src/lib/common/Constants.h.in @@ -1,6 +1,6 @@ /* * Deskflow -- mouse and keyboard sharing utility - * SPDX-FileCopyrightText: (C) 2024 - 2025 Chris Rizzitello + * SPDX-FileCopyrightText: (C) 2024 - 2026 Chris Rizzitello * SPDX-FileCopyrightText: (C) 2025 Synergy App Ltd * SPDX-License-Identifier: GPL-2.0-only WITH LicenseRef-OpenSSL-Exception */ @@ -23,6 +23,8 @@ const auto kCopyright = // const auto kCoreBinName = "@CORE_BINARY@"; const auto kCoreIpcName = "@CMAKE_PROJECT_NAME@-core"; +const auto kServerGridWidth = 5; + #ifdef _WIN32 // clang-format off diff --git a/src/lib/common/Settings.cpp b/src/lib/common/Settings.cpp index d35b4d38a..66ece0d40 100644 --- a/src/lib/common/Settings.cpp +++ b/src/lib/common/Settings.cpp @@ -111,7 +111,7 @@ void Settings::cleanSettings() { const QStringList keys = m_settings->allKeys(); for (const QString &key : keys) { - if (key.startsWith(QStringLiteral("internalConfig/protocol"))) + if (m_oldServerConfigKeys.contains(key)) m_settings->remove(key); if (key.startsWith(QStringLiteral("internalConfig"))) continue; @@ -210,6 +210,9 @@ QVariant Settings::defaultValue(const QString &key) if (key == Server::Protocol) return QVariant::fromValue(NetworkProtocol::Barrier); + if (key == Server::GridWidth) + return kServerGridWidth; + return QVariant(); } diff --git a/src/lib/common/Settings.h b/src/lib/common/Settings.h index e3e24f25a..6435b6dcb 100644 --- a/src/lib/common/Settings.h +++ b/src/lib/common/Settings.h @@ -105,6 +105,7 @@ public: { inline static const auto ExternalConfig = QStringLiteral("server/externalConfig"); inline static const auto ExternalConfigFile = QStringLiteral("server/externalConfigFile"); + inline static const auto GridWidth = QStringLiteral("server/gridWidth"); inline static const auto Protocol = QStringLiteral("server/protocol"); inline static const auto XdpRestoreToken = QStringLiteral("server/xdpRestoreToken"); }; @@ -241,6 +242,7 @@ private: , Settings::Security::TlsEnabled , Settings::Server::ExternalConfig , Settings::Server::ExternalConfigFile + , Settings::Server::GridWidth , Settings::Server::Protocol , Settings::Server::XdpRestoreToken }; @@ -285,5 +287,10 @@ private: /* OLD KEY NEW KEY */ {QStringLiteral("core/screenName"), Settings::Core::ComputerName} }; + // Contains settings removed from server-configuration file + inline static const QStringList m_oldServerConfigKeys = { + QStringLiteral("internalConfig/protocol") + , QStringLiteral("internalConfig/numColumns") + }; // clang-format on }; diff --git a/src/lib/gui/config/ServerConfig.cpp b/src/lib/gui/config/ServerConfig.cpp index 72335e5b7..99674668d 100644 --- a/src/lib/gui/config/ServerConfig.cpp +++ b/src/lib/gui/config/ServerConfig.cpp @@ -102,7 +102,6 @@ void ServerConfig::commit() settings().beginGroup("internalConfig"); settings().remove(""); - settings().setValue("numColumns", numColumns()); settings().setValue("numRows", numRows()); settings().setValue("hasHeartbeat", hasHeartbeat()); @@ -149,7 +148,7 @@ void ServerConfig::recall() settings().beginGroup("internalConfig"); - setNumColumns(settings().value("numColumns", 5).toInt()); + setNumColumns(Settings::value(Settings::Server::GridWidth).toInt()); setNumRows(settings().value("numRows", 3).toInt()); // we need to know the number of columns and rows before we can set up diff --git a/src/lib/gui/config/ServerConfig.h b/src/lib/gui/config/ServerConfig.h index 495b51915..b2b8a8126 100644 --- a/src/lib/gui/config/ServerConfig.h +++ b/src/lib/gui/config/ServerConfig.h @@ -7,6 +7,7 @@ #pragma once +#include "common/Constants.h" #include "common/NetworkProtocol.h" #include "gui/Hotkey.h" #include "gui/config/ScreenConfig.h" @@ -14,7 +15,6 @@ #include -const auto kDefaultColumns = 5; const auto kDefaultRows = 3; class QTextStream; @@ -36,7 +36,7 @@ class ServerConfig : public ScreenConfig friend QTextStream &operator<<(QTextStream &outStream, const ServerConfig &config); public: - explicit ServerConfig(int columns = kDefaultColumns, int rows = kDefaultRows); + explicit ServerConfig(int columns = kServerGridWidth, int rows = kDefaultRows); ~ServerConfig() = default; bool operator==(const ServerConfig &sc) const;