mirror of
https://github.com/qbittorrent/qBittorrent.git
synced 2025-12-20 07:27:22 -06:00
committed by
GitHub
parent
31c7306bd2
commit
ac3ad17a9e
@@ -102,15 +102,15 @@ AutoDownloader::AutoDownloader()
|
||||
, m_storeSmartEpisodeFilter(u"RSS/AutoDownloader/SmartEpisodeFilter"_qs)
|
||||
, m_storeDownloadRepacks(u"RSS/AutoDownloader/DownloadRepacks"_qs)
|
||||
, m_processingTimer(new QTimer(this))
|
||||
, m_ioThread(new QThread(this))
|
||||
, m_ioThread(new QThread)
|
||||
{
|
||||
Q_ASSERT(!m_instance); // only one instance is allowed
|
||||
m_instance = this;
|
||||
|
||||
m_fileStorage = new AsyncFileStorage(specialFolderLocation(SpecialFolder::Config) / Path(CONF_FOLDER_NAME));
|
||||
|
||||
m_fileStorage->moveToThread(m_ioThread);
|
||||
connect(m_ioThread, &QThread::finished, m_fileStorage, &AsyncFileStorage::deleteLater);
|
||||
m_fileStorage->moveToThread(m_ioThread.get());
|
||||
connect(m_ioThread.get(), &QThread::finished, m_fileStorage, &AsyncFileStorage::deleteLater);
|
||||
connect(m_fileStorage, &AsyncFileStorage::failed, [](const Path &fileName, const QString &errorString)
|
||||
{
|
||||
LogMsg(tr("Couldn't save RSS AutoDownloader data in %1. Error: %2")
|
||||
@@ -155,9 +155,6 @@ AutoDownloader::AutoDownloader()
|
||||
AutoDownloader::~AutoDownloader()
|
||||
{
|
||||
store();
|
||||
|
||||
m_ioThread->quit();
|
||||
m_ioThread->wait();
|
||||
}
|
||||
|
||||
AutoDownloader *AutoDownloader::instance()
|
||||
|
||||
@@ -38,6 +38,7 @@
|
||||
|
||||
#include "base/exceptions.h"
|
||||
#include "base/settingvalue.h"
|
||||
#include "base/utils/thread.h"
|
||||
|
||||
class QThread;
|
||||
class QTimer;
|
||||
@@ -137,7 +138,7 @@ namespace RSS
|
||||
SettingValue<bool> m_storeDownloadRepacks;
|
||||
|
||||
QTimer *m_processingTimer = nullptr;
|
||||
QThread *m_ioThread = nullptr;
|
||||
Utils::Thread::UniquePtr m_ioThread;
|
||||
AsyncFileStorage *m_fileStorage = nullptr;
|
||||
QHash<QString, AutoDownloadRule> m_rules;
|
||||
QList<QSharedPointer<ProcessingJob>> m_processingQueue;
|
||||
|
||||
@@ -62,14 +62,14 @@ Session::Session()
|
||||
: m_storeProcessingEnabled(u"RSS/Session/EnableProcessing"_qs)
|
||||
, m_storeRefreshInterval(u"RSS/Session/RefreshInterval"_qs, 30)
|
||||
, m_storeMaxArticlesPerFeed(u"RSS/Session/MaxArticlesPerFeed"_qs, 50)
|
||||
, m_workingThread(new QThread(this))
|
||||
, m_workingThread(new QThread)
|
||||
{
|
||||
Q_ASSERT(!m_instance); // only one instance is allowed
|
||||
m_instance = this;
|
||||
|
||||
m_confFileStorage = new AsyncFileStorage(specialFolderLocation(SpecialFolder::Config) / Path(CONF_FOLDER_NAME));
|
||||
m_confFileStorage->moveToThread(m_workingThread);
|
||||
connect(m_workingThread, &QThread::finished, m_confFileStorage, &AsyncFileStorage::deleteLater);
|
||||
m_confFileStorage->moveToThread(m_workingThread.get());
|
||||
connect(m_workingThread.get(), &QThread::finished, m_confFileStorage, &AsyncFileStorage::deleteLater);
|
||||
connect(m_confFileStorage, &AsyncFileStorage::failed, [](const Path &fileName, const QString &errorString)
|
||||
{
|
||||
LogMsg(tr("Couldn't save RSS session configuration. File: \"%1\". Error: \"%2\"")
|
||||
@@ -77,8 +77,8 @@ Session::Session()
|
||||
});
|
||||
|
||||
m_dataFileStorage = new AsyncFileStorage(specialFolderLocation(SpecialFolder::Data) / Path(DATA_FOLDER_NAME));
|
||||
m_dataFileStorage->moveToThread(m_workingThread);
|
||||
connect(m_workingThread, &QThread::finished, m_dataFileStorage, &AsyncFileStorage::deleteLater);
|
||||
m_dataFileStorage->moveToThread(m_workingThread.get());
|
||||
connect(m_workingThread.get(), &QThread::finished, m_dataFileStorage, &AsyncFileStorage::deleteLater);
|
||||
connect(m_dataFileStorage, &AsyncFileStorage::failed, [](const Path &fileName, const QString &errorString)
|
||||
{
|
||||
LogMsg(tr("Couldn't save RSS session data. File: \"%1\". Error: \"%2\"")
|
||||
@@ -126,11 +126,6 @@ Session::~Session()
|
||||
//store();
|
||||
delete m_itemsByPath[u""_qs]; // deleting root folder
|
||||
|
||||
// some items may add I/O operation at destruction
|
||||
// stop working thread after deleting root folder
|
||||
m_workingThread->quit();
|
||||
m_workingThread->wait();
|
||||
|
||||
qDebug() << "RSS Session deleted.";
|
||||
}
|
||||
|
||||
@@ -487,7 +482,7 @@ void Session::setRefreshInterval(const int refreshInterval)
|
||||
|
||||
QThread *Session::workingThread() const
|
||||
{
|
||||
return m_workingThread;
|
||||
return m_workingThread.get();
|
||||
}
|
||||
|
||||
void Session::handleItemAboutToBeDestroyed(Item *item)
|
||||
|
||||
@@ -75,6 +75,7 @@
|
||||
|
||||
#include "base/3rdparty/expected.hpp"
|
||||
#include "base/settingvalue.h"
|
||||
#include "base/utils/thread.h"
|
||||
|
||||
class QThread;
|
||||
|
||||
@@ -158,7 +159,7 @@ namespace RSS
|
||||
CachedSettingValue<bool> m_storeProcessingEnabled;
|
||||
CachedSettingValue<int> m_storeRefreshInterval;
|
||||
CachedSettingValue<int> m_storeMaxArticlesPerFeed;
|
||||
QThread *m_workingThread = nullptr;
|
||||
Utils::Thread::UniquePtr m_workingThread;
|
||||
AsyncFileStorage *m_confFileStorage = nullptr;
|
||||
AsyncFileStorage *m_dataFileStorage = nullptr;
|
||||
QTimer m_refreshTimer;
|
||||
|
||||
Reference in New Issue
Block a user