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