summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarc Mutz <marc.mutz@qt.io>2023-06-23 10:09:55 +0200
committerMarc Mutz <marc.mutz@qt.io>2023-08-18 15:01:28 +0000
commit22858ffcedda16cd9f773df9ec74a5bff72a081a (patch)
treeaadd5517b992497d8a1489f17789b1550273e8d1
parent9266b6d0914a31215d8505a363ecfd8f80b744eb (diff)
QPollingFileSystemWatcherEngine: replace QTimer with QBasicTimer
We already have a QObject (*this), so we don't need another one in the form of a QTimer; we can just let QTimerEvents be delivered to *this. Changes surprisingly little code, because the code used start(int) already. Mark the timerEvent() final to avoid surprises from potential further-derived classes. Pick-to: 6.6 Change-Id: Ib4ee8f8f6b9995d67d964afb231e913a00a76af3 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
-rw-r--r--src/corelib/io/qfilesystemwatcher_polling.cpp11
-rw-r--r--src/corelib/io/qfilesystemwatcher_polling_p.h8
2 files changed, 10 insertions, 9 deletions
diff --git a/src/corelib/io/qfilesystemwatcher_polling.cpp b/src/corelib/io/qfilesystemwatcher_polling.cpp
index 03425ac212..6ec8b17ea4 100644
--- a/src/corelib/io/qfilesystemwatcher_polling.cpp
+++ b/src/corelib/io/qfilesystemwatcher_polling.cpp
@@ -8,10 +8,8 @@
QT_BEGIN_NAMESPACE
QPollingFileSystemWatcherEngine::QPollingFileSystemWatcherEngine(QObject *parent)
- : QFileSystemWatcherEngine(parent),
- timer(this)
+ : QFileSystemWatcherEngine(parent)
{
- connect(&timer, SIGNAL(timeout()), SLOT(timeout()));
}
QStringList QPollingFileSystemWatcherEngine::addPaths(const QStringList &paths,
@@ -43,7 +41,7 @@ QStringList QPollingFileSystemWatcherEngine::addPaths(const QStringList &paths,
if ((!this->files.isEmpty() ||
!this->directories.isEmpty()) &&
!timer.isActive()) {
- timer.start(PollingInterval);
+ timer.start(PollingInterval, this);
}
return unhandled;
@@ -72,8 +70,11 @@ QStringList QPollingFileSystemWatcherEngine::removePaths(const QStringList &path
return unhandled;
}
-void QPollingFileSystemWatcherEngine::timeout()
+void QPollingFileSystemWatcherEngine::timerEvent(QTimerEvent *e)
{
+ if (e->timerId() != timer.timerId())
+ return QFileSystemWatcherEngine::timerEvent(e);
+
for (auto it = files.begin(), end = files.end(); it != end; /*erasing*/) {
QString path = it.key();
QFileInfo fi(path);
diff --git a/src/corelib/io/qfilesystemwatcher_polling_p.h b/src/corelib/io/qfilesystemwatcher_polling_p.h
index 2d7423b39d..b1100b061a 100644
--- a/src/corelib/io/qfilesystemwatcher_polling_p.h
+++ b/src/corelib/io/qfilesystemwatcher_polling_p.h
@@ -15,11 +15,11 @@
// We mean it.
//
+#include <QtCore/qbasictimer.h>
#include <QtCore/qfileinfo.h>
#include <QtCore/qmutex.h>
#include <QtCore/qdatetime.h>
#include <QtCore/qdir.h>
-#include <QtCore/qtimer.h>
#include <QtCore/qhash.h>
#include "qfilesystemwatcher_p.h"
@@ -77,11 +77,11 @@ public:
QStringList addPaths(const QStringList &paths, QStringList *files, QStringList *directories) override;
QStringList removePaths(const QStringList &paths, QStringList *files, QStringList *directories) override;
-private Q_SLOTS:
- void timeout();
+private:
+ void timerEvent(QTimerEvent *) final;
private:
- QTimer timer;
+ QBasicTimer timer;
};
QT_END_NAMESPACE