File indexing completed on 2024-05-19 05:49:17

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 "openLogMode.h"
0008 
0009 #include <QFileDialog>
0010 #include <QString>
0011 
0012 #include <KLocalizedString>
0013 
0014 #include <KMessageBox>
0015 
0016 #include "ksystemlog_debug.h"
0017 
0018 #include "logModeItemBuilder.h"
0019 #include "openAnalyzer.h"
0020 
0021 OpenLogMode::OpenLogMode(QWidget *parent)
0022     : LogMode(QStringLiteral(OPEN_LOG_MODE_ID), i18n("Log File"), QStringLiteral(OPEN_MODE_ICON))
0023     , mParent(parent)
0024 {
0025     d->logModeConfigurationWidget = nullptr;
0026 
0027     d->itemBuilder = new LogModeItemBuilder();
0028 
0029     d->action = nullptr;
0030 }
0031 
0032 OpenLogMode::~OpenLogMode()
0033 {
0034 }
0035 
0036 Analyzer *OpenLogMode::createAnalyzer(const QVariant &options)
0037 {
0038     Q_UNUSED(options)
0039     return new OpenAnalyzer(this);
0040 }
0041 
0042 QVector<LogFile> OpenLogMode::createLogFiles()
0043 {
0044     // Open a standard Filedialog
0045     const QUrl openingFileName(QFileDialog::getOpenFileUrl(mParent, i18n("Open Location"), QUrl(), QString()));
0046     qCDebug(KSYSTEMLOG) << "Opening file : " << openingFileName.url();
0047 
0048     if (openingFileName.isEmpty()) {
0049         return QVector<LogFile>();
0050     }
0051 
0052     if (openingFileName.isValid()) {
0053         const LogFile logFile(openingFileName, Globals::instance().informationLogLevel());
0054         const QVector<LogFile> logFiles{logFile};
0055 
0056         return logFiles;
0057     }
0058 
0059     const QString message(i18n("Malformed URL. Unable to open this file."));
0060     KMessageBox::error(mParent, message, i18n("Unable to open this file."), KMessageBox::Notify);
0061 
0062     return QVector<LogFile>();
0063 }
0064 
0065 #include "moc_openLogMode.cpp"