File indexing completed on 2024-04-28 15:29:21

0001 /*
0002     This file is part of the KDE project
0003     SPDX-FileCopyrightText: 1999 Simon Hausmann <hausmann@kde.org>
0004     SPDX-FileCopyrightText: 1999-2005 David Faure <faure@kde.org>
0005 
0006     SPDX-License-Identifier: LGPL-2.0-or-later
0007 */
0008 
0009 #include "partbase.h"
0010 #include "partbase_p.h"
0011 
0012 #include "plugin.h"
0013 
0014 using namespace KParts;
0015 
0016 PartBase::PartBase()
0017     : d_ptr(new PartBasePrivate(this))
0018 {
0019 }
0020 
0021 PartBase::PartBase(PartBasePrivate &dd)
0022     : d_ptr(&dd)
0023 {
0024 }
0025 
0026 PartBase::~PartBase() = default;
0027 
0028 void PartBase::setPartObject(QObject *obj)
0029 {
0030     Q_D(PartBase);
0031 
0032     d->m_obj = obj;
0033 }
0034 
0035 QObject *PartBase::partObject() const
0036 {
0037     Q_D(const PartBase);
0038 
0039     return d->m_obj;
0040 }
0041 
0042 #if KPARTS_BUILD_DEPRECATED_SINCE(5, 77)
0043 KAboutData PartBase::componentData() const
0044 {
0045     Q_D(const PartBase);
0046 
0047     return d->componentData();
0048 }
0049 #endif
0050 
0051 #if KPARTS_BUILD_DEPRECATED_SINCE(5, 77)
0052 void PartBase::setComponentData(const KAboutData &componentData)
0053 {
0054     setComponentData(componentData, true);
0055 }
0056 #endif
0057 
0058 #if KPARTS_BUILD_DEPRECATED_SINCE(5, 77)
0059 void PartBase::setComponentData(const KAboutData &pluginData, bool bLoadPlugins)
0060 {
0061     Q_D(PartBase);
0062 
0063     d->setComponentData(pluginData);
0064 
0065     // backward-compatible registration, usage deprecated
0066 #if KCOREADDONS_BUILD_DEPRECATED_SINCE(5, 76)
0067     QT_WARNING_PUSH
0068     QT_WARNING_DISABLE_CLANG("-Wdeprecated-declarations")
0069     QT_WARNING_DISABLE_GCC("-Wdeprecated-declarations")
0070     KAboutData::registerPluginData(pluginData);
0071     QT_WARNING_POP
0072 #endif
0073 
0074     KXMLGUIClient::setComponentName(pluginData.componentName(), pluginData.displayName());
0075     if (bLoadPlugins) {
0076         loadPlugins(d->m_obj, this, pluginData.componentName());
0077     }
0078 }
0079 #endif
0080 
0081 #if KPARTS_BUILD_DEPRECATED_SINCE(5, 77)
0082 void PartBase::loadPlugins(QObject *parent, KXMLGUIClient *parentGUIClient, const KAboutData &instance)
0083 {
0084     loadPlugins(parent, parentGUIClient, instance.componentName());
0085 }
0086 #endif
0087 
0088 #if KPARTS_BUILD_DEPRECATED_SINCE(5, 90)
0089 void PartBase::loadPlugins(QObject *parent, KXMLGUIClient *parentGuiClient, const QString &parentInstanceName)
0090 {
0091     Q_D(PartBase);
0092 
0093     if (d->m_pluginLoadingMode != DoNotLoadPlugins) {
0094         Plugin::loadPlugins(parent, parentGuiClient, parentInstanceName, d->m_pluginLoadingMode == LoadPlugins, d->m_pluginInterfaceVersion);
0095     }
0096 }
0097 
0098 void PartBase::setPluginLoadingMode(PluginLoadingMode loadingMode)
0099 {
0100     Q_D(PartBase);
0101 
0102     d->m_pluginLoadingMode = loadingMode;
0103 }
0104 #endif
0105 
0106 #if KPARTS_BUILD_DEPRECATED_SINCE(5, 103)
0107 void KParts::PartBase::setPluginInterfaceVersion(int version)
0108 {
0109     Q_D(PartBase);
0110 
0111     d->m_pluginInterfaceVersion = version;
0112 }
0113 #endif