Refactorings.

This commit is contained in:
Martin Rotter 2021-02-26 14:26:53 +01:00
parent c7cbb5fe8e
commit 9d6c42002d
15 changed files with 15 additions and 94 deletions

View File

@ -7,6 +7,7 @@
#include "core/messagefilter.h"
#include "definitions/typedefs.h"
#include "miscellaneous/application.h"
#include "miscellaneous/textfactory.h"
#include "services/abstract/category.h"
#include "services/abstract/label.h"
@ -325,9 +326,9 @@ Assignment DatabaseQueries::getFeeds(const QSqlDatabase& db,
template<typename Categ, typename Fee>
void DatabaseQueries::loadFromDatabase(ServiceRoot* root) {
QSqlDatabase database = root->internalDatabase();
QSqlDatabase database = qApp->database()->connection(root->metaObject()->className());
Assignment categories = DatabaseQueries::getCategories<Categ>(database, root->accountId());
Assignment feeds = DatabaseQueries::getFeeds<Fee>(database, root->internalFilters(), root->accountId());
Assignment feeds = DatabaseQueries::getFeeds<Fee>(database, qApp->feedReader()->messageFilters(), root->accountId());
auto labels = DatabaseQueries::getLabels(database, root->accountId());
root->performInitialAssembly(categories, feeds, labels);

View File

@ -336,14 +336,6 @@ void ServiceRoot::restoreCustomFeedsData(const QMap<QString, QVariantMap>& data,
}
}
QSqlDatabase ServiceRoot::internalDatabase() const {
return qApp->database()->connection(metaObject()->className());
}
QList<MessageFilter*> ServiceRoot::internalFilters() const {
return qApp->feedReader()->messageFilters();
}
QNetworkProxy ServiceRoot::networkProxy() const {
return m_networkProxy;
}

View File

@ -200,11 +200,6 @@ class ServiceRoot : public RootItem {
void performInitialAssembly(const Assignment& categories, const Assignment& feeds, const QList<Label*>& labels);
// Helper methods to keep "application.h" inclusion
// out of this file.
QSqlDatabase internalDatabase() const;
QList<MessageFilter*> internalFilters() const;
public slots:
virtual void addNewFeed(RootItem* selected_item, const QString& url = QString());
virtual void addNewCategory(RootItem* selected_item);

View File

@ -46,7 +46,7 @@ bool FeedlyServiceRoot::editViaGui() {
void FeedlyServiceRoot::start(bool freshly_activated) {
if (!freshly_activated) {
loadFromDatabase();
DatabaseQueries::loadFromDatabase<Category, FeedlyFeed>(this);
loadCacheFromFile();
}
@ -204,12 +204,3 @@ RootItem* FeedlyServiceRoot::obtainNewTreeForSyncIn() const {
return nullptr;
}
}
void FeedlyServiceRoot::loadFromDatabase() {
QSqlDatabase database = qApp->database()->connection(metaObject()->className());
Assignment categories = DatabaseQueries::getCategories<Category>(database, accountId());
Assignment feeds = DatabaseQueries::getFeeds<FeedlyFeed>(database, qApp->feedReader()->messageFilters(), accountId());
auto labels = DatabaseQueries::getLabels(database, accountId());
performInitialAssembly(categories, feeds, labels);
}

View File

@ -29,9 +29,6 @@ class FeedlyServiceRoot : public ServiceRoot, public CacheForServiceRoot {
protected:
virtual RootItem* obtainNewTreeForSyncIn() const;
private:
void loadFromDatabase();
private:
FeedlyNetwork* m_network;
};

View File

@ -50,21 +50,6 @@ void GmailServiceRoot::writeNewEmail() {
FormAddEditEmail(this, qApp->mainFormWidget()).execForAdd();
}
void GmailServiceRoot::loadFromDatabase() {
QSqlDatabase database = qApp->database()->connection(metaObject()->className());
Assignment categories = DatabaseQueries::getCategories<Category>(database, accountId());
Assignment feeds = DatabaseQueries::getFeeds<GmailFeed>(database, qApp->feedReader()->messageFilters(), accountId());
auto labels = DatabaseQueries::getLabels(database, accountId());
performInitialAssembly(categories, feeds, labels);
for (RootItem* feed : childItems()) {
if (feed->customId() == QL1S("INBOX")) {
feed->setKeepOnTop(true);
}
}
}
bool GmailServiceRoot::downloadAttachmentOnMyOwn(const QUrl& url) const {
QString str_url = url.toString();
QString attachment_id = str_url.mid(str_url.indexOf(QL1C('?')) + 1);
@ -138,7 +123,7 @@ bool GmailServiceRoot::supportsCategoryAdding() const {
void GmailServiceRoot::start(bool freshly_activated) {
if (!freshly_activated) {
loadFromDatabase();
DatabaseQueries::loadFromDatabase<Category, GmailFeed>(this);
loadCacheFromFile();
}
@ -148,6 +133,12 @@ void GmailServiceRoot::start(bool freshly_activated) {
syncIn();
}
for (RootItem* feed : childItems()) {
if (feed->customId() == QL1S("INBOX")) {
feed->setKeepOnTop(true);
}
}
m_network->oauth()->login();
}

View File

@ -40,7 +40,6 @@ class GmailServiceRoot : public ServiceRoot, public CacheForServiceRoot {
private:
void writeNewEmail();
void loadFromDatabase();
private:
GmailNetworkFactory* m_network;

View File

@ -37,7 +37,7 @@ bool GreaderServiceRoot::editViaGui() {
void GreaderServiceRoot::start(bool freshly_activated) {
if (!freshly_activated) {
loadFromDatabase();
DatabaseQueries::loadFromDatabase<Category, GreaderFeed>(this);
loadCacheFromFile();
}
@ -158,12 +158,3 @@ void GreaderServiceRoot::updateTitleIcon() {
RootItem* GreaderServiceRoot::obtainNewTreeForSyncIn() const {
return m_network->categoriesFeedsLabelsTree(true, networkProxy());
}
void GreaderServiceRoot::loadFromDatabase() {
QSqlDatabase database = qApp->database()->connection(metaObject()->className());
Assignment categories = DatabaseQueries::getCategories<Category>(database, accountId());
Assignment feeds = DatabaseQueries::getFeeds<GreaderFeed>(database, qApp->feedReader()->messageFilters(), accountId());
auto labels = DatabaseQueries::getLabels(database, accountId());
performInitialAssembly(categories, feeds, labels);
}

View File

@ -37,9 +37,6 @@ class GreaderServiceRoot : public ServiceRoot, public CacheForServiceRoot {
protected:
virtual RootItem* obtainNewTreeForSyncIn() const;
private:
void loadFromDatabase();
private:
GreaderNetwork* m_network;
};

View File

@ -28,15 +28,6 @@ void InoreaderServiceRoot::updateTitle() {
setTitle(TextFactory::extractUsernameFromEmail(m_network->username()) + QSL(" (Inoreader)"));
}
void InoreaderServiceRoot::loadFromDatabase() {
QSqlDatabase database = qApp->database()->connection(metaObject()->className());
Assignment categories = DatabaseQueries::getCategories<Category>(database, accountId());
Assignment feeds = DatabaseQueries::getFeeds<InoreaderFeed>(database, qApp->feedReader()->messageFilters(), accountId());
auto labels = DatabaseQueries::getLabels(database, accountId());
performInitialAssembly(categories, feeds, labels);
}
ServiceRoot::LabelOperation InoreaderServiceRoot::supportedLabelOperations() const {
return ServiceRoot::LabelOperation(0);
}
@ -66,7 +57,7 @@ bool InoreaderServiceRoot::supportsCategoryAdding() const {
void InoreaderServiceRoot::start(bool freshly_activated) {
if (!freshly_activated) {
loadFromDatabase();
DatabaseQueries::loadFromDatabase<Category, InoreaderFeed>(this);
loadCacheFromFile();
}

View File

@ -33,9 +33,6 @@ class InoreaderServiceRoot : public ServiceRoot, public CacheForServiceRoot {
protected:
virtual RootItem* obtainNewTreeForSyncIn() const;
private:
void loadFromDatabase();
private:
InoreaderNetworkFactory* m_network;
};

View File

@ -49,7 +49,7 @@ bool OwnCloudServiceRoot::supportsCategoryAdding() const {
void OwnCloudServiceRoot::start(bool freshly_activated) {
if (!freshly_activated) {
loadFromDatabase();
DatabaseQueries::loadFromDatabase<Category, OwnCloudFeed>(this);
loadCacheFromFile();
}
@ -126,12 +126,3 @@ RootItem* OwnCloudServiceRoot::obtainNewTreeForSyncIn() const {
return nullptr;
}
}
void OwnCloudServiceRoot::loadFromDatabase() {
QSqlDatabase database = qApp->database()->connection(metaObject()->className());
Assignment categories = DatabaseQueries::getCategories<Category>(database, accountId());
Assignment feeds = DatabaseQueries::getFeeds<OwnCloudFeed>(database, qApp->feedReader()->messageFilters(), accountId());
auto labels = DatabaseQueries::getLabels(database, accountId());
performInitialAssembly(categories, feeds, labels);
}

View File

@ -35,8 +35,6 @@ class OwnCloudServiceRoot : public ServiceRoot, public CacheForServiceRoot {
virtual RootItem* obtainNewTreeForSyncIn() const;
private:
void loadFromDatabase();
OwnCloudNetworkFactory* m_network;
};

View File

@ -41,7 +41,7 @@ StandardServiceRoot::~StandardServiceRoot() {
}
void StandardServiceRoot::start(bool freshly_activated) {
loadFromDatabase();
DatabaseQueries::loadFromDatabase<StandardCategory, StandardFeed>(this);
if (freshly_activated && getSubTreeFeeds().isEmpty()) {
// In other words, if there are no feeds or categories added.
@ -130,15 +130,6 @@ Qt::ItemFlags StandardServiceRoot::additionalFlags() const {
return Qt::ItemFlag::ItemIsDropEnabled;
}
void StandardServiceRoot::loadFromDatabase() {
QSqlDatabase database = qApp->database()->connection(metaObject()->className());
Assignment categories = DatabaseQueries::getCategories<StandardCategory>(database, accountId());
Assignment feeds = DatabaseQueries::getFeeds<StandardFeed>(database, qApp->feedReader()->messageFilters(), accountId());
auto labels = DatabaseQueries::getLabels(database, accountId());
performInitialAssembly(categories, feeds, labels);
}
void StandardServiceRoot::checkArgumentsForFeedAdding() {
for (const QString& arg : qApp->arguments().mid(1)) {
checkArgumentForFeedAdding(arg);

View File

@ -46,7 +46,6 @@ class StandardServiceRoot : public ServiceRoot {
bool mergeImportExportModel(FeedsImportExportModel* model, RootItem* target_root_node, QString& output_message);
QString processFeedUrl(const QString& feed_url);
void loadFromDatabase();
void checkArgumentForFeedAdding(const QString& argument);
public slots: