File indexing completed on 2024-05-12 05:52:35
0001 /* 0002 SPDX-FileCopyrightText: 2016-2024 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 0006 */ 0007 #pragma once 0008 0009 #include "libkdebugsettingscore_export.h" 0010 #include <QDebug> 0011 #include <QList> 0012 #include <QString> 0013 0014 struct LIBKDEBUGSETTINGSCORE_EXPORT LoggingCategory { 0015 enum LoggingType : char { 0016 All = 0, 0017 Info, 0018 Warning, 0019 Debug, 0020 Critical, 0021 Off, 0022 Undefined, 0023 }; 0024 0025 LoggingCategory(); 0026 explicit LoggingCategory(const QString &description, const QString &logName, LoggingType loggingType, const QString &identifier, bool enabled) 0027 : description(description) 0028 , categoryName(logName) 0029 , identifierName(identifier) 0030 , loggingType(loggingType) 0031 , enabled(enabled) 0032 { 0033 } 0034 0035 using List = QList<LoggingCategory>; 0036 [[nodiscard]] bool operator==(const LoggingCategory &other) const; 0037 [[nodiscard]] bool isValid() const; 0038 0039 [[nodiscard]] QString createRule() const; 0040 [[nodiscard]] QString createCustomRule() const; 0041 [[nodiscard]] QString generateToolTip() const; 0042 [[nodiscard]] QString generateDisplayRule() const; 0043 0044 QString description; 0045 QString categoryName; 0046 QString identifierName; 0047 LoggingType loggingType = Info; 0048 LoggingType defaultSeverityType = Info; 0049 bool enabled = true; 0050 0051 private: 0052 [[nodiscard]] QString convertCategoryTypeToString(LoggingCategory::LoggingType type) const; 0053 }; 0054 LIBKDEBUGSETTINGSCORE_EXPORT QDebug operator<<(QDebug debug, const LoggingCategory &cat); 0055 0056 Q_DECLARE_TYPEINFO(LoggingCategory, Q_RELOCATABLE_TYPE); 0057 0058 Q_DECLARE_METATYPE(LoggingCategory) 0059 Q_DECLARE_METATYPE(LoggingCategory::LoggingType)