1 #ifndef __cpBaseQtApplication__Pipeline__Canvas__h__
2 #define __cpBaseQtApplication__Pipeline__Canvas__h__
4 #include <cpBaseQtApplication_Export.h>
5 #include <QtGui/QGraphicsView>
6 #include <cpPlugins/Interface/Workspace.h>
10 namespace cpBaseQtApplication
14 // Some other forward declarations
21 class cpBaseQtApplication_EXPORT Canvas
22 : public QGraphicsView
28 typedef QGraphicsView Superclass;
29 typedef cpPlugins::Interface::Workspace TWorkspace;
32 Canvas( QWidget* parent = 0 );
37 TWorkspace* workspace( );
38 const TWorkspace* workspace( ) const;
39 void setWorkspace( TWorkspace* ws );
41 std::string addFilter(
42 const std::string& cat, const std::string& fil,
43 const QPointF& pos = QPointF( 0, 0 )
45 bool connectOutputPortSlot( QObject* receiver, const char* slot );
47 void rename( QGraphicsItem* item );
48 void exposePort( QGraphicsItem* item );
49 void moveConnection( const QPointF& pnt );
50 void grab( const QPointF& pnt );
51 void release( const QPointF& pnt );
54 void keyPressEvent( QKeyEvent* event );
55 void wheelEvent( QWheelEvent* event );
57 void dragEnterEvent( QDragEnterEvent* event );
58 void dragLeaveEvent( QDragLeaveEvent* event );
59 void dragMoveEvent( QDragMoveEvent* event );
60 void dropEvent( QDropEvent* event );
62 void _scaleView( qreal scaleFactor );
63 void _redrawWorkspace( );
66 QGraphicsScene* m_Scene;
67 EventFilter* m_EventFilter;
68 TWorkspace* m_Workspace;
69 std::map< std::string, Block* > m_Blocks;
71 Connection* m_ActualConnection;
73 QObject* m_OutputPortReceiver;
74 std::string m_OutputPortSlot;
81 #endif // __cpBaseQtApplication__Pipeline__Canvas__h__