From 20c4b0ee0c48c5e5fbcba5e2dbb2f42adb07338e Mon Sep 17 00:00:00 2001 From: Chocobo1 Date: Sat, 3 Mar 2018 12:39:44 +0800 Subject: [PATCH] Use original scheme when downloading favicons Previously was always using http, now we only drop back to http when scheme is absent --- src/gui/transferlistfilterswidget.cpp | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/gui/transferlistfilterswidget.cpp b/src/gui/transferlistfilterswidget.cpp index 4102e4d88..b11db0a2c 100644 --- a/src/gui/transferlistfilterswidget.cpp +++ b/src/gui/transferlistfilterswidget.cpp @@ -59,7 +59,19 @@ #include "transferlistwidget.h" #include "utils.h" -const QLatin1String GOOGLE_FAVICON_URL("https://www.google.com/s2/favicons?domain="); +namespace +{ + QString getScheme(const QString &tracker) + { + const QUrl url {tracker}; + QString scheme = url.scheme(); + if (scheme.isEmpty()) + scheme = "http"; + return scheme; + } + + const QLatin1String GOOGLE_FAVICON_URL("https://www.google.com/s2/favicons?domain="); +} FiltersBase::FiltersBase(QWidget *parent, TransferListWidget *transferList) : QListWidget(parent) @@ -237,7 +249,7 @@ void TrackerFiltersList::addItem(const QString &tracker, const QString &hash) trackerItem = new QListWidgetItem(); trackerItem->setData(Qt::DecorationRole, GuiIconProvider::instance()->getIcon("network-server")); - downloadFavicon(QString("http://%1/favicon.ico").arg(host)); + downloadFavicon(QString("%1://%2/favicon.ico").arg(getScheme(tracker), host)); } if (!trackerItem) return;