1 /***************************************************************************
2  *                                                                         *
3  *   copyright : (C) 2007 The University of Toronto                        *
4  *                   netterfield@astro.utoronto.ca                         *
5  *                                                                         *
6  *   This program is free software; you can redistribute it and/or modify  *
7  *   it under the terms of the GNU General Public License as published by  *
8  *   the Free Software Foundation; either version 2 of the License, or     *
9  *   (at your option) any later version.                                   *
10  *                                                                         *
11  ***************************************************************************/
12 
13 #ifndef GENERICFILTERPLUGIN_H
14 #define GENERICFILTERPLUGIN_H
15 
16 #include <QFile>
17 
18 #include <basicplugin.h>
19 #include <dataobjectplugin.h>
20 
21 class GenericFilterSource : public Kst::BasicPlugin {
22   Q_OBJECT
23 
24   public:
25     virtual QString _automaticDescriptiveName() const;
26 
27     Kst::VectorPtr vector() const;
28     Kst::ScalarPtr scalarInterval() const;
29     Kst::StringPtr stringNumerator() const;
30     Kst::StringPtr stringDenominator() const;
31 
32     virtual void change(Kst::DataObjectConfigWidget *configWidget);
33 
34     void setupOutputs();
35     virtual bool algorithm();
36 
37     virtual QStringList inputVectorList() const;
38     virtual QStringList inputScalarList() const;
39     virtual QStringList inputStringList() const;
40     virtual QStringList outputVectorList() const;
41     virtual QStringList outputScalarList() const;
42     virtual QStringList outputStringList() const;
43 
44     virtual void saveProperties(QXmlStreamWriter &s);
45 
46   protected:
47     GenericFilterSource(Kst::ObjectStore *store);
48     ~GenericFilterSource();
49 
50   friend class Kst::ObjectStore;
51 
52 
53 };
54 
55 
56 class GenericFilterPlugin : public QObject, public Kst::DataObjectPluginInterface {
57     Q_OBJECT
Q_INTERFACES(Kst::DataObjectPluginInterface)58     Q_INTERFACES(Kst::DataObjectPluginInterface)
59     Q_PLUGIN_METADATA(IID "com.kst.DataObjectPluginInterface/2.0")
60   public:
61     virtual ~GenericFilterPlugin() {}
62 
63     virtual QString pluginName() const;
64     virtual QString pluginDescription() const;
65 
pluginType()66     virtual DataObjectPluginInterface::PluginTypeID pluginType() const { return Generic; }
67 
hasConfigWidget()68     virtual bool hasConfigWidget() const { return true; }
69 
70     virtual Kst::DataObject *create(Kst::ObjectStore *store, Kst::DataObjectConfigWidget *configWidget, bool setupInputsOutputs = true) const;
71 
72     virtual Kst::DataObjectConfigWidget *configWidget(QSettings *settingsObject) const;
73 };
74 
75 #endif
76 // vim: ts=2 sw=2 et
77