1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
DirView::DirView( QWidget* parent ) :
QTreeView( parent ),
__model( new QDirModel( ))
{
setModel( __model );
}
////////////////////////////////////////
void DirView::mouseMoveEvent( QMouseEvent* event )
{
if ( event->buttons( ) & Qt::LeftButton ) {
int distance = ( event->pos( ) - __dragStartPosition ).manhattanLength( );
if ( distance < QApplication::startDragDistance( )) {
startDrag( );
}
}
QTreeView::mouseMoveEvent( event );
}
////////////////////////////////////////
void DirView::startDrag( )
{
QModelIndex index = currentIndex( );
if ( !index.isValid( )) {
return;
}
// ici ca passe
// on renseigne le drag
QMimeData* mimeData = new QMimeData( );
mimeData->setText( __model->filePath( index )); // et là, chaine vide !!
QDrag* drag = new QDrag( this );
drag->setMimeData( mimeData );
// on lance le drag
drag->exec( Qt::CopyAction );
} |
Partager