icon_view.hpp
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef _ICON_VIEW_H_
00025 #define _ICON_VIEW_H_
00026
00027 #include <QStyledItemDelegate>
00028 #include <QListView>
00029 #include <QTreeView>
00030
00031 class QPainter;
00032 class PLModel;
00033
00034 class AbstractPlViewItemDelegate : public QStyledItemDelegate
00035 {
00036 public:
00037 AbstractPlViewItemDelegate( QWidget * parent = 0 ) : QStyledItemDelegate(parent) {}
00038 QString getMeta( const QModelIndex & index, int meta ) const;
00039 void paintBackground( QPainter *, const QStyleOptionViewItem &, const QModelIndex & ) const;
00040 QPixmap getArtPixmap( const QModelIndex & index, const QSize & size ) const;
00041 };
00042
00043 class PlIconViewItemDelegate : public AbstractPlViewItemDelegate
00044 {
00045 Q_OBJECT
00046
00047 public:
00048 PlIconViewItemDelegate(QWidget *parent = 0) : AbstractPlViewItemDelegate( parent ) {}
00049 void paint ( QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex & index ) const;
00050 QSize sizeHint ( const QStyleOptionViewItem & option = QStyleOptionViewItem(),
00051 const QModelIndex & index = QModelIndex() ) const;
00052 };
00053
00054 class PlListViewItemDelegate : public AbstractPlViewItemDelegate
00055 {
00056 Q_OBJECT
00057
00058 public:
00059 PlListViewItemDelegate(QWidget *parent = 0) : AbstractPlViewItemDelegate(parent) {}
00060
00061 void paint ( QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex & index ) const;
00062 QSize sizeHint ( const QStyleOptionViewItem & option, const QModelIndex & index ) const;
00063 };
00064
00065 class PlIconView : public QListView
00066 {
00067 Q_OBJECT
00068
00069 public:
00070 PlIconView( PLModel *model, QWidget *parent = 0 );
00071 private:
00072 void startDrag ( Qt::DropActions supportedActions );
00073 void dragMoveEvent ( QDragMoveEvent * event );
00074 };
00075
00076 class PlListView : public QListView
00077 {
00078 Q_OBJECT
00079
00080 public:
00081 PlListView( PLModel *model, QWidget *parent = 0 );
00082 private:
00083 void startDrag ( Qt::DropActions supportedActions );
00084 void dragMoveEvent ( QDragMoveEvent * event );
00085 };
00086
00087 class PlTreeView : public QTreeView
00088 {
00089 Q_OBJECT
00090
00091 private:
00092 void startDrag ( Qt::DropActions supportedActions );
00093 void dragMoveEvent ( QDragMoveEvent * event );
00094 };
00095
00096 #endif
00097