summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorGravatar Berthold Stoeger <bstoeger@mail.tuwien.ac.at>2020-03-22 16:43:21 +0100
committerGravatar Dirk Hohndel <dirk@hohndel.org>2020-03-22 12:01:09 -0700
commiteb55ffde16f0f3c1df4c97c5229165acfda5637d (patch)
treeab19de3aaadbb1a8b14d80519eb3b894a1f384eb /core
parent2dca7d0ce5ba4045732f3fcd6c8a1170b4ad902f (diff)
downloadsubsurface-eb55ffde16f0f3c1df4c97c5229165acfda5637d.tar.gz
cleanup: split uiLanguage() in two functions
The uiLanguage() function was used for two purposes: to initialize the language related preferences and to read the current language. To make things more easy to follow, split this function in two: one for initializing, one for getting the current language. Moreover, don't return the current locale in an out-parameter as there is already a function to do that [getLocale()]. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
Diffstat (limited to 'core')
-rw-r--r--core/divesitehelpers.cpp4
-rw-r--r--core/qt-init.cpp4
-rw-r--r--core/qthelper.cpp18
-rw-r--r--core/qthelper.h3
4 files changed, 14 insertions, 15 deletions
diff --git a/core/divesitehelpers.cpp b/core/divesitehelpers.cpp
index 6dc6b012a..b2bb400a7 100644
--- a/core/divesitehelpers.cpp
+++ b/core/divesitehelpers.cpp
@@ -39,7 +39,7 @@ void reverseGeoLookup(degrees_t latitude, degrees_t longitude, taxonomy_data *ta
QObject::connect(&timer, SIGNAL(timeout()), &loop, SLOT(quit()));
// first check the findNearbyPlaces API from geonames - that should give us country, state, city
- request.setUrl(geonamesURL.arg(uiLanguage(NULL).section(QRegExp("[-_ ]"), 0, 0)).arg(latitude.udeg / 1000000.0).arg(longitude.udeg / 1000000.0));
+ request.setUrl(geonamesURL.arg(getUiLanguage().section(QRegExp("[-_ ]"), 0, 0)).arg(latitude.udeg / 1000000.0).arg(longitude.udeg / 1000000.0));
// By using a std::unique_ptr<>, we can exit from the function at any point
// and the reply will be freed. Likewise, when overwriting the pointer with
@@ -119,7 +119,7 @@ void reverseGeoLookup(degrees_t latitude, degrees_t longitude, taxonomy_data *ta
reply->abort();
}
// next check the oceans API to figure out the body of water
- request.setUrl(geonamesOceanURL.arg(uiLanguage(NULL).section(QRegExp("[-_ ]"), 0, 0)).arg(latitude.udeg / 1000000.0).arg(longitude.udeg / 1000000.0));
+ request.setUrl(geonamesOceanURL.arg(getUiLanguage().section(QRegExp("[-_ ]"), 0, 0)).arg(latitude.udeg / 1000000.0).arg(longitude.udeg / 1000000.0));
reply.reset(rgl.get(request)); // Note: frees old reply.
QObject::connect(&*reply, SIGNAL(finished()), &loop, SLOT(quit()));
timer.start(5000); // 5 secs. timeout
diff --git a/core/qt-init.cpp b/core/qt-init.cpp
index d77abfb89..685f02248 100644
--- a/core/qt-init.cpp
+++ b/core/qt-init.cpp
@@ -70,7 +70,9 @@ void init_qt_late()
loc.setDefault(QLocale("es_ES"));
loc = QLocale();
}
- QString uiLang = uiLanguage(&loc);
+ initUiLanguage();
+ QString uiLang = getUiLanguage();
+ loc = getLocale();
QLocale::setDefault(loc);
qtTranslator = new QTranslator;
diff --git a/core/qthelper.cpp b/core/qthelper.cpp
index 85914767c..3321a3387 100644
--- a/core/qthelper.cpp
+++ b/core/qthelper.cpp
@@ -426,7 +426,7 @@ QString getUserAgent()
userAgent.append(arch);
if (arch == "i386")
userAgent.append("/" + SubsurfaceSysInfo::currentCpuArchitecture());
- userAgent.append(":" + uiLanguage(NULL));
+ userAgent.append(":" + getUiLanguage());
return userAgent;
}
@@ -438,21 +438,20 @@ extern "C" const char *subsurface_user_agent()
return copy_qstring(uA);
}
+QString getUiLanguage()
+{
+ return prefs.locale.lang_locale;
+}
+
/* TOOD: Move this to SettingsObjectWrapper, and also fix this complexity.
* gezus.
*/
-QString uiLanguage(QLocale *callerLoc)
+void initUiLanguage()
{
QString shortDateFormat;
QString dateFormat;
QString timeFormat;
- // Language settings are already loaded, see qPref::load()
- // so no need to reload them
-
- // remark this method used "useSystemLanguage", which is not set
- // instead use_system_language is loaded from disk
-
// set loc as system language or selected language
if (!qPrefLanguage::use_system_language()) {
loc = QLocale(qPrefLanguage::lang_locale());
@@ -483,8 +482,6 @@ QString uiLanguage(QLocale *callerLoc)
else if (languages.count() > 2 && languages[2].contains('-'))
uiLang = languages[2];
}
- if (callerLoc)
- *callerLoc = loc;
prefs.locale.lang_locale = copy_qstring(uiLang);
@@ -515,7 +512,6 @@ QString uiLanguage(QLocale *callerLoc)
free((void *)prefs.time_format);
prefs.time_format = copy_qstring(timeFormat);
}
- return uiLang;
}
QLocale getLocale()
diff --git a/core/qthelper.h b/core/qthelper.h
index c91712716..6e23e6768 100644
--- a/core/qthelper.h
+++ b/core/qthelper.h
@@ -77,7 +77,8 @@ QString get_first_dive_date_string();
QString get_last_dive_date_string();
QString get_short_dive_date_string(timestamp_t when);
QString get_trip_date_string(timestamp_t when, int nr, bool getday);
-QString uiLanguage(QLocale *callerLoc);
+QString getUiLanguage();
+void initUiLanguage();
QLocale getLocale();
QVector<QPair<QString, int>> selectedDivesGasUsed();
QString getUserAgent();