X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=appli%2FcpPipelineEditor%2FQNEBlock.h;h=8e95ce0863e1fc32df85f97d413b2baa47e3c2b2;hb=c06908465eb6da50572779f423d1e2c9e03b68dd;hp=6b591ac726c15b8cae1016398d936289ff762bf6;hpb=f4aeff15ebb41183d4b89f41b29ec26043848722;p=cpPlugins.git diff --git a/appli/cpPipelineEditor/QNEBlock.h b/appli/cpPipelineEditor/QNEBlock.h index 6b591ac..8e95ce0 100644 --- a/appli/cpPipelineEditor/QNEBlock.h +++ b/appli/cpPipelineEditor/QNEBlock.h @@ -28,6 +28,7 @@ #define __PIPELINEEDITOR__QNEBLOCK__H__ #include +#include namespace PipelineEditor { @@ -36,6 +37,7 @@ namespace PipelineEditor class QNETypePort; class QNEInputPort; class QNEOutputPort; + class QNEConnection; class QNEBlock : public QGraphicsPathItem @@ -43,42 +45,37 @@ namespace PipelineEditor public: typedef QNEBlock Self; typedef QGraphicsPathItem Superclass; + typedef cpPlugins::Interface::ProcessObject TFilter; public: enum { Type = QGraphicsItem::UserType + 6 }; - QNEBlock( QGraphicsItem* parent = NULL, QGraphicsScene* scene = NULL ); + QNEBlock( + TFilter* filter, + QGraphicsItem* parent = NULL, QGraphicsScene* scene = NULL + ); virtual ~QNEBlock( ); void setNamePort( const QString& txt ); - void setTypePort( const QString& txt ); - void addInputPort( const QString& txt ); - void addOutputPort( const QString& txt ); - QVector< QNEPort* > ports( ); - - inline QNENamePort* namePort( ) - { return( this->m_NamePort ); } - inline QNETypePort* typePort( ) - { return( this->m_TypePort ); } - inline QVector< QNEInputPort* >& inputPorts( ) - { return( this->m_InputPorts ); } - inline QVector< QNEOutputPort* >& outputPorts( ) - { return( this->m_OutputPorts ); } - - inline const QNENamePort* namePort( ) const - { return( this->m_NamePort ); } - inline const QNETypePort* typePort( ) const - { return( this->m_TypePort ); } - inline const QVector< QNEInputPort* >& inputPorts( ) const - { return( this->m_InputPorts ); } - inline const QVector< QNEOutputPort* >& outputPorts( ) const - { return( this->m_OutputPorts ); } - - QNEBlock* clone( ); + QNEInputPort* addInputPort( const QString& txt ); + QNEOutputPort* addOutputPort( const QString& txt ); + + bool extendInputPort( const QString& txt, QNEConnection* conn ); + bool extendOutputPort( const QString& txt, QNEConnection* conn ); + + QNEInputPort* inputPort( const QString& txt ); + QNEOutputPort* outputPort( const QString& txt ); + + QString namePort( ) const; + const QNEInputPort* inputPort( const QString& txt ) const; + const QNEOutputPort* outputPort( const QString& txt ) const; + const QNEConnection* extendedInputPort( const QString& txt ) const; + const QNEConnection* extendedOutputPort( const QString& txt ) const; + inline int type( ) const { return( this->Type ); } - void paint( + virtual void paint( QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget @@ -86,8 +83,11 @@ namespace PipelineEditor 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; @@ -96,8 +96,12 @@ namespace PipelineEditor QNENamePort* m_NamePort; QNETypePort* m_TypePort; - QVector< QNEInputPort* > m_InputPorts; - QVector< QNEOutputPort* > m_OutputPorts; + std::map< std::string, QNEInputPort* > m_InputPorts; + std::map< std::string, QNEOutputPort* > m_OutputPorts; + std::map< std::string, QNEConnection* > m_ExtOutputPorts; + std::map< std::string, QNEConnection* > m_ExtInputPorts; + + TFilter::Pointer m_Filter; }; } // ecapseman