80 changes: 80 additions & 0 deletions src/plugins/filters/unwind/filterunwind.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
/***************************************************************************
* *
* copyright : (C) 2007 The University of Toronto *
* netterfield@astro.utoronto.ca *
* copyright : (C) 2005 University of British Columbia *
* dscott@phas.ubc.ca *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************/

#ifndef FILTERUNWINDPLUGIN_H
#define FILTERUNWINDPLUGIN_H

#include <QFile>

#include <basicplugin.h>
#include <dataobjectplugin.h>

class FilterUnwindSource : public Kst::BasicPlugin {
Q_OBJECT

public:
virtual QString _automaticDescriptiveName() const;

virtual QString descriptionTip() const;

Kst::VectorPtr vector() const;
Kst::ScalarPtr minimumScalar() const;
Kst::ScalarPtr maximumScalar() const;
Kst::ScalarPtr stepScalar() const;

virtual void change(Kst::DataObjectConfigWidget *configWidget);

void setupOutputs();
virtual bool algorithm();

virtual QStringList inputVectorList() const;
virtual QStringList inputScalarList() const;
virtual QStringList inputStringList() const;
virtual QStringList outputVectorList() const;
virtual QStringList outputScalarList() const;
virtual QStringList outputStringList() const;

virtual void saveProperties(QXmlStreamWriter &s);

protected:
FilterUnwindSource(Kst::ObjectStore *store);
~FilterUnwindSource();

friend class Kst::ObjectStore;


};


class FilterUnwindPlugin : public QObject, public Kst::DataObjectPluginInterface {
Q_OBJECT
Q_INTERFACES(Kst::DataObjectPluginInterface)
Q_PLUGIN_METADATA(IID "com.kst.DataObjectPluginInterface/2.0")
public:
virtual ~FilterUnwindPlugin() {}

virtual QString pluginName() const;
virtual QString pluginDescription() const;

virtual DataObjectPluginInterface::PluginTypeID pluginType() const { return Filter; }

virtual bool hasConfigWidget() const { return true; }

virtual Kst::DataObject *create(Kst::ObjectStore *store, Kst::DataObjectConfigWidget *configWidget, bool setupInputsOutputs = true) const;

virtual Kst::DataObjectConfigWidget *configWidget(QSettings *settingsObject) const;
};

#endif
// vim: ts=2 sw=2 et
132 changes: 132 additions & 0 deletions src/plugins/filters/unwind/filterunwindconfig.ui
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>FilterUnwindConfig</class>
<widget class="QWidget" name="FilterUnwindConfig">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>91</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>400</width>
<height>0</height>
</size>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QLabel" name="label_3">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Input Vector:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="wordWrap">
<bool>false</bool>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="Kst::VectorSelector" name="_vector" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_4">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Minimum:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="wordWrap">
<bool>false</bool>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="Kst::ScalarSelector" name="_scalarMinumum" native="true"/>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_5">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Maximum:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="wordWrap">
<bool>false</bool>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="Kst::ScalarSelector" name="_scalarMaximum" native="true"/>
</item>
<item row="3" column="0">
<widget class="QLabel" name="label_6">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Max Step (%):</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="wordWrap">
<bool>false</bool>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="Kst::ScalarSelector" name="_scalarStep" native="true"/>
</item>
</layout>
</widget>
<layoutdefault spacing="6" margin="11"/>
<customwidgets>
<customwidget>
<class>Kst::VectorSelector</class>
<extends>QWidget</extends>
<header>vectorselector.h</header>
</customwidget>
<customwidget>
<class>Kst::ScalarSelector</class>
<extends>QWidget</extends>
<header>scalarselector.h</header>
</customwidget>
</customwidgets>
<resources/>
<connections/>
</ui>
8 changes: 8 additions & 0 deletions src/plugins/filters/unwind/kstplugin_filter_unwind.desktop
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
[Desktop Entry]
Type=Service
ServiceTypes=Kst Data Object
X-KDE-ModuleType=Plugin
X-KDE-Library=filterunwind
X-Kst-Plugin-Author=C. Barth Netterfield
Name=Filter - Unwind Plugin
Comment=Implements an angle unwind Filter Plugin for Kst.
11 changes: 11 additions & 0 deletions src/plugins/filters/unwind/unwind.pro
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
include(../../plugins_sub.pri)

TARGET = $$kstlib(kstplugin_filterunwind)

SOURCES += \
filterunwind.cpp

HEADERS += \
filterunwind.h

FORMS += filterunwindconfig.ui