File indexing completed on 2024-04-28 05:10:45

0001 /*
0002    SPDX-FileCopyrightText: 2016-2024 Laurent Montel <montel@kde.org>
0003 
0004    SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #include "akregatorconfigurepluginlistwidget.h"
0008 #include "kcm_config_plugins_debug.h"
0009 #include <KLocalizedString>
0010 #include <WebEngineViewer/NetworkPluginUrlInterceptor>
0011 #include <WebEngineViewer/NetworkUrlInterceptorPluginManager>
0012 namespace
0013 {
0014 QString networkUrlInterceptorGroupName()
0015 {
0016     return QStringLiteral("networkurlinterceptorgroupname");
0017 }
0018 }
0019 
0020 AkregatorConfigurePluginListWidget::AkregatorConfigurePluginListWidget(QWidget *parent)
0021     : PimCommon::ConfigurePluginsListWidget(parent)
0022 {
0023     connect(this, &ConfigurePluginsListWidget::configureClicked, this, &AkregatorConfigurePluginListWidget::slotConfigureClicked);
0024 }
0025 
0026 AkregatorConfigurePluginListWidget::~AkregatorConfigurePluginListWidget() = default;
0027 
0028 void AkregatorConfigurePluginListWidget::save()
0029 {
0030     PimCommon::ConfigurePluginsListWidget::savePlugins(WebEngineViewer::NetworkUrlInterceptorPluginManager::self()->configGroupName(),
0031                                                        WebEngineViewer::NetworkUrlInterceptorPluginManager::self()->configPrefixSettingKey(),
0032                                                        mPluginWebEngineItems);
0033 }
0034 
0035 void AkregatorConfigurePluginListWidget::doLoadFromGlobalSettings()
0036 {
0037     initialize();
0038     initializeDone();
0039 }
0040 
0041 void AkregatorConfigurePluginListWidget::doResetToDefaultsOther()
0042 {
0043     changeState(mPluginWebEngineItems);
0044 }
0045 
0046 void AkregatorConfigurePluginListWidget::initialize()
0047 {
0048     mListWidget->clear();
0049     // Load webengineplugin
0050     PimCommon::ConfigurePluginsListWidget::fillTopItems(WebEngineViewer::NetworkUrlInterceptorPluginManager::self()->pluginsDataList(),
0051                                                         i18n("Webengine Plugins"),
0052                                                         WebEngineViewer::NetworkUrlInterceptorPluginManager::self()->configGroupName(),
0053                                                         WebEngineViewer::NetworkUrlInterceptorPluginManager::self()->configPrefixSettingKey(),
0054                                                         mPluginWebEngineItems,
0055                                                         networkUrlInterceptorGroupName());
0056     mListWidget->expandAll();
0057 }
0058 
0059 void AkregatorConfigurePluginListWidget::slotConfigureClicked(const QString &configureGroupName, const QString &identifier)
0060 {
0061     if (!configureGroupName.isEmpty() && !identifier.isEmpty()) {
0062         if (configureGroupName == networkUrlInterceptorGroupName()) {
0063             WebEngineViewer::NetworkPluginUrlInterceptor *plugin =
0064                 WebEngineViewer::NetworkUrlInterceptorPluginManager::self()->pluginFromIdentifier(identifier);
0065             plugin->showConfigureDialog(this);
0066         } else {
0067             qCWarning(AKREGATOR_CONFIG_PLUGIN_LOG) << "Unknown configureGroupName" << configureGroupName;
0068         }
0069     }
0070 }
0071 
0072 #include "moc_akregatorconfigurepluginlistwidget.cpp"