summaryrefslogtreecommitdiff
path: root/src/plugins/geoservices/nokia/qgeotilefetcher_nokia.cpp
diff options
context:
space:
mode:
authorAaron McCarthy <aaron.mccarthy@jollamobile.com>2014-01-31 10:49:31 +1000
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-02-04 22:04:19 +0100
commit469c56af0d868fb52661b54adf6905aaf364f5f9 (patch)
tree93cb4eb2b8664c8ceb7ba766f3c85df3c5f6b390 /src/plugins/geoservices/nokia/qgeotilefetcher_nokia.cpp
parent84ec21da364e2648e3de6fb84606072fe7d6fab4 (diff)
downloadqtlocation-469c56af0d868fb52661b54adf6905aaf364f5f9.tar.gz
Fix crash in tile fetcher when no engine is set.
The engine is stored in a QPointer. The pointer must be checked for validity before use. Change-Id: I07eaf9276511273735f000ce0eb9cdf2fe130df3 Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
Diffstat (limited to 'src/plugins/geoservices/nokia/qgeotilefetcher_nokia.cpp')
-rw-r--r--src/plugins/geoservices/nokia/qgeotilefetcher_nokia.cpp30
1 files changed, 17 insertions, 13 deletions
diff --git a/src/plugins/geoservices/nokia/qgeotilefetcher_nokia.cpp b/src/plugins/geoservices/nokia/qgeotilefetcher_nokia.cpp
index 13616dbe..a70862e3 100644
--- a/src/plugins/geoservices/nokia/qgeotilefetcher_nokia.cpp
+++ b/src/plugins/geoservices/nokia/qgeotilefetcher_nokia.cpp
@@ -196,35 +196,39 @@ QString QGeoTileFetcherNokia::getRequestString(const QGeoTileSpec &spec)
QString QGeoTileFetcherNokia::getLanguageString() const
{
- const QLocale::Language lang = m_engineNokia.data()->locale().language();
+ if (!m_engineNokia)
+ return QStringLiteral("ENG");
+
+ QLocale locale = m_engineNokia.data()->locale();
+
// English is the default, where no ln is specified. We hardcode the languages
// here even though the entire list is updated automagically from the server.
// The current languages are Arabic, Chinese, Simplified Chinese, English
// French, German, Italian, Polish, Russian and Spanish. The default is English.
// These are acually available from the same host under the URL: /maptiler/v2/info
- switch (lang) {
+ switch (locale.language()) {
case QLocale::Arabic:
- return "ARA";
+ return QStringLiteral("ARA");
case QLocale::Chinese:
- if (QLocale::TraditionalChineseScript == m_engineNokia.data()->locale().script())
- return "CHI";
+ if (locale.script() == QLocale::TraditionalChineseScript)
+ return QStringLiteral("CHI");
else
- return "CHT";
+ return QStringLiteral("CHT");
case QLocale::French:
- return "FRE";
+ return QStringLiteral("FRE");
case QLocale::German:
- return "GER";
+ return QStringLiteral("GER");
case QLocale::Italian:
- return "ITA";
+ return QStringLiteral("ITA");
case QLocale::Polish:
- return "POL";
+ return QStringLiteral("POL");
case QLocale::Russian:
- return "RUS";
+ return QStringLiteral("RUS");
case QLocale::Spanish:
- return "SPA";
+ return QStringLiteral("SPA");
default:
- return "ENG";
+ return QStringLiteral("ENG");
}
// No "lg" param means that we want English.
}