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