<context>
<name>FriendListPanel</name>
<message>
- <location filename="../../src/ui/friendlistpanel.cpp" line="44"/>
+ <location filename="../../src/ui/friendlistpanel.cpp" line="45"/>
<source>Show all</source>
<translation>Näytä kaikki</translation>
</message>
<message>
- <location filename="../../src/ui/friendlistpanel.cpp" line="108"/>
+ <location filename="../../src/ui/friendlistpanel.cpp" line="110"/>
<source>Selected: %1</source>
<translation>Valittu: %1</translation>
</message>
<context>
<name>MainWindow</name>
<message>
- <location filename="../../src/ui/mainwindow.cpp" line="87"/>
+ <location filename="../../src/ui/mainwindow.cpp" line="838"/>
<source>Automatic location update</source>
<translation>Automaattinen paikan päivitys</translation>
</message>
<message>
- <location filename="../../src/ui/mainwindow.cpp" line="94"/>
+ <location filename="../../src/ui/mainwindow.cpp" line="84"/>
<source>Situare</source>
<translation>Situare</translation>
</message>
<message>
- <location filename="../../src/ui/mainwindow.cpp" line="406"/>
- <location filename="../../src/ui/mainwindow.cpp" line="665"/>
+ <location filename="../../src/ui/mainwindow.cpp" line="402"/>
+ <location filename="../../src/ui/mainwindow.cpp" line="666"/>
<source>Login</source>
<translation>Kirjaudu</translation>
</message>
<message>
- <location filename="../../src/ui/mainwindow.cpp" line="411"/>
+ <location filename="../../src/ui/mainwindow.cpp" line="407"/>
<source>Settings</source>
<translation>Asetukset</translation>
</message>
<message>
- <location filename="../../src/ui/mainwindow.cpp" line="416"/>
+ <location filename="../../src/ui/mainwindow.cpp" line="412"/>
<source>GPS</source>
<translation>GPS</translation>
</message>
<message>
- <location filename="../../src/ui/mainwindow.cpp" line="423"/>
+ <location filename="../../src/ui/mainwindow.cpp" line="419"/>
<source>Auto centering</source>
<translation>Automaattinen keskitys</translation>
</message>
<message>
- <location filename="../../src/ui/mainwindow.cpp" line="429"/>
+ <location filename="../../src/ui/mainwindow.cpp" line="425"/>
<source>Main</source>
<translation>Päävalikko</translation>
</message>
<message>
- <location filename="../../src/ui/mainwindow.cpp" line="434"/>
+ <location filename="../../src/ui/mainwindow.cpp" line="430"/>
<source>Menu</source>
<translation>Valikko</translation>
</message>
<message>
- <location filename="../../src/ui/mainwindow.cpp" line="537"/>
+ <location filename="../../src/ui/mainwindow.cpp" line="538"/>
<source>GPS timeout</source>
<translation>GPS pyyntö aikakatkaistiin</translation>
</message>
<message>
- <location filename="../../src/ui/mainwindow.cpp" line="659"/>
+ <location filename="../../src/ui/mainwindow.cpp" line="660"/>
<source>Logout</source>
<translation>Kirjaudu ulos</translation>
</message>
<translation>Asetukset</translation>
</message>
<message>
- <location filename="../../src/ui/settingsdialog.cpp" line="47"/>
+ <location filename="../../src/ui/settingsdialog.cpp" line="48"/>
<source>Use automatic location update</source>
<translation>Sijainnin automaattinen päivitys</translation>
</message>
<message>
- <location filename="../../src/ui/settingsdialog.cpp" line="54"/>
- <location filename="../../src/ui/settingsdialog.cpp" line="86"/>
+ <location filename="../../src/ui/settingsdialog.cpp" line="55"/>
+ <location filename="../../src/ui/settingsdialog.cpp" line="87"/>
<source>Update interval</source>
<translation>Päivitysväli</translation>
</message>
<message>
- <location filename="../../src/ui/settingsdialog.cpp" line="131"/>
+ <location filename="../../src/ui/settingsdialog.cpp" line="120"/>
<source>%1 min</source>
<translation>%1 min</translation>
</message>
<context>
<name>SituareEngine</name>
<message>
- <location filename="../../src/engine/engine.cpp" line="140"/>
+ <location filename="../../src/engine/engine.cpp" line="133"/>
<source>Auto centering disabled</source>
<translation>Automaattinen keskitys pois päältä</translation>
</message>
<message>
- <location filename="../../src/engine/engine.cpp" line="180"/>
+ <location filename="../../src/engine/engine.cpp" line="183"/>
<source>Unable to start GPS</source>
<translation>GPS käynnistys epäonnistui</translation>
</message>
<message>
- <location filename="../../src/engine/engine.cpp" line="195"/>
+ <location filename="../../src/engine/engine.cpp" line="196"/>
<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="200"/>
+ <location filename="../../src/engine/engine.cpp" line="201"/>
<source>Automatic location update enabled</source>
<translation>Automaattinen paikan päivitys päällä</translation>
</message>
<message>
- <location filename="../../src/engine/engine.cpp" line="221"/>
+ <location filename="../../src/engine/engine.cpp" line="230"/>
+ <source>Unknown server error</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/engine/engine.cpp" line="236"/>
+ <source>Missing argument from request</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/engine/engine.cpp" line="238"/>
<source>Connection refused by the server</source>
<translation>Palvelin ei vastaa pyyntöihin</translation>
</message>
<message>
- <location filename="../../src/engine/engine.cpp" line="224"/>
+ <location filename="../../src/engine/engine.cpp" line="244"/>
<source>Connection closed by the server</source>
<translation>Palvelin sulki yhteyden</translation>
</message>
<message>
- <location filename="../../src/engine/engine.cpp" line="227"/>
+ <location filename="../../src/engine/engine.cpp" line="250"/>
<source>Remote server not found</source>
<translation>Palvelinta ei löydy</translation>
</message>
<message>
- <location filename="../../src/engine/engine.cpp" line="230"/>
+ <location filename="../../src/engine/engine.cpp" line="256"/>
<source>Connection timed out</source>
<translation>Yhteys aikakatkaistiin</translation>
</message>
<message>
- <location filename="../../src/engine/engine.cpp" line="233"/>
+ <location filename="../../src/engine/engine.cpp" line="262"/>
+ <source>No network connection</source>
+ <translation>Ei verkkoyhteyttä</translation>
+ </message>
+ <message>
+ <location filename="../../src/engine/engine.cpp" line="266"/>
<source>Session expired. Please login again</source>
<translation>Istunto vanhentunut. Kirjaudu uudelleen</translation>
</message>
<message>
- <location filename="../../src/engine/engine.cpp" line="241"/>
+ <location filename="../../src/engine/engine.cpp" line="274"/>
<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="244"/>
+ <location filename="../../src/engine/engine.cpp" line="279"/>
<source>Update failed, please try again</source>
<translation>Päivitys epäonnistui. Yritä uudelleen</translation>
</message>
<message>
- <location filename="../../src/engine/engine.cpp" line="247"/>
+ <location filename="../../src/engine/engine.cpp" line="283"/>
<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="250"/>
+ <location filename="../../src/engine/engine.cpp" line="286"/>
<source>Address retrieval failed</source>
<translation>Osoitteen haku epäonnistui</translation>
</message>
<message>
- <location filename="../../src/engine/engine.cpp" line="266"/>
+ <location filename="../../src/engine/engine.cpp" line="299"/>
<source>Malformatted reply from server</source>
<translation>Viallisesti muotoiltu serverin vastaus</translation>
</message>
<message>
+ <location filename="../../src/engine/engine.cpp" line="305"/>
+ <source>Geolocation server not responding</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/engine/engine.cpp" line="309"/>
+ <source>Geolocation request failed, please try again</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/engine/engine.cpp" line="313"/>
+ <source>Invalid lat/lon value, please try again</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../src/engine/engine.cpp" line="462"/>
+ <source>Automatic location update.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
<source>Address retrieval failed, please try again</source>
<translation type="obsolete">Osoitteen haku epäonnistui. Yritä uudelleen</translation>
</message>
<message>
- <location filename="../../src/engine/engine.cpp" line="253"/>
+ <location filename="../../src/engine/engine.cpp" line="289"/>
<source>Image download failed</source>
<translation>Kuvan haku epäonnistui</translation>
</message>
<message>
- <location filename="../../src/engine/engine.cpp" line="256"/>
+ <location filename="../../src/engine/engine.cpp" line="292"/>
<source>Map image download failed</source>
<translation>Karttakuvan lataaminen epäonnistui</translation>
</message>
<message>
- <location filename="../../src/engine/engine.cpp" line="260"/>
+ <location filename="../../src/engine/engine.cpp" line="296"/>
<source>GPS initialization failed</source>
<translation>GPS alustus epäonnistui</translation>
</message>
<message>
- <location filename="../../src/engine/engine.cpp" line="263"/>
<source>Unknown server response</source>
- <translation>Tuntematon vastaus palvelimelta</translation>
+ <translation type="obsolete">Tuntematon vastaus palvelimelta</translation>
</message>
<message>
<source>JSON parsing failed, invalid JSON string</source>
<translation type="obsolete">Virheellinen JSON, parsiminen epäonnistui</translation>
</message>
<message>
- <location filename="../../src/engine/engine.cpp" line="302"/>
- <location filename="../../src/engine/engine.cpp" line="310"/>
+ <location filename="../../src/engine/engine.cpp" line="351"/>
+ <location filename="../../src/engine/engine.cpp" line="359"/>
<source>GPS enabled</source>
<translation>GPS päällä</translation>
</message>
<message>
- <location filename="../../src/engine/engine.cpp" line="303"/>
- <location filename="../../src/engine/engine.cpp" line="313"/>
+ <location filename="../../src/engine/engine.cpp" line="352"/>
+ <location filename="../../src/engine/engine.cpp" line="362"/>
<source>Auto centering enabled</source>
<translation>Automaattinen keskitys päällä</translation>
</message>
<translation>Päivitä sijainti</translation>
</message>
<message>
- <location filename="../../src/ui/updatelocation/updatelocationdialog.cpp" line="71"/>
+ <location filename="../../src/ui/updatelocation/updatelocationdialog.cpp" line="74"/>
<source>Publish on Facebook</source>
<translation>Julkaise Facebookissa</translation>
</message>
<message>
- <location filename="../../src/ui/updatelocation/updatelocationdialog.cpp" line="77"/>
+ <location filename="../../src/ui/updatelocation/updatelocationdialog.cpp" line="80"/>
<source>Send</source>
<translation>Lähetä</translation>
</message>
<translation>Sijainti:</translation>
</message>
<message>
- <location filename="../../src/ui/updatelocation/updatelocationdialog.cpp" line="42"/>
+ <location filename="../../src/ui/updatelocation/updatelocationdialog.cpp" line="43"/>
<source>Message:</source>
<translation>Viesti:</translation>
</message>
<translation type="obsolete">Sijainnin päivitys epäonnistui\n\nVistisi on tallennettu kunnes pävitys on onnistunut</translation>
</message>
<message>
- <location filename="../../src/ui/userinfo.cpp" line="338"/>
+ <location filename="../../src/ui/userinfo.cpp" line="357"/>
<source>Location update failed, please try again</source>
<translation>Paikkatiedon päivitys epäonnistui, yritä uudelleen</translation>
</message>
#include "map/mapengine.h"
#include "situareservice/situareservice.h"
#include "ui/mainwindow.h"
+#include "network/networkaccessmanager.h"
#include "mce.h"
#include <cmath>
m_ui = new MainWindow;
m_ui->updateItemVisibility();
+ m_networkAccessManager = NetworkAccessManager::instance();
+
// build MapEngine
m_mapEngine = new MapEngine(this);
m_ui->setMapViewScene(m_mapEngine->scene());
m_ui->buildInformationBox(tr("Connection timed out"), true);
}
break;
+ case QNetworkReply::UnknownNetworkError:
+ if(context == ErrorContext::NETWORK) {
+ m_ui->toggleProgressIndicator(false);
+ m_ui->buildInformationBox(tr("No network connection"), true);
+ }
+ break;
case SituareError::SESSION_EXPIRED:
m_ui->buildInformationBox(tr("Session expired. Please login again"), true);
m_facebookAuthenticator->clearAccountInformation(true); // keep username = true
{
qDebug() << __PRETTY_FUNCTION__;
- if(m_ui->loginState()) {
- logout();
- m_situareService->clearUserData();
- } else {
- m_facebookAuthenticator->start();
+ if (m_networkAccessManager->isConnected()) {
+ if(m_ui->loginState()) {
+ logout();
+ m_situareService->clearUserData();
+ } else {
+ m_facebookAuthenticator->start();
+ }
+ }
+ else {
+ error(ErrorContext::NETWORK, QNetworkReply::UnknownNetworkError);
}
}
{
qDebug() << __PRETTY_FUNCTION__;
- m_ui->toggleProgressIndicator(true);
-
- m_situareService->fetchLocations();
+ if (m_networkAccessManager->isConnected()) {
+ m_ui->toggleProgressIndicator(true);
+ m_situareService->fetchLocations();
+ }
+ else {
+ error(ErrorContext::NETWORK, QNetworkReply::UnknownNetworkError);
+ }
}
void SituareEngine::requestAddress()
{
qDebug() << __PRETTY_FUNCTION__;
- if (m_gps->isRunning())
- m_situareService->reverseGeo(m_gps->lastPosition());
- else
- m_situareService->reverseGeo(m_mapEngine->centerGeoCoordinate());
+ if (m_networkAccessManager->isConnected()) {
+ if (m_gps->isRunning())
+ m_situareService->reverseGeo(m_gps->lastPosition());
+ else
+ m_situareService->reverseGeo(m_mapEngine->centerGeoCoordinate());
+ }
+ else {
+ error(ErrorContext::NETWORK, QNetworkReply::UnknownNetworkError);
+ }
}
void SituareEngine::requestUpdateLocation(const QString &status, bool publish)
{
qDebug() << __PRETTY_FUNCTION__;
- m_ui->toggleProgressIndicator(true);
+ if (m_networkAccessManager->isConnected()) {
+ m_ui->toggleProgressIndicator(true);
- if (m_gps->isRunning())
- m_situareService->updateLocation(m_gps->lastPosition(), status, publish);
- else
- m_situareService->updateLocation(m_mapEngine->centerGeoCoordinate(), status, publish);
+ if (m_gps->isRunning())
+ m_situareService->updateLocation(m_gps->lastPosition(), status, publish);
+ else
+ m_situareService->updateLocation(m_mapEngine->centerGeoCoordinate(), status, publish);
+ }
+ else {
+ error(ErrorContext::NETWORK, QNetworkReply::UnknownNetworkError);
+ }
}
void SituareEngine::requestAutomaticUpdateIfMoved(QPointF position)
{
qDebug() << __PRETTY_FUNCTION__;
- m_situareService->fetchLocations();
+ if (m_networkAccessManager->isConnected())
+ m_situareService->fetchLocations();
+ else
+ error(ErrorContext::NETWORK, QNetworkReply::UnknownNetworkError);
}
void SituareEngine::userDataChanged(User *user, QList<User *> &friendsList)
#include <QNetworkRequest>
#include <QNetworkAccessManager>
#include <QDebug>
+#include <QTimer>
#include "networkhandler.h"
#include "networkaccessmanager.h"
#include "networkreply.h"
+#include "common.h"
NetworkAccessManager *NetworkAccessManager::m_instance = 0;
NetworkAccessManager::NetworkAccessManager()
- : m_networkHandler(0),
+ : m_connected(false),
+ m_networkHandler(0),
m_networkAccessManagerPrivate(0)
{
qDebug() << __PRETTY_FUNCTION__;
connect(m_networkHandler, SIGNAL(connected()),
this, SLOT(connected()));
+ connect(m_networkHandler, SIGNAL(disconnected()),
+ this, SLOT(disconnected()));
connect(m_networkAccessManagerPrivate, SIGNAL(finished(QNetworkReply*)),
this, SLOT(downloadFinished(QNetworkReply*)));
{
qDebug() << __PRETTY_FUNCTION__;
+ m_connected = true;
+
//Loop through all requests and calls get method.
foreach (const QNetworkRequest &request, m_requestQueue) {
QNetworkReply *reply = m_networkAccessManagerPrivate->get(request);
m_requestQueue.clear();
}
+void NetworkAccessManager::disconnected()
+{
+ qDebug() << __PRETTY_FUNCTION__;
+
+ m_connected = false;
+}
+
void NetworkAccessManager::downloadFinished(QNetworkReply *reply)
{
qDebug() << __PRETTY_FUNCTION__;
}
}
-QNetworkReply *NetworkAccessManager::get(const QNetworkRequest &request)
+QNetworkReply *NetworkAccessManager::get(const QNetworkRequest &request, bool onlineRequestsOnly)
{
qDebug() << __PRETTY_FUNCTION__;
m_requestQueue.append(request);
m_networkHandler->connect();
QNetworkReply *reply = new NetworkReply(request, this);
- m_offlineReplyQueue.insert(request.url().toString(), reply);
+
+ if (onlineRequestsOnly) {
+ ((NetworkReply*)reply)->setErrorCode(QNetworkReply::UnknownNetworkError);
+ emit finished(reply);
+ }
+ else {
+ m_offlineReplyQueue.insert(request.url().toString(), reply);
+ }
+
return reply;
}
//Connected, use normal get method.
}
}
-
NetworkAccessManager *NetworkAccessManager::instance()
{
qDebug() << __PRETTY_FUNCTION__;
return m_instance;
}
+bool NetworkAccessManager::isConnected()
+{
+ qDebug() << __PRETTY_FUNCTION__;
+
+ return m_connected;
+}
+
void NetworkAccessManager::setCache(QAbstractNetworkCache *cache)
{
qDebug() << __PRETTY_FUNCTION__;