#include <QStyleOptionViewItem>
#include <QFontMetrics>
#include <QPixmapCache>
+#include <QDrag>
#include "assert.h"
return QSize( 0, height );
}
+static void plViewStartDrag( QAbstractItemView *view, const Qt::DropActions & supportedActions )
+{
+ QDrag *drag = new QDrag( view );
+ drag->setPixmap( QPixmap( ":/noart64" ) );
+ drag->setMimeData( view->model()->mimeData(
+ view->selectionModel()->selectedIndexes() ) );
+ drag->exec( supportedActions );
+}
+
PlIconView::PlIconView( PLModel *model, QWidget *parent ) : QListView( parent )
{
PlIconViewItemDelegate *delegate = new PlIconViewItemDelegate( this );
setItemDelegate( delegate );
}
+void PlIconView::startDrag ( Qt::DropActions supportedActions )
+{
+ plViewStartDrag( this, supportedActions );
+}
+
PlListView::PlListView( PLModel *model, QWidget *parent ) : QListView( parent )
{
setModel( model );
PlListViewItemDelegate *delegate = new PlListViewItemDelegate( this );
setItemDelegate( delegate );
}
+
+void PlListView::startDrag ( Qt::DropActions supportedActions )
+{
+ plViewStartDrag( this, supportedActions );
+}
+
+void PlTreeView::startDrag ( Qt::DropActions supportedActions )
+{
+ plViewStartDrag( this, supportedActions );
+}
+
#include <QStyledItemDelegate>
#include <QListView>
+#include <QTreeView>
class QPainter;
class PLModel;
public:
PlIconView( PLModel *model, QWidget *parent = 0 );
+private:
+ void startDrag ( Qt::DropActions supportedActions );
};
class PlListView : public QListView
public:
PlListView( PLModel *model, QWidget *parent = 0 );
+private:
+ void startDrag ( Qt::DropActions supportedActions );
+};
+
+class PlTreeView : public QTreeView
+{
+ Q_OBJECT
+
+private:
+ void startDrag ( Qt::DropActions supportedActions );
};
#endif
void StandardPLPanel::createTreeView()
{
/* Create and configure the QTreeView */
- treeView = new QTreeView;
+ treeView = new PlTreeView;
treeView->setIconSize( QSize( 20, 20 ) );
treeView->setAlternatingRowColors( true );