1 #ifndef __CPPIPELINEEDITOR__EDITOR__H__
\r
2 #define __CPPIPELINEEDITOR__EDITOR__H__
\r
4 #include <cpPipelineEditor/cpPipelineEditor_Export.h>
\r
5 #include <cpExtensions/DataStructures/Graph.h>
\r
6 #include <cpPlugins/Workspace.h>
\r
10 class QGraphicsScene;
\r
11 class QGraphicsSceneMouseEvent;
\r
12 class QGraphicsItem;
\r
13 class QGraphicsSceneContextMenuEvent;
\r
14 class QGraphicsSceneDragDropEvent;
\r
15 class QGraphicsSceneHelpEvent;
\r
16 class QGraphicsSceneHoverEvent;
\r
17 class QGraphicsSceneMouseEvent;
\r
18 class QGraphicsSceneMoveEvent;
\r
19 class QGraphicsSceneResizeEvent;
\r
20 class QGraphicsSceneWheelEvent;
\r
22 // -------------------------------------------------------------------------
\r
23 #define cpPipelineEditor_Editor_Callback_DCL( E ) \
\r
24 void _##E##_cbk( QGraphicsScene##E##Event* e );
\r
26 namespace cpPipelineEditor
\r
33 class cpPipelineEditor_EXPORT Editor
\r
39 typedef Editor Self;
\r
40 typedef QObject Superclass;
\r
42 typedef cpPlugins::Workspace TWorkspace;
\r
43 typedef cpPlugins::ProcessObject TFilter;
\r
45 cpExtensions::DataStructures::
\r
46 Graph< Block*, Connection*, std::string > TGraph;
\r
49 explicit Editor( QObject* parent = 0 );
\r
52 TWorkspace* workspace( );
\r
53 const TWorkspace* workspace( ) const;
\r
54 void setWorkspace( TWorkspace* ws );
\r
56 std::string createFilter(
\r
57 const std::string& category, const std::string& filter,
\r
58 const QPointF& pnt = QPointF( qreal( 0 ), qreal( 0 ) )
\r
60 bool deleteFilter( const std::string& name );
\r
61 bool deleteConnection(
\r
62 const std::string& src, const std::string& des,
\r
63 const std::string& in, const std::string& out
\r
66 void install( QGraphicsScene* s );
\r
67 bool eventFilter( QObject* o, QEvent* e );
\r
69 void updateFilter( const std::string& filter_name );
\r
70 void showOutputData(
\r
71 const std::string& filter_name,
\r
72 const std::string& output_name
\r
74 void hideOutputData(
\r
75 const std::string& filter_name,
\r
76 const std::string& output_name
\r
78 void visualPropertiesOutputData(
\r
79 const std::string& filter_name,
\r
80 const std::string& output_name
\r
84 void execFilter( const std::string& filter_name );
\r
85 void showFilterOutput(
\r
86 const std::string& filter_name,
\r
87 const std::string& output_name
\r
89 void hideFilterOutput(
\r
90 const std::string& filter_name,
\r
91 const std::string& output_name
\r
93 void visualPropertiesFilterOutput(
\r
94 const std::string& filter_name,
\r
95 const std::string& output_name
\r
99 QGraphicsItem* itemAt( const QPointF& pos );
\r
101 inline Block* _createBlock(
\r
102 TFilter* f, const QString& name, const QPointF& pnt
\r
106 typedef QGraphicsSceneDragDropEvent QGraphicsSceneDragEnterEvent;
\r
107 typedef QGraphicsSceneDragDropEvent QGraphicsSceneDragLeaveEvent;
\r
108 typedef QGraphicsSceneDragDropEvent QGraphicsSceneDragMoveEvent;
\r
109 typedef QGraphicsSceneDragDropEvent QGraphicsSceneDropEvent;
\r
110 typedef QGraphicsSceneHoverEvent QGraphicsSceneHoverEnterEvent;
\r
111 typedef QGraphicsSceneHoverEvent QGraphicsSceneHoverMoveEvent;
\r
112 typedef QGraphicsSceneHoverEvent QGraphicsSceneHoverLeaveEvent;
\r
113 typedef QGraphicsSceneMouseEvent QGraphicsSceneMouseDoubleClickEvent;
\r
114 typedef QGraphicsSceneMouseEvent QGraphicsSceneMouseMoveEvent;
\r
115 typedef QGraphicsSceneMouseEvent QGraphicsSceneMousePressEvent;
\r
116 typedef QGraphicsSceneMouseEvent QGraphicsSceneMouseReleaseEvent;
\r
118 cpPipelineEditor_Editor_Callback_DCL( ContextMenu );
\r
119 cpPipelineEditor_Editor_Callback_DCL( DragEnter );
\r
120 cpPipelineEditor_Editor_Callback_DCL( DragLeave );
\r
121 cpPipelineEditor_Editor_Callback_DCL( DragMove );
\r
122 cpPipelineEditor_Editor_Callback_DCL( Drop );
\r
123 cpPipelineEditor_Editor_Callback_DCL( Help );
\r
124 cpPipelineEditor_Editor_Callback_DCL( HoverEnter );
\r
125 cpPipelineEditor_Editor_Callback_DCL( HoverLeave );
\r
126 cpPipelineEditor_Editor_Callback_DCL( HoverMove );
\r
127 cpPipelineEditor_Editor_Callback_DCL( MouseDoubleClick );
\r
128 cpPipelineEditor_Editor_Callback_DCL( MouseMove );
\r
129 cpPipelineEditor_Editor_Callback_DCL( MousePress );
\r
130 cpPipelineEditor_Editor_Callback_DCL( MouseRelease );
\r
131 cpPipelineEditor_Editor_Callback_DCL( Move );
\r
132 cpPipelineEditor_Editor_Callback_DCL( Resize );
\r
133 cpPipelineEditor_Editor_Callback_DCL( Wheel );
\r
136 QGraphicsScene* m_Scene;
\r
137 Connection* m_ActualConnection;
\r
139 TWorkspace* m_Workspace;
\r
140 TGraph::Pointer m_Graph;
\r
145 #endif // __CPPIPELINEEDITOR__EDITOR__H__
\r