1 /*
2     SPDX-FileCopyrightText: 2007 Nicolas Ternisien <nicolas.ternisien@gmail.com>
3 
4     SPDX-License-Identifier: GPL-2.0-or-later
5 */
6 
7 #include "openLogMode.h"
8 
9 #include <QFileDialog>
10 #include <QString>
11 
12 #include <KLocalizedString>
13 
14 #include <KMessageBox>
15 
16 #include "ksystemlog_debug.h"
17 
18 #include "logModeItemBuilder.h"
19 #include "openAnalyzer.h"
20 
OpenLogMode(QWidget * parent)21 OpenLogMode::OpenLogMode(QWidget *parent)
22     : LogMode(QStringLiteral(OPEN_LOG_MODE_ID), i18n("Log File"), QStringLiteral(OPEN_MODE_ICON))
23     , mParent(parent)
24 {
25     d->logModeConfigurationWidget = nullptr;
26 
27     d->itemBuilder = new LogModeItemBuilder();
28 
29     d->action = nullptr;
30 }
31 
~OpenLogMode()32 OpenLogMode::~OpenLogMode()
33 {
34 }
35 
createAnalyzer(const QVariant & options)36 Analyzer *OpenLogMode::createAnalyzer(const QVariant &options)
37 {
38     Q_UNUSED(options)
39     return new OpenAnalyzer(this);
40 }
41 
createLogFiles()42 QVector<LogFile> OpenLogMode::createLogFiles()
43 {
44     // Open a standard Filedialog
45     const QUrl openingFileName(QFileDialog::getOpenFileUrl(mParent, i18n("Open Location"), QUrl(), QString()));
46     qCDebug(KSYSTEMLOG) << "Opening file : " << openingFileName.url();
47 
48     if (openingFileName.isEmpty()) {
49         return QVector<LogFile>();
50     }
51 
52     if (openingFileName.isValid()) {
53         const LogFile logFile(openingFileName, Globals::instance().informationLogLevel());
54         const QVector<LogFile> logFiles{logFile};
55 
56         return logFiles;
57     }
58 
59     const QString message(i18n("Malformed URL. Unable to open this file."));
60     KMessageBox::error(mParent, message, i18n("Unable to open this file."), KMessageBox::Notify);
61 
62     return QVector<LogFile>();
63 }
64