#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