Add notifying about downloading errors in xdxf downloader
authorMateusz Półrola <mateusz.polrola@comarch.pl>
Tue, 5 Oct 2010 07:14:21 +0000 (09:14 +0200)
committerMateusz Półrola <mateusz.polrola@comarch.pl>
Tue, 5 Oct 2010 07:14:21 +0000 (09:14 +0200)
src/plugins/xdxf/HttpDownloader.cpp
src/plugins/xdxf/HttpDownloader.h
src/plugins/xdxf/XdxfDictDownloadProgressDialog.cpp
src/plugins/xdxf/XdxfDictDownloader.cpp
src/plugins/xdxf/XdxfDictDownloader.h

index 5086c53..e693c92 100644 (file)
@@ -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();
 
index e9458b8..ec6ac27 100644 (file)
@@ -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;
index 191ac97..2e95783 100644 (file)
@@ -66,5 +66,9 @@ void XdxfDictDownloadProgressDialog::setText(QString text) {
 }
 
 void XdxfDictDownloadProgressDialog::reject() {
-    return;
+    #ifndef Q_WS_MAEMO_5
+        Q_EMIT cancelDownloading();
+    #else
+        return;
+    #endif
 }
index 6e96c98..38066f4 100644 (file)
@@ -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());
index b381379..2f7dd98 100644 (file)
@@ -74,6 +74,8 @@ private Q_SLOTS:
     //! user cancel downloading
     void breakDownloading();
 
+    void downloadingError(QString);
+
 private:
     //! dict is downloaded and unpacked
     void downloadComplete();