Finalized error handling procedur implementation, localized all error messages error_procedur
authorlampehe-local <henri.lampela@ixonos.com>
Fri, 11 Jun 2010 08:22:55 +0000 (11:22 +0300)
committerlampehe-local <henri.lampela@ixonos.com>
Fri, 11 Jun 2010 08:22:55 +0000 (11:22 +0300)
Reviewed by: Jussi Laitinen

res/languages/situare_fi.qm
res/languages/situare_fi.ts
src/common.h
src/engine/engine.cpp
src/map/mapfetcher.cpp
src/situareservice/imagefetcher.cpp
src/situareservice/situareservice.cpp
src/ui/mainwindow.cpp

index 7ba275a..f331e04 100644 (file)
Binary files a/res/languages/situare_fi.qm and b/res/languages/situare_fi.qm differ
index c03deab..23fdded 100644 (file)
         <translation>Situare</translation>
     </message>
     <message>
-        <location filename="../../src/ui/mainwindow.cpp" line="398"/>
-        <location filename="../../src/ui/mainwindow.cpp" line="657"/>
+        <location filename="../../src/ui/mainwindow.cpp" line="404"/>
+        <location filename="../../src/ui/mainwindow.cpp" line="663"/>
         <source>Login</source>
         <translation>Kirjaudu</translation>
     </message>
     <message>
-        <location filename="../../src/ui/mainwindow.cpp" line="403"/>
+        <location filename="../../src/ui/mainwindow.cpp" line="409"/>
         <source>Settings</source>
         <translation>Asetukset</translation>
     </message>
     <message>
-        <location filename="../../src/ui/mainwindow.cpp" line="408"/>
+        <location filename="../../src/ui/mainwindow.cpp" line="414"/>
         <source>GPS</source>
         <translation>GPS</translation>
     </message>
     <message>
-        <location filename="../../src/ui/mainwindow.cpp" line="415"/>
+        <location filename="../../src/ui/mainwindow.cpp" line="421"/>
         <source>Auto centering</source>
         <translation>Automaattinen keskitys</translation>
     </message>
     <message>
-        <location filename="../../src/ui/mainwindow.cpp" line="421"/>
+        <location filename="../../src/ui/mainwindow.cpp" line="427"/>
         <source>Main</source>
         <translation>Päävalikko</translation>
     </message>
     <message>
-        <location filename="../../src/ui/mainwindow.cpp" line="426"/>
+        <location filename="../../src/ui/mainwindow.cpp" line="432"/>
         <source>Menu</source>
         <translation>Valikko</translation>
     </message>
     <message>
-        <location filename="../../src/ui/mainwindow.cpp" line="529"/>
+        <location filename="../../src/ui/mainwindow.cpp" line="535"/>
         <source>GPS timeout</source>
         <translation>GPS pyyntö aikakatkaistiin</translation>
     </message>
     <message>
-        <location filename="../../src/ui/mainwindow.cpp" line="651"/>
+        <location filename="../../src/ui/mainwindow.cpp" line="657"/>
         <source>Logout</source>
         <translation>Kirjaudu ulos</translation>
     </message>
         <translation>Automaattinen keskitys pois päältä</translation>
     </message>
     <message>
-        <location filename="../../src/engine/engine.cpp" line="185"/>
+        <location filename="../../src/engine/engine.cpp" line="178"/>
+        <source>Unable to start GPS</source>
+        <translation>GPS käynnistys epäonnistui</translation>
+    </message>
+    <message>
+        <location filename="../../src/engine/engine.cpp" line="193"/>
         <source>Do you want to enable automatic location update with %1 min update interval?</source>
         <translation>Asetetaanko automaattinen paikan päivitys %1 minuutin välein päälle?</translation>
     </message>
     <message>
-        <location filename="../../src/engine/engine.cpp" line="190"/>
+        <location filename="../../src/engine/engine.cpp" line="198"/>
         <source>Automatic location update enabled</source>
         <translation>Automaattinen paikan päivitys päällä</translation>
     </message>
     <message>
-        <location filename="../../src/engine/engine.cpp" line="211"/>
+        <location filename="../../src/engine/engine.cpp" line="219"/>
         <source>Connection refused by the server</source>
         <translation>Palvelin ei vastaa pyyntöihin</translation>
     </message>
     <message>
-        <location filename="../../src/engine/engine.cpp" line="214"/>
+        <location filename="../../src/engine/engine.cpp" line="222"/>
         <source>Connection closed by the server</source>
         <translation>Palvelin sulki yhteyden</translation>
     </message>
     <message>
-        <location filename="../../src/engine/engine.cpp" line="217"/>
+        <location filename="../../src/engine/engine.cpp" line="225"/>
         <source>Remote server not found</source>
         <translation>Palvelinta ei löydy</translation>
     </message>
     <message>
-        <location filename="../../src/engine/engine.cpp" line="220"/>
+        <location filename="../../src/engine/engine.cpp" line="228"/>
         <source>Connection timed out</source>
         <translation>Yhteys aikakatkaistiin</translation>
     </message>
     <message>
-        <location filename="../../src/engine/engine.cpp" line="223"/>
+        <location filename="../../src/engine/engine.cpp" line="231"/>
         <source>Session expired. Please login again</source>
         <translation>Istunto vanhentunut. Kirjaudu uudelleen</translation>
     </message>
     <message>
-        <location filename="../../src/engine/engine.cpp" line="226"/>
+        <location filename="../../src/engine/engine.cpp" line="237"/>
         <source>Invalid E-mail address or password</source>
         <translation>Virheellinen sähköpostiosoite tai salasana</translation>
     </message>
     <message>
-        <location filename="../../src/engine/engine.cpp" line="229"/>
+        <location filename="../../src/engine/engine.cpp" line="240"/>
         <source>Update failed, please try again</source>
         <translation>Päivitys epäonnistui. Yritä uudelleen</translation>
     </message>
     <message>
-        <location filename="../../src/engine/engine.cpp" line="232"/>
+        <location filename="../../src/engine/engine.cpp" line="243"/>
         <source>Data retrieval failed, please try again</source>
         <translation>Tiedon haku epäonnistui. Yritä uudelleen</translation>
     </message>
     <message>
-        <location filename="../../src/engine/engine.cpp" line="235"/>
+        <location filename="../../src/engine/engine.cpp" line="246"/>
+        <source>Address retrieval failed</source>
+        <translation>Osoitteen haku epäonnistui</translation>
+    </message>
+    <message>
         <source>Address retrieval failed, please try again</source>
-        <translation>Osoitteen haku epäonnistui. Yritä uudelleen</translation>
+        <translation type="obsolete">Osoitteen haku epäonnistui. Yritä uudelleen</translation>
     </message>
     <message>
-        <location filename="../../src/engine/engine.cpp" line="238"/>
+        <location filename="../../src/engine/engine.cpp" line="249"/>
         <source>Image download failed</source>
         <translation>Kuvan haku epäonnistui</translation>
     </message>
     <message>
-        <location filename="../../src/engine/engine.cpp" line="242"/>
+        <location filename="../../src/engine/engine.cpp" line="252"/>
+        <source>Map image download failed</source>
+        <translation>Karttakuvan lataaminen epäonnistui</translation>
+    </message>
+    <message>
+        <location filename="../../src/engine/engine.cpp" line="256"/>
         <source>GPS initialization failed</source>
         <translation>GPS alustus epäonnistui</translation>
     </message>
     <message>
-        <location filename="../../src/engine/engine.cpp" line="279"/>
-        <location filename="../../src/engine/engine.cpp" line="287"/>
+        <location filename="../../src/engine/engine.cpp" line="259"/>
+        <source>Unknown server response</source>
+        <translation>Tuntematon vastaus palvelimelta</translation>
+    </message>
+    <message>
+        <location filename="../../src/engine/engine.cpp" line="292"/>
+        <location filename="../../src/engine/engine.cpp" line="300"/>
         <source>GPS enabled</source>
         <translation>GPS päällä</translation>
     </message>
     <message>
-        <location filename="../../src/engine/engine.cpp" line="280"/>
-        <location filename="../../src/engine/engine.cpp" line="290"/>
+        <location filename="../../src/engine/engine.cpp" line="293"/>
+        <location filename="../../src/engine/engine.cpp" line="303"/>
         <source>Auto centering enabled</source>
         <translation>Automaattinen keskitys päällä</translation>
     </message>
index 6888b48..e8c2373 100644 (file)
@@ -53,13 +53,15 @@ const QString FACEBOOK_LOGIN_ENDING = "&fbconnect=true&return_session=true&";
 // Situare errors
 namespace SituareError {
     enum errors {
-        SESSION_EXPIRED = 10,
-        LOGIN_FAILED,
-        UPDATE_FAILED,
-        DATA_RETRIEVAL_FAILED,
-        ADDRESS_RETRIEVAL_FAILED,
-        DOWNLOAD_FAILED,
-        GPS_INITIALIZATION_FAILED
+        SESSION_EXPIRED = 10,       // situare session credentials expired
+        LOGIN_FAILED,               // login to situare service failed
+        UPDATE_FAILED,              // location update to situare failed
+        DATA_RETRIEVAL_FAILED,      // user/friends list retrieval failed
+        ADDRESS_RETRIEVAL_FAILED,   // reversegeo request failed
+        IMAGE_DOWNLOAD_FAILED,      // image download failed from facebook
+        MAP_IMAGE_DOWNLOAD_FAILED,  // map image download failed from OSM
+        GPS_INITIALIZATION_FAILED,  // GPS intialization failed
+        UNKNOWN_REPLY               // unknown reply from situare server
     };
 }
 
index 5f5c23a..83207de 100644 (file)
@@ -229,6 +229,9 @@ void SituareEngine::error(const int error)
         break;
     case SituareError::SESSION_EXPIRED:
         m_ui->buildInformationBox(tr("Session expired. Please login again"), true);
+        m_facebookAuthenticator->clearAccountInformation(true); // keep username = true
+        m_ui->loggedIn(false);
+        m_ui->loginFailed();
         break;
     case SituareError::LOGIN_FAILED:
         m_ui->buildInformationBox(tr("Invalid E-mail address or password"), true);
@@ -240,25 +243,25 @@ void SituareEngine::error(const int error)
         m_ui->buildInformationBox(tr("Data retrieval failed, please try again"), true);
         break;
     case SituareError::ADDRESS_RETRIEVAL_FAILED:
-        m_ui->buildInformationBox(tr("Address retrieval failed, please try again"), true);
+        m_ui->buildInformationBox(tr("Address retrieval failed"), true);
         break;
-    case SituareError::DOWNLOAD_FAILED:
+    case SituareError::IMAGE_DOWNLOAD_FAILED:
         m_ui->buildInformationBox(tr("Image download failed"), true);
         break;
+    case SituareError::MAP_IMAGE_DOWNLOAD_FAILED:
+        m_ui->buildInformationBox(tr("Map image download failed"), true);
+        break;
     case SituareError::GPS_INITIALIZATION_FAILED:
         enableGPS(false);
         m_ui->buildInformationBox(tr("GPS initialization failed"), true);
         break;
+    case SituareError::UNKNOWN_REPLY:
+        m_ui->buildInformationBox(tr("Unknown server response"), true);
+        break;
     default:
         qCritical() << "QNetworkReply::NetworkError :" << error;
         break;
     }
-
-    if(error == SituareError::SESSION_EXPIRED) {
-        m_facebookAuthenticator->clearAccountInformation(true); // keep username = true
-        m_ui->loggedIn(false);
-        m_ui->loginFailed();
-    }
 }
 
 void SituareEngine::fetchUsernameFromSettings()
index c6e2263..356c10f 100644 (file)
@@ -127,7 +127,7 @@ void MapFetcher::downloadFinished(QNetworkReply *reply)
             emit mapImageReceived(zoomLevel, x, y, QPixmap::fromImage(image));
         }
         else {
-            emit error(SituareError::DOWNLOAD_FAILED);
+            emit error(SituareError::MAP_IMAGE_DOWNLOAD_FAILED);
         }
 
         m_currentDownloads.removeAll(reply);
index 7cb5a94..ee2fb80 100644 (file)
@@ -77,7 +77,7 @@ void ImageFetcher::downloadFinished(QNetworkReply *reply)
             emit imageReceived(url, image);
         }
         else {
-            emit error(SituareError::DOWNLOAD_FAILED);
+            emit error(SituareError::IMAGE_DOWNLOAD_FAILED);
         }
 
         m_currentDownloads.removeAll(reply);
index 0c8d52e..9ceaa07 100644 (file)
@@ -270,14 +270,20 @@ void SituareService::requestFinished(QNetworkReply *reply)
             } else if(replyArray.isEmpty()) {
                 if(url.toString().contains(UPDATE_LOCATION.toAscii())) {
                     emit updateWasSuccessful();
+                } else if(url.toString().contains(REVERSE_GEO.toAscii())) {
+                    // reversegeo failed
+                    emit error(SituareError::ADDRESS_RETRIEVAL_FAILED);
                 } else {
                     // session credentials are invalid
                     emit error(SituareError::SESSION_EXPIRED);
                 }
-            } else {
+            } else if(url.toString().contains(REVERSE_GEO.toAscii())) {
                 // Street address ready
                 QString address = QString::fromUtf8(replyArray);
                 emit reverseGeoReady(address);
+            } else {
+                // unknown reply
+                emit error(SituareError::UNKNOWN_REPLY);
             }
         }
         m_currentRequests.removeAll(reply);
index fc2d0c1..8a4f9c4 100644 (file)
@@ -188,22 +188,28 @@ void MainWindow::buildInformationBox(const QString &message, bool modal)
 {
     qDebug() << __PRETTY_FUNCTION__;
 
+    QString errorMessage = message;
+
 #ifdef Q_WS_MAEMO_5
+
     QMaemo5InformationBox *msgBox = new QMaemo5InformationBox(this);
-    QLabel *label = new QLabel(msgBox);
-    label->setAlignment(Qt::AlignCenter);
-    label->setText(message);
-    msgBox->setWidget(label);
 
     if(modal) {
         msgBox->setTimeout(QMaemo5InformationBox::NoTimeout);
+        // extra line changes are needed to make error notes broader
+        errorMessage.prepend("\n");
+        errorMessage.append("\n");
     } else {
         msgBox->setTimeout(QMaemo5InformationBox::DefaultTimeout);
     }
+    QLabel *label = new QLabel(msgBox);
+    label->setAlignment(Qt::AlignCenter);
+    label->setText(errorMessage);
+    msgBox->setWidget(label);
 #else
     QMessageBox *msgBox = new QMessageBox(this);
     msgBox->button(QMessageBox::Ok);
-    msgBox->setText(message);
+    msgBox->setText(errorMessage);
     msgBox->setModal(modal);
 #endif