Better error texts.
This commit is contained in:
parent
d86ed7f019
commit
0a6671e86e
@ -9,7 +9,10 @@
|
|||||||
|
|
||||||
|
|
||||||
FeedsModelFeed::FeedsModelFeed(FeedsModelRootItem *parent_item)
|
FeedsModelFeed::FeedsModelFeed(FeedsModelRootItem *parent_item)
|
||||||
: FeedsModelRootItem(parent_item), m_totalCount(0), m_unreadCount(0) {
|
: FeedsModelRootItem(parent_item),
|
||||||
|
m_type(StandardRss0X),
|
||||||
|
m_totalCount(0),
|
||||||
|
m_unreadCount(0) {
|
||||||
m_kind = FeedsModelRootItem::Feed;
|
m_kind = FeedsModelRootItem::Feed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -57,9 +57,10 @@ QPair<FeedsModelStandardFeed*, QNetworkReply::NetworkError> FeedsModelStandardFe
|
|||||||
// Try to obtain icon.
|
// Try to obtain icon.
|
||||||
QIcon icon_data;
|
QIcon icon_data;
|
||||||
|
|
||||||
if (NetworkFactory::downloadIcon(url,
|
if ((result.second = NetworkFactory::downloadIcon(url,
|
||||||
5000,
|
5000,
|
||||||
icon_data) == QNetworkReply::NoError) {
|
icon_data)) ==
|
||||||
|
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 = new FeedsModelStandardFeed();
|
result.first = new FeedsModelStandardFeed();
|
||||||
result.first->setIcon(icon_data);
|
result.first->setIcon(icon_data);
|
||||||
@ -90,6 +91,10 @@ QPair<FeedsModelStandardFeed*, QNetworkReply::NetworkError> FeedsModelStandardFe
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (result.first == NULL) {
|
||||||
|
result.first = new FeedsModelStandardFeed();
|
||||||
|
}
|
||||||
|
|
||||||
QTextCodec *custom_codec = QTextCodec::codecForName(xml_schema_encoding.toLocal8Bit());
|
QTextCodec *custom_codec = QTextCodec::codecForName(xml_schema_encoding.toLocal8Bit());
|
||||||
|
|
||||||
if (custom_codec != NULL) {
|
if (custom_codec != NULL) {
|
||||||
@ -108,6 +113,11 @@ QPair<FeedsModelStandardFeed*, QNetworkReply::NetworkError> FeedsModelStandardFe
|
|||||||
QDomDocument xml_document;
|
QDomDocument xml_document;
|
||||||
|
|
||||||
if (!xml_document.setContent(xml_contents_encoded)) {
|
if (!xml_document.setContent(xml_contents_encoded)) {
|
||||||
|
qDebug("XML of feed '%s' is not valid and cannot be loaded.",
|
||||||
|
qPrintable(url));
|
||||||
|
|
||||||
|
result.second = QNetworkReply::UnknownContentError;
|
||||||
|
|
||||||
// XML is invalid, exit.
|
// XML is invalid, exit.
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
@ -11,6 +11,49 @@
|
|||||||
NetworkFactory::NetworkFactory() {
|
NetworkFactory::NetworkFactory() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QString NetworkFactory::networkErrorText(QNetworkReply::NetworkError error_code) {
|
||||||
|
switch (error_code) {
|
||||||
|
case QNetworkReply::ProtocolFailure:
|
||||||
|
return QObject::tr("protocol error");
|
||||||
|
|
||||||
|
case QNetworkReply::HostNotFoundError:
|
||||||
|
return QObject::tr("host not found");
|
||||||
|
|
||||||
|
case QNetworkReply::RemoteHostClosedError:
|
||||||
|
case QNetworkReply::ConnectionRefusedError:
|
||||||
|
return QObject::tr("connection refused");
|
||||||
|
|
||||||
|
case QNetworkReply::TimeoutError:
|
||||||
|
case QNetworkReply::ProxyTimeoutError:
|
||||||
|
return QObject::tr("connection timed out");
|
||||||
|
|
||||||
|
case QNetworkReply::SslHandshakeFailedError:
|
||||||
|
return QObject::tr("SSL handshake failed");
|
||||||
|
|
||||||
|
case QNetworkReply::ProxyConnectionClosedError:
|
||||||
|
case QNetworkReply::ProxyConnectionRefusedError:
|
||||||
|
return QObject::tr("proxy server connection refused");
|
||||||
|
|
||||||
|
case QNetworkReply::TemporaryNetworkFailureError:
|
||||||
|
return QObject::tr("temporary failure");
|
||||||
|
|
||||||
|
case QNetworkReply::ProxyAuthenticationRequiredError:
|
||||||
|
return QObject::tr("proxy authentication required");
|
||||||
|
|
||||||
|
case QNetworkReply::ProxyNotFoundError:
|
||||||
|
return QObject::tr("proxy server not found");
|
||||||
|
|
||||||
|
case QNetworkReply::NoError:
|
||||||
|
return QObject::tr("success");
|
||||||
|
|
||||||
|
case QNetworkReply::UnknownContentError:
|
||||||
|
return QObject::tr("uknown content");
|
||||||
|
|
||||||
|
default:
|
||||||
|
return QObject::tr("unknown error");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
QNetworkReply::NetworkError NetworkFactory::downloadIcon(const QString &url,
|
QNetworkReply::NetworkError NetworkFactory::downloadIcon(const QString &url,
|
||||||
int timeout,
|
int timeout,
|
||||||
QIcon &output) {
|
QIcon &output) {
|
||||||
@ -115,7 +158,7 @@ QNetworkReply::NetworkError NetworkFactory::downloadFeedFile(const QString &url,
|
|||||||
|
|
||||||
qDebug("File '%s' fetched with status '%s' (code %d).",
|
qDebug("File '%s' fetched with status '%s' (code %d).",
|
||||||
qPrintable(url),
|
qPrintable(url),
|
||||||
qPrintable(reply->errorString()),
|
qPrintable(networkErrorText(reply_error)),
|
||||||
reply_error);
|
reply_error);
|
||||||
|
|
||||||
// Delete needed stuff and exit.
|
// Delete needed stuff and exit.
|
||||||
|
@ -12,6 +12,8 @@ class NetworkFactory {
|
|||||||
explicit NetworkFactory();
|
explicit NetworkFactory();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
static QString networkErrorText(QNetworkReply::NetworkError error_code);
|
||||||
|
|
||||||
// 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 QString &url,
|
static QNetworkReply::NetworkError downloadIcon(const QString &url,
|
||||||
|
@ -7,6 +7,7 @@
|
|||||||
#include "core/feedsmodelcategory.h"
|
#include "core/feedsmodelcategory.h"
|
||||||
#include "core/feedsmodelfeed.h"
|
#include "core/feedsmodelfeed.h"
|
||||||
#include "core/feedsmodelstandardfeed.h"
|
#include "core/feedsmodelstandardfeed.h"
|
||||||
|
#include "core/networkfactory.h"
|
||||||
#include "gui/iconthemefactory.h"
|
#include "gui/iconthemefactory.h"
|
||||||
#include "gui/baselineedit.h"
|
#include "gui/baselineedit.h"
|
||||||
#include "gui/messagebox.h"
|
#include "gui/messagebox.h"
|
||||||
@ -248,7 +249,7 @@ void FormStandardFeedDetails::guessFeed() {
|
|||||||
m_ui->m_txtPassword->lineEdit()->text());
|
m_ui->m_txtPassword->lineEdit()->text());
|
||||||
|
|
||||||
if (result.first != NULL) {
|
if (result.first != NULL) {
|
||||||
// Icon was perhaps guessed.
|
// Icon or whole feed was guessed.
|
||||||
m_ui->m_btnIcon->setIcon(result.first->icon());
|
m_ui->m_btnIcon->setIcon(result.first->icon());
|
||||||
m_ui->m_txtTitle->lineEdit()->setText(result.first->title());
|
m_ui->m_txtTitle->lineEdit()->setText(result.first->title());
|
||||||
m_ui->m_txtDescription->lineEdit()->setText(result.first->description());
|
m_ui->m_txtDescription->lineEdit()->setText(result.first->description());
|
||||||
@ -256,15 +257,22 @@ void FormStandardFeedDetails::guessFeed() {
|
|||||||
m_ui->m_cmbEncoding->setCurrentIndex(m_ui->m_cmbEncoding->findText(result.first->encoding(),
|
m_ui->m_cmbEncoding->setCurrentIndex(m_ui->m_cmbEncoding->findText(result.first->encoding(),
|
||||||
Qt::MatchFixedString));
|
Qt::MatchFixedString));
|
||||||
|
|
||||||
m_ui->m_lblFetchMetadata->setStatus(WidgetWithStatus::Ok,
|
if (result.second == QNetworkReply::NoError) {
|
||||||
tr("Feed metada fetched."),
|
m_ui->m_lblFetchMetadata->setStatus(WidgetWithStatus::Ok,
|
||||||
tr("Feed metadata fetched successfully."));
|
tr("All metadata fetched successfully."),
|
||||||
|
tr("Feed and icon metadata fetched."));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
m_ui->m_lblFetchMetadata->setStatus(WidgetWithStatus::Warning,
|
||||||
|
tr("Result: %1.").arg(NetworkFactory::networkErrorText(result.second)),
|
||||||
|
tr("Feed or icon metatada not fetched."));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// No feed guessed, even no icon available.
|
// No feed guessed, even no icon available.
|
||||||
m_ui->m_lblFetchMetadata->setStatus(WidgetWithStatus::Error,
|
m_ui->m_lblFetchMetadata->setStatus(WidgetWithStatus::Error,
|
||||||
tr("Error occurred."),
|
tr("Error: %1.").arg(NetworkFactory::networkErrorText(result.second)),
|
||||||
tr("Error occurred."));
|
tr("No metadata fetched."));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6,8 +6,8 @@
|
|||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>405</width>
|
<width>432</width>
|
||||||
<height>259</height>
|
<height>322</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
@ -65,8 +65,8 @@
|
|||||||
<string notr="true"><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
<string notr="true"><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||||
p, li { white-space: pre-wrap; }
|
p, li { white-space: pre-wrap; }
|
||||||
</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
|
</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;">
|
||||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html></string>
|
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:8pt;"><br /></p></body></html></string>
|
||||||
</property>
|
</property>
|
||||||
<property name="textInteractionFlags">
|
<property name="textInteractionFlags">
|
||||||
<set>Qt::LinksAccessibleByKeyboard|Qt::LinksAccessibleByMouse|Qt::TextBrowserInteraction|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
|
<set>Qt::LinksAccessibleByKeyboard|Qt::LinksAccessibleByMouse|Qt::TextBrowserInteraction|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user