diff --git a/src/core/feedsproxymodel.cpp b/src/core/feedsproxymodel.cpp index 7ca4bb519..0c83937ba 100755 --- a/src/core/feedsproxymodel.cpp +++ b/src/core/feedsproxymodel.cpp @@ -27,10 +27,9 @@ #include -FeedsProxyModel::FeedsProxyModel(QObject *parent) - : QSortFilterProxyModel(parent), m_selectedItem(nullptr), m_showUnreadOnly(false), m_hiddenIndices(QList >()) { - m_sourceModel = new FeedsModel(this); - +FeedsProxyModel::FeedsProxyModel(FeedsModel *source_model, QObject *parent) + : QSortFilterProxyModel(parent), m_sourceModel(source_model), m_selectedItem(nullptr), + m_showUnreadOnly(false), m_hiddenIndices(QList >()) { setObjectName(QSL("FeedsProxyModel")); setSortRole(Qt::EditRole); setSortCaseSensitivity(Qt::CaseInsensitive); diff --git a/src/core/feedsproxymodel.h b/src/core/feedsproxymodel.h index 80da25a66..a2d7597bf 100755 --- a/src/core/feedsproxymodel.h +++ b/src/core/feedsproxymodel.h @@ -29,7 +29,7 @@ class FeedsProxyModel : public QSortFilterProxyModel { public: // Constructors and destructors. - explicit FeedsProxyModel(QObject *parent = 0); + explicit FeedsProxyModel(FeedsModel *source_model, QObject *parent = 0); virtual ~FeedsProxyModel(); // Access to the source model. diff --git a/src/core/messagesproxymodel.cpp b/src/core/messagesproxymodel.cpp index 4954a75f7..7343c7f99 100755 --- a/src/core/messagesproxymodel.cpp +++ b/src/core/messagesproxymodel.cpp @@ -20,9 +20,8 @@ #include "core/messagesmodel.h" -MessagesProxyModel::MessagesProxyModel(QObject *parent) - : QSortFilterProxyModel(parent) { - m_sourceModel = new MessagesModel(this); +MessagesProxyModel::MessagesProxyModel(MessagesModel *source_model, QObject *parent) + : QSortFilterProxyModel(parent), m_sourceModel(source_model) { setObjectName(QSL("MessagesProxyModel")); setSortRole(Qt::EditRole); diff --git a/src/core/messagesproxymodel.h b/src/core/messagesproxymodel.h index 93c48b221..8bde53751 100755 --- a/src/core/messagesproxymodel.h +++ b/src/core/messagesproxymodel.h @@ -28,7 +28,7 @@ class MessagesProxyModel : public QSortFilterProxyModel { public: // Constructors and destructors. - explicit MessagesProxyModel(QObject *parent = 0); + explicit MessagesProxyModel(MessagesModel *source_model, QObject *parent = 0); virtual ~MessagesProxyModel(); // Source model getter. diff --git a/src/gui/feedsview.cpp b/src/gui/feedsview.cpp index e08802631..f58eb5fe5 100755 --- a/src/gui/feedsview.cpp +++ b/src/gui/feedsview.cpp @@ -50,8 +50,8 @@ FeedsView::FeedsView(QWidget *parent) setObjectName(QSL("FeedsView")); // Allocate models. - m_proxyModel = new FeedsProxyModel(this); - m_sourceModel = m_proxyModel->sourceModel(); + m_sourceModel = new FeedsModel(this); + m_proxyModel = new FeedsProxyModel(m_sourceModel, this); // Connections. connect(m_sourceModel, SIGNAL(requireItemValidationAfterDragDrop(QModelIndex)), this, SLOT(validateItemAfterDragDrop(QModelIndex))); diff --git a/src/gui/messagesview.cpp b/src/gui/messagesview.cpp index c8783634e..a9bae77d3 100755 --- a/src/gui/messagesview.cpp +++ b/src/gui/messagesview.cpp @@ -38,8 +38,8 @@ MessagesView::MessagesView(QWidget *parent) m_contextMenu(nullptr), m_columnsAdjusted(false), m_batchUnreadSwitch(false) { - m_proxyModel = new MessagesProxyModel(this); - m_sourceModel = m_proxyModel->sourceModel(); + m_sourceModel = new MessagesModel(this); + m_proxyModel = new MessagesProxyModel(m_sourceModel, this); // Forward count changes to the view. createConnections(); diff --git a/src/main.cpp b/src/main.cpp index 2545bbc11..ffc8ea0e7 100755 --- a/src/main.cpp +++ b/src/main.cpp @@ -20,6 +20,7 @@ #include "miscellaneous/databasefactory.h" #include "miscellaneous/debugging.h" #include "miscellaneous/iconfactory.h" +#include "miscellaneous/feedreader.h" #include "dynamic-shortcuts/dynamicshortcuts.h" #include "gui/dialogs/formmain.h" #include "gui/feedmessageviewer.h" @@ -48,7 +49,8 @@ int main(int argc, char *argv[]) { qDebug("Usage: rssguard [OPTIONS]\n\n" "Option\t\tGNU long option\t\tMeaning\n" "-h\t\t--help\t\t\tDisplays this help.\n" - "-c\t\t--cron\t\t\tStarts the application without GUI and will regularly update configured feeds."); + "-c\t\t--cron\t\t\tStarts the application without GUI and will regularly update configured feeds. **\n\n" + "** "); return EXIT_SUCCESS; } @@ -74,6 +76,8 @@ int main(int argc, char *argv[]) { Application application(APP_LOW_NAME, run_minimal_without_gui, argc, argv); qDebug("Instantiated Application class."); + application.feedReader()->start(); + // Check if another instance is running. if (application.sendMessage((QStringList() << APP_IS_RUNNING << application.arguments().mid(1)).join(ARGUMENTS_LIST_SEPARATOR))) { qWarning("Another instance of the application is already running. Notifying it."); diff --git a/src/miscellaneous/feedreader.cpp b/src/miscellaneous/feedreader.cpp index 7d80c0ab6..196e92aaf 100644 --- a/src/miscellaneous/feedreader.cpp +++ b/src/miscellaneous/feedreader.cpp @@ -21,6 +21,12 @@ #include "services/owncloud/owncloudserviceentrypoint.h" #include "services/tt-rss/ttrssserviceentrypoint.h" +#include "core/feedsmodel.h" +#include "core/feedsproxymodel.h" +#include "core/messagesmodel.h" +#include "core/messagesproxymodel.h" +#include "core/feeddownloader.h" + FeedReader::FeedReader(QObject *parent) : QObject(parent), m_feedServices(QList()) { } @@ -54,9 +60,21 @@ MessagesModel *FeedReader::messagesModel() const { } void FeedReader::start() { - + m_feedDownloader = new FeedDownloader(this); + m_feedsModel = new FeedsModel(this); + m_feedProxyModel = new FeedsProxyModel(m_feedsModel, this); + m_messagesModel = new MessagesModel(this); + m_messagesProxyModel = new MessagesProxyModel(m_messagesModel, this); } void FeedReader::stop() { } + +MessagesProxyModel *FeedReader::messagesProxyModel() const { + return m_messagesProxyModel; +} + +FeedsProxyModel *FeedReader::feedProxyModel() const { + return m_feedProxyModel; +} diff --git a/src/miscellaneous/feedreader.h b/src/miscellaneous/feedreader.h index 5bf4cb320..59d3873cd 100644 --- a/src/miscellaneous/feedreader.h +++ b/src/miscellaneous/feedreader.h @@ -24,6 +24,8 @@ class FeedDownloader; class FeedsModel; class MessagesModel; +class MessagesProxyModel; +class FeedsProxyModel; class ServiceEntryPoint; class FeedReader : public QObject { @@ -40,6 +42,8 @@ class FeedReader : public QObject { FeedDownloader *feedDownloader() const; FeedsModel *feedsModel() const; MessagesModel *messagesModel() const; + FeedsProxyModel *feedProxyModel() const; + MessagesProxyModel *messagesProxyModel() const; public slots: void start(); @@ -50,7 +54,9 @@ class FeedReader : public QObject { FeedDownloader *m_feedDownloader; FeedsModel *m_feedsModel; + FeedsProxyModel *m_feedProxyModel; MessagesModel *m_messagesModel; + MessagesProxyModel *m_messagesProxyModel; }; #endif // FEEDREADER_H