cleanup: don't allocate translators on heap

This is pointless bike-shedding: instead of allocating the QTranslators
on the heap an assigning them to a variable at translation-unit scope,
we can simply generate them as static objects.

That makes
1) two fewer lines of code
2) the translator-resources are properly released when the application
   closes.

Not that either of these points would make *any* difference.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
Berthold Stoeger 2020-03-22 16:54:52 +01:00 committed by Dirk Hohndel
parent 0f30ca9b33
commit 463bb25705

View file

@ -9,7 +9,7 @@
#include "core/settings/qPref.h" #include "core/settings/qPref.h"
char *settings_suffix = NULL; char *settings_suffix = NULL;
static QTranslator *qtTranslator, *ssrfTranslator; static QTranslator qtTranslator, ssrfTranslator;
void init_qt_late() void init_qt_late()
{ {
@ -75,7 +75,6 @@ void init_qt_late()
loc = getLocale(); loc = getLocale();
QLocale::setDefault(loc); QLocale::setDefault(loc);
qtTranslator = new QTranslator;
QString translationLocation; QString translationLocation;
#if defined(Q_OS_ANDROID) #if defined(Q_OS_ANDROID)
translationLocation = QLatin1String("assets:/translations"); translationLocation = QLatin1String("assets:/translations");
@ -84,18 +83,17 @@ void init_qt_late()
#else #else
translationLocation = QLibraryInfo::location(QLibraryInfo::TranslationsPath); translationLocation = QLibraryInfo::location(QLibraryInfo::TranslationsPath);
#endif #endif
if (qtTranslator->load(loc, "qt", "_", translationLocation)) { if (qtTranslator.load(loc, "qt", "_", translationLocation)) {
application->installTranslator(qtTranslator); application->installTranslator(&qtTranslator);
} else { } else {
if (verbose && uiLang != "en_US" && uiLang != "en-US") if (verbose && uiLang != "en_US" && uiLang != "en-US")
qDebug() << "can't find Qt localization for locale" << uiLang << "searching in" << translationLocation; qDebug() << "can't find Qt localization for locale" << uiLang << "searching in" << translationLocation;
} }
ssrfTranslator = new QTranslator; if (ssrfTranslator.load(loc, "subsurface", "_") ||
if (ssrfTranslator->load(loc, "subsurface", "_") || ssrfTranslator.load(loc, "subsurface", "_", translationLocation) ||
ssrfTranslator->load(loc, "subsurface", "_", translationLocation) || ssrfTranslator.load(loc, "subsurface", "_", getSubsurfaceDataPath("translations")) ||
ssrfTranslator->load(loc, "subsurface", "_", getSubsurfaceDataPath("translations")) || ssrfTranslator.load(loc, "subsurface", "_", getSubsurfaceDataPath("../translations"))) {
ssrfTranslator->load(loc, "subsurface", "_", getSubsurfaceDataPath("../translations"))) { application->installTranslator(&ssrfTranslator);
application->installTranslator(ssrfTranslator);
} else { } else {
qDebug() << "can't find Subsurface localization for locale" << uiLang; qDebug() << "can't find Subsurface localization for locale" << uiLang;
} }