#include <QSet>
#include <qdeclarative.h>
#include <QFileSystemWatcher>
+#include <QTimer>
#include "qmlprojectitem.h"
#include "filesystemwatcher.h"
void recursiveChanged();
void pathsChanged();
void filesChanged(const QSet<QString> &added, const QSet<QString> &removed);
- void filterChanged();
private slots:
void updateFileList();
+ void updateFileListNow();
private:
QString absolutePath(const QString &path) const;
QString absoluteDir() const;
+ bool fileMatches(const QString &fileName) const;
QSet<QString> filesInSubTree(const QDir &rootDir, const QDir &dir, QSet<QString> *parsedDirs = 0);
QString m_rootDir;
QString m_defaultDir;
QString m_filter;
+ // simple "*.png" patterns are stored in m_fileSuffixes, otherwise store in m_regExpList
+ QList<QString> m_fileSuffixes;
QList<QRegExp> m_regExpList;
enum RecursiveOption {
QSet<QString> m_files;
FileSystemWatcher m_dirWatcher;
+ QTimer m_updateFileListTimer;
friend class ProjectItem;
class JsFileFilterItem : public FileFilterBaseItem {
Q_OBJECT
- Q_PROPERTY(QString filter READ filter WRITE setFilter NOTIFY filterChanged())
+ Q_PROPERTY(QString filter READ filter WRITE setFilter NOTIFY filterChanged)
+
+ void setFilter(const QString &filter);
+
+signals:
+ void filterChanged();
public:
JsFileFilterItem(QObject *parent = 0);
class ImageFileFilterItem : public FileFilterBaseItem {
Q_OBJECT
- Q_PROPERTY(QString filter READ filter WRITE setFilter NOTIFY filterChanged())
+ Q_PROPERTY(QString filter READ filter WRITE setFilter NOTIFY filterChanged)
+
+ void setFilter(const QString &filter);
+
+signals:
+ void filterChanged();
public:
ImageFileFilterItem(QObject *parent = 0);
class CssFileFilterItem : public FileFilterBaseItem {
Q_OBJECT
- Q_PROPERTY(QString filter READ filter WRITE setFilter NOTIFY filterChanged())
+ Q_PROPERTY(QString filter READ filter WRITE setFilter NOTIFY filterChanged)
+
+ void setFilter(const QString &filter);
+
+signals:
+ void filterChanged();
public:
CssFileFilterItem(QObject *parent = 0);