#ifndef FILEBROWSERMODEL_H
#define FILEBROWSERMODEL_H
#include <QDeclarativeParserStatus>
#include <QFileSystemModel>
#include <QAbstractListModel>
#include <QUrl>
#include <QDeclarativeItem>
class FileBrowserModelPrivate;
{
Q_OBJECT
Q_DISABLE_COPY(FileBrowserModel)
Q_INTERFACES(QDeclarativeParserStatus)
Q_PROPERTY(QUrl folder READ folder WRITE setFolder NOTIFY folderChanged
) Q_PROPERTY(QUrl parentFolder READ parentFolder NOTIFY folderChanged
) Q_PROPERTY(QStringList nameFilters READ nameFilters WRITE setNameFilters
) Q_PROPERTY(bool showDirs READ showDirs WRITE setShowDirs)
Q_PROPERTY(bool showDotAndDotDot READ showDotAndDotDot WRITE setShowDotAndDotDot)
Q_PROPERTY(bool showOnlyReadable READ showOnlyReadable WRITE setShowOnlyReadable)
Q_PROPERTY(qint16 count READ count)
public:
explicit FileBrowserModel
(QObject *parent
= 0);
virtual ~FileBrowserModel();
enum Roles { FileNameRole = Qt::UserRole+1, FilePathRole = Qt::UserRole+2 };
//QAbstractListModel reimplementation
qint16 count() const;
//QAbstractListModel reimplementation
//QDeclarativeParserStatus reimplementation
virtual void classBegin();
virtual void componentComplete();
//QDeclarativeParserStatus reimplementation
//properties
void setFolder
(const QUrl &folder
);
QUrl parentFolder
() const;
bool showDirs() const;
void setShowDirs(bool enable);
bool showDotAndDotDot() const;
void setShowDotAndDotDot(bool enable);
bool showOnlyReadable() const;
void setShowOnlyReadable(bool enable);
bool showHidden() const;
void setShowHidden(bool enable);
//properties
Q_INVOKABLE bool isFolder(int index = -1) const;
signals:
void folderChanged();
private slots:
void refresh();
void rootDirChanged
(const QString &newRoot
);
private:
Q_DECLARE_PRIVATE(FileBrowserModel)
FileBrowserModelPrivate * const d_ptr;
};
QML_DECLARE_TYPE(FileBrowserModel)
#endif // FileBrowserModel_H