Added Logic for Customizable Plugin and Filter Support Framework
[photoenhancer] / src / app / engine / filterloader.h
1 #ifndef FILTERLOADER_H
2 #define FILTERLOADER_H
3
4 #include <QObject>
5 #include "filterinterface.h"
6 #include <QMap>
7 struct Filter
8 {
9     FilterInterface *filter;
10     QString description;
11     QString author;
12 };
13
14 //The class deals with the filters.
15
16 class FilterLoader : public QObject
17 {
18     Q_OBJECT
19 public:
20     explicit FilterLoader(QObject *parent = 0);
21     Filter getFilter(QString id) const;
22 signals:
23     void filterReady(QString displayableName,QString id);
24 public slots:
25 private:
26     //a List of available filters accessed through an id
27     QMap<QString,Filter> mFilters;
28     bool hasInitialized;
29 public:
30     void loadFilters();
31 private:
32     QStringList fetchFilterSpecs();
33
34     void parseSpec(QString file);
35
36     bool loadFilter(QString);
37
38 };
39
40 #endif // FILTERLOADER_H