OSDN Git Service

設定のリセット処理が抜けていたのを修正
[gefu/Gefu.git] / folderview.h
index 1bf1731..930d115 100644 (file)
@@ -1,18 +1,62 @@
 #ifndef FOLDERVIEW_H
 #define FOLDERVIEW_H
 
+#include "abstractview.h"
+#include "foldermodel.h"
+
 #include <QTableView>
+class MainWindow;
 
-class FolderView : public QTableView
+class FolderView : public QTableView, public AbstractView
 {
     Q_OBJECT
+    Q_PROPERTY(bool dragging MEMBER m_dragging READ isDragging())
+
 public:
     explicit FolderView(QWidget *parent = 0);
 
+    void            initialize(MainWindow *w);
+    bool            isDragging();
+    FolderModel*    folderModel() const;
+    QFileInfoList   selectedItems() const;
+
+private:
+    QPoint  m_dragStartPos;
+    bool    m_dragging;
+    int     m_saveRow;
+    QString m_savePath;
+    QString m_saveName;
+
 signals:
 
-public slots:
+private slots:
+    void    model_PreReset();
+    void    model_PostReset();
+
+    // QWidget interface
+protected:
+    void mousePressEvent(QMouseEvent *event);
+    void mouseMoveEvent(QMouseEvent *event);
+    void dragEnterEvent(QDragEnterEvent *event);
+
+    // QAbstractItemView interface
+public:
+    void setModel(QAbstractItemModel *model);
 
+    // AbstractView interface
+public:
+    void scaleUp();
+    void scaleDown();
 };
 
+inline bool FolderView::isDragging()
+{
+    return m_dragging;
+}
+
+inline FolderModel *FolderView::folderModel() const
+{
+    return static_cast<FolderModel*>(model());
+}
+
 #endif // FOLDERVIEW_H