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"