File indexing completed on 2024-05-12 05:06:12

0001 /*
0002     SPDX-FileCopyrightText: 2005-2021 Thomas Baumgart <ipwizard@users.sourceforge.net>
0003     SPDX-FileCopyrightText: 2015 Christian Dávid <christian-david@web.de>
0004     SPDX-FileCopyrightText: 2021 Dawid Wróbel <me@dawidwrobel.com>
0005     SPDX-License-Identifier: GPL-2.0-or-later
0006 */
0007 
0008 #include "kmymoneyplugin.h"
0009 
0010 // ----------------------------------------------------------------------------
0011 // QT Includes
0012 
0013 #include <QMap>
0014 #include <QMimeDatabase>
0015 
0016 // ----------------------------------------------------------------------------
0017 // KDE Includes
0018 
0019 #include <KActionCollection>
0020 #include <KPluginMetaData>
0021 #include <KToggleAction>
0022 
0023 // ----------------------------------------------------------------------------
0024 // Project Includes
0025 #include "interfaceloader.h"
0026 
0027 KMyMoneyPlugin::Container pPlugins;
0028 
0029 KMyMoneyPlugin::Plugin::Plugin(QObject* parent, const KPluginMetaData& metaData, const QVariantList& args)
0030     : QObject()
0031     , KXMLGUIClient()
0032 {
0033     Q_UNUSED(parent)
0034     Q_UNUSED(args)
0035 
0036     setObjectName(metaData.pluginId());
0037     m_componentDisplayName = metaData.name();
0038     setComponentName(metaData.pluginId(), m_componentDisplayName);
0039 }
0040 
0041 KMyMoneyPlugin::Plugin::~Plugin()
0042 {
0043 }
0044 
0045 QString KMyMoneyPlugin::Plugin::componentDisplayName() const
0046 {
0047     return m_componentDisplayName;
0048 }
0049 
0050 void KMyMoneyPlugin::Plugin::plug(KXMLGUIFactory* guiFactory)
0051 {
0052     Q_UNUSED(guiFactory)
0053 }
0054 
0055 void KMyMoneyPlugin::Plugin::unplug()
0056 {
0057 }
0058 
0059 void KMyMoneyPlugin::Plugin::updateActions(const SelectedObjects& selections)
0060 {
0061     Q_UNUSED(selections)
0062 }
0063 
0064 void KMyMoneyPlugin::Plugin::updateConfiguration()
0065 {
0066 }
0067 
0068 KToggleAction* KMyMoneyPlugin::Plugin::toggleAction(const QString& actionName) const
0069 {
0070     static KToggleAction dummyAction(QString("Dummy"), nullptr);
0071 
0072     KToggleAction* p = dynamic_cast<KToggleAction*>(actionCollection()->action(QString(actionName.toLatin1())));
0073     if (!p) {
0074         qWarning("Action '%s' is not of type KToggleAction", qPrintable(actionName));
0075         p = &dummyAction;
0076     }
0077 
0078     qWarning("Action with name '%s' not found!", qPrintable(actionName));
0079     return p;
0080 }
0081 
0082 KMyMoneyPlugin::OnlinePlugin::OnlinePlugin()
0083 {
0084 }
0085 
0086 KMyMoneyPlugin::OnlinePlugin::~OnlinePlugin()
0087 {
0088 }
0089 
0090 KMyMoneyPlugin::AppInterface* KMyMoneyPlugin::Plugin::appInterface() const
0091 {
0092     Q_CHECK_PTR(KMyMoneyPlugin::pluginInterfaces().appInterface);
0093     return KMyMoneyPlugin::pluginInterfaces().appInterface;
0094 }
0095 
0096 KMyMoneyPlugin::ViewInterface* KMyMoneyPlugin::Plugin::viewInterface() const
0097 {
0098     Q_CHECK_PTR(KMyMoneyPlugin::pluginInterfaces().viewInterface);
0099     return KMyMoneyPlugin::pluginInterfaces().viewInterface;
0100 }
0101 
0102 KMyMoneyPlugin::StatementInterface* KMyMoneyPlugin::Plugin::statementInterface() const
0103 {
0104     Q_CHECK_PTR(KMyMoneyPlugin::pluginInterfaces().statementInterface);
0105     return KMyMoneyPlugin::pluginInterfaces().statementInterface;
0106 }
0107 
0108 KMyMoneyPlugin::ImportInterface* KMyMoneyPlugin::Plugin::importInterface() const
0109 {
0110     Q_CHECK_PTR(KMyMoneyPlugin::pluginInterfaces().importInterface);
0111     return KMyMoneyPlugin::pluginInterfaces().importInterface;
0112 }
0113 
0114 KMyMoneyPlugin::ImporterPlugin::ImporterPlugin()
0115 {
0116 }
0117 
0118 bool KMyMoneyPlugin::ImporterPlugin::isMyFormat(const QString& filename) const
0119 {
0120     QMimeDatabase db;
0121     QMimeType mime = db.mimeTypeForFile(filename);
0122 
0123     if (!mime.isDefault()) {
0124         const QStringList formatTypes = formatMimeTypes();
0125         for (const auto& mimeTypeName : qAsConst(formatTypes))
0126             if (mime.inherits(mimeTypeName)) {
0127                 return true;
0128             }
0129     }
0130     return false;
0131 }
0132 
0133 KMyMoneyPlugin::ImporterPlugin::~ImporterPlugin()
0134 {
0135 }