OSDN Git Service

Ver0.19
[gefu/Gefu.git] / filetablemodel.h
1 #ifndef FILETABLEMODEL_H\r
2 #define FILETABLEMODEL_H\r
3 \r
4 #include <QAbstractTableModel>\r
5 #include <QDir>\r
6 #include <QFileIconProvider>\r
7 #include <QFileSystemWatcher>\r
8 #include <QBrush>\r
9 #include <QFont>\r
10 \r
11 class FileTableModel : public QAbstractTableModel\r
12 {\r
13     Q_OBJECT\r
14 public:\r
15     explicit FileTableModel(QObject *parent = 0);\r
16 \r
17     // action\r
18     bool setPath(const QString &path);\r
19     void updateAppearance(bool darker = false);\r
20 \r
21     // getter\r
22     QDir::SortFlags sorting() const { return m_dir.sorting(); }\r
23     QDir::Filters filter() const { return m_dir.filter(); }\r
24     QStringList nameFilters() const { return m_dir.nameFilters(); }\r
25     const QString absolutePath() const { return m_dir.absolutePath(); }\r
26     QFileInfo fileInfo(const QModelIndex &index) const;\r
27     QFont font() const { return m_font; }\r
28 \r
29     // setter\r
30     void setSorting(QDir::SortFlags sort) { m_dir.setSorting(sort); }\r
31     void setFilter(QDir::Filters filters) { m_dir.setFilter(filters); }\r
32     void setNameFilters(const QStringList &nameFiltes) {\r
33         m_dir.setNameFilters(nameFiltes);\r
34     }\r
35 \r
36 signals:\r
37     void selectionChanged(int checkedFoldrs, int checkedFiles, quint64 totalSize);\r
38 \r
39 public slots:\r
40     void directoryChange(const QString &path);\r
41 \r
42 private:\r
43     QDir m_dir;\r
44     QFileInfoList m_fileInfoList;\r
45     QVector<Qt::CheckState> m_checkStates;\r
46     QFileIconProvider m_IconFactory;\r
47     QFileSystemWatcher m_fsWatcher;\r
48     QFont m_font;\r
49     QBrush m_NormalBrush;\r
50     QBrush m_NormalTextBrush;\r
51     QBrush m_MarkBrush;\r
52     QBrush m_MarkTextBrush;\r
53     QBrush m_SystemBrush;\r
54     QBrush m_HiddenBrush;\r
55     QBrush m_ReadonlyBrush;\r
56 \r
57     // QAbstractItemModel interface\r
58 public:\r
59     int rowCount(const QModelIndex &parent = QModelIndex()) const;\r
60     int columnCount(const QModelIndex &parent = QModelIndex()) const;\r
61     QVariant data(const QModelIndex &index, int role) const;\r
62     QVariant headerData(int section, Qt::Orientation orientation, int role) const;\r
63     Qt::ItemFlags flags(const QModelIndex &index) const;\r
64     bool setData(const QModelIndex &index, const QVariant &value, int role);\r
65     Qt::DropActions supportedDropActions() const;\r
66     QStringList mimeTypes() const;\r
67 };\r
68 \r
69 #endif // FILETABLEMODEL_H\r