CuteLogger
Fast and simple logging solution for Qt based applications
playlisticonview.h
1 #ifndef SRC_WIDGETS_PLAYLISTICONVIEW_H
2 #define SRC_WIDGETS_PLAYLISTICONVIEW_H
3 
4 #include <QAbstractItemView>
5 
6 class PlaylistIconView : public QAbstractItemView
7 {
8  Q_OBJECT
9 public:
10  PlaylistIconView(QWidget *parent);
11 
12  QRect visualRect(const QModelIndex &index) const Q_DECL_OVERRIDE;
13  void scrollTo(const QModelIndex &index, ScrollHint hint = EnsureVisible) Q_DECL_OVERRIDE;
14  QModelIndex indexAt(const QPoint &point) const Q_DECL_OVERRIDE;
15  QModelIndex moveCursor(CursorAction cursorAction, Qt::KeyboardModifiers modifiers) Q_DECL_OVERRIDE;
16  int horizontalOffset() const Q_DECL_OVERRIDE;
17  int verticalOffset() const Q_DECL_OVERRIDE;
18  bool isIndexHidden(const QModelIndex &index) const Q_DECL_OVERRIDE;
19  void setSelection(const QRect &rect, QItemSelectionModel::SelectionFlags command) Q_DECL_OVERRIDE;
20  QRegion visualRegionForSelection(const QItemSelection &selection) const Q_DECL_OVERRIDE;
21  void currentChanged(const QModelIndex &current, const QModelIndex &previous) Q_DECL_OVERRIDE;
22 
23  void paintEvent(QPaintEvent*) Q_DECL_OVERRIDE;
24  void mouseReleaseEvent(QMouseEvent *event) Q_DECL_OVERRIDE;
25  void dragMoveEvent(QDragMoveEvent *e) Q_DECL_OVERRIDE;
26  void dragLeaveEvent(QDragLeaveEvent *e) Q_DECL_OVERRIDE;
27  void dropEvent(QDropEvent *e) Q_DECL_OVERRIDE;
28  void resizeEvent(QResizeEvent *event) Q_DECL_OVERRIDE;
29  void setModel(QAbstractItemModel* model) Q_DECL_OVERRIDE;
30 
31  void rowsInserted(const QModelIndex &parent, int start, int end) Q_DECL_OVERRIDE;
32  void rowsAboutToBeRemoved(const QModelIndex &parent, int start, int end) Q_DECL_OVERRIDE;
33  void dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector<int> &roles = QVector<int>()) Q_DECL_OVERRIDE;
34 
35 private slots:
36  void updateSizes();
37 
38 private:
39  int rowWidth() const;
40  QAbstractItemView::DropIndicatorPosition position(const QPoint &pos, const QRect &rect, const QModelIndex &index) const;
41 
42  QSize m_gridSize;
43  QPoint m_draggingOverPos;
44  int m_itemsPerRow;
45 };
46 
47 #endif