diff options
author | Oswald Buddenhagen <oswald.buddenhagen@nokia.com> | 2010-11-23 15:44:45 +0100 |
---|---|---|
committer | Oswald Buddenhagen <oswald.buddenhagen@nokia.com> | 2010-11-23 15:44:58 +0100 |
commit | f3b5c98bf50d5559c43d19a41d375dfb6fd5fc94 (patch) | |
tree | 487b3e21941530218d7f8bf5b3bb5437c6ccc13f /src/plugins/qmlprojectmanager | |
parent | 5689e904fe66f90c20a8f36610adf762624b53fe (diff) | |
parent | 84515448e8d137a6c5218c27bfee84d5241cb327 (diff) | |
download | qt-creator-f3b5c98bf50d5559c43d19a41d375dfb6fd5fc94.tar.gz |
Merge remote branch 'origin/2.1'
Diffstat (limited to 'src/plugins/qmlprojectmanager')
-rw-r--r-- | src/plugins/qmlprojectmanager/fileformat/filefilteritems.cpp | 14 | ||||
-rw-r--r-- | src/plugins/qmlprojectmanager/fileformat/filefilteritems.h | 3 |
2 files changed, 16 insertions, 1 deletions
diff --git a/src/plugins/qmlprojectmanager/fileformat/filefilteritems.cpp b/src/plugins/qmlprojectmanager/fileformat/filefilteritems.cpp index 95c1718980..3c2ab7c8d9 100644 --- a/src/plugins/qmlprojectmanager/fileformat/filefilteritems.cpp +++ b/src/plugins/qmlprojectmanager/fileformat/filefilteritems.cpp @@ -8,7 +8,10 @@ FileFilterBaseItem::FileFilterBaseItem(QObject *parent) : QmlProjectContentItem(parent), m_recurse(RecurseDefault) { + m_updateFileListTimer.setSingleShot(true); + m_updateFileListTimer.setInterval(50); connect(&m_dirWatcher, SIGNAL(directoryChanged(QString)), this, SLOT(updateFileList())); + connect(&m_updateFileListTimer, SIGNAL(timeout()), this, SLOT(updateFileListNow())); } QString FileFilterBaseItem::directory() const @@ -32,7 +35,7 @@ void FileFilterBaseItem::setDefaultDirectory(const QString &dirPath) return; m_defaultDir = dirPath; - updateFileList(); + updateFileListNow(); } QString FileFilterBaseItem::filter() const @@ -162,6 +165,15 @@ QString FileFilterBaseItem::absoluteDir() const void FileFilterBaseItem::updateFileList() { + if (!m_updateFileListTimer.isActive()) + m_updateFileListTimer.start(); +} + +void FileFilterBaseItem::updateFileListNow() +{ + if (m_updateFileListTimer.isActive()) + m_updateFileListTimer.stop(); + const QString projectDir = absoluteDir(); if (projectDir.isEmpty()) return; diff --git a/src/plugins/qmlprojectmanager/fileformat/filefilteritems.h b/src/plugins/qmlprojectmanager/fileformat/filefilteritems.h index 2dcd1d557a..9c69c31bc2 100644 --- a/src/plugins/qmlprojectmanager/fileformat/filefilteritems.h +++ b/src/plugins/qmlprojectmanager/fileformat/filefilteritems.h @@ -6,6 +6,7 @@ #include <QSet> #include <qdeclarative.h> #include <QFileSystemWatcher> +#include <QTimer> #include "qmlprojectitem.h" #include "filesystemwatcher.h" @@ -49,6 +50,7 @@ signals: private slots: void updateFileList(); + void updateFileListNow(); private: QString absolutePath(const QString &path) const; @@ -77,6 +79,7 @@ private: QSet<QString> m_files; FileSystemWatcher m_dirWatcher; + QTimer m_updateFileListTimer; friend class ProjectItem; |