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 "journaldLogMode.h" 8 9 #include <QAction> 10 11 #include <KLocalizedString> 12 13 #include "ksystemlog_debug.h" 14 15 #include "journaldConfiguration.h" 16 #include "journaldConfigurationWidget.h" 17 #include "journaldItemBuilder.h" 18 #include "journaldLocalAnalyzer.h" 19 #include "journaldNetworkAnalyzer.h" 20 JournaldLogMode()21JournaldLogMode::JournaldLogMode() 22 : LogMode(QLatin1String(JOURNALD_LOG_MODE_ID), i18n("Journald Log"), QLatin1String(JOURNALD_MODE_ICON)) 23 { 24 d->logModeConfiguration = QSharedPointer<JournaldConfiguration>(new JournaldConfiguration()); 25 26 d->logModeConfigurationWidget = new JournaldConfigurationWidget(); 27 connect(qobject_cast<JournaldConfigurationWidget *>(d->logModeConfigurationWidget), 28 &JournaldConfigurationWidget::configSaved, 29 this, 30 &JournaldLogMode::menuChanged); 31 32 d->itemBuilder = new JournaldItemBuilder(); 33 34 d->action = createDefaultAction(); 35 d->action->setToolTip(i18n("Display the Journald log.")); 36 d->action->setWhatsThis(i18n("Displays the journald log in the current tab.")); 37 } 38 createAnalyzer(const QVariant & analyzerOptions)39Analyzer *JournaldLogMode::createAnalyzer(const QVariant &analyzerOptions) 40 { 41 JournaldAnalyzerOptions options = analyzerOptions.value<JournaldAnalyzerOptions>(); 42 switch (options.analyzerType) { 43 case JournaldAnalyzerType::Local: 44 return new JournaldLocalAnalyzer(this, options.filter); 45 case JournaldAnalyzerType::Network: 46 return new JournaldNetworkAnalyzer(this, options); 47 } 48 49 return new JournaldLocalAnalyzer(this); 50 } 51 createLogFiles()52QVector<LogFile> JournaldLogMode::createLogFiles() 53 { 54 // No log file for journald. 55 return QVector<LogFile>(); 56 } 57 updateJournalFilters(const JournalAddress & address,const JournalFilters & filters)58void JournaldLogMode::updateJournalFilters(const JournalAddress &address, const JournalFilters &filters) 59 { 60 mRemoteJournalFilters[address] = filters; 61 } 62 filters(const JournalAddress & address) const63JournalFilters JournaldLogMode::filters(const JournalAddress &address) const 64 { 65 return mRemoteJournalFilters[address]; 66 } 67