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"