File indexing completed on 2024-05-12 05:25:24

0001 /*
0002    SPDX-FileCopyrightText: 2015-2024 Laurent Montel <montel@kde.org>
0003 
0004    SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #pragma once
0008 
0009 #include <QObject>
0010 #include <QTextStream>
0011 class QFile;
0012 class LogInFile : public QObject
0013 {
0014     Q_OBJECT
0015 public:
0016     explicit LogInFile(QObject *parent = nullptr);
0017     ~LogInFile() override;
0018 
0019     [[nodiscard]] QString fileName() const;
0020     void setFileName(const QString &fileName);
0021 
0022 public Q_SLOTS:
0023     void addEndLine();
0024 
0025     void addError(const QString &message);
0026     void addInfo(const QString &message);
0027     void addTitle(const QString &message);
0028 
0029 private:
0030     enum LogType { AddEndLine = 0, AddInfo, AddError, AddTitle };
0031     void addLogLine(const QString &message, LogType type);
0032     QString mFileName;
0033     QTextStream mTextStream;
0034     QFile *mFile = nullptr;
0035 };