Refactoring.

This commit is contained in:
Martin Rotter 2016-08-14 22:11:39 +02:00
parent c615a2b450
commit ebc9b2b1c0
4 changed files with 44 additions and 4 deletions

View file

@ -87,7 +87,6 @@ class FeedsModel : public QAbstractItemModel {
bool containsServiceRootFromEntryPoint(const ServiceEntryPoint *point) const; bool containsServiceRootFromEntryPoint(const ServiceEntryPoint *point) const;
// Direct and the only global accessor to standard service root. // Direct and the only global accessor to standard service root.
// NOTE: Standard service root is always activated.
StandardServiceRoot *standardServiceRoot() const; StandardServiceRoot *standardServiceRoot() const;
// Returns the list of feeds which should be updated // Returns the list of feeds which should be updated

View file

@ -183,7 +183,7 @@ void Application::processExecutionMessage(const QString &message) {
} }
else if (msg.startsWith(QL1S(URI_SCHEME_FEED_SHORT))) { else if (msg.startsWith(QL1S(URI_SCHEME_FEED_SHORT))) {
// Application was running, and someone wants to add new feed. // Application was running, and someone wants to add new feed.
StandardServiceRoot *root = qApp->mainForm()->tabWidget()->feedMessageViewer()->feedsView()->sourceModel()->standardServiceRoot(); StandardServiceRoot *root = qApp->feedReader()->feedsModel()->standardServiceRoot();
if (root != nullptr) { if (root != nullptr) {
root->checkArgumentForFeedAdding(msg); root->checkArgumentForFeedAdding(msg);

View file

@ -26,9 +26,16 @@
#include "core/messagesmodel.h" #include "core/messagesmodel.h"
#include "core/messagesproxymodel.h" #include "core/messagesproxymodel.h"
#include "core/feeddownloader.h" #include "core/feeddownloader.h"
#include "miscellaneous/databasecleaner.h"
#include <QThread>
#include <QTimer>
FeedReader::FeedReader(QObject *parent) : QObject(parent), m_feedServices(QList<ServiceEntryPoint*>()) { FeedReader::FeedReader(QObject *parent)
: QObject(parent), m_feedServices(QList<ServiceEntryPoint*>()), m_autoUpdateTimer(new QTimer(this)),
m_feedDownloaderThread(nullptr), m_feedDownloader(nullptr),
m_dbCleanerThread(nullptr), m_dbCleaner(nullptr) {
m_feedDownloader = new FeedDownloader(this); m_feedDownloader = new FeedDownloader(this);
m_feedsModel = new FeedsModel(this); m_feedsModel = new FeedsModel(this);
m_feedProxyModel = new FeedsProxyModel(m_feedsModel, this); m_feedProxyModel = new FeedsProxyModel(m_feedsModel, this);
@ -52,6 +59,23 @@ QList<ServiceEntryPoint*> FeedReader::feedServices() {
return m_feedServices; return m_feedServices;
} }
DatabaseCleaner *FeedReader::databaseCleaner() {
if (m_dbCleaner == nullptr) {
m_dbCleaner = new DatabaseCleaner();
m_dbCleanerThread = new QThread();
// Downloader setup.
qRegisterMetaType<CleanerOrders>("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 { FeedDownloader *FeedReader::feedDownloader() const {
return m_feedDownloader; return m_feedDownloader;
} }

View file

@ -27,6 +27,9 @@ class MessagesModel;
class MessagesProxyModel; class MessagesProxyModel;
class FeedsProxyModel; class FeedsProxyModel;
class ServiceEntryPoint; class ServiceEntryPoint;
class DatabaseCleaner;
class QTimer;
class Feed;
class FeedReader : public QObject { class FeedReader : public QObject {
Q_OBJECT Q_OBJECT
@ -39,6 +42,9 @@ class FeedReader : public QObject {
// "standard" service entry point. // "standard" service entry point.
QList<ServiceEntryPoint*> feedServices(); QList<ServiceEntryPoint*> feedServices();
// Access to DB cleaner.
DatabaseCleaner *databaseCleaner();
FeedDownloader *feedDownloader() const; FeedDownloader *feedDownloader() const;
FeedsModel *feedsModel() const; FeedsModel *feedsModel() const;
MessagesModel *messagesModel() const; MessagesModel *messagesModel() const;
@ -52,11 +58,22 @@ class FeedReader : public QObject {
private: private:
QList<ServiceEntryPoint*> m_feedServices; QList<ServiceEntryPoint*> m_feedServices;
FeedDownloader *m_feedDownloader;
FeedsModel *m_feedsModel; FeedsModel *m_feedsModel;
FeedsProxyModel *m_feedProxyModel; FeedsProxyModel *m_feedProxyModel;
MessagesModel *m_messagesModel; MessagesModel *m_messagesModel;
MessagesProxyModel *m_messagesProxyModel; MessagesProxyModel *m_messagesProxyModel;
// Auto-update stuff.
QTimer *m_autoUpdateTimer;
bool m_globalAutoUpdateEnabled;
int m_globalAutoUpdateInitialInterval;
int m_globalAutoUpdateRemainingInterval;
QThread *m_feedDownloaderThread;
FeedDownloader *m_feedDownloader;
QThread *m_dbCleanerThread;
DatabaseCleaner *m_dbCleaner;
}; };
#endif // FEEDREADER_H #endif // FEEDREADER_H