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

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 "journaldLogMode.h"
0008 
0009 #include <QAction>
0010 
0011 #include <KLocalizedString>
0012 
0013 #include "ksystemlog_debug.h"
0014 
0015 #include "journaldConfiguration.h"
0016 #include "journaldConfigurationWidget.h"
0017 #include "journaldItemBuilder.h"
0018 #include "journaldLocalAnalyzer.h"
0019 #include "journaldNetworkAnalyzer.h"
0020 
0021 JournaldLogMode::JournaldLogMode()
0022     : LogMode(QLatin1String(JOURNALD_LOG_MODE_ID), i18n("Journald Log"), QLatin1String(JOURNALD_MODE_ICON))
0023 {
0024     d->logModeConfiguration = QSharedPointer<JournaldConfiguration>(new JournaldConfiguration());
0025 
0026     d->logModeConfigurationWidget = new JournaldConfigurationWidget();
0027     connect(qobject_cast<JournaldConfigurationWidget *>(d->logModeConfigurationWidget),
0028             &JournaldConfigurationWidget::configSaved,
0029             this,
0030             &JournaldLogMode::menuChanged);
0031 
0032     d->itemBuilder = new JournaldItemBuilder();
0033 
0034     d->action = createDefaultAction();
0035     d->action->setToolTip(i18n("Display the Journald log."));
0036     d->action->setWhatsThis(i18n("Displays the journald log in the current tab."));
0037 }
0038 
0039 Analyzer *JournaldLogMode::createAnalyzer(const QVariant &analyzerOptions)
0040 {
0041     JournaldAnalyzerOptions options = analyzerOptions.value<JournaldAnalyzerOptions>();
0042     switch (options.analyzerType) {
0043     case JournaldAnalyzerType::Local:
0044         return new JournaldLocalAnalyzer(this, options.filter);
0045     case JournaldAnalyzerType::Network:
0046         return new JournaldNetworkAnalyzer(this, options);
0047     }
0048 
0049     return new JournaldLocalAnalyzer(this);
0050 }
0051 
0052 QVector<LogFile> JournaldLogMode::createLogFiles()
0053 {
0054     // No log file for journald.
0055     return QVector<LogFile>();
0056 }
0057 
0058 void JournaldLogMode::updateJournalFilters(const JournalAddress &address, const JournalFilters &filters)
0059 {
0060     mRemoteJournalFilters[address] = filters;
0061 }
0062 
0063 JournalFilters JournaldLogMode::filters(const JournalAddress &address) const
0064 {
0065     return mRemoteJournalFilters[address];
0066 }
0067 
0068 #include "moc_journaldLogMode.cpp"