From 896e5e520dd896f8c76aeeff820c959daeecf37f Mon Sep 17 00:00:00 2001 From: AramJonghu Date: Wed, 3 Jun 2026 02:05:18 +0200 Subject: [PATCH] Added clang-format/tidy for additional rules. Adjusted inbranch cpp files. --- .clang-format | 58 +++++++++++++++++++++++++++++++++++ .clang-tidy | 31 +++++++++++++++++++ CMakeLists.txt | 3 ++ Plugins/ZShell/lidwatcher.cpp | 37 +++++++++++++--------- Plugins/ZShell/lidwatcher.hpp | 19 ++++++------ 5 files changed, 125 insertions(+), 23 deletions(-) create mode 100644 .clang-format create mode 100644 .clang-tidy diff --git a/.clang-format b/.clang-format new file mode 100644 index 0000000..a2cde00 --- /dev/null +++ b/.clang-format @@ -0,0 +1,58 @@ +--- +BasedOnStyle: LLVM +AccessModifierOffset: 0 +AlignAfterOpenBracket: Align +AlignConsecutiveAssignments: false +AlignConsecutiveDeclarations: false +AlignOperands: Align +AllowAllParametersOfDeclarationOnNextLine: true +AllowShortFunctionsOnASingleLine: Inline +AllowShortIfStatementsOnASingleLine: Never +AlwaysBreakBeforeMultilineStrings: false +AlwaysBreakTemplateDeclarations: Yes +BinPackArguments: false +BinPackParameters: false +BreakBeforeBraces: Attach +BreakBeforeTernaryOperators: true +BreakConstructorInitializers: BeforeComma +ColumnLimit: 80 +ConstructorInitializerAllOnOneLineOrOnePerLine: true +ConstructorInitializerIndentWidth: 4 +ContinuationIndentWidth: 4 +Cpp11BracedListStyle: true +DerivePointerAlignment: false +FixNamespaceComments: true +IndentCaseLabels: false +IndentWidth: 4 +KeepEmptyLinesAtTheStartOfBlocks: false +Language: Cpp +MaxEmptyLinesToKeep: 2 +NamespaceIndentation: None +PenaltyBreakAssignment: 10 +PenaltyBreakBeforeFirstCallParameter: 100 +PenaltyBreakComment: 300 +PenaltyBreakFirstLessLess: 120 +PenaltyBreakString: 1000 +PenaltyExcessCharacter: 100 +PenaltyReturnTypeOnItsOwnLine: 200 +PointerAlignment: Left +ReflowComments: false +SortIncludes: false +SpaceAfterCStyleCast: false +SpaceAfterTemplateKeyword: true +SpaceBeforeAssignmentOperators: true +SpaceBeforeCpp11BracedList: false +SpaceBeforeCtorInitializerColon: true +SpaceBeforeInheritanceColon: true +SpaceBeforeParens: ControlStatements +SpaceBeforeRangeBasedForLoopColon: true +SpaceInEmptyParentheses: false +SpacesBeforeTrailingComments: 1 +SpacesInAngles: false +SpacesInContainerLiterals: false +SpacesInCStyleCastParentheses: false +SpacesInParentheses: false +SpacesInSquareBrackets: false +Standard: c++20 +TabWidth: 4 +UseTab: Always diff --git a/.clang-tidy b/.clang-tidy new file mode 100644 index 0000000..888e041 --- /dev/null +++ b/.clang-tidy @@ -0,0 +1,31 @@ +--- +Checks: > + -*, + bugprone-*, + clang-analyzer-*, + modernize-*, + -modernize-use-trailing-return-type, + performance-*, + readability-braces-around-statements, + readability-else-after-return, + readability-identifier-naming, + readability-redundant-*, + readability-simplify-*, +CheckOptions: + readability-identifier-naming.ClassCase: CamelCase + readability-identifier-naming.EnumCase: CamelCase + readability-identifier-naming.FunctionCase: camelBack + readability-identifier-naming.MemberCase: camelBack + readability-identifier-naming.MemberPrefix: m_ + readability-identifier-naming.MethodCase: camelBack + readability-identifier-naming.NamespaceCase: lower_case + readability-identifier-naming.ParameterCase: camelBack + readability-identifier-naming.PrivateMemberPrefix: m_ + readability-identifier-naming.StaticConstantCase: UPPER_CASE + readability-identifier-naming.StaticConstantPrefix: k + readability-identifier-naming.VariableCase: camelBack +WarningsAsErrors: "*" +HeaderFilterRegex: ".*" +FormatStyle: file + +... diff --git a/CMakeLists.txt b/CMakeLists.txt index ce22903..0e4c6c4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -25,6 +25,9 @@ add_compile_options( if("plugin" IN_LIST ENABLE_MODULES) add_subdirectory(Plugins) + + add_custom_target(fix-cc + COMMAND sed -i "s/-mno-direct-extern-access/-fno-direct-access-external-data/g" "${CMAKE_BINARY_DIR}/compile_commands.json") endif() if("shell" IN_LIST ENABLE_MODULES) diff --git a/Plugins/ZShell/lidwatcher.cpp b/Plugins/ZShell/lidwatcher.cpp index 9c53aac..4ad1b49 100644 --- a/Plugins/ZShell/lidwatcher.cpp +++ b/Plugins/ZShell/lidwatcher.cpp @@ -12,12 +12,10 @@ namespace ZShell { static constexpr auto kLogin1Service = "org.freedesktop.login1"; static constexpr auto kLogin1Path = "/org/freedesktop/login1"; static constexpr auto kLogin1Interface = "org.freedesktop.login1.Manager"; -static constexpr auto kDBusPropertiesInterface = "org.freedesktop.DBus.Properties"; +static constexpr auto kDBusPropertiesInterface = + "org.freedesktop.DBus.Properties"; -LidWatcher::LidWatcher(QObject* parent) - : QObject(parent) - , m_available(false) - , m_state(Opened) { +LidWatcher::LidWatcher(QObject* parent) : QObject(parent), m_available(false) { QDBusConnection bus = QDBusConnection::systemBus(); m_available = bus.isConnected(); @@ -27,8 +25,13 @@ LidWatcher::LidWatcher(QObject* parent) return; } - const auto ok = bus.connect(kLogin1Service, kLogin1Path, kDBusPropertiesInterface, "PropertiesChanged", - this, SLOT(onPropertiesChanged(QString,QVariantMap,QStringList))); + const auto ok = bus.connect( + kLogin1Service, + kLogin1Path, + kDBusPropertiesInterface, + "PropertiesChanged", + this, + SLOT(onPropertiesChanged(QString, QVariantMap, QStringList))); m_available = ok; emit availableChanged(); @@ -49,24 +52,30 @@ LidWatcher::LidState LidWatcher::state() const { } void LidWatcher::queryInitialState() { - auto msg = QDBusMessage::createMethodCall( - kLogin1Service, kLogin1Path, - kDBusPropertiesInterface, "Get"); + auto msg = QDBusMessage::createMethodCall(kLogin1Service, + kLogin1Path, + kDBusPropertiesInterface, + "Get"); msg << kLogin1Interface << "LidClosed"; const QDBusReply reply = QDBusConnection::systemBus().call(msg); if (!reply.isValid()) { - qCWarning(lcLidWatcher) << "cannot query LidClosed:" << reply.error().message(); + qCWarning(lcLidWatcher) + << "cannot query LidClosed:" << reply.error().message(); return; } m_state = reply.value().toBool() ? Closed : Opened; emit stateChanged(); } -void LidWatcher::onPropertiesChanged(const QString& interface, const QVariantMap& changed, const QStringList& /*invalidated*/) { - if (interface != kLogin1Interface) +void LidWatcher::onPropertiesChanged(const QString& interface, + const QVariantMap& changed, + const QStringList& ) { + if (interface != kLogin1Interface) { return; - if (!changed.contains("LidClosed")) + } + if (!changed.contains("LidClosed")) { return; + } m_state = changed.value("LidClosed").toBool() ? Closed : Opened; emit stateChanged(); } diff --git a/Plugins/ZShell/lidwatcher.hpp b/Plugins/ZShell/lidwatcher.hpp index 7486f6a..2f25d7b 100644 --- a/Plugins/ZShell/lidwatcher.hpp +++ b/Plugins/ZShell/lidwatcher.hpp @@ -3,6 +3,7 @@ #include #include #include +#include #include namespace ZShell { @@ -15,11 +16,8 @@ class LidWatcher : public QObject { Q_PROPERTY(bool available READ available NOTIFY availableChanged) Q_PROPERTY(LidState state READ state NOTIFY stateChanged) -public: - enum LidState { - Opened, - Closed - }; + public: + enum LidState : std::uint8_t{ Opened, Closed }; Q_ENUM(LidState) explicit LidWatcher(QObject* parent = nullptr); @@ -27,16 +25,19 @@ public: [[nodiscard]] bool available() const; [[nodiscard]] LidState state() const; -private: + private: void queryInitialState(); bool m_available; LidState m_state = Opened; -private Q_SLOTS: - void onPropertiesChanged(const QString& interface, const QVariantMap& changed, const QStringList& invalidated); -Q_SIGNALS: + void extracted(); + void onPropertiesChanged(const QString& interface, + const QVariantMap& changed, + const QStringList& invalidated); + + Q_SIGNALS: void availableChanged(); void stateChanged(); };