OSDN Git Service

Ver0.18
[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     bool setPath(const QString &path);\r
18 \r
19     QDir::Filters filter() const { return m_dir.filter(); }\r
20     void setFilter(QDir::Filters filters) { m_dir.setFilter(filters); }\r
21 \r
22     QStringList nameFilters() const { return m_dir.nameFilters(); }\r
23     void setNameFilters(const QStringList &nameFiltes) {\r
24         m_dir.setNameFilters(nameFiltes);\r
25     }\r
26 \r
27     QDir::SortFlags sorting() const { return m_dir.sorting(); }\r
28     void setSorting(QDir::SortFlags sort) { m_dir.setSorting(sort); }\r
29 \r
30     Qt::CheckState checkState(const QModelIndex &index) const;\r
31     void setCheckState(const QModelIndex &index, Qt::CheckState state);\r
32     void setCheckStateAll(Qt::CheckState state);\r
33     const QString absolutePath() const { return m_dir.absolutePath(); }\r
34 \r
35     QFileInfoList checkedItems() const;\r
36     QFileInfo fileInfo(const QModelIndex &index) const;\r
37 \r
38     void updateAppearance();\r
39 \r
40     QFont font() const { return m_font; }\r
41 \r
42 signals:\r
43 //    void rootChanged(const QString &root);\r
44     void selectionChanged(int checkedFoldrs, int checkedFiles, quint64 totalSize);\r
45 \r
46 public slots:\r
47     void directoryChange(const QString &path);\r
48 \r
49 private:\r
50     QDir m_dir;\r
51     QFileInfoList m_fileInfoList;\r
52     QVector<Qt::CheckState> m_checkStates;\r
53     QFileIconProvider m_IconFactory;\r
54     QFileSystemWatcher *m_fsWatcher;\r
55     QFont m_font;\r
56     QBrush m_NormalBrush;\r
57     QBrush m_NormalTextBrush;\r
58     QBrush m_MarkBrush;\r
59     QBrush m_MarkTextBrush;\r
60     QBrush m_SystemBrush;\r
61     QBrush m_HiddenBrush;\r
62     QBrush m_ReadonlyBrush;\r
63 \r
64 //    void stateChanged();\r
65 \r
66     // QAbstractItemModel interface\r
67 public:\r
68     int rowCount(const QModelIndex &parent = QModelIndex()) const;\r
69     int columnCount(const QModelIndex &parent = QModelIndex()) const;\r
70     QVariant data(const QModelIndex &index, int role) const;\r
71     QVariant headerData(int section, Qt::Orientation orientation, int role) const;\r
72     Qt::ItemFlags flags(const QModelIndex &index) const;\r
73     bool setData(const QModelIndex &index, const QVariant &value, int role);\r
74     Qt::DropActions supportedDropActions() const;\r
75     QStringList mimeTypes() const;\r
76 };\r
77 \r
78 #endif // FILETABLEMODEL_H\r