File indexing completed on 2024-05-12 05:48:41

0001 /*
0002     SPDX-FileCopyrightText: 2007 Nicolas Ternisien <nicolas.ternisien@gmail.com>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #pragma once
0008 
0009 #include <KLocalizedString>
0010 
0011 #include "fileAnalyzer.h"
0012 
0013 #include "localLogFileReader.h"
0014 #include "parsingHelper.h"
0015 
0016 #include "xsessionConfiguration.h"
0017 #include "xsessionLogMode.h"
0018 
0019 class XSessionAnalyzer : public FileAnalyzer
0020 {
0021     Q_OBJECT
0022 
0023 public:
0024     explicit XSessionAnalyzer(LogMode *logMode);
0025 
0026     ~XSessionAnalyzer() override
0027     {
0028     }
0029 
0030     LogViewColumns initColumns() override;
0031 
0032 protected:
0033     LogFileReader *createLogFileReader(const LogFile &logFile) override
0034     {
0035         return new LocalLogFileReader(logFile);
0036     }
0037 
0038     Analyzer::LogFileSortMode logFileSortMode() override;
0039 
0040     LogLine *parseMessage(const QString &logLine, const LogFile &originalFile) override;
0041 
0042 private:
0043     bool isXorgError(const QString &program);
0044 
0045     bool hasWarningKeywords(const QString &message);
0046 
0047     bool hasErrorKeywords(const QString &message);
0048 
0049     bool hasKeywords(const QString &message, const QStringList &keywords);
0050 
0051     QDateTime mCurrentDateTime;
0052 };