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