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"