X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=appli%2FcpPipelineEditor%2FQNEBlock.h;h=d1a398ee81330715559be639ebf10dc88a896abe;hb=f8c546490b7168b5c75d877bf66d27f83aa9412c;hp=524988aab73cb106c5e0cced727b0eb2f7a648d8;hpb=9c75dcecf566cc567583caf4687ce523a2af586d;p=cpPlugins.git diff --git a/appli/cpPipelineEditor/QNEBlock.h b/appli/cpPipelineEditor/QNEBlock.h index 524988a..d1a398e 100644 --- a/appli/cpPipelineEditor/QNEBlock.h +++ b/appli/cpPipelineEditor/QNEBlock.h @@ -28,10 +28,15 @@ #define __PIPELINEEDITOR__QNEBLOCK__H__ #include +#include namespace PipelineEditor { class QNEPort; + class QNENamePort; + class QNETypePort; + class QNEInputPort; + class QNEOutputPort; class QNEBlock : public QGraphicsPathItem @@ -39,39 +44,55 @@ namespace PipelineEditor public: typedef QNEBlock Self; typedef QGraphicsPathItem Superclass; + typedef cpPlugins::Interface::ProcessObject TFilter; public: - enum { Type = QGraphicsItem::UserType + 3 }; + enum { Type = QGraphicsItem::UserType + 6 }; - QNEBlock( QGraphicsItem* parent = NULL, QGraphicsScene* scene = NULL ); + QNEBlock( + TFilter* filter, + QGraphicsItem* parent = NULL, QGraphicsScene* scene = NULL + ); virtual ~QNEBlock( ); - QNEPort* addPort( - const QString& name, bool isOutput, int flags = 0, int ptr = 0 - ); - QNEPort* addInputPort( const QString& name ); - QNEPort* addOutputPort( const QString& name ); - void addInputPorts( const QStringList& names ); - void addOutputPorts( const QStringList& names ); + void setNamePort( const QString& txt ); + QNEInputPort* addInputPort( const QString& txt ); + QNEOutputPort* addOutputPort( const QString& txt ); + QNEInputPort* inputPort( const QString& txt ); + QNEOutputPort* outputPort( const QString& txt ); + + const QString& namePort( ) const; + const QNEInputPort* inputPort( const QString& txt ) const; + const QNEOutputPort* outputPort( const QString& txt ) const; + + inline int type( ) const + { return( this->Type ); } + void paint( QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget ); - QNEBlock* clone( ); - QVector< QNEPort* > ports( ); - - int type( ) const - { return( this->Type ); } - + protected: QVariant itemChange( GraphicsItemChange change, const QVariant& value ); + void _setTypePort( const QString& txt ); + void _configPort( QNEPort* port ); + + virtual void mouseReleaseEvent( QGraphicsSceneMouseEvent* evt ); private: int m_HorzMargin; int m_VertMargin; int m_Width; int m_Height; + + QNENamePort* m_NamePort; + QNETypePort* m_TypePort; + std::map< std::string, QNEInputPort* > m_InputPorts; + std::map< std::string, QNEOutputPort* > m_OutputPorts; + + TFilter::Pointer m_Filter; }; } // ecapseman