mirror of
https://github.com/c0re100/qBittorrent-Enhanced-Edition.git
synced 2025-01-08 11:57:51 +08:00
Delay processing of watched folders (#15282)
Fixes regression of #14882. Closes #15272.
This commit is contained in:
parent
4ac25a50ed
commit
bed643e627
@ -207,6 +207,7 @@ signals:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
void onTimeout();
|
void onTimeout();
|
||||||
|
void scheduleWatchedFolderProcessing(const QString &path);
|
||||||
void processWatchedFolder(const QString &path);
|
void processWatchedFolder(const QString &path);
|
||||||
void processFolder(const QString &path, const QString &watchedFolderPath, const TorrentFilesWatcher::WatchedFolderOptions &options);
|
void processFolder(const QString &path, const QString &watchedFolderPath, const TorrentFilesWatcher::WatchedFolderOptions &options);
|
||||||
void processFailedTorrents();
|
void processFailedTorrents();
|
||||||
@ -436,7 +437,7 @@ TorrentFilesWatcher::Worker::Worker()
|
|||||||
, m_watchTimer {new QTimer(this)}
|
, m_watchTimer {new QTimer(this)}
|
||||||
, m_retryTorrentTimer {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_watchTimer, &QTimer::timeout, this, &Worker::onTimeout);
|
||||||
|
|
||||||
connect(m_retryTorrentTimer, &QTimer::timeout, this, &Worker::processFailedTorrents);
|
connect(m_retryTorrentTimer, &QTimer::timeout, this, &Worker::processFailedTorrents);
|
||||||
@ -470,6 +471,14 @@ void TorrentFilesWatcher::Worker::removeWatchedFolder(const QString &path)
|
|||||||
m_retryTorrentTimer->stop();
|
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)
|
void TorrentFilesWatcher::Worker::processWatchedFolder(const QString &path)
|
||||||
{
|
{
|
||||||
const TorrentFilesWatcher::WatchedFolderOptions options = m_watchedFolders.value(path);
|
const TorrentFilesWatcher::WatchedFolderOptions options = m_watchedFolders.value(path);
|
||||||
@ -612,7 +621,7 @@ void TorrentFilesWatcher::Worker::addWatchedFolder(const QString &path, const To
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
m_watcher->addPath(path);
|
m_watcher->addPath(path);
|
||||||
QTimer::singleShot(2000, this, [this, path]() { processWatchedFolder(path); });
|
scheduleWatchedFolderProcessing(path);
|
||||||
}
|
}
|
||||||
|
|
||||||
m_watchedFolders[path] = options;
|
m_watchedFolders[path] = options;
|
||||||
@ -644,7 +653,7 @@ void TorrentFilesWatcher::Worker::updateWatchedFolder(const QString &path, const
|
|||||||
m_watchTimer->stop();
|
m_watchTimer->stop();
|
||||||
|
|
||||||
m_watcher->addPath(path);
|
m_watcher->addPath(path);
|
||||||
QTimer::singleShot(2000, this, [this, path]() { processWatchedFolder(path); });
|
scheduleWatchedFolderProcessing(path);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user