]> Creatis software - cpPlugins.git/blobdiff - lib/cpBaseQtApplication/Pipeline/Port.cxx
Moved to version 1.0
[cpPlugins.git] / lib / cpBaseQtApplication / Pipeline / Port.cxx
diff --git a/lib/cpBaseQtApplication/Pipeline/Port.cxx b/lib/cpBaseQtApplication/Pipeline/Port.cxx
deleted file mode 100644 (file)
index f5b0b01..0000000
+++ /dev/null
@@ -1,358 +0,0 @@
-#include <cpBaseQtApplication/Pipeline/Port.h>\r
-#include <cpBaseQtApplication/Pipeline/Connection.h>\r
-#include <cpBaseQtApplication/Pipeline/Block.h>\r
-\r
-#include <QGraphicsScene>\r
-#include <QGraphicsSceneContextMenuEvent>\r
-#include <QFontMetrics>\r
-#include <QMenu>\r
-#include <QPainter>\r
-#include <QPen>\r
-\r
-// -------------------------------------------------------------------------\r
-cpBaseQtApplication::Pipeline::Port::\r
-Port( QGraphicsItem* parent, QGraphicsScene* scene )\r
-  : QObject( ),\r
-    Superclass( parent, scene ),\r
-    m_Radius( 5 ),\r
-    m_Margin( 2 )\r
-{\r
-  this->m_Label = new QGraphicsTextItem( this );\r
-  this->m_ExtendedLabel = new QGraphicsTextItem( this );\r
-  this->setExtend( false );\r
-\r
-  QPainterPath p;\r
-  p.addEllipse( 0, 0, 2 * this->m_Radius, 2 * this->m_Radius );\r
-\r
-  this->setPath( p );\r
-  this->setPen( QPen( Qt::darkRed ) );\r
-  this->setBrush( Qt::red );\r
-  this->setFlag( QGraphicsItem::ItemSendsScenePositionChanges );\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-cpBaseQtApplication::Pipeline::Port::\r
-~Port( )\r
-{\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-void cpBaseQtApplication::Pipeline::Port::\r
-setBlock( Block* b )\r
-{\r
-  this->m_Block = b;\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-void cpBaseQtApplication::Pipeline::Port::\r
-setName( const QString& n )\r
-{\r
-  this->m_Label->setPlainText( n );\r
-  this->_updateLabels( );\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-void cpBaseQtApplication::Pipeline::Port::\r
-setExtendedName( const QString& n )\r
-{\r
-  this->m_ExtendedLabel->setPlainText( n );\r
-  this->_updateLabels( );\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-void cpBaseQtApplication::Pipeline::Port::\r
-setExtend( bool extend )\r
-{\r
-  // Do nothing!\r
-  this->m_IsExtended = false;\r
-  this->m_ExtendedLabel->setVisible( false );\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-void cpBaseQtApplication::Pipeline::Port::\r
-paint(\r
-  QPainter* painter,\r
-  const QStyleOptionGraphicsItem* option,\r
-  QWidget* widget\r
-  )\r
-{\r
-  Q_UNUSED( option );\r
-  Q_UNUSED( widget );\r
-\r
-  if( this->isExtended( ) )\r
-  {\r
-    painter->setPen( QPen( Qt::darkBlue ) );\r
-    painter->setBrush( Qt::blue );\r
-  }\r
-  else\r
-  {\r
-    painter->setPen( QPen( Qt::darkRed ) );\r
-    painter->setBrush( Qt::red );\r
-\r
-  } // fi\r
-  painter->drawPath( this->path( ) );\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-cpBaseQtApplication::Pipeline::NamePort::\r
-NamePort( QGraphicsItem* parent, QGraphicsScene* scene )\r
-  : Superclass( parent, scene )\r
-{\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-cpBaseQtApplication::Pipeline::NamePort::\r
-~NamePort( )\r
-{\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-bool cpBaseQtApplication::Pipeline::NamePort::\r
-isConnected( Port* other )\r
-{\r
-  return( false );\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-void cpBaseQtApplication::Pipeline::NamePort::\r
-_updateLabels( )\r
-{\r
-  QFont font( this->scene( )->font( ) );\r
-  font.setBold( true );\r
-  this->m_Label->setFont( font );\r
-  this->m_ExtendedLabel->setFont( font );\r
-  this->setPath( QPainterPath( ) );\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-cpBaseQtApplication::Pipeline::InfoPort::\r
-InfoPort( QGraphicsItem* parent, QGraphicsScene* scene )\r
-  : Superclass( parent, scene )\r
-{\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-cpBaseQtApplication::Pipeline::InfoPort::\r
-~InfoPort( )\r
-{\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-bool cpBaseQtApplication::Pipeline::InfoPort::\r
-isConnected( Port* other )\r
-{\r
-  return( false );\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-void cpBaseQtApplication::Pipeline::InfoPort::\r
-_updateLabels( )\r
-{\r
-  QFont font( this->scene( )->font( ) );\r
-  font.setBold( false );\r
-  this->m_Label->setFont( font );\r
-  this->m_ExtendedLabel->setFont( font );\r
-  this->setPath( QPainterPath( ) );\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-cpBaseQtApplication::Pipeline::InputPort::\r
-InputPort( QGraphicsItem* parent, bool multiple, QGraphicsScene* scene )\r
-  : Superclass( parent, scene ),\r
-    m_IsMultiple( multiple )\r
-{\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-cpBaseQtApplication::Pipeline::InputPort::\r
-~InputPort( )\r
-{\r
-   this->m_Connection.clear( );\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-void cpBaseQtApplication::Pipeline::InputPort::\r
-_updateLabels( )\r
-{\r
-  QFontMetrics fm( this->scene( )->font( ) );\r
-  this->m_Label->setPos( this->m_Radius * 2, -fm.height( ) / 2 );\r
-  this->m_ExtendedLabel->setPos(\r
-    -fm.width( this->extendedName( ) ) - this->m_Radius * 2,\r
-    -fm.height( ) / 2\r
-    );\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-void cpBaseQtApplication::Pipeline::InputPort::\r
-setExtend( bool extend )\r
-{\r
-  if( this->m_Connection.size( ) == 0 )\r
-  {\r
-    this->m_IsExtended = extend;\r
-    this->m_ExtendedLabel->setVisible( extend );\r
-  }\r
-  else\r
-    this->Superclass::setExtend( false );\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-bool cpBaseQtApplication::Pipeline::InputPort::\r
-isConnected( Port* other )\r
-{\r
-  bool conn = false;\r
-  auto i = this->m_Connection.begin( );\r
-  for( ; i != this->m_Connection.end( ); ++i )\r
-    conn |= ( ( *i )->port1( ) == other && ( *i )->port2( ) == this );\r
-  return( conn );\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-void cpBaseQtApplication::Pipeline::InputPort::\r
-setConnection( Connection* c )\r
-{\r
-  if( this->m_IsMultiple || this->m_Connection.size( ) == 0 )\r
-    this->m_Connection.push_back( c );\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-void cpBaseQtApplication::Pipeline::InputPort::\r
-removeConnection( Connection* c )\r
-{\r
-  auto i = std::find(\r
-    this->m_Connection.begin( ),\r
-    this->m_Connection.end( ),\r
-    c\r
-    );\r
-  if( i != this->m_Connection.end( ) )\r
-  {\r
-    *i = NULL;\r
-    this->m_Connection.erase( i );\r
-\r
-  } // fi\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-QVariant cpBaseQtApplication::Pipeline::InputPort::\r
-itemChange( GraphicsItemChange change, const QVariant& value )\r
-{\r
-  if( change == ItemScenePositionHasChanged )\r
-  {\r
-    for(\r
-      auto i = this->m_Connection.begin( );\r
-      i != this->m_Connection.end( );\r
-      ++i\r
-      )\r
-    {\r
-      ( *i )->updatePosFromPorts( );\r
-      ( *i )->updatePath( );\r
-\r
-    } // fi\r
-\r
-  } // fi\r
-  return( value );\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-cpBaseQtApplication::Pipeline::OutputPort::\r
-OutputPort( QGraphicsItem* parent, QGraphicsScene* scene )\r
-  : Superclass( parent, scene )\r
-{\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-cpBaseQtApplication::Pipeline::OutputPort::\r
-~OutputPort( )\r
-{\r
-  foreach( Connection* conn, this->m_Connections )\r
-    delete conn;\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-void cpBaseQtApplication::Pipeline::OutputPort::\r
-_updateLabels( )\r
-{\r
-  QFontMetrics fm( this->scene( )->font( ) );\r
-  this->m_Label->setPos(\r
-    -fm.width( this->name( ) ) - this->m_Radius * 2, -fm.height( ) / 2\r
-    );\r
-  this->m_ExtendedLabel->setPos( this->m_Radius * 2, -fm.height( ) / 2 );\r
-\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-void cpBaseQtApplication::Pipeline::OutputPort::\r
-removeConnection( Connection* c )\r
-{\r
-  auto i = std::find(\r
-    this->m_Connections.begin( ),\r
-    this->m_Connections.end( ),\r
-    c\r
-    );\r
-  if( i != this->m_Connections.end( ) )\r
-  {\r
-    *i = NULL;\r
-    this->m_Connections.erase( i );\r
-\r
-  } // fi\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-void cpBaseQtApplication::Pipeline::OutputPort::\r
-setExtend( bool extend )\r
-{\r
-  this->m_IsExtended = extend;\r
-  this->m_ExtendedLabel->setVisible( extend );\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-bool cpBaseQtApplication::Pipeline::OutputPort::\r
-isConnected( Port* other )\r
-{\r
-  auto i = this->m_Connections.begin( );\r
-  bool conn = false;\r
-  for( ; i != this->m_Connections.end( ) && !conn; ++i )\r
-    conn |= ( ( *i )->port1( ) == this && ( *i )->port2( ) == other );\r
-  return( conn );\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-QVariant cpBaseQtApplication::Pipeline::OutputPort::\r
-itemChange( GraphicsItemChange change, const QVariant& value )\r
-{\r
-  if( change == ItemScenePositionHasChanged )\r
-  {\r
-    foreach( Connection* conn, this->m_Connections )\r
-    {\r
-      conn->updatePosFromPorts( );\r
-      conn->updatePath( );\r
-\r
-    } // rof\r
-\r
-  } // fi\r
-  return( value );\r
-}\r
-\r
-// -------------------------------------------------------------------------\r
-void cpBaseQtApplication::Pipeline::OutputPort::\r
-contextMenuEvent( QGraphicsSceneContextMenuEvent* evt )\r
-{\r
-  if( this->m_Block == NULL )\r
-    return;\r
-  \r
-  QMenu menu;\r
-  QAction* showAction = menu.addAction( "Show" );\r
-  QAction* hideAction = menu.addAction( "Hide" );\r
-  QAction* selectedAction = menu.exec( evt->screenPos( ) );\r
-\r
-  if( selectedAction == showAction || selectedAction == hideAction )\r
-  {\r
-    std::stringstream str;\r
-    str\r
-      << this->name( ).toStdString( ) << "@"\r
-      << this->m_Block->filter( )->GetName( );\r
-    emit viewData( str.str( ), ( selectedAction == showAction ) );\r
-\r
-  } // fi\r
-}\r
-\r
-// eof - $RCSfile$\r