From a78959e66f0864cd473194d52d0a7b22a9c41f1d Mon Sep 17 00:00:00 2001 From: sithlord48 Date: Thu, 25 Sep 2025 21:07:06 -0400 Subject: [PATCH] refactor: move invert-scroll to coreArgs --- src/lib/deskflow/ArgParser.cpp | 2 - src/lib/deskflow/ClientArgs.h | 12 ------ src/lib/deskflow/CoreArgParser.cpp | 7 ++++ src/lib/deskflow/CoreArgs.h | 14 ++++--- src/lib/gui/core/CoreProcess.cpp | 4 -- src/unittests/deskflow/ArgParserTests.cpp | 11 ----- src/unittests/deskflow/ArgParserTests.h | 1 - src/unittests/deskflow/CoreArgParserTests.cpp | 40 +++++++++++++++++++ src/unittests/deskflow/CoreArgParserTests.h | 4 ++ 9 files changed, 60 insertions(+), 35 deletions(-) diff --git a/src/lib/deskflow/ArgParser.cpp b/src/lib/deskflow/ArgParser.cpp index d93ff5f13..d77d8e3fb 100644 --- a/src/lib/deskflow/ArgParser.cpp +++ b/src/lib/deskflow/ArgParser.cpp @@ -36,8 +36,6 @@ bool ArgParser::parseClientArgs(deskflow::ClientArgs &args, int argc, const char continue; } else if (isArg(i, argc, argv, nullptr, "--camp") || isArg(i, argc, argv, nullptr, "--no-camp")) { // ignore -- included for backwards compatibility - } else if (isArg(i, argc, argv, nullptr, "--invert-scroll")) { - args.m_clientScrollDirection = deskflow::ClientScrollDirection::Inverted; } else { if (i + 1 == argc) { args.m_serverAddress = argv[i]; diff --git a/src/lib/deskflow/ClientArgs.h b/src/lib/deskflow/ClientArgs.h index 507116486..37ade20e6 100644 --- a/src/lib/deskflow/ClientArgs.h +++ b/src/lib/deskflow/ClientArgs.h @@ -9,12 +9,6 @@ #include "ArgsBase.h" namespace deskflow { -enum class ClientScrollDirection -{ - Normal = 1, //!< Same direction as the server - Inverted = -1 //!< Inverted scroll direction from the server -}; - class ClientArgs : public ArgsBase { @@ -25,12 +19,6 @@ public: ~ClientArgs() override = default; public: - /** - * @brief m_clientScrollDirection - * This option is responcible for scroll direction on client side. - */ - ClientScrollDirection m_clientScrollDirection = ClientScrollDirection::Normal; - /** * @brief m_serverAddress stores deskflow server address */ diff --git a/src/lib/deskflow/CoreArgParser.cpp b/src/lib/deskflow/CoreArgParser.cpp index 73883b694..024501ecf 100644 --- a/src/lib/deskflow/CoreArgParser.cpp +++ b/src/lib/deskflow/CoreArgParser.cpp @@ -131,6 +131,13 @@ void CoreArgParser::parse() (m_parser.value(CoreArgs::languageSyncOption) == "1")); Settings::setValue(Settings::Client::LanguageSync, value); } + + if (m_parser.isSet(CoreArgs::invertScrollOption)) { + bool value = + ((m_parser.value(CoreArgs::invertScrollOption).toLower() == "true") || + (m_parser.value(CoreArgs::invertScrollOption) == "1")); + Settings::setValue(Settings::Client::InvertScrollDirection, value); + } } [[noreturn]] void CoreArgParser::showHelpText() const diff --git a/src/lib/deskflow/CoreArgs.h b/src/lib/deskflow/CoreArgs.h index 2334d1a70..da0c8cfd5 100644 --- a/src/lib/deskflow/CoreArgs.h +++ b/src/lib/deskflow/CoreArgs.h @@ -73,9 +73,13 @@ struct CoreArgs inline static const auto languageSyncOption = QCommandLineOption("languageSync", "Client Mode: Sync language with client (default: false)", "value"); - inline static const auto options = {helpOption, versionOption, configOption, interfaceOption, - portOption, nameOption, logLevelOption, logFileOption, - secureOption, tlsCertOption, preventSleepOption, restartOption, - displayOption, useHooksOption, peerCheckOption, serverConfigOption, - yscrollOption, languageSyncOption}; + inline static const auto invertScrollOption = QCommandLineOption( + "invertScrollDirection", "Client Mode: Set scroll direciton to be inverted (default: false)", "value" + ); + + inline static const auto options = {helpOption, versionOption, configOption, interfaceOption, + portOption, nameOption, logLevelOption, logFileOption, + secureOption, tlsCertOption, preventSleepOption, restartOption, + displayOption, useHooksOption, peerCheckOption, serverConfigOption, + yscrollOption, languageSyncOption, invertScrollOption}; }; diff --git a/src/lib/gui/core/CoreProcess.cpp b/src/lib/gui/core/CoreProcess.cpp index 79e4ad4e5..c8be751ba 100644 --- a/src/lib/gui/core/CoreProcess.cpp +++ b/src/lib/gui/core/CoreProcess.cpp @@ -479,10 +479,6 @@ bool CoreProcess::addClientArgs(QStringList &args) args << "--log" << Settings::value(Settings::Log::File).toString(); } - if (Settings::value(Settings::Client::InvertScrollDirection).toBool()) { - args << "--invert-scroll"; - } - if (correctedAddress().isEmpty()) { Q_EMIT error(Error::AddressMissing); qDebug("address is missing for client args"); diff --git a/src/unittests/deskflow/ArgParserTests.cpp b/src/unittests/deskflow/ArgParserTests.cpp index cb22e10ae..862d69ed1 100644 --- a/src/unittests/deskflow/ArgParserTests.cpp +++ b/src/unittests/deskflow/ArgParserTests.cpp @@ -170,17 +170,6 @@ void ArgParserTests::clientArgs() QVERIFY(args.m_shouldExitOk); } -void ArgParserTests::client_setInvertScroll() -{ - deskflow::ClientArgs clientArgs; - const int argc = 2; - std::array kLangCmd = {"stub", "--invert-scroll"}; - - m_parser.parseClientArgs(clientArgs, argc, kLangCmd.data()); - - QCOMPARE(clientArgs.m_clientScrollDirection, deskflow::ClientScrollDirection::Inverted); -} - void ArgParserTests::client_setAddress() { deskflow::ClientArgs clientArgs; diff --git a/src/unittests/deskflow/ArgParserTests.h b/src/unittests/deskflow/ArgParserTests.h index e20baa350..31d5a9922 100644 --- a/src/unittests/deskflow/ArgParserTests.h +++ b/src/unittests/deskflow/ArgParserTests.h @@ -22,7 +22,6 @@ private Q_SLOTS: void getArgv(); void assembleCommand(); void clientArgs(); - void client_setInvertScroll(); void client_setAddress(); void client_badArgs(); void deprecatedArg_crypoPass_true(); diff --git a/src/unittests/deskflow/CoreArgParserTests.cpp b/src/unittests/deskflow/CoreArgParserTests.cpp index 99d9ff690..ed700e443 100644 --- a/src/unittests/deskflow/CoreArgParserTests.cpp +++ b/src/unittests/deskflow/CoreArgParserTests.cpp @@ -370,6 +370,46 @@ void CoreArgParserTests::client_languageSync_0() QVERIFY(!Settings::value(Settings::Client::LanguageSync).toBool()); } +void CoreArgParserTests::client_invertScrolling_true() +{ + QStringList args = {"stub", "client", "--invertScrollDirection", "true"}; + + CoreArgParser parser(args); + parser.parse(); + + QVERIFY(Settings::value(Settings::Client::InvertScrollDirection).toBool()); +} + +void CoreArgParserTests::client_invertScrolling_false() +{ + QStringList args = {"stub", "client", "--invertScrollDirection", "false"}; + + CoreArgParser parser(args); + parser.parse(); + + QVERIFY(!Settings::value(Settings::Client::InvertScrollDirection).toBool()); +} + +void CoreArgParserTests::client_invertScrolling_1() +{ + QStringList args = {"stub", "client", "--invertScrollDirection", "1"}; + + CoreArgParser parser(args); + parser.parse(); + + QVERIFY(Settings::value(Settings::Client::InvertScrollDirection).toBool()); +} + +void CoreArgParserTests::client_invertScrolling_0() +{ + QStringList args = {"stub", "client", "--invertScrollDirection", "0"}; + + CoreArgParser parser(args); + parser.parse(); + + QVERIFY(!Settings::value(Settings::Client::InvertScrollDirection).toBool()); +} + void CoreArgParserTests::preventSleep_true() { QStringList args = {"stub", "client", "--prevent-sleep", "true"}; diff --git a/src/unittests/deskflow/CoreArgParserTests.h b/src/unittests/deskflow/CoreArgParserTests.h index be9c9ecf0..524b1cbc1 100644 --- a/src/unittests/deskflow/CoreArgParserTests.h +++ b/src/unittests/deskflow/CoreArgParserTests.h @@ -50,6 +50,10 @@ private Q_SLOTS: void client_languageSync_false(); void client_languageSync_1(); void client_languageSync_0(); + void client_invertScrolling_true(); + void client_invertScrolling_false(); + void client_invertScrolling_1(); + void client_invertScrolling_0(); private: inline static const QString m_settingsPath = QStringLiteral("tmp/test");