From 0b2d2410c37da3d2740a7c1f7dc7ed45c5e9e0f6 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Mateusz=20P=C3=B3=C5=82rola?= Date: Tue, 5 Oct 2010 09:14:21 +0200 Subject: [PATCH] Add notifying about downloading errors in xdxf downloader --- src/plugins/xdxf/HttpDownloader.cpp | 8 ++++++++ src/plugins/xdxf/HttpDownloader.h | 3 ++- .../xdxf/XdxfDictDownloadProgressDialog.cpp | 6 +++++- src/plugins/xdxf/XdxfDictDownloader.cpp | 11 +++++++++-- src/plugins/xdxf/XdxfDictDownloader.h | 2 ++ 5 files changed, 26 insertions(+), 4 deletions(-) diff --git a/src/plugins/xdxf/HttpDownloader.cpp b/src/plugins/xdxf/HttpDownloader.cpp index 5086c53..e693c92 100644 --- a/src/plugins/xdxf/HttpDownloader.cpp +++ b/src/plugins/xdxf/HttpDownloader.cpp @@ -35,6 +35,8 @@ HttpDownloader::HttpDownloader(QObject *parent) { manager = new QNetworkAccessManager; connect(manager, SIGNAL(finished(QNetworkReply*)), SLOT(downloadFinished(QNetworkReply*))); + + //connect(http, SIGNAL()) } @@ -49,6 +51,12 @@ void HttpDownloader::download(QUrl url, QString file) { } void HttpDownloader::downloadFinished(QNetworkReply *reply) { + + if(reply->error() != QNetworkReply::NoError) { + Q_EMIT error(reply->errorString()); + return; + } + QUrl r = reply->attribute(QNetworkRequest::RedirectionTargetAttribute) .toUrl(); diff --git a/src/plugins/xdxf/HttpDownloader.h b/src/plugins/xdxf/HttpDownloader.h index e9458b8..ec6ac27 100644 --- a/src/plugins/xdxf/HttpDownloader.h +++ b/src/plugins/xdxf/HttpDownloader.h @@ -43,11 +43,12 @@ public: void download(const QUrl, const QString); void kill(); -public Q_SLOTS: +private Q_SLOTS: void downloadFinished(QNetworkReply *); Q_SIGNALS: void finished(); + void error(QString); private: QHttp *http; diff --git a/src/plugins/xdxf/XdxfDictDownloadProgressDialog.cpp b/src/plugins/xdxf/XdxfDictDownloadProgressDialog.cpp index 191ac97..2e95783 100644 --- a/src/plugins/xdxf/XdxfDictDownloadProgressDialog.cpp +++ b/src/plugins/xdxf/XdxfDictDownloadProgressDialog.cpp @@ -66,5 +66,9 @@ void XdxfDictDownloadProgressDialog::setText(QString text) { } void XdxfDictDownloadProgressDialog::reject() { - return; + #ifndef Q_WS_MAEMO_5 + Q_EMIT cancelDownloading(); + #else + return; + #endif } diff --git a/src/plugins/xdxf/XdxfDictDownloader.cpp b/src/plugins/xdxf/XdxfDictDownloader.cpp index 6e96c98..38066f4 100644 --- a/src/plugins/xdxf/XdxfDictDownloader.cpp +++ b/src/plugins/xdxf/XdxfDictDownloader.cpp @@ -48,6 +48,8 @@ XdxfDictDownloader::XdxfDictDownloader(QObject *parent) : progressDialog = 0; connect(&http, SIGNAL(finished()), this, SLOT(processFinished())); + connect(&http, SIGNAL(error(QString)), + this, SLOT(downloadingError(QString))); } void XdxfDictDownloader::download(QWidget *parent) { @@ -69,6 +71,11 @@ QString XdxfDictDownloader::downloadedFile() { } +void XdxfDictDownloader::downloadingError(QString error) { + breakDownloading(); + Q_EMIT notify(Notify::Error, error); +} + void XdxfDictDownloader::breakDownloading() { //if user cancel downloading we kill all running processes, hide progress dialog and set flag that user cancel downloading. aborted = true; @@ -115,9 +122,9 @@ void XdxfDictDownloader::downloadComplete() { } void XdxfDictDownloader::dictListReceived(QNetworkReply *reply) { - - if(aborted) return; progressDialog->accept(); + if(aborted) return; + if(reply->error() != QNetworkReply::NoError) { Q_EMIT notify(Notify::Error, reply->errorString()); diff --git a/src/plugins/xdxf/XdxfDictDownloader.h b/src/plugins/xdxf/XdxfDictDownloader.h index b381379..2f7dd98 100644 --- a/src/plugins/xdxf/XdxfDictDownloader.h +++ b/src/plugins/xdxf/XdxfDictDownloader.h @@ -74,6 +74,8 @@ private Q_SLOTS: //! user cancel downloading void breakDownloading(); + void downloadingError(QString); + private: //! dict is downloaded and unpacked void downloadComplete(); -- 1.7.9.5