File indexing completed on 2024-05-19 05:49:12
0001 /* 0002 KApacheLog, a apache log viewer tool 0003 SPDX-FileCopyrightText: 2007 Nicolas Ternisien <nicolas.ternisien@gmail.com> 0004 0005 SPDX-License-Identifier: GPL-2.0-or-later 0006 */ 0007 0008 #include "apacheFactory.h" 0009 0010 #include <KLocalizedString> 0011 0012 #include "ksystemlog_debug.h" 0013 #include "logMode.h" 0014 #include "multipleActions.h" 0015 0016 #include "apacheAccessLogMode.h" 0017 #include "apacheLogMode.h" 0018 0019 #include "apacheConfiguration.h" 0020 #include "apacheConfigurationWidget.h" 0021 0022 QList<LogMode *> ApacheLogModeFactory::createLogModes() const 0023 { 0024 // Create the shared configuration and configuration widget between the logModes 0025 0026 QSharedPointer<ApacheConfiguration> logModeConfiguration = QSharedPointer<ApacheConfiguration>(new ApacheConfiguration()); 0027 auto logModeConfigurationWidget = new ApacheConfigurationWidget(); 0028 0029 QList<LogMode *> logModes; 0030 logModes.append(new ApacheLogMode(logModeConfiguration, logModeConfigurationWidget)); 0031 logModes.append(new ApacheAccessLogMode(logModeConfiguration, logModeConfigurationWidget)); 0032 0033 return logModes; 0034 } 0035 0036 LogModeAction *ApacheLogModeFactory::createLogModeAction() const 0037 { 0038 LogMode *apacheLogMode = Globals::instance().findLogMode(QStringLiteral(APACHE_LOG_MODE_ID)); 0039 LogMode *apacheAccessLogMode = Globals::instance().findLogMode(QStringLiteral(APACHE_ACCESS_LOG_MODE_ID)); 0040 0041 const bool apacheLogsExist = apacheLogMode->filesExist(); 0042 const bool apacheAccessLogsExist = apacheAccessLogMode->filesExist(); 0043 0044 if (!apacheLogsExist && !apacheAccessLogsExist) { 0045 return nullptr; 0046 } 0047 0048 auto multipleActions = new MultipleActions(QIcon::fromTheme(QStringLiteral(APACHE_MODE_ICON)), i18n("Apache"), apacheLogMode); 0049 if (apacheLogsExist) { 0050 multipleActions->addInnerAction(apacheLogMode->action()); 0051 } 0052 0053 if (apacheAccessLogsExist) { 0054 multipleActions->addInnerAction(apacheAccessLogMode->action()); 0055 } 0056 0057 multipleActions->setCategory(LogModeAction::ServicesCategory); 0058 0059 return multipleActions; 0060 } 0061 0062 #include "moc_apacheFactory.cpp"