KMyMoney Plugin API

kmymoneyplugin.cpp
1 /*
2  SPDX-FileCopyrightText: 2005-2021 Thomas Baumgart <[email protected]>
3  SPDX-FileCopyrightText: 2015 Christian Dávid <[email protected]>
4  SPDX-FileCopyrightText: 2021 Dawid Wróbel <[email protected]>
5  SPDX-License-Identifier: GPL-2.0-or-later
6 */
7 
8 #include "kmymoneyplugin.h"
9 
10 // ----------------------------------------------------------------------------
11 // QT Includes
12 
13 #include <QMap>
14 #include <QMimeDatabase>
15 
16 // ----------------------------------------------------------------------------
17 // KDE Includes
18 
19 #include <KActionCollection>
20 #include <KPluginMetaData>
21 #include <KToggleAction>
22 
23 // ----------------------------------------------------------------------------
24 // Project Includes
25 #include "interfaceloader.h"
26 
28 
29 KMyMoneyPlugin::Plugin::Plugin(QObject* parent, const KPluginMetaData& metaData, const QVariantList& args)
30  : QObject()
31  , KXMLGUIClient()
32 {
33  Q_UNUSED(parent)
34  Q_UNUSED(args)
35 
36  setObjectName(metaData.pluginId());
37  m_componentDisplayName = metaData.name();
38  setComponentName(metaData.pluginId(), m_componentDisplayName);
39 }
40 
41 KMyMoneyPlugin::Plugin::~Plugin()
42 {
43 }
44 
45 QString KMyMoneyPlugin::Plugin::componentDisplayName() const
46 {
47  return m_componentDisplayName;
48 }
49 
51 {
52  Q_UNUSED(guiFactory)
53 }
54 
56 {
57 }
58 
59 void KMyMoneyPlugin::Plugin::updateActions(const SelectedObjects& selections)
60 {
61  Q_UNUSED(selections)
62 }
63 
65 {
66 }
67 
69 {
70  static KToggleAction dummyAction(QString("Dummy"), nullptr);
71 
72  KToggleAction* p = dynamic_cast<KToggleAction*>(actionCollection()->action(QString(actionName.toLatin1())));
73  if (!p) {
74  qWarning("Action '%s' is not of type KToggleAction", qPrintable(actionName));
75  p = &dummyAction;
76  }
77 
78  qWarning("Action with name '%s' not found!", qPrintable(actionName));
79  return p;
80 }
81 
82 KMyMoneyPlugin::OnlinePlugin::OnlinePlugin()
83 {
84 }
85 
86 KMyMoneyPlugin::OnlinePlugin::~OnlinePlugin()
87 {
88 }
89 
90 KMyMoneyPlugin::AppInterface* KMyMoneyPlugin::Plugin::appInterface() const
91 {
92  Q_CHECK_PTR(KMyMoneyPlugin::pluginInterfaces().appInterface);
93  return KMyMoneyPlugin::pluginInterfaces().appInterface;
94 }
95 
96 KMyMoneyPlugin::ViewInterface* KMyMoneyPlugin::Plugin::viewInterface() const
97 {
98  Q_CHECK_PTR(KMyMoneyPlugin::pluginInterfaces().viewInterface);
99  return KMyMoneyPlugin::pluginInterfaces().viewInterface;
100 }
101 
102 KMyMoneyPlugin::StatementInterface* KMyMoneyPlugin::Plugin::statementInterface() const
103 {
104  Q_CHECK_PTR(KMyMoneyPlugin::pluginInterfaces().statementInterface);
105  return KMyMoneyPlugin::pluginInterfaces().statementInterface;
106 }
107 
108 KMyMoneyPlugin::ImportInterface* KMyMoneyPlugin::Plugin::importInterface() const
109 {
110  Q_CHECK_PTR(KMyMoneyPlugin::pluginInterfaces().importInterface);
111  return KMyMoneyPlugin::pluginInterfaces().importInterface;
112 }
113 
114 KMyMoneyPlugin::ImporterPlugin::ImporterPlugin()
115 {
116 }
117 
119 {
120  QMimeDatabase db;
121  QMimeType mime = db.mimeTypeForFile(filename);
122 
123  if (!mime.isDefault())
124  for (const auto& mimeTypeName : formatMimeTypes())
125  if (mime.inherits(mimeTypeName))
126  return true;
127 
128  return false;
129 }
130 
131 KMyMoneyPlugin::ImporterPlugin::~ImporterPlugin()
132 {
133 }
bool inherits(const QString &mimeTypeName) const const
This abstract class represents the ImportInterface to add new importers to KMyMoney.
virtual void updateActions(const SelectedObjects &selections)
This method is called by the application whenever a selection changes.
QByteArray toLatin1() const const
virtual void plug(KXMLGUIFactory *guiFactory)
Called during plug in process.
virtual void updateConfiguration()
This method is called by the application whenever the configuration changes.
virtual bool isMyFormat(const QString &filename) const
This method checks whether the file provided is of expected format.
QString name() const
KToggleAction * toggleAction(const QString &name) const
See KMyMoneyApp::toggleAction() for a description.
QMimeType mimeTypeForFile(const QString &fileName, QMimeDatabase::MatchMode mode) const const
KMyMoneyPlugin::Container pPlugins
Structure of plugins objects by their interfaces.
The Container struct to hold all plugin interfaces.
QString pluginId() const
This abstract class represents the interface to import statements into the KMyMoney application.
virtual void unplug()
Called before unloading.
This abstract class represents the ViewInterface to add new view pages to the JanusWidget of KMyMoney...
Definition: viewinterface.h:47
This file is part of the KDE documentation.
Documentation copyright © 1996-2023 The KDE developers.
Generated on Fri Dec 1 2023 03:48:57 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.