refactor: move yscroll to coreArgs

This commit is contained in:
sithlord48 2025-09-25 19:17:01 -04:00 committed by Chris Rizzitello
parent efebe9ca56
commit b0fe79d527
11 changed files with 30 additions and 23 deletions

View file

@ -165,6 +165,10 @@ QVariant Settings::defaultValue(const QString &key)
return QStringLiteral("%1/%2").arg(Settings::settingsPath(), kDaemonLogFilename); return QStringLiteral("%1/%2").arg(Settings::settingsPath(), kDaemonLogFilename);
} }
if (key == Client::ScrollSpeed) {
return 120;
}
return QVariant(); return QVariant();
} }

View file

@ -34,6 +34,7 @@ public:
struct Client struct Client
{ {
inline static const auto InvertScrollDirection = QStringLiteral("client/invertScrollDirection"); inline static const auto InvertScrollDirection = QStringLiteral("client/invertScrollDirection");
inline static const auto ScrollSpeed = QStringLiteral("client/yscroll");
inline static const auto LanguageSync = QStringLiteral("client/languageSync"); inline static const auto LanguageSync = QStringLiteral("client/languageSync");
inline static const auto RemoteHost = QStringLiteral("client/remoteHost"); inline static const auto RemoteHost = QStringLiteral("client/remoteHost");
inline static const auto XdpRestoreToken = QStringLiteral("client/xdpRestoreToken"); inline static const auto XdpRestoreToken = QStringLiteral("client/xdpRestoreToken");
@ -164,6 +165,7 @@ private:
Settings::Client::InvertScrollDirection Settings::Client::InvertScrollDirection
, Settings::Client::LanguageSync , Settings::Client::LanguageSync
, Settings::Client::RemoteHost , Settings::Client::RemoteHost
, Settings::Client::ScrollSpeed
, Settings::Client::XdpRestoreToken , Settings::Client::XdpRestoreToken
, Settings::Core::CoreMode , Settings::Core::CoreMode
, Settings::Core::Interface , Settings::Core::Interface

View file

@ -36,9 +36,6 @@ bool ArgParser::parseClientArgs(deskflow::ClientArgs &args, int argc, const char
continue; continue;
} else if (isArg(i, argc, argv, nullptr, "--camp") || isArg(i, argc, argv, nullptr, "--no-camp")) { } else if (isArg(i, argc, argv, nullptr, "--camp") || isArg(i, argc, argv, nullptr, "--no-camp")) {
// ignore -- included for backwards compatibility // ignore -- included for backwards compatibility
} else if (isArg(i, argc, argv, nullptr, "--yscroll", 1)) {
// define scroll
args.m_yscroll = atoi(argv[++i]);
} else if (isArg(i, argc, argv, nullptr, "--sync-language")) { } else if (isArg(i, argc, argv, nullptr, "--sync-language")) {
args.m_enableLangSync = true; args.m_enableLangSync = true;
} else if (isArg(i, argc, argv, nullptr, "--invert-scroll")) { } else if (isArg(i, argc, argv, nullptr, "--invert-scroll")) {

View file

@ -105,14 +105,11 @@ void ClientApp::help()
std::stringstream help; std::stringstream help;
help << "\n\nClient Mode:\n\n" help << "\n\nClient Mode:\n\n"
<< "Usage: " << kAppId << "-core client" << "Usage: " << kAppId << "-core client"
<< " [--yscroll <delta>]"
<< " [--sync-language]" << " [--sync-language]"
<< " [--invert-scroll]" << " [--invert-scroll]"
<< " <server-address>" << " <server-address>"
<< "\n\n" << "\n\n"
<< "Connect to a " << kAppName << " mouse/keyboard sharing server.\n" << "Connect to a " << kAppName << " mouse/keyboard sharing server.\n"
<< " --yscroll <delta> defines the vertical scrolling delta,\n"
<< " which is 120 by default.\n"
<< " --sync-language enable language synchronization.\n" << " --sync-language enable language synchronization.\n"
<< " --invert-scroll invert scroll direction on this\n" << " --invert-scroll invert scroll direction on this\n"
<< " computer.\n" << " computer.\n"
@ -176,8 +173,8 @@ deskflow::Screen *ClientApp::createScreen()
LOG_INFO("using legacy x windows screen"); LOG_INFO("using legacy x windows screen");
return new deskflow::Screen( return new deskflow::Screen(
new XWindowsScreen( new XWindowsScreen(
qPrintable(Settings::value(Settings::Core::Display).toString()), false, args().m_yscroll, getEvents(), qPrintable(Settings::value(Settings::Core::Display).toString()), false,
args().m_clientScrollDirection Settings::value(Settings::Client::ScrollSpeed).toInt(), getEvents(), args().m_clientScrollDirection
), ),
getEvents() getEvents()
); );

View file

@ -25,7 +25,6 @@ public:
~ClientArgs() override = default; ~ClientArgs() override = default;
public: public:
int m_yscroll = 0;
bool m_enableLangSync = false; /// @brief Should keyboard input be in same language as on server bool m_enableLangSync = false; /// @brief Should keyboard input be in same language as on server
/** /**

View file

@ -120,6 +120,10 @@ void CoreArgParser::parse()
if (m_parser.isSet(CoreArgs::serverConfigOption)) { if (m_parser.isSet(CoreArgs::serverConfigOption)) {
Settings::setValue(Settings::Server::ExternalConfigFile, m_parser.value(CoreArgs::serverConfigOption)); Settings::setValue(Settings::Server::ExternalConfigFile, m_parser.value(CoreArgs::serverConfigOption));
} }
if (m_parser.isSet(CoreArgs::yscrollOption)) {
Settings::setValue(Settings::Client::ScrollSpeed, m_parser.value(CoreArgs::yscrollOption));
}
} }
[[noreturn]] void CoreArgParser::showHelpText() const [[noreturn]] void CoreArgParser::showHelpText() const

View file

@ -66,8 +66,13 @@ struct CoreArgs
inline static const auto serverConfigOption = inline static const auto serverConfigOption =
QCommandLineOption("serverConfig", "Server Mode: File to load as server config", "path"); QCommandLineOption("serverConfig", "Server Mode: File to load as server config", "path");
// Client Options
inline static const auto yscrollOption =
QCommandLineOption("yscroll", "Client Mode: Vertical scrolling delta (default: 120)", "value");
inline static const auto options = {helpOption, versionOption, configOption, interfaceOption, inline static const auto options = {helpOption, versionOption, configOption, interfaceOption,
portOption, nameOption, logLevelOption, logFileOption, portOption, nameOption, logLevelOption, logFileOption,
secureOption, tlsCertOption, preventSleepOption, restartOption, secureOption, tlsCertOption, preventSleepOption, restartOption,
displayOption, useHooksOption, peerCheckOption, serverConfigOption}; displayOption, useHooksOption, peerCheckOption, serverConfigOption,
yscrollOption};
}; };

View file

@ -170,17 +170,6 @@ void ArgParserTests::clientArgs()
QVERIFY(args.m_shouldExitOk); QVERIFY(args.m_shouldExitOk);
} }
void ArgParserTests::client_yScroll()
{
deskflow::ClientArgs clientArgs;
const int argc = 3;
const char *kYScrollCmd[argc] = {"stub", "--yscroll", "1"};
m_parser.parseClientArgs(clientArgs, argc, kYScrollCmd);
QCOMPARE(clientArgs.m_yscroll, 1);
}
void ArgParserTests::client_setLangSync() void ArgParserTests::client_setLangSync()
{ {
deskflow::ClientArgs clientArgs; deskflow::ClientArgs clientArgs;

View file

@ -22,7 +22,6 @@ private Q_SLOTS:
void getArgv(); void getArgv();
void assembleCommand(); void assembleCommand();
void clientArgs(); void clientArgs();
void client_yScroll();
void client_setLangSync(); void client_setLangSync();
void client_setInvertScroll(); void client_setInvertScroll();
void client_setAddress(); void client_setAddress();

View file

@ -320,6 +320,16 @@ void CoreArgParserTests::server_setConfig()
QCOMPARE("afile.conf", Settings::value(Settings::Server::ExternalConfigFile).toString()); QCOMPARE("afile.conf", Settings::value(Settings::Server::ExternalConfigFile).toString());
} }
void CoreArgParserTests::client_yscroll()
{
QStringList args = {"stub", "client", "--yscroll", "15"};
CoreArgParser parser(args);
parser.parse();
QCOMPARE(15, Settings::value(Settings::Client::ScrollSpeed).toInt());
}
void CoreArgParserTests::preventSleep_true() void CoreArgParserTests::preventSleep_true()
{ {
QStringList args = {"stub", "client", "--prevent-sleep", "true"}; QStringList args = {"stub", "client", "--prevent-sleep", "true"};

View file

@ -45,6 +45,7 @@ private Q_SLOTS:
void server_peerCheck_false(); void server_peerCheck_false();
void server_peerCheck_true(); void server_peerCheck_true();
void server_setConfig(); void server_setConfig();
void client_yscroll();
private: private:
inline static const QString m_settingsPath = QStringLiteral("tmp/test"); inline static const QString m_settingsPath = QStringLiteral("tmp/test");