make custom proxy work for icon downloading too
This commit is contained in:
parent
8e95f8a5ec
commit
dcf5f47661
3 changed files with 28 additions and 8 deletions
|
@ -139,16 +139,24 @@ QString NetworkFactory::networkErrorText(QNetworkReply::NetworkError error_code)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
QNetworkReply::NetworkError NetworkFactory::downloadIcon(const QList<QString>& urls, int timeout, QIcon& output) {
|
QNetworkReply::NetworkError NetworkFactory::downloadIcon(const QList<QString>& urls, int timeout, QIcon& output, const QNetworkProxy& custom_proxy) {
|
||||||
QNetworkReply::NetworkError network_result = QNetworkReply::UnknownNetworkError;
|
QNetworkReply::NetworkError network_result = QNetworkReply::UnknownNetworkError;
|
||||||
|
|
||||||
for (const QString& url : urls) {
|
for (const QString& url : urls) {
|
||||||
QByteArray icon_data;
|
QByteArray icon_data;
|
||||||
|
|
||||||
network_result = performNetworkOperation(url, timeout, QByteArray(), icon_data,
|
network_result = performNetworkOperation(url,
|
||||||
QNetworkAccessManager::GetOperation).first;
|
timeout,
|
||||||
|
QByteArray(),
|
||||||
|
icon_data,
|
||||||
|
QNetworkAccessManager::GetOperation,
|
||||||
|
{},
|
||||||
|
false,
|
||||||
|
{},
|
||||||
|
{},
|
||||||
|
custom_proxy).first;
|
||||||
|
|
||||||
if (network_result == QNetworkReply::NoError) {
|
if (network_result == QNetworkReply::NetworkError::NoError) {
|
||||||
QPixmap icon_pixmap;
|
QPixmap icon_pixmap;
|
||||||
|
|
||||||
icon_pixmap.loadFromData(icon_data);
|
icon_pixmap.loadFromData(icon_data);
|
||||||
|
@ -167,8 +175,16 @@ QNetworkReply::NetworkError NetworkFactory::downloadIcon(const QList<QString>& u
|
||||||
|
|
||||||
const QString google_s2_with_url = QString("http://www.google.com/s2/favicons?domain=%1").arg(host);
|
const QString google_s2_with_url = QString("http://www.google.com/s2/favicons?domain=%1").arg(host);
|
||||||
|
|
||||||
network_result = performNetworkOperation(google_s2_with_url, timeout, QByteArray(), icon_data,
|
network_result = performNetworkOperation(google_s2_with_url,
|
||||||
QNetworkAccessManager::GetOperation).first;
|
timeout,
|
||||||
|
QByteArray(),
|
||||||
|
icon_data,
|
||||||
|
QNetworkAccessManager::GetOperation,
|
||||||
|
{},
|
||||||
|
false,
|
||||||
|
{},
|
||||||
|
{},
|
||||||
|
custom_proxy).first;
|
||||||
|
|
||||||
if (network_result == QNetworkReply::NoError) {
|
if (network_result == QNetworkReply::NoError) {
|
||||||
QPixmap icon_pixmap;
|
QPixmap icon_pixmap;
|
||||||
|
|
|
@ -33,7 +33,10 @@ class NetworkFactory {
|
||||||
|
|
||||||
// Performs SYNCHRONOUS download if favicon for the site,
|
// Performs SYNCHRONOUS download if favicon for the site,
|
||||||
// given URL belongs to.
|
// given URL belongs to.
|
||||||
static QNetworkReply::NetworkError downloadIcon(const QList<QString>& urls, int timeout, QIcon& output);
|
static QNetworkReply::NetworkError downloadIcon(const QList<QString>& urls,
|
||||||
|
int timeout,
|
||||||
|
QIcon& output,
|
||||||
|
const QNetworkProxy& custom_proxy = QNetworkProxy::ProxyType::DefaultProxy);
|
||||||
static Downloader* performAsyncNetworkOperation(const QString& url,
|
static Downloader* performAsyncNetworkOperation(const QString& url,
|
||||||
int timeout,
|
int timeout,
|
||||||
const QByteArray& input_data,
|
const QByteArray& input_data,
|
||||||
|
|
|
@ -320,7 +320,8 @@ QPair<StandardFeed*, QNetworkReply::NetworkError> StandardFeed::guessFeed(const
|
||||||
|
|
||||||
if ((result.second = NetworkFactory::downloadIcon(icon_possible_locations,
|
if ((result.second = NetworkFactory::downloadIcon(icon_possible_locations,
|
||||||
DOWNLOAD_TIMEOUT,
|
DOWNLOAD_TIMEOUT,
|
||||||
icon_data)) == QNetworkReply::NoError) {
|
icon_data,
|
||||||
|
custom_proxy)) == QNetworkReply::NoError) {
|
||||||
// Icon for feed was downloaded and is stored now in _icon_data.
|
// Icon for feed was downloaded and is stored now in _icon_data.
|
||||||
result.first->setIcon(icon_data);
|
result.first->setIcon(icon_data);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue