Qt4ProjectManager: Compress the folderChanged via a small timer

Reviewed-By: hunger
This commit is contained in:
dt
2010-10-13 15:33:51 +02:00
parent 3cd9c59679
commit 4a1f15dbb8
2 changed files with 21 additions and 1 deletions

View File

@@ -1132,6 +1132,10 @@ namespace {
CentralizedFolderWatcher::CentralizedFolderWatcher()
{
m_compressTimer.setSingleShot(true);
m_compressTimer.setInterval(200);
connect(&m_compressTimer, SIGNAL(timeout()),
this, SLOT(onTimer()));
connect (&m_watcher, SIGNAL(directoryChanged(QString)),
this, SLOT(folderChanged(QString)));
}
@@ -1225,8 +1229,20 @@ void CentralizedFolderWatcher::unwatchFolders(const QList<QString> &folders, Qt4
}
}
void CentralizedFolderWatcher::folderChanged(const QString &folder)
{
m_changedFolders.insert(folder);
m_compressTimer.start();
}
void CentralizedFolderWatcher::onTimer()
{
foreach(const QString &folder, m_changedFolders)
delayedFolderChanged(folder);
m_changedFolders.clear();
}
void CentralizedFolderWatcher::delayedFolderChanged(const QString &folder)
{
if (debugCFW)
qDebug()<<"CFW::folderChanged"<<folder;