]> Creatis software - cpPlugins.git/blobdiff - appli/cpPipelineEditor/QNodesEditor.h
...
[cpPlugins.git] / appli / cpPipelineEditor / QNodesEditor.h
index c2db807d2d82f111e472fa547e50ae226ed9a8e3..f338d91a8a08566c437ac41d50584079f946e8d0 100644 (file)
 #define __PIPELINEEDITOR__QNODESEDITOR__H__\r
 \r
 #include <QObject>\r
+#include <QPointF>\r
+#include <cpExtensions/DataStructures/Graph.h>\r
+#include <cpPlugins/Interface/Workspace.h>\r
 \r
 class QGraphicsScene;\r
+class QGraphicsSceneMouseEvent;\r
 class QGraphicsItem;\r
-class QPointF;\r
 \r
 namespace PipelineEditor\r
 {\r
@@ -49,20 +52,40 @@ namespace PipelineEditor
     typedef QNodesEditor Self;\r
     typedef QObject      Superclass;\r
 \r
+    typedef cpPlugins::Interface::Workspace TWorkspace;\r
+    typedef TWorkspace::TFilter             TFilter;\r
+    typedef\r
+      cpExtensions::DataStructures::\r
+      Graph< QNEBlock*, QNEConnection*, std::string > TGraph;\r
+\r
   public:\r
     explicit QNodesEditor( QObject* parent = 0 );\r
     virtual ~QNodesEditor( );\r
 \r
-    void install( QGraphicsScene* s );\r
+    TWorkspace* workspace( );\r
+    const TWorkspace* workspace( ) const;\r
+    void setWorkspace( TWorkspace* ws );\r
+\r
+    std::string createFilter(\r
+      const std::string& filter,\r
+      const QPointF& pnt = QPointF( qreal( 0 ), qreal( 0 ) )\r
+      );\r
 \r
+    void install( QGraphicsScene* s );\r
     bool eventFilter( QObject* o, QEvent* e );\r
 \r
   private:\r
     QGraphicsItem* itemAt( const QPointF& pos );\r
 \r
+    inline void _CreateBlock( TFilter* f, const QPointF& pnt );\r
+    inline void _DoubleClick( QGraphicsSceneMouseEvent* evt, QGraphicsItem* item );\r
+\r
   private:\r
     QGraphicsScene* m_Scene;\r
     QNEConnection* m_Conn;\r
+\r
+    TWorkspace* m_Workspace;\r
+    TGraph::Pointer m_Graph;\r
   };\r
 \r
 } // ecapseman\r