diff options
author | Marc Mutz <marc.mutz@qt.io> | 2023-06-23 10:09:55 +0200 |
---|---|---|
committer | Marc Mutz <marc.mutz@qt.io> | 2023-08-18 15:01:28 +0000 |
commit | 22858ffcedda16cd9f773df9ec74a5bff72a081a (patch) | |
tree | aadd5517b992497d8a1489f17789b1550273e8d1 | |
parent | 9266b6d0914a31215d8505a363ecfd8f80b744eb (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.cpp | 11 | ||||
-rw-r--r-- | src/corelib/io/qfilesystemwatcher_polling_p.h | 8 |
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 |