mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-17 20:26:17 +00:00
Settings update: Fix missing groups and Language initialization
There's one function named uiLanguage() that should return the current uiLanguage() that subsurface is running, but it actually sets a whole lot of preferences, I think that the general idea of that function is okay, but it seems broken for me. still, I used it to load the correct language from the preferences since it's what this function is currently doing right now. Also, a lot of missing groups where added. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
270864d073
commit
0a6f6b4382
3 changed files with 21 additions and 4 deletions
|
@ -481,6 +481,9 @@ extern "C" const char *subsurface_user_agent()
|
|||
return strdup(qPrintable(uA));
|
||||
}
|
||||
|
||||
/* TOOD: Move this to SettingsObjectWrapper, and also fix this complexity.
|
||||
* gezus.
|
||||
*/
|
||||
QString uiLanguage(QLocale *callerLoc)
|
||||
{
|
||||
QString shortDateFormat;
|
||||
|
@ -489,6 +492,7 @@ QString uiLanguage(QLocale *callerLoc)
|
|||
QSettings s;
|
||||
QVariant v;
|
||||
s.beginGroup("Language");
|
||||
GET_BOOL("UseSystemLanguage", locale.use_system_language);
|
||||
|
||||
if (!s.value("UseSystemLanguage", true).toBool()) {
|
||||
loc = QLocale(s.value("UiLanguage", QLocale().uiLanguages().first()).toString());
|
||||
|
|
|
@ -1618,6 +1618,7 @@ void UnitsSettings::setCoordinatesTraditional(bool value)
|
|||
if (value == prefs.coordinates_traditional)
|
||||
return;
|
||||
QSettings s;
|
||||
s.beginGroup(group);
|
||||
s.setValue("coordinates", value);
|
||||
prefs.coordinates_traditional = value;
|
||||
emit coordinatesTraditionalChanged(value);
|
||||
|
@ -1633,6 +1634,7 @@ void UnitsSettings::setUnitSystem(const QString& value)
|
|||
return;
|
||||
|
||||
QSettings s;
|
||||
|
||||
s.setValue("unit_system", value);
|
||||
|
||||
if (value == QStringLiteral("metric")) {
|
||||
|
@ -1893,6 +1895,7 @@ void LanguageSettingsObjectWrapper::setUseSystemLanguage(bool value)
|
|||
if (value == prefs.locale.use_system_language)
|
||||
return;
|
||||
QSettings s;
|
||||
s.beginGroup(group);
|
||||
s.setValue("UseSystemLanguage", value);
|
||||
prefs.locale.use_system_language = copy_string(qPrintable(value));
|
||||
emit useSystemLanguageChanged(value);
|
||||
|
@ -1903,6 +1906,7 @@ void LanguageSettingsObjectWrapper::setLanguage(const QString& value)
|
|||
if (value == prefs.locale.language)
|
||||
return;
|
||||
QSettings s;
|
||||
s.beginGroup(group);
|
||||
s.setValue("UiLanguage", value);
|
||||
prefs.locale.language = copy_string(qPrintable(value));
|
||||
emit languageChanged(value);
|
||||
|
@ -1913,6 +1917,7 @@ void LanguageSettingsObjectWrapper::setTimeFormat(const QString& value)
|
|||
if (value == prefs.time_format)
|
||||
return;
|
||||
QSettings s;
|
||||
s.beginGroup(group);
|
||||
s.setValue("time_format", value);
|
||||
prefs.time_format = copy_string(qPrintable(value));;
|
||||
emit timeFormatChanged(value);
|
||||
|
@ -1924,6 +1929,7 @@ void LanguageSettingsObjectWrapper::setDateFormat(const QString& value)
|
|||
return;
|
||||
|
||||
QSettings s;
|
||||
s.beginGroup(group);
|
||||
s.setValue("date_format", value);
|
||||
prefs.date_format = copy_string(qPrintable(value));;
|
||||
emit dateFormatChanged(value);
|
||||
|
@ -1935,6 +1941,7 @@ void LanguageSettingsObjectWrapper::setDateFormatShort(const QString& value)
|
|||
return;
|
||||
|
||||
QSettings s;
|
||||
s.beginGroup(group);
|
||||
s.setValue("date_format_short", value);
|
||||
prefs.date_format_short = copy_string(qPrintable(value));;
|
||||
emit dateFormatShortChanged(value);
|
||||
|
@ -1945,6 +1952,7 @@ void LanguageSettingsObjectWrapper::setTimeFormatOverride(bool value)
|
|||
if (value == prefs.time_format_override)
|
||||
return;
|
||||
QSettings s;
|
||||
s.beginGroup(group);
|
||||
s.setValue("time_format_override", value);
|
||||
prefs.time_format_override = value;
|
||||
emit timeFormatOverrideChanged(value);
|
||||
|
@ -1956,6 +1964,7 @@ void LanguageSettingsObjectWrapper::setDateFormatOverride(bool value)
|
|||
return;
|
||||
|
||||
QSettings s;
|
||||
s.beginGroup(group);
|
||||
s.setValue("date_format_override", value);
|
||||
prefs.date_format_override = value;
|
||||
emit dateFormatOverrideChanged(value);
|
||||
|
@ -1979,6 +1988,7 @@ void AnimationsSettingsObjectWrapper::setAnimationSpeed(int value)
|
|||
return;
|
||||
|
||||
QSettings s;
|
||||
s.beginGroup(group);
|
||||
s.setValue("animation_speed", value);
|
||||
prefs.animation_speed = value;
|
||||
emit animationSpeedChanged(value);
|
||||
|
@ -2005,6 +2015,7 @@ void LocationServiceSettingsObjectWrapper::setDistanceThreshold(int value)
|
|||
if (value == prefs.distance_threshold)
|
||||
return;
|
||||
QSettings s;
|
||||
s.beginGroup(group);
|
||||
s.setValue("distance_threshold", value);
|
||||
prefs.distance_threshold = value;
|
||||
emit distanceThresholdChanged(value);
|
||||
|
@ -2016,9 +2027,10 @@ void LocationServiceSettingsObjectWrapper::setTimeThreshold(int value)
|
|||
return;
|
||||
|
||||
QSettings s;
|
||||
s.beginGroup(group);
|
||||
s.setValue("time_threshold", value);
|
||||
prefs.time_threshold = value;
|
||||
emit timeThresholdChanged( value);
|
||||
emit timeThresholdChanged(value);
|
||||
}
|
||||
|
||||
SettingsObjectWrapper::SettingsObjectWrapper(QObject* parent):
|
||||
|
|
|
@ -42,18 +42,19 @@ void PreferencesLanguage::refreshSettings()
|
|||
ui->languageDropdown->setCurrentIndex(languages.first().row());
|
||||
}
|
||||
|
||||
#include <QDebug>
|
||||
void PreferencesLanguage::syncSettings()
|
||||
{
|
||||
auto lang = SettingsObjectWrapper::instance()->language_settings;
|
||||
bool useSystemLang = prefs.locale.use_system_language;
|
||||
QString currentText = ui->languageDropdown->currentText();
|
||||
|
||||
QAbstractItemModel *m = ui->languageDropdown->model();
|
||||
QString currentText = m->data(m->index(ui->languageDropdown->currentIndex(),0), Qt::UserRole).toString();
|
||||
if (useSystemLang != ui->languageSystemDefault->isChecked() ||
|
||||
(!useSystemLang && currentText != prefs.locale.language)) {
|
||||
QMessageBox::warning(this, tr("Restart required"),
|
||||
tr("To correctly load a new language you must restart Subsurface."));
|
||||
}
|
||||
|
||||
auto lang = SettingsObjectWrapper::instance()->language_settings;
|
||||
lang->setLanguage(currentText);
|
||||
lang->setUseSystemLanguage(ui->languageSystemDefault->isChecked());
|
||||
lang->setTimeFormatOverride(!ui->timeFormatSystemDefault->isChecked());
|
||||
|
|
Loading…
Add table
Reference in a new issue