#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
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