1 /*************************************************************************** 2 * * 3 * copyright : (C) 2010 The University of Toronto * 4 * sbenton@physics.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 LOCKINPLUGIN_H 14 #define LOCKINPLUGIN_H 15 16 #include <QFile> 17 18 #include <basicplugin.h> 19 #include <dataobjectplugin.h> 20 21 class LockInSource : public Kst::BasicPlugin { 22 Q_OBJECT 23 24 public: 25 virtual QString _automaticDescriptiveName() const; 26 27 Kst::VectorPtr inputVector() const; 28 Kst::VectorPtr refVector() const; 29 30 virtual void change(Kst::DataObjectConfigWidget *configWidget); 31 32 void setupOutputs(); 33 virtual bool algorithm(); 34 35 virtual QStringList inputVectorList() const; 36 virtual QStringList inputScalarList() const; 37 virtual QStringList inputStringList() const; 38 virtual QStringList outputVectorList() const; 39 virtual QStringList outputScalarList() const; 40 virtual QStringList outputStringList() const; 41 42 virtual void saveProperties(QXmlStreamWriter &s); 43 44 protected: 45 LockInSource(Kst::ObjectStore *store); 46 ~LockInSource(); 47 48 friend class Kst::ObjectStore; 49 50 51 }; 52 53 54 class LockInPlugin : public QObject, public Kst::DataObjectPluginInterface { 55 Q_OBJECT Q_INTERFACES(Kst::DataObjectPluginInterface)56 Q_INTERFACES(Kst::DataObjectPluginInterface) 57 Q_PLUGIN_METADATA(IID "com.kst.DataObjectPluginInterface/2.0") 58 public: 59 virtual ~LockInPlugin() {} 60 61 virtual QString pluginName() const; 62 virtual QString pluginDescription() const; 63 pluginType()64 virtual DataObjectPluginInterface::PluginTypeID pluginType() const { return Generic; } 65 hasConfigWidget()66 virtual bool hasConfigWidget() const { return true; } 67 68 virtual Kst::DataObject *create(Kst::ObjectStore *store, Kst::DataObjectConfigWidget *configWidget, bool setupInputsOutputs = true) const; 69 70 virtual Kst::DataObjectConfigWidget *configWidget(QSettings *settingsObject) const; 71 }; 72 73 #endif 74 // vim: ts=2 sw=2 et 75