]> Creatis software - cpPlugins.git/blobdiff - appli/cpPipelineEditor/QNodesEditor.h
...
[cpPlugins.git] / appli / cpPipelineEditor / QNodesEditor.h
index 87c5a20c5d38b19a0195d4144268ee56c440ff0e..f338d91a8a08566c437ac41d50584079f946e8d0 100644 (file)
    LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\r
    ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\r
    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\r
-   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */\r
+   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
+*/\r
 \r
 #ifndef __PIPELINEEDITOR__QNODESEDITOR__H__\r
 #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
@@ -48,23 +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
-    bool eventFilter( QObject* o, QEvent* e );\r
+    std::string createFilter(\r
+      const std::string& filter,\r
+      const QPointF& pnt = QPointF( qreal( 0 ), qreal( 0 ) )\r
+      );\r
 \r
-    void save( QDataStream& ds );\r
-    void load( QDataStream& ds );\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