diff --git a/resources/desktop/com.github.rssguard.appdata.xml b/resources/desktop/com.github.rssguard.appdata.xml
index 0b36a564e..8f0994cdb 100644
--- 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/resources/initial_feeds/feeds-en.opml b/resources/initial_feeds/feeds-en.opml
index e04bef0d2..4714bef77 100644
--- a/resources/initial_feeds/feeds-en.opml
+++ b/resources/initial_feeds/feeds-en.opml
@@ -1,25 +1,25 @@
-
-
-
- RSS Guard
- Wed, 22 Jun 2016 08:31:07 GMT
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+ RSS Guard
+ Tue, 09 Mar 2021 06:08:01 GMT
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/librssguard/core/feedsmodel.h b/src/librssguard/core/feedsmodel.h
index 2db669f91..437851e14 100644
--- a/src/librssguard/core/feedsmodel.h
+++ b/src/librssguard/core/feedsmodel.h
@@ -158,7 +158,7 @@ class RSSGUARD_DLLSPEC FeedsModel : public QAbstractItemModel {
inline QVariant FeedsModel::data(const QModelIndex& index, int role) const {
switch (role) {
- case Qt::FontRole:
+ case Qt::ItemDataRole::FontRole:
return itemForIndex(index)->countOfUnreadMessages() > 0 ? m_boldFont : m_normalFont;
default:
diff --git a/src/librssguard/database/mariadbdriver.cpp b/src/librssguard/database/mariadbdriver.cpp
index 5f9e1afb8..4b0ae3a6e 100755
--- a/src/librssguard/database/mariadbdriver.cpp
+++ b/src/librssguard/database/mariadbdriver.cpp
@@ -150,7 +150,8 @@ QSqlDatabase MariaDbDriver::initializeDatabase(const QString& connection_name) {
database.setPassword(qApp->settings()->password(GROUP(Database), SETTING(Database::MySQLPassword)).toString());
if (!database.open()) {
- qFatal("Cannot open MySQL database: %s.", qPrintable(database.lastError().text()));
+ qFatal("Cannot open MySQL database: %s. Make sure your DB server is running and "
+ "start application again.", qPrintable(database.lastError().text()));
}
else {
QSqlQuery query_db(database);
@@ -187,11 +188,11 @@ QSqlDatabase MariaDbDriver::initializeDatabase(const QString& connection_name) {
if (installed_db_schema.toInt() < QString(APP_DB_SCHEMA_VERSION).toInt()) {
if (updateDatabaseSchema(database, installed_db_schema, database_name)) {
qDebugNN << LOGSEC_DB
- << "Database schema was updated from '"
- << installed_db_schema
- << "' to '"
- << APP_DB_SCHEMA_VERSION
- << "' successully or it is already up to date.";
+ << "Database schema was updated from"
+ << QUOTE_W_SPACE(installed_db_schema)
+ << "to"
+ << QUOTE_W_SPACE(APP_DB_SCHEMA_VERSION)
+ << "successully or it is already up to date.";
}
else {
qFatal("Database schema was not updated from '%s' to '%s' successully.",
@@ -204,7 +205,6 @@ QSqlDatabase MariaDbDriver::initializeDatabase(const QString& connection_name) {
query_db.finish();
}
- // Everything is initialized now.
m_databaseInitialized = true;
return database;
}
@@ -237,12 +237,10 @@ bool MariaDbDriver::updateDatabaseSchema(const QSqlDatabase& database,
// Increment the version.
qDebugNN << LOGSEC_DB
- << "Updating database schema: '"
- << working_version
- << "' -> '"
- << working_version + 1
- << "'.";
-
+ << "Updating database schema "
+ << QUOTE_W_SPACE(working_version)
+ << "->"
+ << QUOTE_W_SPACE_DOT(working_version + 1);
working_version++;
}
diff --git a/src/librssguard/miscellaneous/iconfactory.cpp b/src/librssguard/miscellaneous/iconfactory.cpp
index 8714d9367..e708e14af 100755
--- a/src/librssguard/miscellaneous/iconfactory.cpp
+++ b/src/librssguard/miscellaneous/iconfactory.cpp
@@ -22,10 +22,10 @@ QIcon IconFactory::fromByteArray(QByteArray array) {
QIcon icon;
QBuffer buffer(&array);
- buffer.open(QIODevice::ReadOnly);
+ buffer.open(QIODevice::OpenModeFlag::ReadOnly);
QDataStream in(&buffer);
- in.setVersion(QDataStream::Qt_4_7);
+ in.setVersion(QDataStream::Version::Qt_4_7);
in >> icon;
buffer.close();
return icon;
@@ -35,10 +35,10 @@ QByteArray IconFactory::toByteArray(const QIcon& icon) {
QByteArray array;
QBuffer buffer(&array);
- buffer.open(QIODevice::WriteOnly);
+ buffer.open(QIODevice::OpenModeFlag::WriteOnly);
QDataStream out(&buffer);
- out.setVersion(QDataStream::Qt_4_7);
+ out.setVersion(QDataStream::Version::Qt_4_7);
out << icon;
buffer.close();
return array.toBase64();
diff --git a/src/librssguard/services/abstract/feed.cpp b/src/librssguard/services/abstract/feed.cpp
index 16281f55c..7c77af75b 100755
--- a/src/librssguard/services/abstract/feed.cpp
+++ b/src/librssguard/services/abstract/feed.cpp
@@ -2,9 +2,9 @@
#include "services/abstract/feed.h"
+#include "database/databasequeries.h"
#include "definitions/definitions.h"
#include "miscellaneous/application.h"
-#include "database/databasequeries.h"
#include "miscellaneous/feedreader.h"
#include "miscellaneous/iconfactory.h"
#include "miscellaneous/mutex.h"
@@ -52,7 +52,7 @@ QList Feed::undeletedMessages() const {
QVariant Feed::data(int column, int role) const {
switch (role) {
- case Qt::ForegroundRole:
+ case Qt::ItemDataRole::ForegroundRole:
switch (status()) {
case Status::NewMessages:
return qApp->skins()->currentSkin().m_colorPalette[Skin::PaletteColors::Highlight];
diff --git a/src/librssguard/services/abstract/rootitem.cpp b/src/librssguard/services/abstract/rootitem.cpp
index dfa4c0df3..73ea2926d 100644
--- a/src/librssguard/services/abstract/rootitem.cpp
+++ b/src/librssguard/services/abstract/rootitem.cpp
@@ -122,11 +122,8 @@ int RootItem::row() const {
}
QVariant RootItem::data(int column, int role) const {
- Q_UNUSED(column)
- Q_UNUSED(role)
-
switch (role) {
- case Qt::ToolTipRole:
+ case Qt::ItemDataRole::ToolTipRole:
if (column == FDS_MODEL_TITLE_INDEX) {
QString tool_tip = m_title;
@@ -150,7 +147,7 @@ QVariant RootItem::data(int column, int role) const {
return QVariant();
}
- case Qt::EditRole:
+ case Qt::ItemDataRole::EditRole:
if (column == FDS_MODEL_TITLE_INDEX) {
return m_title;
}
@@ -161,7 +158,7 @@ QVariant RootItem::data(int column, int role) const {
return QVariant();
}
- case Qt::DisplayRole:
+ case Qt::ItemDataRole::DisplayRole:
if (column == FDS_MODEL_TITLE_INDEX) {
return m_title;
}
@@ -177,7 +174,7 @@ QVariant RootItem::data(int column, int role) const {
return QVariant();
}
- case Qt::DecorationRole:
+ case Qt::ItemDataRole::DecorationRole:
if (column == FDS_MODEL_TITLE_INDEX) {
return fullIcon();
}
@@ -185,7 +182,7 @@ QVariant RootItem::data(int column, int role) const {
return QVariant();
}
- case Qt::TextAlignmentRole:
+ case Qt::ItemDataRole::TextAlignmentRole:
if (column == FDS_MODEL_COUNTS_INDEX) {
return Qt::AlignmentFlag::AlignCenter;
}
diff --git a/src/librssguard/services/standard/standardfeedsimportexportmodel.cpp b/src/librssguard/services/standard/standardfeedsimportexportmodel.cpp
index 3884d0725..a8449fcca 100644
--- a/src/librssguard/services/standard/standardfeedsimportexportmodel.cpp
+++ b/src/librssguard/services/standard/standardfeedsimportexportmodel.cpp
@@ -78,7 +78,7 @@ bool FeedsImportExportModel::exportToOMPL20(QByteArray& result) {
outline_category.setAttribute(QSL("description"), child_item->description());
if (!child_item->icon().isNull()) {
- outline_category.setAttributeNS(APP_URL, QSL("rssguard:icon"), QString(qApp->icons()->toByteArray(child_item->icon())));
+ outline_category.setAttribute(QSL("rssguard:icon"), QString(qApp->icons()->toByteArray(child_item->icon())));
}
active_element.appendChild(outline_category);
@@ -98,11 +98,11 @@ bool FeedsImportExportModel::exportToOMPL20(QByteArray& result) {
outline_feed.setAttribute(QSL("encoding"), child_feed->encoding());
outline_feed.setAttribute(QSL("title"), child_feed->title());
- outline_feed.setAttributeNS(APP_URL, QSL("rssguard:xmlUrlType"), QString::number(int(child_feed->sourceType())));
- outline_feed.setAttributeNS(APP_URL, QSL("rssguard:postProcess"), child_feed->postProcessScript());
+ outline_feed.setAttribute(QSL("rssguard:xmlUrlType"), QString::number(int(child_feed->sourceType())));
+ outline_feed.setAttribute(QSL("rssguard:postProcess"), child_feed->postProcessScript());
if (!child_feed->icon().isNull()) {
- outline_feed.setAttributeNS(APP_URL, QSL("rssguard:icon"), QString(qApp->icons()->toByteArray(child_feed->icon())));
+ outline_feed.setAttribute(QSL("rssguard:icon"), QString(qApp->icons()->toByteArray(child_feed->icon())));
}
switch (child_feed->type()) {
@@ -215,9 +215,9 @@ void FeedsImportExportModel::importAsOPML20(const QByteArray& data, bool fetch_m
QString feed_encoding = child_element.attribute(QSL("encoding"), DEFAULT_FEED_ENCODING);
QString feed_type = child_element.attribute(QSL("version"), DEFAULT_FEED_TYPE).toUpper();
QString feed_description = child_element.attribute(QSL("description"));
- QIcon feed_icon = qApp->icons()->fromByteArray(child_element.attributeNS(APP_URL, QSL("icon")).toLocal8Bit());
- QString source_type = child_element.attributeNS(APP_URL, QSL("xmlUrlType"));
- QString post_process = child_element.attributeNS(APP_URL, QSL("postProcess"));
+ QIcon feed_icon = qApp->icons()->fromByteArray(child_element.attribute(QSL("rssguard:icon")).toLocal8Bit());
+ QString source_type = child_element.attribute(QSL("rssguard:xmlUrlType"));
+ QString post_process = child_element.attribute(QSL("rssguard:postProcess"));
auto* new_feed = new StandardFeed(active_model_item);
new_feed->setTitle(feed_title);
@@ -259,7 +259,7 @@ void FeedsImportExportModel::importAsOPML20(const QByteArray& data, bool fetch_m
// Add category and continue.
QString category_title = child_element.attribute(QSL("text"));
QString category_description = child_element.attribute(QSL("description"));
- QIcon category_icon = qApp->icons()->fromByteArray(child_element.attributeNS(APP_URL, QSL("icon")).toLocal8Bit());
+ QIcon category_icon = qApp->icons()->fromByteArray(child_element.attribute(QSL("rssguard:icon")).toLocal8Bit());
if (category_title.isEmpty()) {
qWarningNN << LOGSEC_CORE
diff --git a/src/librssguard/services/standard/standardserviceroot.cpp b/src/librssguard/services/standard/standardserviceroot.cpp
index 87f062a33..1633abeb8 100644
--- a/src/librssguard/services/standard/standardserviceroot.cpp
+++ b/src/librssguard/services/standard/standardserviceroot.cpp
@@ -3,12 +3,12 @@
#include "services/standard/standardserviceroot.h"
#include "core/feedsmodel.h"
+#include "database/databasequeries.h"
#include "definitions/definitions.h"
#include "exceptions/applicationexception.h"
#include "exceptions/scriptexception.h"
#include "gui/messagebox.h"
#include "miscellaneous/application.h"
-#include "database/databasequeries.h"
#include "miscellaneous/iconfactory.h"
#include "miscellaneous/mutex.h"
#include "miscellaneous/settings.h"
@@ -82,6 +82,9 @@ void StandardServiceRoot::start(bool freshly_activated) {
MessageBox::show(qApp->mainFormWidget(), QMessageBox::Critical, tr("Error when loading initial feeds"), ex.message());
}
}
+ else {
+ requestItemExpand({ this }, true);
+ }
}
checkArgumentsForFeedAdding();