]> Creatis software - cpPlugins.git/blobdiff - lib/cpBaseQtApplication/Editor.cxx
...
[cpPlugins.git] / lib / cpBaseQtApplication / Editor.cxx
index 35b8a61ceb7f52dac45909f0d22d0c26057a51c7..fb911c3862875e65ea093aa8e087e759b65095f3 100644 (file)
@@ -68,9 +68,18 @@ void cpBaseQtApplication::Editor::
 setWorkspace( TWorkspace* ws )\r
 {\r
   this->m_Workspace = ws;\r
-  this->m_Graph = TGraph::New( );\r
+  this->redrawWorkspace( );\r
+}\r
 \r
+// -------------------------------------------------------------------------\r
+void cpBaseQtApplication::Editor::\r
+redrawWorkspace( )\r
+{\r
+  if( this->m_Workspace == NULL )\r
+    return;\r
+  \r
   // Create blocks\r
+  std::map< std::string, Block* > blocks;\r
   auto vIt = this->m_Workspace->GetGraph( )->BeginVertices( );\r
   auto vIt_end = this->m_Workspace->GetGraph( )->EndVertices( );\r
   for( ; vIt != vIt_end; ++vIt )\r
@@ -80,8 +89,7 @@ setWorkspace( TWorkspace* ws )
       vIt->first.c_str( ),\r
       QPointF( vIt->second->GetViewX( ), vIt->second->GetViewY( ) )\r
       );\r
-    if( b != NULL )\r
-      this->m_Graph->SetVertex( vIt->first, b );\r
+    blocks[ vIt->first ] = b;\r
 \r
   } // rof\r
 \r
@@ -90,11 +98,11 @@ setWorkspace( TWorkspace* ws )
   auto rIt_end = this->m_Workspace->GetGraph( )->EndEdgesRows( );\r
   for( ; rIt != rIt_end; ++rIt )\r
   {\r
-    Block* orig = this->m_Graph->GetVertex( rIt->first );\r
+    Block* orig = blocks[ rIt->first ];\r
     auto cIt = rIt->second.begin( );\r
     for( ; cIt != rIt->second.end( ); ++cIt )\r
     {\r
-      Block* dest = this->m_Graph->GetVertex( cIt->first );\r
+      Block* dest = blocks[ cIt->first ];\r
       auto eIt = cIt->second.begin( );\r
       for( ; eIt != cIt->second.end( ); ++eIt )\r
       {\r
@@ -108,7 +116,6 @@ setWorkspace( TWorkspace* ws )
         c->setPort2( ip );\r
         c->updatePosFromPorts( );\r
         c->updatePath( );\r
-        this->m_Graph->AddEdge( rIt->first, cIt->first, c );\r
 \r
       } // rof\r
 \r
@@ -145,8 +152,10 @@ createFilter(
 bool cpBaseQtApplication::Editor::\r
 deleteFilter( const std::string& name )\r
 {\r
-  std::cout << name << std::endl;\r
-  return( false );\r
+  if( this->m_Workspace != NULL )\r
+    return( this->m_Workspace->RemoveFilter( name ) );\r
+  else\r
+    return( false );\r
 }\r
 \r
 // -------------------------------------------------------------------------\r
@@ -156,19 +165,23 @@ deleteConnection(
   const std::string& in, const std::string& out\r
   )\r
 {\r
-  std::cout\r
-    << src << " "\r
-    << des << " "\r
-    << in << " "\r
-    << out << std::endl;\r
-  return( false );\r
+  if( this->m_Workspace != NULL )\r
+    return( this->m_Workspace->Disconnect( src, des, in, out ) );\r
+  else\r
+    return( false );\r
 }\r
 \r
 // -------------------------------------------------------------------------\r
 void cpBaseQtApplication::Editor::\r
 clear( )\r
 {\r
-  std::cout << "Editor::clear" << std::endl;\r
+  std::cout << "Editor: clear" << std::endl;\r
+  /* TODO\r
+     auto vIt = this->m_Graph.BeginVertices( );\r
+     for( ; vIt != this->m_Graph.EndVertices( ); ++vIt )\r
+     {\r
+     } // rof\r
+  */\r
 }\r
 \r
 // -------------------------------------------------------------------------\r
@@ -356,6 +369,7 @@ cpBaseQtApplication_Editor_Callback_CODE( HoverMove )
 // -------------------------------------------------------------------------\r
 cpBaseQtApplication_Editor_Callback_CODE( MouseDoubleClick )\r
 {\r
+  /* TODO\r
   QGraphicsItem* item = this->itemAt( evt->scenePos( ) );\r
   if( item == NULL )\r
     return;\r
@@ -481,7 +495,6 @@ cpBaseQtApplication_Editor_Callback_CODE( MouseDoubleClick )
     } // fi\r
   }\r
   break;\r
-  /* TODO:\r
      case Qt::RightButton:\r
      {\r
      }\r
@@ -490,10 +503,10 @@ cpBaseQtApplication_Editor_Callback_CODE( MouseDoubleClick )
      {\r
      }\r
      break;\r
-  */\r
   default:\r
     break;\r
   } // hctiws\r
+  */\r
 }\r
 \r
 // -------------------------------------------------------------------------\r
@@ -583,11 +596,6 @@ cpBaseQtApplication_Editor_Callback_CODE( MouseRelease )
             port1->name( ).toStdString( ),\r
             port2->name( ).toStdString( )\r
             );\r
-          this->m_Graph->AddEdge(\r
-            port1->block( )->namePort( ).toStdString( ),\r
-            port2->block( )->namePort( ).toStdString( ),\r
-            this->m_ActualConnection\r
-            );\r
         }\r
         else\r
           delete this->m_ActualConnection;\r