X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=appli%2FcpPipelineEditor%2FQNodesEditor.h;h=d148bbe82aa5497a0f3fa1d5dfe19c324cd77919;hb=c06908465eb6da50572779f423d1e2c9e03b68dd;hp=87c5a20c5d38b19a0195d4144268ee56c440ff0e;hpb=2c372f652bce67b347cd91737916504a054604a3;p=cpPlugins.git diff --git a/appli/cpPipelineEditor/QNodesEditor.h b/appli/cpPipelineEditor/QNodesEditor.h index 87c5a20..d148bbe 100644 --- a/appli/cpPipelineEditor/QNodesEditor.h +++ b/appli/cpPipelineEditor/QNodesEditor.h @@ -21,16 +21,32 @@ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ #ifndef __PIPELINEEDITOR__QNODESEDITOR__H__ #define __PIPELINEEDITOR__QNODESEDITOR__H__ #include +#include +#include +#include class QGraphicsScene; +class QGraphicsSceneMouseEvent; class QGraphicsItem; -class QPointF; +class QGraphicsSceneContextMenuEvent; +class QGraphicsSceneDragDropEvent; +class QGraphicsSceneHelpEvent; +class QGraphicsSceneHoverEvent; +class QGraphicsSceneMouseEvent; +class QGraphicsSceneMoveEvent; +class QGraphicsSceneResizeEvent; +class QGraphicsSceneWheelEvent; + +// ------------------------------------------------------------------------- +#define PipelineEditor_QNodesEditor_Callback_DCL( E ) \ + void _##E##_cbk( Q##E##Event* e ); namespace PipelineEditor { @@ -48,23 +64,69 @@ namespace PipelineEditor typedef QNodesEditor Self; typedef QObject Superclass; + typedef cpPlugins::Interface::Workspace TWorkspace; + typedef TWorkspace::TFilter TFilter; + typedef + cpExtensions::DataStructures:: + Graph< QNEBlock*, QNEConnection*, std::string > TGraph; + public: explicit QNodesEditor( QObject* parent = 0 ); virtual ~QNodesEditor( ); - void install( QGraphicsScene* s ); + TWorkspace* workspace( ); + const TWorkspace* workspace( ) const; + void setWorkspace( TWorkspace* ws ); - bool eventFilter( QObject* o, QEvent* e ); + std::string createFilter( + const std::string& filter, + const QPointF& pnt = QPointF( qreal( 0 ), qreal( 0 ) ) + ); - void save( QDataStream& ds ); - void load( QDataStream& ds ); + void install( QGraphicsScene* s ); + bool eventFilter( QObject* o, QEvent* e ); private: QGraphicsItem* itemAt( const QPointF& pos ); + inline void _CreateBlock( TFilter* f, const QPointF& pnt ); + + protected: + typedef QGraphicsSceneDragDropEvent QGraphicsSceneDragEnterEvent; + typedef QGraphicsSceneDragDropEvent QGraphicsSceneDragLeaveEvent; + typedef QGraphicsSceneDragDropEvent QGraphicsSceneDragMoveEvent; + typedef QGraphicsSceneDragDropEvent QGraphicsSceneDropEvent; + typedef QGraphicsSceneHoverEvent QGraphicsSceneHoverEnterEvent; + typedef QGraphicsSceneHoverEvent QGraphicsSceneHoverMoveEvent; + typedef QGraphicsSceneHoverEvent QGraphicsSceneHoverLeaveEvent; + typedef QGraphicsSceneMouseEvent QGraphicsSceneMouseDoubleClickEvent; + typedef QGraphicsSceneMouseEvent QGraphicsSceneMouseMoveEvent; + typedef QGraphicsSceneMouseEvent QGraphicsSceneMousePressEvent; + typedef QGraphicsSceneMouseEvent QGraphicsSceneMouseReleaseEvent; + + PipelineEditor_QNodesEditor_Callback_DCL( GraphicsSceneContextMenu ); + PipelineEditor_QNodesEditor_Callback_DCL( GraphicsSceneDragEnter ); + PipelineEditor_QNodesEditor_Callback_DCL( GraphicsSceneDragLeave ); + PipelineEditor_QNodesEditor_Callback_DCL( GraphicsSceneDragMove ); + PipelineEditor_QNodesEditor_Callback_DCL( GraphicsSceneDrop ); + PipelineEditor_QNodesEditor_Callback_DCL( GraphicsSceneHelp ); + PipelineEditor_QNodesEditor_Callback_DCL( GraphicsSceneHoverEnter ); + PipelineEditor_QNodesEditor_Callback_DCL( GraphicsSceneHoverLeave ); + PipelineEditor_QNodesEditor_Callback_DCL( GraphicsSceneHoverMove ); + PipelineEditor_QNodesEditor_Callback_DCL( GraphicsSceneMouseDoubleClick ); + PipelineEditor_QNodesEditor_Callback_DCL( GraphicsSceneMouseMove ); + PipelineEditor_QNodesEditor_Callback_DCL( GraphicsSceneMousePress ); + PipelineEditor_QNodesEditor_Callback_DCL( GraphicsSceneMouseRelease ); + PipelineEditor_QNodesEditor_Callback_DCL( GraphicsSceneMove ); + PipelineEditor_QNodesEditor_Callback_DCL( GraphicsSceneResize ); + PipelineEditor_QNodesEditor_Callback_DCL( GraphicsSceneWheel ); + private: QGraphicsScene* m_Scene; QNEConnection* m_Conn; + + TWorkspace* m_Workspace; + TGraph::Pointer m_Graph; }; } // ecapseman @@ -72,3 +134,25 @@ namespace PipelineEditor #endif // __PIPELINEEDITOR__QNODESEDITOR__H__ // eof - $RCSfile$ + + /* TODO + case QEvent::GraphicsSceneContextMenu: + QGraphicsSceneContextMenuEvent* evt = + + case QEvent::GraphicsSceneDragEnter: + case QEvent::GraphicsSceneDragLeave: + case QEvent::GraphicsSceneDragMove: + case QEvent::GraphicsSceneDrop: + case QEvent::GraphicsSceneHelp: + case QEvent::GraphicsSceneHoverEnter: + case QEvent::GraphicsSceneHoverLeave: + case QEvent::GraphicsSceneHoverMove: + case QEvent::GraphicsSceneMouseDoubleClick: + case QEvent::GraphicsSceneMouseMove: + case QEvent::GraphicsSceneMousePress: + case QEvent::GraphicsSceneMouseRelease: + case QEvent::GraphicsSceneMove: + case QEvent::GraphicsSceneResize: + case QEvent::GraphicsSceneWheel: + */ +