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