QXRD  0.11.16
qxrdfilebrowsermodel.h
Go to the documentation of this file.
1 #ifndef QXRDFILEBROWSERMODEL_H
2 #define QXRDFILEBROWSERMODEL_H
3 
4 #include "qcepobject.h"
5 #include <QAbstractTableModel>
6 #include <QVector>
7 #include <QFileInfo>
8 #include <QStringList>
9 #include <QDateTime>
10 #include <QMutex>
11 #include <QTimer>
12 
16 
17 class QxrdFileBrowserModel : public QAbstractTableModel, public QEnableSharedFromThis<QxrdFileBrowserModel>
18 {
19  Q_OBJECT
20 
21 public:
22  explicit QxrdFileBrowserModel(QObject *parent);
24  void initialize();
25 
26  typedef QAbstractTableModel inherited;
27 
28  QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;
29  QVariant data(const QModelIndex & index, int role = Qt::DisplayRole) const;
30  int rowCount(const QModelIndex &parent = QModelIndex()) const;
31  int columnCount(const QModelIndex &parent = QModelIndex()) const;
32  void setNameFilters(QStringList filters);
33  void setNameFilterDisables(bool disables);
34 
35  QFileInfo fileInfo(const QModelIndex &index) const;
36  QString fileName(const QModelIndex &index) const;
37  QString filePath(const QModelIndex &index) const;
38 
39  void setRootPath(QString path);
40  QString rootPath() const;
41 
42  bool isDir(const QModelIndex &index) const;
43 
44  virtual void sort ( int column, Qt::SortOrder order = Qt::AscendingOrder );
45  void refresh();
46 
47  QStringList nameFilters() const;
48  int sortedColumn() const;
49  Qt::SortOrder sortOrder() const;
50 
51  void generateFileUpdates(int doIt);
52 
53 public slots:
54  void newDataAvailable(QVector<QFileInfo> dirs, QVector<QFileInfo> files, int limit=0, int trueSize=-1);
55  void updatedFile(QFileInfo file);
56 
57 signals:
58  void rootChanged(const QString& path);
59  void fileUpdated(QFileInfo file);
60 
61 private:
62  void updateModel();
63 
64 private:
65  mutable QMutex m_Mutex;
68  QString m_RootPath;
69  QStringList m_NameFilters;
70  QVector<QFileInfo> m_DirList;
71  QVector<QFileInfo> m_FileList;
73  Qt::SortOrder m_SortOrder;
74  int m_Limit;
80  QTimer *m_Timer;
81 };
82 
83 #endif // QXRDFILEBROWSERMODEL_H
QxrdFileBrowserModel(QObject *parent)
QxrdFileBrowserModelUpdaterWPtr m_Updater
QFileInfo fileInfo(const QModelIndex &index) const
QStringList nameFilters() const
QxrdFileBrowserModelUpdaterThreadPtr m_UpdaterThread
QVector< QFileInfo > m_FileList
int rowCount(const QModelIndex &parent=QModelIndex()) const
int columnCount(const QModelIndex &parent=QModelIndex()) const
void setNameFilters(QStringList filters)
void generateFileUpdates(int doIt)
QVector< QFileInfo > m_DirList
QString fileName(const QModelIndex &index) const
void newDataAvailable(QVector< QFileInfo > dirs, QVector< QFileInfo > files, int limit=0, int trueSize=-1)
QString filePath(const QModelIndex &index) const
Qt::SortOrder sortOrder() const
QAbstractTableModel inherited
bool isDir(const QModelIndex &index) const
void fileUpdated(QFileInfo file)
QWeakPointer< QxrdFileBrowserModelUpdater > QxrdFileBrowserModelUpdaterWPtr
void setRootPath(QString path)
QVariant headerData(int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const
void setNameFilterDisables(bool disables)
void rootChanged(const QString &path)
virtual void sort(int column, Qt::SortOrder order=Qt::AscendingOrder)
QSharedPointer< QxrdFileBrowserModelUpdaterThread > QxrdFileBrowserModelUpdaterThreadPtr
void updatedFile(QFileInfo file)
QVariant data(const QModelIndex &index, int role=Qt::DisplayRole) const