File indexing completed on 2024-05-12 04:33:20

0001 /*
0002     SPDX-FileCopyrightText: 2012 Victor Dodon <dodonvictor at gmail dot com>
0003     SPDX-FileCopyrightText: 2012-2018 Gilles Caulier <caulier dot gilles at gmail dot com>
0004 
0005     SPDX-License-Identifier: GPL-2.0-or-later
0006 */
0007 
0008 #ifndef KIPITESTPLUGINLOADER_H
0009 #define KIPITESTPLUGINLOADER_H
0010 
0011 // Qt includes
0012 
0013 #include <QObject>
0014 #include <QList>
0015 #include <QString>
0016 
0017 // Libkipi includes
0018 
0019 #include "plugin.h"
0020 #include "pluginloader.h"
0021 
0022 class QAction;
0023 
0024 class KActionCollection;
0025 class KXmlGuiWindow;
0026 
0027 using namespace KIPI;
0028 
0029 namespace KXMLKipiCmd
0030 {
0031 
0032 class KipiInterface;
0033 
0034 class KipiTestPluginLoader : public QObject
0035 {
0036     Q_OBJECT
0037 
0038 public:
0039 
0040     KipiTestPluginLoader(KXmlGuiWindow* const parent, KipiInterface* const interface);
0041 
0042     QList<PluginLoader::Info*> pluginList();
0043     QList<QAction*>            kipiActionsByCategory(Category cat) const;
0044     KActionCollection*         pluginsActionCollection() const;
0045 
0046     static KipiTestPluginLoader* instance();
0047 
0048 
0049 private Q_SLOTS:
0050 
0051     /** Called by PluginLoader when plugins list must be reloaded
0052      */
0053     void slotKipiPluginsPlug();
0054 
0055 private:
0056 
0057     ~KipiTestPluginLoader() override;
0058 
0059     void loadPlugins();
0060     void checkEmptyCategory(Category cat);
0061     QString categoryName(Category cat) const;
0062     QString categoryShortName(Category cat) const;
0063 
0064 private:
0065 
0066     static KipiTestPluginLoader* m_instance;
0067 
0068     class Private;
0069     Private* const d;
0070 };
0071 
0072 } // namespace KXMLKipiCmd
0073 
0074 #endif // KIPITESTPLUGINLOADER_H