1 // -------------------------------------------------------------------------
2 // @author Leonardo Florez-Valencia (florez-l@javeriana.edu.co)
3 // -------------------------------------------------------------------------
5 #include <cpPipelineEditor/Canvas.h>
7 #include <QDragEnterEvent>
10 // -------------------------------------------------------------------------
11 cpPipelineEditor::Canvas::
12 Canvas( QWidget* parent )
13 : Superclass( parent )
15 this->m_Scene = new QGraphicsScene( this );
16 this->setScene( this->m_Scene );
17 this->setRenderHint( QPainter::Antialiasing );
18 this->setAcceptDrops( true );
21 // -------------------------------------------------------------------------
22 cpPipelineEditor::Canvas::
27 // -------------------------------------------------------------------------
28 void cpPipelineEditor::Canvas::
29 dragEnterEvent( QDragEnterEvent* event )
31 const QMimeData* mime = event->mimeData( );
32 if( mime->hasFormat( "application/x-qabstractitemmodeldatalist" ) )
33 event->acceptProposedAction( );
36 // -------------------------------------------------------------------------
37 void cpPipelineEditor::Canvas::
38 dragLeaveEvent( QDragLeaveEvent* event )
42 // -------------------------------------------------------------------------
43 void cpPipelineEditor::Canvas::
44 dragMoveEvent( QDragMoveEvent* event )
48 // -------------------------------------------------------------------------
49 void cpPipelineEditor::Canvas::
50 dropEvent( QDropEvent* event )
53 const QMimeData* mime = event->mimeData( );
54 if( !( mime->hasFormat( "application/x-qabstractitemmodeldatalist" ) ) )
56 event->acceptProposedAction( );
57 QTreeWidget* tree = dynamic_cast< QTreeWidget* >( event->source( ) );
61 // Process dropped data
62 QList< QTreeWidgetItem* > items = tree->selectedItems( );
64 QList< QTreeWidgetItem* >::const_iterator iIt = items.begin( );
70 auto parent = ( *iIt )->parent( );
73 parent->text( 0 ).toStdString( ),
74 ( *iIt )->text( 0 ).toStdString( ),