Refactoring.
This commit is contained in:
parent
c615a2b450
commit
ebc9b2b1c0
4 changed files with 44 additions and 4 deletions
|
@ -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
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Add table
Reference in a new issue