diff --git a/resources/desktop/com.github.rssguard.appdata.xml b/resources/desktop/com.github.rssguard.appdata.xml
index 265e13e2f..5155e4f25 100644
--- a/resources/desktop/com.github.rssguard.appdata.xml
+++ b/resources/desktop/com.github.rssguard.appdata.xml
@@ -26,7 +26,7 @@
https://github.com/sponsors/martinrotter
-
+
none
diff --git a/resources/icons.qrc b/resources/icons.qrc
index 8b4a8422e..f79f998c5 100644
--- a/resources/icons.qrc
+++ b/resources/icons.qrc
@@ -29,6 +29,7 @@
./graphics/Breeze/actions/32/edit-reset.svg
./graphics/Breeze/actions/22/edit-select-all.svg
./graphics/Breeze/actions/22/edit-select-none.svg
+ ./graphics/Breeze/emblems/22/emblem-favorite.svg
./graphics/Breeze/emblems/22/emblem-shared.svg
./graphics/Breeze/places/96/folder.svg
./graphics/Breeze/actions/22/format-indent-more.svg
@@ -103,6 +104,7 @@
./graphics/Breeze Dark/actions/32/edit-reset.svg
./graphics/Breeze Dark/actions/22/edit-select-all.svg
./graphics/Breeze Dark/actions/22/edit-select-none.svg
+ ./graphics/Breeze Dark/emblems/22/emblem-favorite.svg
./graphics/Breeze Dark/emblems/22/emblem-shared.svg
./graphics/Breeze Dark/places/96/folder.svg
./graphics/Breeze Dark/actions/22/format-indent-more.svg
@@ -174,6 +176,7 @@
./graphics/Faenza/actions/64/edit-copy.png
./graphics/Faenza/actions/64/edit-select-all.png
./graphics/Faenza/emblems/64/emblem-downloads.png
+ ./graphics/Faenza/emblems/64/emblem-favorite.png
./graphics/Faenza/emblems/64/emblem-shared.png
./graphics/Faenza/emblems/64/emblem-system.png
./graphics/Faenza/places/64/folder.png
@@ -252,6 +255,7 @@
./graphics/Numix/22/actions/edit-copy.svg
./graphics/Numix/22/actions/edit-select-all.svg
./graphics/Numix/22/emblems/emblem-downloads.svg
+ ./graphics/Numix/22/emblems/emblem-favorite.svg
./graphics/Numix/22/emblems/emblem-shared.svg
./graphics/Numix/22/emblems/emblem-system.svg
./graphics/Numix/22/places/folder.svg
diff --git a/src/librssguard/gui/litehtml/litehtmlviewer.cpp b/src/librssguard/gui/litehtml/litehtmlviewer.cpp
index 3f66cc51f..29b6fc6f3 100755
--- a/src/librssguard/gui/litehtml/litehtmlviewer.cpp
+++ b/src/librssguard/gui/litehtml/litehtmlviewer.cpp
@@ -60,45 +60,38 @@ void LiteHtmlViewer::findText(const QString& text, bool backwards) {
void LiteHtmlViewer::setUrl(const QUrl& url) {
emit loadStarted();
- AdblockRequestInfo block_request(url);
-
- if (url.path().endsWith(QSL("css"))) {
- block_request.setResourceType(QSL("stylesheet"));
- }
- else {
- block_request.setResourceType(QSL("image"));
- }
-
- if (qApp->web()->adBlock()->block(block_request).m_blocked) {
- qWarningNN << LOGSEC_ADBLOCK << "Blocked request:" << QUOTE_W_SPACE_DOT(block_request.requestUrl().toString());
-
- // TODO: Display "site blocked" error.
- return;
- }
-
- QEventLoop loop;
-
- connect(m_downloader.data(), &Downloader::completed, &loop, &QEventLoop::quit);
- m_downloader->manipulateData(url.toString(),
- QNetworkAccessManager::Operation::GetOperation,
- {},
- 5000);
-
- loop.exec();
-
- auto net_error = m_downloader->lastOutputError();
QString html_str;
+ bool is_error = false;
- if (net_error != QNetworkReply::NetworkError::NoError) {
- html_str = "Error!";
+ if (blockedWithAdblock(url)) {
+ is_error = true;
+ html_str = tr("Site \"%1\" was blocked with AdBlock.").arg(url.toString());
}
else {
- html_str = QString::fromUtf8(m_downloader->lastOutputData());
+ QEventLoop loop;
+
+ connect(m_downloader.data(), &Downloader::completed, &loop, &QEventLoop::quit);
+ m_downloader->manipulateData(url.toString(),
+ QNetworkAccessManager::Operation::GetOperation,
+ {},
+ 5000);
+
+ loop.exec();
+
+ auto net_error = m_downloader->lastOutputError();
+
+ if (net_error != QNetworkReply::NetworkError::NoError) {
+ is_error = true;
+ html_str = "Error!";
+ }
+ else {
+ html_str = QString::fromUtf8(m_downloader->lastOutputData());
+ }
}
setHtml(html_str, url);
- emit loadFinished(net_error == QNetworkReply::NetworkError::NoError);
+ emit loadFinished(is_error);
}
void LiteHtmlViewer::setHtml(const QString& html, const QUrl& base_url) {
@@ -264,7 +257,7 @@ void LiteHtmlViewer::wheelEvent(QWheelEvent* event) {
QLiteHtmlWidget::wheelEvent(event);
}
-QByteArray LiteHtmlViewer::handleResource(const QUrl& url) {
+bool LiteHtmlViewer::blockedWithAdblock(const QUrl& url) {
AdblockRequestInfo block_request(url);
if (url.path().endsWith(QSL("css"))) {
@@ -276,6 +269,15 @@ QByteArray LiteHtmlViewer::handleResource(const QUrl& url) {
if (qApp->web()->adBlock()->block(block_request).m_blocked) {
qWarningNN << LOGSEC_ADBLOCK << "Blocked request:" << QUOTE_W_SPACE_DOT(block_request.requestUrl().toString());
+ return true;
+ }
+ else {
+ return false;
+ }
+}
+
+QByteArray LiteHtmlViewer::handleResource(const QUrl& url) {
+ if (blockedWithAdblock(url)) {
return {};
}
else {
diff --git a/src/librssguard/gui/litehtml/litehtmlviewer.h b/src/librssguard/gui/litehtml/litehtmlviewer.h
index 60e1ac5b2..0c3746017 100755
--- a/src/librssguard/gui/litehtml/litehtmlviewer.h
+++ b/src/librssguard/gui/litehtml/litehtmlviewer.h
@@ -50,6 +50,7 @@ class LiteHtmlViewer : public QLiteHtmlWidget, public WebViewer {
virtual void wheelEvent(QWheelEvent* event);
private:
+ bool blockedWithAdblock(const QUrl& url);
QByteArray handleResource(const QUrl& url);
private:
diff --git a/src/librssguard/services/abstract/labelsnode.cpp b/src/librssguard/services/abstract/labelsnode.cpp
index 01faf0f9f..edc895af6 100644
--- a/src/librssguard/services/abstract/labelsnode.cpp
+++ b/src/librssguard/services/abstract/labelsnode.cpp
@@ -15,7 +15,7 @@
LabelsNode::LabelsNode(RootItem* parent_item) : RootItem(parent_item), m_actLabelNew(nullptr) {
setKind(RootItem::Kind::Labels);
setId(ID_LABELS);
- setIcon(qApp->icons()->fromTheme(QSL("tag-folder")));
+ setIcon(qApp->icons()->fromTheme(QSL("tag-folder"), QSL("emblem-favorite")));
setTitle(tr("Labels"));
setDescription(tr("You can see all your labels (tags) here."));
}