OSDN Git Service

サムネイルモードの実装
[gefu/Gefu.git] / folderview.h
1 #ifndef FOLDERVIEW_H
2 #define FOLDERVIEW_H
3
4 #include "abstractview.h"
5 #include "foldermodel.h"
6
7 #include <QTableView>
8 class MainWindow;
9
10 class FolderView : public QTableView, public AbstractView
11 {
12     Q_OBJECT
13     Q_PROPERTY(bool dragging MEMBER m_dragging READ isDragging())
14
15 public:
16     explicit FolderView(QWidget *parent = 0);
17
18     void            initialize(MainWindow *w);
19     bool            isDragging();
20     FolderModel*    folderModel() const;
21     QFileInfoList   selectedItems() const;
22
23 private:
24     QPoint  m_dragStartPos;
25     bool    m_dragging;
26     int     m_saveRow;
27     QString m_savePath;
28     QString m_saveName;
29
30 signals:
31
32 private slots:
33     void    model_PreReset();
34     void    model_PostReset();
35
36     // QWidget interface
37 protected:
38     void mousePressEvent(QMouseEvent *event);
39     void mouseMoveEvent(QMouseEvent *event);
40     void dragEnterEvent(QDragEnterEvent *event);
41
42     // QAbstractItemView interface
43 public:
44     void setModel(QAbstractItemModel *model);
45
46     // AbstractView interface
47 public:
48     void scaleUp();
49     void scaleDown();
50 };
51
52 inline bool FolderView::isDragging()
53 {
54     return m_dragging;
55 }
56
57 inline FolderModel *FolderView::folderModel() const
58 {
59     return static_cast<FolderModel*>(model());
60 }
61
62 #endif // FOLDERVIEW_H