File indexing completed on 2024-05-19 05:49:15
0001 /* 0002 KCupsLog, a cups 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 "cupsFactory.h" 0009 0010 #include <KLocalizedString> 0011 0012 #include "ksystemlog_debug.h" 0013 #include "logMode.h" 0014 #include "multipleActions.h" 0015 0016 #include "cupsAccessLogMode.h" 0017 #include "cupsLogMode.h" 0018 #include "cupsPageLogMode.h" 0019 #include "cupsPdfLogMode.h" 0020 0021 #include "cupsConfiguration.h" 0022 #include "cupsConfigurationWidget.h" 0023 0024 QList<LogMode *> CupsLogModeFactory::createLogModes() const 0025 { 0026 // Create the shared configuration and configuration widget between the logModes 0027 QSharedPointer<CupsConfiguration> logModeConfiguration = QSharedPointer<CupsConfiguration>(new CupsConfiguration()); 0028 auto logModeConfigurationWidget = new CupsConfigurationWidget(); 0029 0030 QList<LogMode *> logModes; 0031 logModes.append(new CupsLogMode(logModeConfiguration, logModeConfigurationWidget)); 0032 logModes.append(new CupsAccessLogMode(logModeConfiguration, logModeConfigurationWidget)); 0033 logModes.append(new CupsPageLogMode(logModeConfiguration, logModeConfigurationWidget)); 0034 logModes.append(new CupsPdfLogMode(logModeConfiguration, logModeConfigurationWidget)); 0035 0036 return logModes; 0037 } 0038 0039 LogModeAction *CupsLogModeFactory::createLogModeAction() const 0040 { 0041 LogMode *cupsLogMode = Globals::instance().findLogMode(QStringLiteral(CUPS_LOG_MODE_ID)); 0042 LogMode *cupsAccessLogMode = Globals::instance().findLogMode(QStringLiteral(CUPS_ACCESS_LOG_MODE_ID)); 0043 LogMode *cupsPageLogMode = Globals::instance().findLogMode(QStringLiteral(CUPS_PAGE_LOG_MODE_ID)); 0044 LogMode *cupsPdfLogMode = Globals::instance().findLogMode(QStringLiteral(CUPS_PDF_LOG_MODE_ID)); 0045 0046 bool const cupsLogsExist = cupsLogMode->filesExist(); 0047 bool const cupsAccessLogsExist = cupsAccessLogMode->filesExist(); 0048 bool const cupsPageLogsExist = cupsPageLogMode->filesExist(); 0049 bool const cupsPdfLogsExist = cupsPdfLogMode->filesExist(); 0050 0051 if (!cupsLogsExist && !cupsAccessLogsExist && !cupsPageLogsExist && !cupsPdfLogsExist) { 0052 return nullptr; 0053 } 0054 0055 auto multipleActions = new MultipleActions(QIcon::fromTheme(QStringLiteral(CUPS_MODE_ICON)), i18n("Cups"), cupsLogMode); 0056 0057 if (cupsLogsExist) { 0058 multipleActions->addInnerAction(cupsLogMode->action()); 0059 } 0060 0061 if (cupsAccessLogsExist) { 0062 multipleActions->addInnerAction(cupsAccessLogMode->action()); 0063 } 0064 0065 if (cupsPageLogsExist) { 0066 multipleActions->addInnerAction(cupsPageLogMode->action()); 0067 } 0068 0069 if (cupsPdfLogsExist) { 0070 multipleActions->addInnerAction(cupsPdfLogMode->action()); 0071 } 0072 0073 multipleActions->setCategory(LogModeAction::ServicesCategory); 0074 0075 return multipleActions; 0076 } 0077 0078 #include "moc_cupsFactory.cpp"