]> Creatis software - cpPlugins.git/blobdiff - appli/cpPipelineEditor/QNEBlock.h
More on graph editor
[cpPlugins.git] / appli / cpPipelineEditor / QNEBlock.h
index dfe51991deb45c99bc576038c46b6a26853c4029..8e95ce0863e1fc32df85f97d413b2baa47e3c2b2 100644 (file)
@@ -37,6 +37,7 @@ namespace PipelineEditor
   class QNETypePort;\r
   class QNEInputPort;\r
   class QNEOutputPort;\r
+  class QNEConnection;\r
 \r
   class QNEBlock\r
     : public QGraphicsPathItem\r
@@ -56,34 +57,25 @@ namespace PipelineEditor
     virtual ~QNEBlock( );\r
 \r
     void setNamePort( const QString& txt );\r
-    void setTypePort( const QString& txt );\r
-    void addInputPort( const QString& txt );\r
-    void addOutputPort( const QString& txt );\r
-    QVector< QNEPort* > ports( );\r
-\r
-    inline QNENamePort* namePort( )\r
-      { return( this->m_NamePort ); }\r
-    inline QNETypePort* typePort( )\r
-      { return( this->m_TypePort ); }\r
-    inline QVector< QNEInputPort* >& inputPorts( )\r
-      { return( this->m_InputPorts ); }\r
-    inline QVector< QNEOutputPort* >& outputPorts( )\r
-      { return( this->m_OutputPorts ); }\r
-\r
-    inline const QNENamePort* namePort( ) const\r
-      { return( this->m_NamePort ); }\r
-    inline const QNETypePort* typePort( ) const\r
-      { return( this->m_TypePort ); }\r
-    inline const QVector< QNEInputPort* >& inputPorts( ) const\r
-      { return( this->m_InputPorts ); }\r
-    inline const QVector< QNEOutputPort* >& outputPorts( ) const\r
-      { return( this->m_OutputPorts ); }\r
-\r
-    QNEBlock* clone( );\r
+    QNEInputPort* addInputPort( const QString& txt );\r
+    QNEOutputPort* addOutputPort( const QString& txt );\r
+\r
+    bool extendInputPort( const QString& txt, QNEConnection* conn );\r
+    bool extendOutputPort( const QString& txt, QNEConnection* conn );\r
+\r
+    QNEInputPort* inputPort( const QString& txt );\r
+    QNEOutputPort* outputPort( const QString& txt );\r
+\r
+    QString namePort( ) const;\r
+    const QNEInputPort* inputPort( const QString& txt ) const;\r
+    const QNEOutputPort* outputPort( const QString& txt ) const;\r
+    const QNEConnection* extendedInputPort( const QString& txt ) const;\r
+    const QNEConnection* extendedOutputPort( const QString& txt ) const;\r
+\r
     inline int type( ) const\r
       { return( this->Type ); }\r
 \r
-    void paint(\r
+    virtual void paint(\r
       QPainter* painter,\r
       const QStyleOptionGraphicsItem* option,\r
       QWidget* widget\r
@@ -91,8 +83,11 @@ namespace PipelineEditor
     \r
   protected:\r
     QVariant itemChange( GraphicsItemChange change, const QVariant& value );\r
+    void _setTypePort( const QString& txt );\r
     void _configPort( QNEPort* port );\r
 \r
+    virtual void mouseReleaseEvent( QGraphicsSceneMouseEvent* evt );\r
+\r
   private:\r
     int m_HorzMargin;\r
     int m_VertMargin;\r
@@ -101,8 +96,10 @@ namespace PipelineEditor
 \r
     QNENamePort* m_NamePort;\r
     QNETypePort* m_TypePort;\r
-    QVector< QNEInputPort* >  m_InputPorts;\r
-    QVector< QNEOutputPort* > m_OutputPorts;\r
+    std::map< std::string, QNEInputPort* >  m_InputPorts;\r
+    std::map< std::string, QNEOutputPort* > m_OutputPorts;\r
+    std::map< std::string, QNEConnection* > m_ExtOutputPorts;\r
+    std::map< std::string, QNEConnection* > m_ExtInputPorts;\r
 \r
     TFilter::Pointer m_Filter;\r
   };\r