summaryrefslogtreecommitdiff
path: root/src/plugins/qmlprojectmanager
diff options
context:
space:
mode:
authorOswald Buddenhagen <oswald.buddenhagen@nokia.com>2010-11-23 15:44:45 +0100
committerOswald Buddenhagen <oswald.buddenhagen@nokia.com>2010-11-23 15:44:58 +0100
commitf3b5c98bf50d5559c43d19a41d375dfb6fd5fc94 (patch)
tree487b3e21941530218d7f8bf5b3bb5437c6ccc13f /src/plugins/qmlprojectmanager
parent5689e904fe66f90c20a8f36610adf762624b53fe (diff)
parent84515448e8d137a6c5218c27bfee84d5241cb327 (diff)
downloadqt-creator-f3b5c98bf50d5559c43d19a41d375dfb6fd5fc94.tar.gz
Merge remote branch 'origin/2.1'
Diffstat (limited to 'src/plugins/qmlprojectmanager')
-rw-r--r--src/plugins/qmlprojectmanager/fileformat/filefilteritems.cpp14
-rw-r--r--src/plugins/qmlprojectmanager/fileformat/filefilteritems.h3
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;