mirror of
https://github.com/qbittorrent/qBittorrent.git
synced 2024-11-26 19:26:59 +03:00
Delay processing of watched folders (#15282)
Fixes regression of #14882. Closes #15272.
This commit is contained in:
parent
4ac25a50ed
commit
bed643e627
1 changed files with 12 additions and 3 deletions
|
@ -207,6 +207,7 @@ signals:
|
|||
|
||||
private:
|
||||
void onTimeout();
|
||||
void scheduleWatchedFolderProcessing(const QString &path);
|
||||
void processWatchedFolder(const QString &path);
|
||||
void processFolder(const QString &path, const QString &watchedFolderPath, const TorrentFilesWatcher::WatchedFolderOptions &options);
|
||||
void processFailedTorrents();
|
||||
|
@ -436,7 +437,7 @@ TorrentFilesWatcher::Worker::Worker()
|
|||
, m_watchTimer {new QTimer(this)}
|
||||
, m_retryTorrentTimer {new QTimer(this)}
|
||||
{
|
||||
connect(m_watcher, &QFileSystemWatcher::directoryChanged, this, &Worker::processWatchedFolder);
|
||||
connect(m_watcher, &QFileSystemWatcher::directoryChanged, this, &Worker::scheduleWatchedFolderProcessing);
|
||||
connect(m_watchTimer, &QTimer::timeout, this, &Worker::onTimeout);
|
||||
|
||||
connect(m_retryTorrentTimer, &QTimer::timeout, this, &Worker::processFailedTorrents);
|
||||
|
@ -470,6 +471,14 @@ void TorrentFilesWatcher::Worker::removeWatchedFolder(const QString &path)
|
|||
m_retryTorrentTimer->stop();
|
||||
}
|
||||
|
||||
void TorrentFilesWatcher::Worker::scheduleWatchedFolderProcessing(const QString &path)
|
||||
{
|
||||
QTimer::singleShot(2000, this, [this, path]()
|
||||
{
|
||||
processWatchedFolder(path);
|
||||
});
|
||||
}
|
||||
|
||||
void TorrentFilesWatcher::Worker::processWatchedFolder(const QString &path)
|
||||
{
|
||||
const TorrentFilesWatcher::WatchedFolderOptions options = m_watchedFolders.value(path);
|
||||
|
@ -612,7 +621,7 @@ void TorrentFilesWatcher::Worker::addWatchedFolder(const QString &path, const To
|
|||
else
|
||||
{
|
||||
m_watcher->addPath(path);
|
||||
QTimer::singleShot(2000, this, [this, path]() { processWatchedFolder(path); });
|
||||
scheduleWatchedFolderProcessing(path);
|
||||
}
|
||||
|
||||
m_watchedFolders[path] = options;
|
||||
|
@ -644,7 +653,7 @@ void TorrentFilesWatcher::Worker::updateWatchedFolder(const QString &path, const
|
|||
m_watchTimer->stop();
|
||||
|
||||
m_watcher->addPath(path);
|
||||
QTimer::singleShot(2000, this, [this, path]() { processWatchedFolder(path); });
|
||||
scheduleWatchedFolderProcessing(path);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue