diff options
author | Aaron McCarthy <aaron.mccarthy@jollamobile.com> | 2014-01-31 10:49:31 +1000 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-02-04 22:04:19 +0100 |
commit | 469c56af0d868fb52661b54adf6905aaf364f5f9 (patch) | |
tree | 93cb4eb2b8664c8ceb7ba766f3c85df3c5f6b390 /src/plugins/geoservices/nokia/qgeotilefetcher_nokia.cpp | |
parent | 84ec21da364e2648e3de6fb84606072fe7d6fab4 (diff) | |
download | qtlocation-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.cpp | 30 |
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. } |