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 #include "loginfile.h"
0008 #include "pimdataexportconsole_debug.h"
0009 
0010 #include <QFile>
0011 
0012 LogInFile::LogInFile(QObject *parent)
0013     : QObject(parent)
0014 {
0015 }
0016 
0017 LogInFile::~LogInFile()
0018 {
0019     if (mFile) {
0020         mFile->close();
0021         delete mFile;
0022     }
0023 }
0024 
0025 QString LogInFile::fileName() const
0026 {
0027     return mFileName;
0028 }
0029 
0030 void LogInFile::setFileName(const QString &fileName)
0031 {
0032     if (!fileName.isEmpty()) {
0033         mFileName = fileName;
0034         if (!mFile) {
0035             mFile = new QFile(mFileName);
0036             if (!mFile->open(QIODevice::WriteOnly | QIODevice::Text)) {
0037                 qCWarning(PIMDATAEXPORTERCONSOLE_LOG) << "Impossible to open filename " << mFileName;
0038                 return;
0039             }
0040         }
0041         mTextStream.setDevice(mFile);
0042     }
0043 }
0044 
0045 void LogInFile::addEndLine()
0046 {
0047     addLogLine(QString(), AddEndLine);
0048 }
0049 
0050 void LogInFile::addError(const QString &message)
0051 {
0052     addLogLine(message, AddError);
0053 }
0054 
0055 void LogInFile::addInfo(const QString &message)
0056 {
0057     addLogLine(message, AddInfo);
0058 }
0059 
0060 void LogInFile::addTitle(const QString &message)
0061 {
0062     addLogLine(message, AddTitle);
0063 }
0064 
0065 void LogInFile::addLogLine(const QString &message, LogType type)
0066 {
0067     QString newMessage;
0068     switch (type) {
0069     case AddEndLine:
0070         newMessage = QLatin1Char('\n');
0071         break;
0072     case AddInfo:
0073         newMessage = QStringLiteral("INFO: %1\n").arg(message);
0074         break;
0075     case AddError:
0076         newMessage = QStringLiteral("ERROR: %1\n").arg(message);
0077         break;
0078     case AddTitle:
0079         newMessage = message + QLatin1Char('\n');
0080         break;
0081     }
0082     mTextStream << newMessage;
0083 }
0084 
0085 #include "moc_loginfile.cpp"