#include "QNEConnection.h"\r
#include "QNEBlock.h"\r
\r
+// -------------------------------------------------------------------------\r
+#define PipelineEditor_QNodesEditor_Callback_SWITCH( E, e ) \\r
+ case QEvent::E: \\r
+ { \\r
+ Q##E##Event* evt = dynamic_cast< Q##E##Event* >( e ); \\r
+ if( evt != NULL ) \\r
+ this->_##E##_cbk( evt ); \\r
+ } \\r
+ break\r
+\r
+// -------------------------------------------------------------------------\r
+#define PipelineEditor_QNodesEditor_Callback_CODE( E ) \\r
+ void PipelineEditor::QNodesEditor::_##E##_cbk( Q##E##Event* evt )\r
+\r
// -------------------------------------------------------------------------\r
PipelineEditor::QNodesEditor::\r
QNodesEditor( QObject* parent )\r
auto rIt_end = this->m_Workspace->GetGraph( )->EndEdgesRows( );\r
for( ; rIt != rIt_end; ++rIt )\r
{\r
- if( !this->m_Graph->HasVertexIndex( rIt->first ) )\r
- continue;\r
QNEBlock* orig = this->m_Graph->GetVertex( rIt->first );\r
- if( orig == NULL )\r
- continue;\r
- QVector< QNEOutputPort* >& oPorts = orig->outputPorts( );\r
-\r
auto cIt = rIt->second.begin( );\r
for( ; cIt != rIt->second.end( ); ++cIt )\r
{\r
- if( !this->m_Graph->HasVertexIndex( cIt->first ) )\r
- continue;\r
QNEBlock* dest = this->m_Graph->GetVertex( cIt->first );\r
- if( dest == NULL )\r
- continue;\r
- QVector< QNEInputPort* >& iPorts = dest->inputPorts( );\r
-\r
auto eIt = cIt->second.begin( );\r
for( ; eIt != cIt->second.end( ); ++eIt )\r
{\r
- QNEOutputPort* op = NULL;\r
- auto opIt = oPorts.begin( );\r
- for( ; opIt != oPorts.end( ) && op == NULL; ++opIt )\r
- if( ( *opIt )->name( ).toStdString( ) == eIt->first )\r
- op = *opIt;\r
-\r
- QNEInputPort* ip = NULL;\r
- auto ipIt = iPorts.begin( );\r
- for( ; ipIt != iPorts.end( ) && ip == NULL; ++ipIt )\r
- if( ( *ipIt )->name( ).toStdString( ) == eIt->second )\r
- ip = *ipIt;\r
-\r
+ QNEOutputPort* op = orig->outputPort( eIt->first.c_str( ) );\r
+ QNEInputPort* ip = dest->inputPort( eIt->second.c_str( ) );\r
if( op == NULL || ip == NULL )\r
continue;\r
\r
- QNEConnection* conn = new QNEConnection( 0, this->m_Scene );\r
- conn->setPort1( op );\r
- conn->setPort2( ip );\r
- conn->updatePosFromPorts( );\r
- conn->updatePath( );\r
- this->m_Graph->AddConnection( rIt->first, cIt->first, conn );\r
+ QNEConnection* c = new QNEConnection( 0, this->m_Scene );\r
+ c->setPort1( op );\r
+ c->setPort2( ip );\r
+ c->updatePosFromPorts( );\r
+ c->updatePath( );\r
+ this->m_Graph->AddConnection( rIt->first, cIt->first, c );\r
\r
} // rof\r
\r
return( "" );\r
}\r
\r
-// -------------------------------------------------------------------------\r
-void PipelineEditor::QNodesEditor::\r
-synchronizeBlockPositions( )\r
-{\r
- auto bIt = this->m_Graph->BeginVertices( );\r
- auto fIt = this->m_Workspace->GetGraph( )->BeginVertices( );\r
- while(\r
- bIt != this->m_Graph->EndVertices( ) &&\r
- fIt != this->m_Workspace->GetGraph( )->EndVertices( )\r
- )\r
- {\r
- auto pos = bIt->second->scenePos( );\r
- fIt->second->SetViewCoords( pos.x( ), pos.y( ) );\r
- bIt++;\r
- fIt++;\r
-\r
- } // elihw\r
-}\r
-\r
// -------------------------------------------------------------------------\r
void PipelineEditor::QNodesEditor::\r
install( QGraphicsScene* s )\r
return;\r
\r
// Add block\r
- QNEBlock* b = new QNEBlock( 0, this->m_Scene );\r
- b->setNamePort( f->GetName( ) );\r
- b->setTypePort( f->GetClassName( ) );\r
+ QNEBlock* b = new QNEBlock( f, 0, this->m_Scene );\r
b->setPos( pnt );\r
\r
- // Add input ports\r
- std::set< std::string > inputs;\r
- f->GetInputsNames( inputs );\r
- for( auto iIt = inputs.begin( ); iIt != inputs.end( ); ++iIt )\r
- b->addInputPort( iIt->c_str( ) );\r
-\r
- // Add output ports\r
- std::set< std::string > outputs;\r
- f->GetOutputsNames( outputs );\r
- for( auto oIt = outputs.begin( ); oIt != outputs.end( ); ++oIt )\r
- b->addOutputPort( oIt->c_str( ) );\r
-\r
// Keep a trace of this visual graph\r
this->m_Graph->SetVertex( f->GetName( ), b );\r
}\r
\r
// -------------------------------------------------------------------------\r
+/* TODO\r
void PipelineEditor::QNodesEditor::\r
_DoubleClick( QGraphicsSceneMouseEvent* evt, QGraphicsItem* item )\r
{\r
\r
if( block != NULL )\r
{\r
- QString old_name = block->namePort( )->name( );\r
+ QString old_name = block->namePort( );\r
bool ok;\r
QString new_name =\r
QInputDialog::getText(\r
);\r
if( ok )\r
{\r
- block->namePort( )->setName( new_name );\r
+ block->setNamePort( new_name );\r
this->m_Workspace->GetGraph( )->RenameVertex(\r
old_name.toStdString( ),\r
new_name.toStdString( )\r
} // fi\r
\r
} // fi\r
-\r
- /* TODO\r
- auto ports = block->ports( );\r
- std::string name = "";\r
- for(\r
- auto pIt = ports.begin( );\r
- pIt != ports.end( ) && name == "";\r
- ++pIt\r
- )\r
- if(\r
- ( *pIt )->portFlags( ) && QNEPort::NamePort == QNEPort::NamePort\r
- )\r
- name = ( *pIt )->portName( ).toStdString( );\r
- if( name == "" )\r
- return;\r
- TFilter* filter = this->m_Workspace->GetFilter( name );\r
- if( filter != NULL )\r
- {\r
- } // fi\r
- */\r
}\r
else if( port != NULL )\r
{\r
} // fi\r
}\r
break;\r
- /* TODO:\r
case Qt::RightButton:\r
{\r
}\r
{\r
}\r
break;\r
- */\r
default:\r
break;\r
} // hctiws\r
}\r
+ */\r
\r
// -------------------------------------------------------------------------\r
bool PipelineEditor::QNodesEditor::\r
// Event type\r
switch( int( e->type( ) ) )\r
{\r
- case QEvent::GraphicsSceneContextMenu:\r
- {\r
- QGraphicsSceneContextMenuEvent* evt =\r
- dynamic_cast< QGraphicsSceneContextMenuEvent* >( e );\r
- if( evt != NULL )\r
- {\r
- } // fi\r
- }\r
- break;\r
- case QEvent::GraphicsSceneDragEnter:\r
- {\r
- QGraphicsSceneDragDropEvent* evt =\r
- dynamic_cast< QGraphicsSceneDragDropEvent* >( e );\r
- if( evt != NULL )\r
- {\r
- } // fi\r
- }\r
- break;\r
- case QEvent::GraphicsSceneDragLeave:\r
- {\r
- QGraphicsSceneDragDropEvent* evt =\r
- dynamic_cast< QGraphicsSceneDragDropEvent* >( e );\r
- if( evt != NULL )\r
- {\r
- } // fi\r
- }\r
- break;\r
- case QEvent::GraphicsSceneDragMove:\r
- {\r
- QGraphicsSceneDragDropEvent* evt =\r
- dynamic_cast< QGraphicsSceneDragDropEvent* >( e );\r
- if( evt != NULL )\r
- {\r
- } // fi\r
- }\r
- break;\r
- case QEvent::GraphicsSceneDrop:\r
- {\r
- QGraphicsSceneDragDropEvent* evt =\r
- dynamic_cast< QGraphicsSceneDragDropEvent* >( e );\r
- if( evt != NULL )\r
- {\r
- } // fi\r
- }\r
- break;\r
- case QEvent::GraphicsSceneHelp:\r
- {\r
- QGraphicsSceneHelpEvent* evt =\r
- dynamic_cast< QGraphicsSceneHelpEvent* >( e );\r
- if( evt != NULL )\r
- {\r
- } // fi\r
- }\r
- break;\r
- case QEvent::GraphicsSceneHoverEnter:\r
- {\r
- QGraphicsSceneHoverEvent* evt =\r
- dynamic_cast< QGraphicsSceneHoverEvent* >( e );\r
- if( evt != NULL )\r
- {\r
- } // fi\r
- }\r
- break;\r
- case QEvent::GraphicsSceneHoverLeave:\r
- {\r
- QGraphicsSceneHoverEvent* evt =\r
- dynamic_cast< QGraphicsSceneHoverEvent* >( e );\r
- if( evt != NULL )\r
- {\r
- } // fi\r
- }\r
- break;\r
- case QEvent::GraphicsSceneHoverMove:\r
- {\r
- QGraphicsSceneHoverEvent* evt =\r
- dynamic_cast< QGraphicsSceneHoverEvent* >( e );\r
- if( evt != NULL )\r
- {\r
- } // fi\r
- }\r
- break;\r
- case QEvent::GraphicsSceneMouseDoubleClick:\r
- {\r
- QGraphicsSceneMouseEvent* evt =\r
- dynamic_cast< QGraphicsSceneMouseEvent* >( e );\r
- if( evt != NULL )\r
- {\r
- QGraphicsItem* item = this->itemAt( evt->scenePos( ) );\r
- if( item != NULL )\r
- {\r
- this->_DoubleClick( evt, item );\r
- return( true );\r
+ PipelineEditor_QNodesEditor_Callback_SWITCH( GraphicsSceneContextMenu, e );\r
+ PipelineEditor_QNodesEditor_Callback_SWITCH( GraphicsSceneDragEnter, e );\r
+ PipelineEditor_QNodesEditor_Callback_SWITCH( GraphicsSceneDragLeave, e );\r
+ PipelineEditor_QNodesEditor_Callback_SWITCH( GraphicsSceneDragMove, e );\r
+ PipelineEditor_QNodesEditor_Callback_SWITCH( GraphicsSceneDrop, e );\r
+ PipelineEditor_QNodesEditor_Callback_SWITCH( GraphicsSceneHelp, e );\r
+ PipelineEditor_QNodesEditor_Callback_SWITCH( GraphicsSceneHoverEnter, e );\r
+ PipelineEditor_QNodesEditor_Callback_SWITCH( GraphicsSceneHoverLeave, e );\r
+ PipelineEditor_QNodesEditor_Callback_SWITCH( GraphicsSceneHoverMove, e );\r
+ PipelineEditor_QNodesEditor_Callback_SWITCH( GraphicsSceneMouseDoubleClick, e );\r
+ PipelineEditor_QNodesEditor_Callback_SWITCH( GraphicsSceneMouseMove, e );\r
+ PipelineEditor_QNodesEditor_Callback_SWITCH( GraphicsSceneMousePress, e );\r
+ PipelineEditor_QNodesEditor_Callback_SWITCH( GraphicsSceneMouseRelease, e );\r
+ PipelineEditor_QNodesEditor_Callback_SWITCH( GraphicsSceneMove, e );\r
+ PipelineEditor_QNodesEditor_Callback_SWITCH( GraphicsSceneResize, e );\r
+ PipelineEditor_QNodesEditor_Callback_SWITCH( GraphicsSceneWheel, e );\r
+ default:\r
+ break;\r
+ } // hctiws\r
\r
- } // fi\r
+ return( this->Superclass::eventFilter( o, e ) );\r
+}\r
\r
- } // fi\r
- }\r
- break;\r
- case QEvent::GraphicsSceneMouseMove:\r
- {\r
- QGraphicsSceneMouseEvent* evt =\r
- dynamic_cast< QGraphicsSceneMouseEvent* >( e );\r
- if( evt != NULL )\r
- {\r
- if( this->m_Conn )\r
- {\r
- this->m_Conn->setPos2( evt->scenePos( ) );\r
- this->m_Conn->updatePath( );\r
- return( true );\r
+// -------------------------------------------------------------------------\r
+PipelineEditor_QNodesEditor_Callback_CODE( GraphicsSceneContextMenu )\r
+{\r
+}\r
\r
- } // fi\r
+// -------------------------------------------------------------------------\r
+PipelineEditor_QNodesEditor_Callback_CODE( GraphicsSceneDragEnter )\r
+{\r
+}\r
\r
- } // fi\r
- }\r
- break;\r
- case QEvent::GraphicsSceneMousePress:\r
+// -------------------------------------------------------------------------\r
+PipelineEditor_QNodesEditor_Callback_CODE( GraphicsSceneDragLeave )\r
+{\r
+}\r
+\r
+// -------------------------------------------------------------------------\r
+PipelineEditor_QNodesEditor_Callback_CODE( GraphicsSceneDragMove )\r
+{\r
+}\r
+\r
+// -------------------------------------------------------------------------\r
+PipelineEditor_QNodesEditor_Callback_CODE( GraphicsSceneDrop )\r
+{\r
+}\r
+\r
+// -------------------------------------------------------------------------\r
+PipelineEditor_QNodesEditor_Callback_CODE( GraphicsSceneHelp )\r
+{\r
+}\r
+\r
+// -------------------------------------------------------------------------\r
+PipelineEditor_QNodesEditor_Callback_CODE( GraphicsSceneHoverEnter )\r
+{\r
+}\r
+\r
+// -------------------------------------------------------------------------\r
+PipelineEditor_QNodesEditor_Callback_CODE( GraphicsSceneHoverLeave )\r
+{\r
+}\r
+\r
+// -------------------------------------------------------------------------\r
+PipelineEditor_QNodesEditor_Callback_CODE( GraphicsSceneHoverMove )\r
+{\r
+}\r
+\r
+// -------------------------------------------------------------------------\r
+PipelineEditor_QNodesEditor_Callback_CODE( GraphicsSceneMouseDoubleClick )\r
+{\r
+ QGraphicsItem* item = this->itemAt( evt->scenePos( ) );\r
+ if( item == NULL )\r
+ return;\r
+\r
+ switch( evt->button( ) )\r
+ {\r
+ case Qt::LeftButton:\r
{\r
- QGraphicsSceneMouseEvent* evt =\r
- dynamic_cast< QGraphicsSceneMouseEvent* >( e );\r
- if( evt != NULL )\r
+ QNEBlock* block = dynamic_cast< QNEBlock* >( item );\r
+ QNEPort* port = dynamic_cast< QNEPort* >( item );\r
+ QNEConnection* conn = dynamic_cast< QNEConnection* >( item );\r
+\r
+ if( block != NULL )\r
{\r
- switch( evt->button( ) )\r
- {\r
- case Qt::LeftButton:\r
+ QString old_name = block->namePort( );\r
+ bool ok;\r
+ QString new_name =\r
+ QInputDialog::getText(\r
+ dynamic_cast< QWidget* >( this->parent( ) ),\r
+ "Change filter name",\r
+ "Filter name:",\r
+ QLineEdit::Normal,\r
+ old_name,\r
+ &ok\r
+ );\r
+ if( ok && !new_name.isEmpty( ) && old_name != new_name )\r
{\r
- QNEOutputPort* port =\r
- dynamic_cast< QNEOutputPort* >( this->itemAt( evt->scenePos( ) ) );\r
- if( port != NULL )\r
+ ok = this->m_Graph->RenameVertex(\r
+ old_name.toStdString( ),\r
+ new_name.toStdString( )\r
+ );\r
+ if( ok )\r
{\r
- this->m_Conn = new QNEConnection( 0, this->m_Scene );\r
- this->m_Conn->setPort1( port );\r
- this->m_Conn->setPos1( port->scenePos( ) );\r
- this->m_Conn->setPos2( evt->scenePos( ) );\r
- this->m_Conn->updatePath( );\r
- return( true );\r
+ block->setNamePort( new_name );\r
+ this->m_Workspace->GetGraph( )->RenameVertex(\r
+ old_name.toStdString( ),\r
+ new_name.toStdString( )\r
+ );\r
\r
} // fi\r
- }\r
- break;\r
- default:\r
- break;\r
\r
- } // hctiws\r
-\r
- } // fi\r
- }\r
- break;\r
- case QEvent::GraphicsSceneMouseRelease:\r
- {\r
- QGraphicsSceneMouseEvent* evt =\r
- dynamic_cast< QGraphicsSceneMouseEvent* >( e );\r
- if( evt != NULL )\r
+ } // fi\r
+ }\r
+ else if( port != NULL )\r
{\r
- if( this->m_Conn != NULL && evt->button( ) == Qt::LeftButton )\r
+ if( evt->modifiers( ) == Qt::ControlModifier )\r
{\r
- QNEInputPort* port2 =\r
- dynamic_cast< QNEInputPort* >( this->itemAt( evt->scenePos( ) ) );\r
- if( port2 != NULL )\r
+ port->setExtend( !( port->isExtended( ) ) );\r
+ QNEInputPort* in_port = dynamic_cast< QNEInputPort* >( port );\r
+ QNEOutputPort* out_port = dynamic_cast< QNEOutputPort* >( port );\r
+ if( port->isExtended( ) )\r
+ {\r
+ if( in_port != NULL )\r
+ {\r
+ this->m_Workspace->AddInputPort(\r
+ in_port->extendedName( ).toStdString( ),\r
+ in_port->block( )->namePort( ).toStdString( ),\r
+ in_port->name( ).toStdString( )\r
+ );\r
+ }\r
+ else if( out_port != NULL )\r
+ {\r
+ } // fi\r
+ }\r
+ else\r
{\r
- QNEOutputPort* port1 =\r
- dynamic_cast< QNEOutputPort* >( this->m_Conn->port1( ) );\r
- if( port1 != NULL )\r
+ if( in_port != NULL )\r
{\r
- if(\r
- port1->block( ) != port2->block( ) &&\r
- !port2->hasConnection( ) &&\r
- !port1->isConnected( port2 )\r
- )\r
- {\r
- this->m_Conn->setPos2( port2->scenePos( ) );\r
- this->m_Conn->setPort2( port2 );\r
- this->m_Conn->updatePath( );\r
-\r
- this->m_Workspace->Connect(\r
- port1->block( )->namePort( )->name( ).toStdString( ),\r
- port2->block( )->namePort( )->name( ).toStdString( ),\r
- port1->name( ).toStdString( ),\r
- port2->name( ).toStdString( )\r
- );\r
- this->m_Graph->AddConnection(\r
- port1->block( )->namePort( )->name( ).toStdString( ),\r
- port2->block( )->namePort( )->name( ).toStdString( ),\r
- this->m_Conn\r
- );\r
-\r
- this->m_Conn = NULL;\r
- return( true );\r
-\r
- } // fi\r
+ }\r
+ else if( out_port != NULL )\r
+ {\r
+ } // fi\r
\r
+ } // fi\r
+ this->m_Scene->update( );\r
+ }\r
+ else if( evt->modifiers( ) == Qt::NoModifier )\r
+ {\r
+ if( port->isExtended( ) )\r
+ {\r
+ QString old_name = port->extendedName( );\r
+ bool ok;\r
+ QString new_name =\r
+ QInputDialog::getText(\r
+ dynamic_cast< QWidget* >( this->parent( ) ),\r
+ "Change filter name",\r
+ "Filter name:",\r
+ QLineEdit::Normal,\r
+ old_name,\r
+ &ok\r
+ );\r
+ if( ok && !new_name.isEmpty( ) && old_name != new_name )\r
+ {\r
+ // TODO: port->setExtendedName( new_name );\r
+ /* TODO\r
+ ok = this->m_Graph->RenameVertex(\r
+ old_name.toStdString( ),\r
+ new_name.toStdString( )\r
+ );\r
+ if( ok )\r
+ {\r
+ block->setNamePort( new_name );\r
+ this->m_Workspace->GetGraph( )->RenameVertex(\r
+ old_name.toStdString( ),\r
+ new_name.toStdString( )\r
+ );\r
+\r
+ } // fi\r
+ */\r
} // fi\r
\r
} // fi\r
- delete this->m_Conn;\r
- this->m_Conn = NULL;\r
- return( true );\r
\r
} // fi\r
-\r
- } // fi\r
- }\r
- break;\r
- case QEvent::GraphicsSceneMove:\r
- {\r
- QGraphicsSceneMoveEvent* evt =\r
- dynamic_cast< QGraphicsSceneMoveEvent* >( e );\r
- if( evt != NULL )\r
+ }\r
+ else if( conn != NULL )\r
{\r
} // fi\r
}\r
break;\r
- case QEvent::GraphicsSceneResize:\r
+ /* TODO:\r
+ case Qt::RightButton:\r
+ {\r
+ }\r
+ break;\r
+ case Qt::MiddleButton:\r
+ {\r
+ }\r
+ break;\r
+ */\r
+ default:\r
+ break;\r
+ } // hctiws\r
+}\r
+\r
+// -------------------------------------------------------------------------\r
+PipelineEditor_QNodesEditor_Callback_CODE( GraphicsSceneMouseMove )\r
+{\r
+ if( this->m_Conn != NULL )\r
{\r
- QGraphicsSceneResizeEvent* evt =\r
- dynamic_cast< QGraphicsSceneResizeEvent* >( e );\r
- if( evt != NULL )\r
- {\r
- } // fi\r
- }\r
- break;\r
- case QEvent::GraphicsSceneWheel:\r
+ if( this->m_Conn->port1( ) == NULL )\r
+ this->m_Conn->setPos1( evt->scenePos( ) );\r
+ else if( this->m_Conn->port2( ) == NULL )\r
+ this->m_Conn->setPos2( evt->scenePos( ) );\r
+ this->m_Conn->updatePath( );\r
+\r
+ } // fi\r
+}\r
+\r
+// -------------------------------------------------------------------------\r
+PipelineEditor_QNodesEditor_Callback_CODE( GraphicsSceneMousePress )\r
+{\r
+ QNEInputPort* in_port =\r
+ dynamic_cast< QNEInputPort* >( this->itemAt( evt->scenePos( ) ) );\r
+ QNEOutputPort* out_port =\r
+ dynamic_cast< QNEOutputPort* >( this->itemAt( evt->scenePos( ) ) );\r
+ if( in_port == NULL && out_port == NULL )\r
+ return;\r
+\r
+ switch( evt->button( ) )\r
{\r
- QGraphicsSceneWheelEvent* evt =\r
- dynamic_cast< QGraphicsSceneWheelEvent* >( e );\r
- if( evt != NULL )\r
+ case Qt::LeftButton:\r
+ {\r
+ if( out_port != NULL )\r
{\r
+ if( out_port->block( ) != NULL )\r
+ {\r
+ // Start new connection\r
+ this->m_Conn = new QNEConnection( 0, this->m_Scene );\r
+ this->m_Conn->setPort1( out_port );\r
+ this->m_Conn->setPos1( out_port->scenePos( ) );\r
+ this->m_Conn->setPos2( evt->scenePos( ) );\r
+ this->m_Conn->updatePosFromPorts( );\r
+ this->m_Conn->updatePath( );\r
+\r
+ } // fi\r
+\r
} // fi\r
}\r
break;\r
default:\r
break;\r
+\r
} // hctiws\r
+}\r
+\r
+// -------------------------------------------------------------------------\r
+PipelineEditor_QNodesEditor_Callback_CODE( GraphicsSceneMouseRelease )\r
+{\r
+ if( this->m_Conn == NULL )\r
+ return;\r
\r
- // Mouse event\r
- /*\r
- QGraphicsSceneMouseEvent* me =\r
- dynamic_cast< QGraphicsSceneMouseEvent* >( e );\r
- if( me != NULL )\r
+ switch( evt->button( ) )\r
+ {\r
+ case Qt::LeftButton:\r
+ {\r
+ QNEInputPort* port2 =\r
+ dynamic_cast< QNEInputPort* >( this->itemAt( evt->scenePos( ) ) );\r
+ if( port2 != NULL )\r
{\r
- } // fi\r
- */\r
+ QNEOutputPort* port1 =\r
+ dynamic_cast< QNEOutputPort* >( this->m_Conn->port1( ) );\r
+ if( port1 != NULL )\r
+ {\r
+ if(\r
+ port1->block( ) != port2->block( ) &&\r
+ !port2->hasConnection( ) &&\r
+ !port1->isConnected( port2 ) &&\r
+ !port2->isExtended( )\r
+ )\r
+ {\r
+ this->m_Conn->setPos2( port2->scenePos( ) );\r
+ this->m_Conn->setPort2( port2 );\r
+ this->m_Conn->updatePosFromPorts( );\r
+ this->m_Conn->updatePath( );\r
\r
- /* TODO\r
- switch( ( int ) e->type( ) )\r
- {\r
- case QEvent::GraphicsSceneMouseMove:\r
- {\r
- if( this->m_Conn )\r
- {\r
- this->m_Conn->setPos2( me->scenePos( ) );\r
- this->m_Conn->updatePath( );\r
- return( true );\r
- }\r
- break;\r
- }\r
- case QEvent::GraphicsSceneMouseRelease:\r
- {\r
- if( this->m_Conn && me->button( ) == Qt::LeftButton )\r
- {\r
- QGraphicsItem* item = itemAt( me->scenePos( ) );\r
- if( item && item->type( ) == QNEPort::Type )\r
- {\r
- QNEPort* port1 = this->m_Conn->port1( );\r
- QNEPort* port2 = ( QNEPort* ) item;\r
- if( port1->block( ) != port2->block( ) && port1->isOutput( ) != port2->isOutput( ) && !port1->isConnected( port2 ) )\r
- {\r
- this->m_Conn->setPos2( port2->scenePos( ) );\r
- this->m_Conn->setPort2( port2 );\r
- this->m_Conn->updatePath( );\r
- this->m_Conn = NULL;\r
- return( true );\r
- }\r
- }\r
+ this->m_Workspace->Connect(\r
+ port1->block( )->namePort( ).toStdString( ),\r
+ port2->block( )->namePort( ).toStdString( ),\r
+ port1->name( ).toStdString( ),\r
+ port2->name( ).toStdString( )\r
+ );\r
+ this->m_Graph->AddConnection(\r
+ port1->block( )->namePort( ).toStdString( ),\r
+ port2->block( )->namePort( ).toStdString( ),\r
+ this->m_Conn\r
+ );\r
+ }\r
+ else\r
+ delete this->m_Conn;\r
+ }\r
+ else\r
+ delete this->m_Conn;\r
+ }\r
+ else\r
+ delete this->m_Conn;\r
+ this->m_Conn = NULL;\r
+ }\r
+ break;\r
+ default:\r
+ break;\r
+ } // hctisw\r
+}\r
\r
- delete this->m_Conn;\r
- this->m_Conn = NULL;\r
- return( true );\r
- }\r
- break;\r
- }\r
- } // hctiws\r
- */\r
+// -------------------------------------------------------------------------\r
+PipelineEditor_QNodesEditor_Callback_CODE( GraphicsSceneMove )\r
+{\r
+}\r
\r
- return( this->Superclass::eventFilter( o, e ) );\r
+// -------------------------------------------------------------------------\r
+PipelineEditor_QNodesEditor_Callback_CODE( GraphicsSceneResize )\r
+{\r
+}\r
+\r
+// -------------------------------------------------------------------------\r
+PipelineEditor_QNodesEditor_Callback_CODE( GraphicsSceneWheel )\r
+{\r
}\r
\r
// eof - $RCSfile$\r