File indexing completed on 2024-05-05 05:48:58

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 "logViewWidgetItem.h"
0008 
0009 // Qt includes
0010 
0011 // KDE includes
0012 #include "ksystemlog_debug.h"
0013 
0014 #include "logModeItemBuilder.h"
0015 #include "logViewWidget.h"
0016 
0017 #include "logMode.h"
0018 
0019 LogViewWidgetItem::LogViewWidgetItem(LogViewWidget *list, LogLine *l)
0020     : QTreeWidgetItem()
0021     , mLine(l)
0022 {
0023     // Add this item to the LogLine, to let the LogLine initialize it
0024     mLine->setItem(this);
0025     list->addTopLevelItem(this);
0026 }
0027 
0028 LogViewWidgetItem::~LogViewWidgetItem()
0029 {
0030     delete mLine;
0031 }
0032 
0033 LogLine *LogViewWidgetItem::logLine() const
0034 {
0035     return mLine;
0036 }
0037 
0038 void LogViewWidgetItem::toggleToolTip(bool displayed)
0039 {
0040     if (displayed) {
0041         setToolTip(columnCount() - 1, mLine->logMode()->itemBuilder()->createToolTipText(mLine));
0042     } else {
0043         setToolTip(columnCount() - 1, QString());
0044     }
0045 }
0046 
0047 bool LogViewWidgetItem::operator<(const QTreeWidgetItem &other) const
0048 {
0049     const int sortedColumn = treeWidget()->sortColumn();
0050 
0051     // If we sort items by date (always the first column)
0052     if (sortedColumn == 0) {
0053         const auto &otherItem = static_cast<const LogViewWidgetItem &>(other);
0054         return mLine->isOlderThan(*(otherItem.logLine()));
0055     }
0056     // Default sorting
0057     else {
0058         return text(sortedColumn) < other.text(sortedColumn);
0059     }
0060 }