Files
gcs-nf/App/Plugins/ManifestScanner.h
T

35 lines
775 B
C++
Raw Normal View History

#ifndef MANIFESTSCANNER_H
#define MANIFESTSCANNER_H
#include <QObject>
#include <QStringList>
#include <QMap>
#include "PluginManifest.h"
class ManifestScanner : public QObject
{
Q_OBJECT
public:
explicit ManifestScanner(QObject *parent = nullptr);
void setPluginDirectories(const QStringList &dirs);
QStringList pluginDirectories() const;
QList<PluginManifest> scanAll();
QList<PluginManifest> discoveredPlugins() const;
static QString findManifestFile(const QString &pluginDir);
signals:
void pluginDiscovered(const PluginManifest &manifest);
void scanComplete(int totalCount);
private:
QList<PluginManifest> scanDirectory(const QString &dir);
QStringList m_pluginDirs;
QList<PluginManifest> m_discovered;
};
#endif