#include <QStyledItemDelegate>
#include <QListView>
+#include <QTreeView>
class QPainter;
class PLModel;
-class PlListViewItemDelegate : public QStyledItemDelegate
+class AbstractPlViewItemDelegate : public QStyledItemDelegate
+{
+public:
+ AbstractPlViewItemDelegate( QWidget * parent = 0 ) : QStyledItemDelegate(parent) {}
+ QString getMeta( const QModelIndex & index, int meta ) const;
+ void paintBackground( QPainter *, const QStyleOptionViewItem &, const QModelIndex & ) const;
+ QPixmap getArtPixmap( const QModelIndex & index, const QSize & size ) const;
+};
+
+class PlIconViewItemDelegate : public AbstractPlViewItemDelegate
+{
+ Q_OBJECT
+
+public:
+ PlIconViewItemDelegate(QWidget *parent = 0) : AbstractPlViewItemDelegate( parent ) {}
+ void paint ( QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex & index ) const;
+ QSize sizeHint ( const QStyleOptionViewItem & option = QStyleOptionViewItem(),
+ const QModelIndex & index = QModelIndex() ) const;
+};
+
+class PlListViewItemDelegate : public AbstractPlViewItemDelegate
{
Q_OBJECT
public:
- PlListViewItemDelegate(QWidget *parent = 0) : QStyledItemDelegate(parent) {}
+ PlListViewItemDelegate(QWidget *parent = 0) : AbstractPlViewItemDelegate(parent) {}
void paint ( QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex & index ) const;
QSize sizeHint ( const QStyleOptionViewItem & option, const QModelIndex & index ) const;
public:
PlIconView( PLModel *model, QWidget *parent = 0 );
-public slots:
- void activate( const QModelIndex & index );
+private:
+ void startDrag ( Qt::DropActions supportedActions );
+ void dragMoveEvent ( QDragMoveEvent * event );
+};
+
+class PlListView : public QListView
+{
+ Q_OBJECT
+
+public:
+ PlListView( PLModel *model, QWidget *parent = 0 );
+private:
+ void startDrag ( Qt::DropActions supportedActions );
+ void dragMoveEvent ( QDragMoveEvent * event );
+ void keyPressEvent( QKeyEvent *event );
+};
+
+class PlTreeView : public QTreeView
+{
+ Q_OBJECT
+
+private:
+ void startDrag ( Qt::DropActions supportedActions );
+ void dragMoveEvent ( QDragMoveEvent * event );
+ void keyPressEvent( QKeyEvent *event );
};
#endif