File indexing completed on 2024-06-02 05:18:56

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 "kaddressbookconfigpluginlistwidget.h"
0008 #include "../importexport/plugin.h"
0009 #include "../importexport/pluginmanager.h"
0010 #include "../plugininterface/kaddressbookplugininterface.h"
0011 
0012 #include "kaddressbook_configure_debug.h"
0013 #include <KLocalizedString>
0014 #include <PimCommon/GenericPlugin>
0015 
0016 namespace
0017 {
0018 QString kaddressbookPluginToolsGroupName()
0019 {
0020     return QStringLiteral("kaddressbookplugintoolsgroupname");
0021 }
0022 
0023 QString kaddressbookImportExportGroupName()
0024 {
0025     return QStringLiteral("kaddressbookpluginimportexportgroupname");
0026 }
0027 }
0028 
0029 KAddressBookConfigPluginListWidget::KAddressBookConfigPluginListWidget(QWidget *parent)
0030     : PimCommon::ConfigurePluginsListWidget(parent)
0031 {
0032     connect(this, &KAddressBookConfigPluginListWidget::configureClicked, this, &KAddressBookConfigPluginListWidget::slotConfigureClicked);
0033 }
0034 
0035 KAddressBookConfigPluginListWidget::~KAddressBookConfigPluginListWidget() = default;
0036 
0037 void KAddressBookConfigPluginListWidget::save()
0038 {
0039     PimCommon::ConfigurePluginsListWidget::savePlugins(KAddressBookPluginInterface::self()->configGroupName(),
0040                                                        KAddressBookPluginInterface::self()->configPrefixSettingKey(),
0041                                                        mPluginGenericItems);
0042 
0043     PimCommon::ConfigurePluginsListWidget::savePlugins(KAddressBookImportExport::PluginManager::self()->configGroupName(),
0044                                                        KAddressBookImportExport::PluginManager::self()->configPrefixSettingKey(),
0045                                                        mPluginImportExportItems);
0046 }
0047 
0048 void KAddressBookConfigPluginListWidget::doLoadFromGlobalSettings()
0049 {
0050     initialize();
0051     initializeDone();
0052 }
0053 
0054 void KAddressBookConfigPluginListWidget::doResetToDefaultsOther()
0055 {
0056     PimCommon::ConfigurePluginsListWidget::changeState(mPluginGenericItems);
0057     PimCommon::ConfigurePluginsListWidget::changeState(mPluginImportExportItems);
0058 }
0059 
0060 void KAddressBookConfigPluginListWidget::initialize()
0061 {
0062     mListWidget->clear();
0063     // Necessary to initialize plugins when we load it outside kaddressbook
0064     KAddressBookPluginInterface::self()->initializePlugins();
0065     PimCommon::ConfigurePluginsListWidget::fillTopItems(KAddressBookPluginInterface::self()->pluginsDataList(),
0066                                                         i18n("Tools Plugins"),
0067                                                         KAddressBookPluginInterface::self()->configGroupName(),
0068                                                         KAddressBookPluginInterface::self()->configPrefixSettingKey(),
0069                                                         mPluginGenericItems,
0070                                                         kaddressbookPluginToolsGroupName());
0071 
0072     PimCommon::ConfigurePluginsListWidget::fillTopItems(KAddressBookImportExport::PluginManager::self()->pluginsDataList(),
0073                                                         i18n("Import/Export Plugins"),
0074                                                         KAddressBookImportExport::PluginManager::self()->configGroupName(),
0075                                                         KAddressBookImportExport::PluginManager::self()->configPrefixSettingKey(),
0076                                                         mPluginImportExportItems,
0077                                                         kaddressbookImportExportGroupName());
0078 
0079     mListWidget->expandAll();
0080 }
0081 
0082 void KAddressBookConfigPluginListWidget::slotConfigureClicked(const QString &configureGroupName, const QString &identifier)
0083 {
0084     if (!configureGroupName.isEmpty() && !identifier.isEmpty()) {
0085         if (configureGroupName == kaddressbookPluginToolsGroupName()) {
0086             PimCommon::GenericPlugin *plugin = KAddressBookPluginInterface::self()->pluginFromIdentifier(identifier);
0087             plugin->showConfigureDialog(this);
0088         } else if (configureGroupName == kaddressbookImportExportGroupName()) {
0089             auto plugin = KAddressBookImportExport::PluginManager::self()->pluginFromIdentifier(identifier);
0090             plugin->showConfigureDialog(this);
0091         } else {
0092             qCWarning(KADDRESSBOOK_CONFIGURE_LOG) << "Unknown configureGroupName" << configureGroupName;
0093         }
0094     }
0095 }
0096 
0097 #include "moc_kaddressbookconfigpluginlistwidget.cpp"