File indexing completed on 2024-04-21 05:31:42
0001 /* 0002 SPDX-FileCopyrightText: 2020 Marco Martin <mart@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include "SensorGroup_p.h" 0008 0009 #include <KLocalizedString> 0010 #include <QDebug> 0011 #include <QRegularExpression> 0012 0013 namespace KSysGuard 0014 { 0015 SensorGroup::SensorGroup() 0016 { 0017 retranslate(); 0018 } 0019 0020 SensorGroup::~SensorGroup() 0021 { 0022 } 0023 0024 void SensorGroup::retranslate() 0025 { 0026 m_sensorNames.clear(); 0027 m_segmentNames.clear(); 0028 0029 m_sensorNames[QStringLiteral("cpu/cpu\\d+/usage")] = i18nc("Total load sensor of all cores", "[Group] Total Usage"); 0030 m_sensorNames[QStringLiteral("cpu/cpu\\d+/user")] = i18nc("All cores user load sensors", "[Group] User Usage"); 0031 m_sensorNames[QStringLiteral("cpu/cpu\\d+/system")] = i18nc("All cores user system sensors", "[Group] System Usage"); 0032 m_sensorNames[QStringLiteral("cpu/cpu\\d+/wait")] = i18nc("All cores wait load sensors", "[Group] Wait Usage"); 0033 m_sensorNames[QStringLiteral("cpu/cpu\\d+/frequency")] = i18nc("All cores clock frequency sensors", "[Group] Clock Frequency"); 0034 m_sensorNames[QStringLiteral("cpu/cpu\\d+/temperature")] = i18nc("All cores temperature sensors", "[Group] Temperature"); 0035 m_sensorNames[QStringLiteral("cpu/cpu\\d+/name")] = i18nc("All cores names", "[Group] Name"); 0036 0037 m_sensorNames[QStringLiteral("partitions/(?!all).*/usedspace")] = i18n("[Group] Used"); 0038 m_sensorNames[QStringLiteral("partitions/(?!all).*/freespace")] = i18n("[Group] Available"); 0039 m_sensorNames[QStringLiteral("partitions/(?!all).*/filllevel")] = i18n("[Group] Percentage Used"); 0040 m_sensorNames[QStringLiteral("partitions/(?!all).*/total")] = i18n("[Group] Total Size"); 0041 0042 m_sensorNames[QStringLiteral("network/(?!all).*/network")] = i18n("[Group] Network Name"); 0043 m_sensorNames[QStringLiteral("network/(?!all).*/ipv4address")] = i18n("[Group] IPv4 Address"); 0044 m_sensorNames[QStringLiteral("network/(?!all).*/ipv6address")] = i18n("[Group] IPv6 Address"); 0045 m_sensorNames[QStringLiteral("network/(?!all).*/signal")] = i18n("[Group] Signal Strength"); 0046 m_sensorNames[QStringLiteral("network/(?!all).*/download")] = i18n("[Group] Download Rate"); 0047 m_sensorNames[QStringLiteral("network/(?!all).*/downloadBits")] = i18n("[Group] Download Rate"); 0048 m_sensorNames[QStringLiteral("network/(?!all).*/totalDownload")] = i18n("[Group] Total Downloaded"); 0049 m_sensorNames[QStringLiteral("network/(?!all).*/upload")] = i18n("[Group] Upload Rate"); 0050 m_sensorNames[QStringLiteral("network/(?!all).*/uploadBits")] = i18n("[Group] Upload Rate"); 0051 m_sensorNames[QStringLiteral("network/(?!all).*/totalUpload")] = i18n("[Group] Total Uploaded"); 0052 0053 m_sensorNames[QStringLiteral("disk/(?!all).*/name")] = i18n("[Group] Name"); 0054 m_sensorNames[QStringLiteral("disk/(?!all).*/total")] = i18n("[Group] Total Space"); 0055 m_sensorNames[QStringLiteral("disk/(?!all).*/used")] = i18n("[Group] Used Space"); 0056 m_sensorNames[QStringLiteral("disk/(?!all).*/free")] = i18n("[Group] Free Space"); 0057 m_sensorNames[QStringLiteral("disk/(?!all).*/read")] = i18n("[Group] Read Rate"); 0058 m_sensorNames[QStringLiteral("disk/(?!all).*/write")] = i18n("[Group] Write Rate"); 0059 m_sensorNames[QStringLiteral("disk/(?!all).*/usedPercent")] = i18n("[Group] Percentage Used"); 0060 m_sensorNames[QStringLiteral("disk/(?!all).*/freePercent")] = i18n("[Group] Percentage Free"); 0061 0062 m_segmentNames[QLatin1String("cpu\\d+")] = i18n("[Group] CPU"); 0063 m_segmentNames[QLatin1String("disk/(?!all).*")] = i18n("[Group] Disk"); 0064 m_segmentNames[QLatin1String("(?!all).*")] = i18n("[Group]"); 0065 } 0066 0067 QString SensorGroup::groupRegexForId(const QString &key) 0068 { 0069 QRegularExpression cpuExpr(QStringLiteral("cpu/cpu\\d+/(.*)")); 0070 QRegularExpression netExpr(QStringLiteral("network/(?!all).*/(.*)$")); 0071 QRegularExpression partitionsExpr(QStringLiteral("partitions/(?!all).*/(.*)$")); 0072 QRegularExpression diskExpr(QStringLiteral("disk/(?!all).*/(.*)")); 0073 0074 if (key.contains(cpuExpr)) { 0075 QString expr = key; 0076 return expr.replace(cpuExpr, QStringLiteral("cpu/cpu\\d+/\\1")); 0077 0078 } else if (key.contains(netExpr)) { 0079 QString expr = key; 0080 return expr.replace(netExpr, QStringLiteral("network/(?!all).*/\\1")); 0081 0082 } else if (key.contains(partitionsExpr)) { 0083 QString expr = key; 0084 return expr.replace(partitionsExpr, QStringLiteral("partitions/(?!all).*/\\1")); 0085 0086 } else if (key.contains(diskExpr)) { 0087 QString expr = key; 0088 return expr.replace(diskExpr, QStringLiteral("disk/(?!all).*/\\1")); 0089 } 0090 0091 return QString(); 0092 } 0093 0094 QString SensorGroup::sensorNameForRegEx(const QString &expr) 0095 { 0096 if (m_sensorNames.contains(expr)) { 0097 return m_sensorNames.value(expr); 0098 } 0099 0100 return expr; 0101 } 0102 0103 QString SensorGroup::segmentNameForRegEx(const QString &expr) 0104 { 0105 if (m_segmentNames.contains(expr)) { 0106 return m_segmentNames.value(expr); 0107 } 0108 0109 return expr; 0110 } 0111 0112 } // namespace KSysGuard