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 0008 #include "loggingcategory.h" 0009 #include "kdebugsettingsutil.h" 0010 #include <KLocalizedString> 0011 0012 LoggingCategory::LoggingCategory() = default; 0013 0014 bool LoggingCategory::operator==(const LoggingCategory &other) const 0015 { 0016 return (description == other.description) && (categoryName == other.categoryName) && (enabled == other.enabled) && (loggingType == other.loggingType) 0017 && (defaultSeverityType == other.defaultSeverityType) && (identifierName == other.identifierName); 0018 } 0019 0020 bool LoggingCategory::isValid() const 0021 { 0022 return !categoryName.isEmpty() && (loggingType != Undefined); 0023 } 0024 0025 QString LoggingCategory::createCustomRule() const 0026 { 0027 QString str; 0028 switch (loggingType) { 0029 case All: 0030 str = categoryName + (enabled ? QStringLiteral("=true\n") : QStringLiteral("=false\n")); 0031 break; 0032 case Info: 0033 str = categoryName + QStringLiteral(".info=%1\n").arg(enabled ? QStringLiteral("true") : QStringLiteral("false")); 0034 break; 0035 case Warning: 0036 str = categoryName + QStringLiteral(".warning=%1\n").arg(enabled ? QStringLiteral("true") : QStringLiteral("false")); 0037 break; 0038 case Debug: 0039 str = categoryName + QStringLiteral(".debug=%1\n").arg(enabled ? QStringLiteral("true") : QStringLiteral("false")); 0040 break; 0041 case Critical: 0042 str = categoryName + QStringLiteral(".critical=%1\n").arg(enabled ? QStringLiteral("true") : QStringLiteral("false")); 0043 break; 0044 case Undefined: 0045 case Off: 0046 str = QString(); 0047 break; 0048 } 0049 return str; 0050 } 0051 0052 QString LoggingCategory::generateDisplayRule() const 0053 { 0054 return KDebugSettingsUtil::generateDisplayRule(categoryName, enabled, loggingType); 0055 } 0056 0057 QString LoggingCategory::createRule() const 0058 { 0059 QString str; 0060 switch (loggingType) { 0061 case Undefined: 0062 break; 0063 case All: 0064 str = categoryName + QLatin1StringView("=true\n"); 0065 break; 0066 case Info: 0067 str = categoryName + QLatin1StringView(".info=true\n"); 0068 str += categoryName + QLatin1StringView(".warning=true\n"); 0069 str += categoryName + QLatin1StringView(".critical=true\n"); 0070 str += categoryName + QLatin1StringView(".debug=false\n"); 0071 break; 0072 case Warning: 0073 str = categoryName + QLatin1StringView(".info=false\n"); 0074 str += categoryName + QLatin1StringView(".debug=false\n"); 0075 str += categoryName + QLatin1StringView(".warning=true\n"); 0076 str += categoryName + QLatin1StringView(".critical=true\n"); 0077 break; 0078 case Debug: 0079 str = categoryName + QLatin1StringView(".info=false\n"); 0080 str += categoryName + QLatin1StringView(".debug=true\n"); 0081 str += categoryName + QLatin1StringView(".warning=true\n"); 0082 str += categoryName + QLatin1StringView(".critical=true\n"); 0083 break; 0084 case Critical: 0085 str = categoryName + QLatin1StringView(".info=false\n"); 0086 str += categoryName + QLatin1StringView(".debug=false\n"); 0087 str += categoryName + QLatin1StringView(".warning=false\n"); 0088 str += categoryName + QLatin1StringView(".critical=true\n"); 0089 break; 0090 case Off: 0091 str = categoryName + QLatin1StringView(".info=false\n"); 0092 str += categoryName + QLatin1StringView(".debug=false\n"); 0093 str += categoryName + QLatin1StringView(".warning=false\n"); 0094 str += categoryName + QLatin1StringView(".critical=false\n"); 0095 break; 0096 } 0097 return str; 0098 } 0099 0100 QDebug operator<<(QDebug d, const LoggingCategory &cat) 0101 { 0102 d << "customcategories cat: " << cat.description; 0103 d << "logname: " << cat.categoryName; 0104 d << "enabled: " << cat.enabled; 0105 d << "type: " << cat.loggingType; 0106 d << "identifier: " << cat.identifierName; 0107 d << "default category: " << cat.defaultSeverityType; 0108 return d; 0109 } 0110 0111 QString LoggingCategory::generateToolTip() const 0112 { 0113 QString toopTip = i18n("Category name: %1", categoryName); 0114 if (!identifierName.isEmpty()) { 0115 toopTip += QLatin1Char('\n') + i18n("Identifier: %1", identifierName); 0116 } 0117 toopTip += QLatin1Char('\n') + i18n("Default Severity: %1", convertCategoryTypeToString(defaultSeverityType)); 0118 return toopTip; 0119 } 0120 0121 QString LoggingCategory::convertCategoryTypeToString(LoggingCategory::LoggingType type) const 0122 { 0123 QString str; 0124 switch (type) { 0125 case LoggingCategory::All: 0126 str = i18n("All Debug Messages"); 0127 break; 0128 case LoggingCategory::Info: 0129 str = i18n("Info Messages"); 0130 break; 0131 case LoggingCategory::Warning: 0132 str = i18n("Warning Messages"); 0133 break; 0134 case LoggingCategory::Debug: 0135 str = i18n("Debug Messages"); 0136 break; 0137 case LoggingCategory::Critical: 0138 str = i18n("Critical Messages"); 0139 break; 0140 case LoggingCategory::Off: 0141 str = i18n("No Debug Messages"); 0142 break; 0143 case LoggingCategory::Undefined: 0144 str = i18n("Undefined"); 0145 break; 0146 } 0147 return str; 0148 }