diff --git a/resources/desktop/com.github.rssguard.appdata.xml b/resources/desktop/com.github.rssguard.appdata.xml index 3e2d80f2c..49c465d72 100755 --- a/resources/desktop/com.github.rssguard.appdata.xml +++ b/resources/desktop/com.github.rssguard.appdata.xml @@ -30,7 +30,7 @@ https://martinrotter.github.io/donate/ - + none diff --git a/src/gui/dialogs/formdatabasecleanup.cpp b/src/gui/dialogs/formdatabasecleanup.cpp index a4a6963a5..1c0e8a045 100755 --- a/src/gui/dialogs/formdatabasecleanup.cpp +++ b/src/gui/dialogs/formdatabasecleanup.cpp @@ -16,30 +16,20 @@ FormDatabaseCleanup::FormDatabaseCleanup(QWidget* parent) : QDialog(parent), m_u // Set flags and attributes. setWindowFlags(Qt::MSWindowsFixedSizeDialogHint | Qt::Dialog | Qt::WindowSystemMenuHint | Qt::WindowTitleHint); setWindowIcon(qApp->icons()->fromTheme(QSL("edit-clear"))); + connect(m_ui->m_spinDays, static_cast(&QSpinBox::valueChanged), this, &FormDatabaseCleanup::updateDaysSuffix); + connect(m_ui->m_btnBox->button(QDialogButtonBox::Ok), &QPushButton::clicked, this, &FormDatabaseCleanup::startPurging); + connect(this, &FormDatabaseCleanup::purgeRequested, &m_cleaner, &DatabaseCleaner::purgeDatabaseData); + connect(&m_cleaner, &DatabaseCleaner::purgeStarted, this, &FormDatabaseCleanup::onPurgeStarted); + connect(&m_cleaner, &DatabaseCleaner::purgeProgress, this, &FormDatabaseCleanup::onPurgeProgress); + connect(&m_cleaner, &DatabaseCleaner::purgeFinished, this, &FormDatabaseCleanup::onPurgeFinished); + m_ui->m_spinDays->setValue(DEFAULT_DAYS_TO_DELETE_MSG); m_ui->m_lblResult->setStatus(WidgetWithStatus::Information, tr("I am ready."), tr("I am ready.")); + loadDatabaseInfo(); } -FormDatabaseCleanup::~FormDatabaseCleanup() { - qDebug("Destroying FormDatabaseCleanup instance."); -} - -void FormDatabaseCleanup::setCleaner(DatabaseCleaner* cleaner) { - if (m_cleaner != nullptr) { - disconnect(this, 0, m_cleaner, 0); - disconnect(m_cleaner, 0, this, 0); - } - - m_cleaner = cleaner; - connect(m_ui->m_btnBox->button(QDialogButtonBox::Ok), &QPushButton::clicked, this, &FormDatabaseCleanup::startPurging); - connect(this, &FormDatabaseCleanup::purgeRequested, m_cleaner, &DatabaseCleaner::purgeDatabaseData); - connect(m_cleaner, &DatabaseCleaner::purgeStarted, this, &FormDatabaseCleanup::onPurgeStarted); - connect(m_cleaner, &DatabaseCleaner::purgeProgress, this, &FormDatabaseCleanup::onPurgeProgress); - connect(m_cleaner, &DatabaseCleaner::purgeFinished, this, &FormDatabaseCleanup::onPurgeFinished); -} - void FormDatabaseCleanup::closeEvent(QCloseEvent* event) { if (m_ui->m_progressBar->isEnabled()) { event->ignore(); diff --git a/src/gui/dialogs/formdatabasecleanup.h b/src/gui/dialogs/formdatabasecleanup.h index 4c1c72a35..b6c967507 100755 --- a/src/gui/dialogs/formdatabasecleanup.h +++ b/src/gui/dialogs/formdatabasecleanup.h @@ -13,12 +13,8 @@ class FormDatabaseCleanup : public QDialog { Q_OBJECT public: - - // Constructors. - explicit FormDatabaseCleanup(QWidget* parent = 0); - virtual ~FormDatabaseCleanup(); - - void setCleaner(DatabaseCleaner* cleaner); + explicit FormDatabaseCleanup(QWidget* parent = nullptr); + virtual ~FormDatabaseCleanup() = default; protected: void closeEvent(QCloseEvent* event); @@ -39,7 +35,7 @@ class FormDatabaseCleanup : public QDialog { private: QScopedPointer m_ui; - DatabaseCleaner* m_cleaner; + DatabaseCleaner m_cleaner; }; #endif // FORMDATABASECLEANUP_H diff --git a/src/gui/dialogs/formdatabasecleanup.ui b/src/gui/dialogs/formdatabasecleanup.ui index 1d18a2a4e..309e00f96 100755 --- a/src/gui/dialogs/formdatabasecleanup.ui +++ b/src/gui/dialogs/formdatabasecleanup.ui @@ -35,9 +35,6 @@ - - 1 - 1000 diff --git a/src/gui/dialogs/formmain.cpp b/src/gui/dialogs/formmain.cpp index 472450bd3..c95cca83d 100755 --- a/src/gui/dialogs/formmain.cpp +++ b/src/gui/dialogs/formmain.cpp @@ -99,7 +99,6 @@ void FormMain::showDbCleanupAssistant() { if (qApp->feedUpdateLock()->tryLock()) { FormDatabaseCleanup form(this); - form.setCleaner(qApp->feedReader()->databaseCleaner()); form.exec(); // Reload needed stuff. diff --git a/src/miscellaneous/databasecleaner.h b/src/miscellaneous/databasecleaner.h index c82d7f857..e7464e5d1 100755 --- a/src/miscellaneous/databasecleaner.h +++ b/src/miscellaneous/databasecleaner.h @@ -22,7 +22,7 @@ class DatabaseCleaner : public QObject { public: // Constructors. - explicit DatabaseCleaner(QObject* parent = 0); + explicit DatabaseCleaner(QObject* parent = nullptr); virtual ~DatabaseCleaner(); signals: diff --git a/src/miscellaneous/feedreader.cpp b/src/miscellaneous/feedreader.cpp index 6dc135e00..42d5e8b54 100755 --- a/src/miscellaneous/feedreader.cpp +++ b/src/miscellaneous/feedreader.cpp @@ -8,7 +8,6 @@ #include "core/messagesmodel.h" #include "core/messagesproxymodel.h" #include "miscellaneous/application.h" -#include "miscellaneous/databasecleaner.h" #include "miscellaneous/mutex.h" #include "services/abstract/cacheforserviceroot.h" #include "services/abstract/serviceroot.h" @@ -24,8 +23,7 @@ FeedReader::FeedReader(QObject* parent) : QObject(parent), m_feedServices(QList()), - m_autoUpdateTimer(new QTimer(this)), m_feedDownloader(nullptr), - m_dbCleanerThread(nullptr), m_dbCleaner(nullptr) { + m_autoUpdateTimer(new QTimer(this)), m_feedDownloader(nullptr) { m_feedsModel = new FeedsModel(this); m_feedsProxyModel = new FeedsProxyModel(m_feedsModel, this); m_messagesModel = new MessagesModel(this); @@ -133,23 +131,6 @@ bool FeedReader::isFeedUpdateRunning() const { return m_feedDownloader != nullptr && m_feedDownloader->isUpdateRunning(); } -DatabaseCleaner* FeedReader::databaseCleaner() { - if (m_dbCleaner == nullptr) { - m_dbCleaner = new DatabaseCleaner(); - m_dbCleanerThread = new QThread(); - - // Downloader setup. - qRegisterMetaType("CleanerOrders"); - m_dbCleaner->moveToThread(m_dbCleanerThread); - connect(m_dbCleanerThread, SIGNAL(finished()), m_dbCleanerThread, SLOT(deleteLater())); - - // Connections are made, start the feed downloader thread. - m_dbCleanerThread->start(); - } - - return m_dbCleaner; -} - FeedDownloader* FeedReader::feedDownloader() const { return m_feedDownloader; } @@ -236,27 +217,12 @@ void FeedReader::quit() { } } - if (m_dbCleanerThread != nullptr && m_dbCleanerThread->isRunning()) { - qDebug("Quitting database cleaner thread."); - m_dbCleanerThread->quit(); - - if (!m_dbCleanerThread->wait(CLOSE_LOCK_TIMEOUT)) { - qCritical("Database cleaner thread is running despite it was told to quit. Terminating it."); - m_dbCleanerThread->terminate(); - } - } - // Close workers. if (m_feedDownloader != nullptr) { qDebug("Feed downloader exists. Deleting it from memory."); m_feedDownloader->deleteLater(); } - if (m_dbCleaner != nullptr) { - qDebug("Database cleaner exists. Deleting it from memory."); - m_dbCleaner->deleteLater(); - } - if (qApp->settings()->value(GROUP(Messages), SETTING(Messages::ClearReadOnExit)).toBool()) { m_feedsModel->markItemCleared(m_feedsModel->rootItem(), true); } diff --git a/src/miscellaneous/feedreader.h b/src/miscellaneous/feedreader.h index 2cdf22f4e..face6e306 100755 --- a/src/miscellaneous/feedreader.h +++ b/src/miscellaneous/feedreader.h @@ -15,14 +15,13 @@ class MessagesModel; class MessagesProxyModel; class FeedsProxyModel; class ServiceEntryPoint; -class DatabaseCleaner; class QTimer; class FeedReader : public QObject { Q_OBJECT public: - explicit FeedReader(QObject* parent = 0); + explicit FeedReader(QObject* parent = nullptr); virtual ~FeedReader(); // List of all installed "feed service plugins", including obligatory @@ -30,7 +29,6 @@ class FeedReader : public QObject { QList feedServices(); // Access to DB cleaner. - DatabaseCleaner* databaseCleaner(); FeedDownloader* feedDownloader() const; FeedsModel* feedsModel() const; MessagesModel* messagesModel() const; @@ -84,8 +82,6 @@ class FeedReader : public QObject { int m_globalAutoUpdateInitialInterval; int m_globalAutoUpdateRemainingInterval; FeedDownloader* m_feedDownloader; - QThread* m_dbCleanerThread; - DatabaseCleaner* m_dbCleaner; }; #endif // FEEDREADER_H