OSDN Git Service

Merge remote branch 'origin/2.1'
[qt-creator-jp/qt-creator-jp.git] / src / plugins / qmlprojectmanager / fileformat / filefilteritems.h
index 3233ef7..9c69c31 100644 (file)
@@ -6,6 +6,7 @@
 #include <QSet>
 #include <qdeclarative.h>
 #include <QFileSystemWatcher>
+#include <QTimer>
 
 #include "qmlprojectitem.h"
 #include "filesystemwatcher.h"
@@ -46,21 +47,24 @@ signals:
     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 {
@@ -75,6 +79,7 @@ private:
 
     QSet<QString> m_files;
     FileSystemWatcher m_dirWatcher;
+    QTimer m_updateFileListTimer;
 
 
     friend class ProjectItem;
@@ -89,7 +94,12 @@ public:
 
 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);
@@ -97,7 +107,12 @@ public:
 
 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);
@@ -105,7 +120,12 @@ public:
 
 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);