File indexing completed on 2024-05-05 05:48:57
0001 /* 0002 SPDX-FileCopyrightText: 2007 Nicolas Ternisien <nicolas.ternisien@gmail.com> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #include "logModeItemBuilder.h" 0008 0009 #include <KLocalizedString> 0010 0011 #include "ksystemlog_debug.h" 0012 0013 #include "logLine.h" 0014 #include "logMode.h" 0015 #include "logViewWidgetItem.h" 0016 0017 #include "ksystemlogConfig.h" 0018 0019 LogModeItemBuilder::LogModeItemBuilder() 0020 { 0021 } 0022 0023 LogModeItemBuilder::~LogModeItemBuilder() 0024 { 0025 } 0026 0027 QString LogModeItemBuilder::formatDate(const QDateTime &dateTime) const 0028 { 0029 return Globals::instance().formatDate((Globals::DateFormat)KSystemLogConfig::dateFormat(), dateTime); 0030 } 0031 0032 void LogModeItemBuilder::prepareItem(LogViewWidgetItem *item) const 0033 { 0034 LogLine *line = item->logLine(); 0035 0036 item->setText(0, formatDate(line->time())); 0037 item->setData(0, Qt::UserRole, line->logLevel()->id()); 0038 0039 int i = 1; 0040 const QStringList logItems = line->logItems(); 0041 for (const QString &label : logItems) { 0042 item->setText(i, label); 0043 i++; 0044 } 0045 0046 item->setIcon(0, line->logLevel()->icon()); 0047 } 0048 0049 QString LogModeItemBuilder::createFormattedText(LogLine *line) const 0050 { 0051 QString result; 0052 0053 QListIterator<QString> it(line->logItems()); 0054 0055 result.append(QLatin1String("<table>")); 0056 0057 result.append(labelMessageFormat(i18n("Date:"), formatDate(line->time()))); 0058 result.append(labelMessageFormat(i18n("Hostname:"), it.next())); 0059 result.append(labelMessageFormat(i18n("Process:"), it.next())); 0060 result.append(labelMessageFormat(i18n("Level:"), line->logLevel()->name())); 0061 result.append(labelMessageFormat(i18n("Original file:"), line->sourceFileName())); 0062 0063 result.append(QLatin1String("</table>")); 0064 0065 return result; 0066 } 0067 0068 QString LogModeItemBuilder::createToolTipText(LogLine *line) const 0069 { 0070 QString result; 0071 0072 result.append(QLatin1String("<table>")); 0073 0074 result.append(labelMessageFormat(i18n("Date:"), formatDate(line->time()))); 0075 result.append(labelMessageFormat(i18n("Level:"), line->logLevel()->name())); 0076 result.append(labelMessageFormat(i18n("Original file:"), line->sourceFileName())); 0077 0078 result.append(QLatin1String("</table>")); 0079 0080 return result; 0081 } 0082 0083 QString LogModeItemBuilder::labelMessageFormat(const QString &label, const QString &value) const 0084 { 0085 return QLatin1String("<tr><td align='right'><b><nobr>") + label + QLatin1String("</nobr></b></td><td>") + messageFormat(value) 0086 + QLatin1String("</td></tr>"); 0087 } 0088 0089 QString LogModeItemBuilder::messageFormat(const QString &message) const 0090 { 0091 QString transformation(message); 0092 transformation.replace(QStringLiteral("&"), QStringLiteral("&")); 0093 transformation.replace(QStringLiteral("<"), QStringLiteral("<")); 0094 transformation.replace(QStringLiteral(">"), QStringLiteral(">")); 0095 return transformation; 0096 }