]> Creatis software - cpPlugins.git/blobdiff - appli/cpPipelineEditor/QNodesEditorCanvas.cxx
More on graph editor
[cpPlugins.git] / appli / cpPipelineEditor / QNodesEditorCanvas.cxx
index b320930da5e60f4e0f9b86103862a07e4acd2e12..d253f78f8e9288cf7c7a14bf98c4ceec40d5f494 100644 (file)
@@ -11,8 +11,7 @@
 // -------------------------------------------------------------------------
 PipelineEditor::QNodesEditorCanvas::
 QNodesEditorCanvas( QWidget* parent )
-  : QGraphicsView( parent ),
-    m_Workspace( NULL )
+  : QGraphicsView( parent )
 {
   QGraphicsScene* scene = new QGraphicsScene( this );
   this->setScene( scene );
@@ -30,73 +29,19 @@ PipelineEditor::QNodesEditorCanvas::
 }
 
 // -------------------------------------------------------------------------
-PipelineEditor::QNodesEditorCanvas::
-TWorkspace* PipelineEditor::QNodesEditorCanvas::
-workspace( )
-{
-  return( this->m_Workspace );
-}
-
-// -------------------------------------------------------------------------
-const PipelineEditor::QNodesEditorCanvas::
-TWorkspace* PipelineEditor::QNodesEditorCanvas::
-workspace( ) const
+PipelineEditor::
+QNodesEditor* PipelineEditor::QNodesEditorCanvas::
+editor( )
 {
-  return( this->m_Workspace );
+  return( this->m_Editor );
 }
 
 // -------------------------------------------------------------------------
-void PipelineEditor::QNodesEditorCanvas::
-setWorkspace( TWorkspace* ws )
+const PipelineEditor::
+QNodesEditor* PipelineEditor::QNodesEditorCanvas::
+editor( ) const
 {
-  if( this->m_Workspace == ws )
-    return;
-  this->m_Workspace = ws;
-  this->m_Graph = TGraph::New( );
-
-  /* TODO
-  QGraphicsScene* scene = this->scene( );
-  // Add vertices and keep track of ports
-  std::map< std::string, std::map< std::string, QNEPort* > >
-    in_ports, out_ports;
-  auto vIt = this->m_Workspace->GetGraph( )->BeginVertices( );
-  auto vIt_end = this->m_Workspace->GetGraph( )->EndVertices( );
-  for( ; vIt != vIt_end; ++vIt )
-  {
-    this->_createBlock( dynamic_cast< TFilter* >( vIt->second.GetPointer( ) ) );
-
-  } // rof
-  */
-
-  // Add edges
-  /* TODO
-     auto rIt = this->m_Workspace->GetGraph( )->BeginEdgesRows( );
-     auto rIt_end = this->m_Workspace->GetGraph( )->EndEdgesRows( );
-     for( ; rIt != rIt_end; ++rIt )
-     {
-     auto cIt = rIt->second.begin( );
-     for( ; cIt != rIt->second.end( ); ++cIt )
-     {
-     auto eIt = cIt->second.begin( );
-     for( ; eIt != cIt->second.end( ); ++eIt )
-     {
-     QNEPort* p1 = out_ports[ rIt->first ][ eIt->first ];
-     QNEPort* p2 = in_ports[ cIt->first ][ eIt->second ];
-     if( p1 != NULL && p2 != NULL )
-     {
-     QNEConnection* conn = new QNEConnection( 0, scene );
-     conn->setPort1( p1 );
-     conn->setPort2( p2 );
-     this->m_Graph->AddConnection( rIt->first, cIt->first, conn );
-
-     } // fi
-
-     } // rof
-
-     } // rof
-
-     } // rof
-  */
+  return( this->m_Editor );
 }
 
 // -------------------------------------------------------------------------
@@ -147,9 +92,6 @@ dragMoveEvent( QDragMoveEvent* event )
 void PipelineEditor::QNodesEditorCanvas::
 dropEvent( QDropEvent* event )
 {
-  std::cout << event << " " << this->m_Workspace << std::endl;
-  if( this->m_Workspace == NULL )
-    return;
   const QMimeData* mime = event->mimeData( );
   if( !( mime->hasFormat( "application/x-qabstractitemmodeldatalist" ) ) )
     return;
@@ -161,30 +103,9 @@ dropEvent( QDropEvent* event )
 
   QList< QTreeWidgetItem* > items = tree->selectedItems( );
   for( auto iIt = items.begin( ); iIt != items.end( ); ++iIt )
-  {
-    std::string filter = ( *iIt )->text( 0 ).toStdString( );
-    std::string name = "filtro"; //filter;
-    if( this->m_Workspace->GetFilter( name ) != NULL )
-      name += std::string( "_" );
-    std::cout << name << std::endl;
-    if( this->m_Workspace->CreateFilter( filter, name ) )
-    {
-      auto vIt = this->m_Workspace->GetGraph( )->BeginVertices( );
-      auto vIt_end = this->m_Workspace->GetGraph( )->EndVertices( );
-      for( ; vIt != vIt_end; ++vIt )
-      {
-        std::cout << "NAME: " << vIt->first << " " << vIt->second.GetPointer( ) << std::endl;
-        vIt->second->Print( std::cout );
-      }
-      
-
-      std::cout << "ok" << std::endl;
-      this->_createBlock( this->m_Workspace->GetFilter( name ) );
-    }
-    else
-      std::cout << "no" << std::endl;
-
-  } // rof
+    this->m_Editor->createFilter(
+      ( *iIt )->text( 0 ).toStdString( ), event->pos( )
+      );
 }
 
 // -------------------------------------------------------------------------
@@ -201,11 +122,10 @@ _scaleView( qreal scaleFactor )
 }
 
 // -------------------------------------------------------------------------
+  /*
 void PipelineEditor::QNodesEditorCanvas::
 _createBlock( TFilter* f )
 {
-  std::cout << "ptr: " << f << std::endl;
-
   if( f == NULL )
     return;
 
@@ -232,7 +152,6 @@ _createBlock( TFilter* f )
   this->m_Graph->InsertVertex( f->GetName( ), b );
 
   // Add vertices and keep track of ports
-  /*
     std::map< std::string, std::map< std::string, QNEPort* > >
     in_ports, out_ports;
     auto vIt = this->m_Workspace->GetGraph( )->BeginVertices( );
@@ -265,8 +184,8 @@ _createBlock( TFilter* f )
     this->m_Graph->InsertVertex( vIt->first, b );
 
     } // rof
-  */
 }
+  */
 
 // eof - $RCSfile$