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 }