core: activate qPrefLanguage

remove Language from SettingsObjectWrapper and reference qPrefLanguage

update files using SettingsObjectWrapper/Language to use qPrefLanguage

this activated qPrefLanguage and removed the similar class from
SettingsObjectWrapper.

Signed-off-by: Jan Iversen <jani@apache.org>
This commit is contained in:
jan Iversen 2018-08-08 16:34:17 +02:00 committed by Dirk Hohndel
parent 63fa532b15
commit 72d87364c0
6 changed files with 46 additions and 240 deletions

View file

@ -20,6 +20,7 @@ void qPref::loadSync(bool doSync)
qPrefDiveComputer::instance()->loadSync(doSync); qPrefDiveComputer::instance()->loadSync(doSync);
qPrefDivePlanner::instance()->loadSync(doSync); qPrefDivePlanner::instance()->loadSync(doSync);
// qPrefFaceook does not use disk. // qPrefFaceook does not use disk.
qPrefLanguage::instance()->loadSync(doSync);
qPrefLocationService::instance()->loadSync(doSync); qPrefLocationService::instance()->loadSync(doSync);
qPrefProxy::instance()->loadSync(doSync); qPrefProxy::instance()->loadSync(doSync);
qPrefTechnicalDetails::instance()->loadSync(doSync); qPrefTechnicalDetails::instance()->loadSync(doSync);

View file

@ -390,148 +390,6 @@ void GeneralSettingsObjectWrapper::setFfmpegExecutable(const QString &value)
emit ffmpegExecutableChanged(value); emit ffmpegExecutableChanged(value);
} }
LanguageSettingsObjectWrapper::LanguageSettingsObjectWrapper(QObject *parent) :
QObject(parent)
{
}
QString LanguageSettingsObjectWrapper::language() const
{
return prefs.locale.language;
}
QString LanguageSettingsObjectWrapper::timeFormat() const
{
return prefs.time_format;
}
QString LanguageSettingsObjectWrapper::dateFormat() const
{
return prefs.date_format;
}
QString LanguageSettingsObjectWrapper::dateFormatShort() const
{
return prefs.date_format_short;
}
bool LanguageSettingsObjectWrapper::timeFormatOverride() const
{
return prefs.time_format_override;
}
bool LanguageSettingsObjectWrapper::dateFormatOverride() const
{
return prefs.date_format_override;
}
bool LanguageSettingsObjectWrapper::useSystemLanguage() const
{
return prefs.locale.use_system_language;
}
QString LanguageSettingsObjectWrapper::langLocale() const
{
return prefs.locale.lang_locale;
}
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 = value;
emit useSystemLanguageChanged(value);
}
void LanguageSettingsObjectWrapper::setLangLocale(const QString &value)
{
if (value == prefs.locale.lang_locale)
return;
QSettings s;
s.beginGroup(group);
s.setValue("UiLangLocale", value);
free((void *)prefs.locale.lang_locale);
prefs.locale.lang_locale = copy_qstring(value);
emit langLocaleChanged(value);
}
void LanguageSettingsObjectWrapper::setLanguage(const QString& value)
{
if (value == prefs.locale.language)
return;
QSettings s;
s.beginGroup(group);
s.setValue("UiLanguage", value);
free((void *)prefs.locale.language);
prefs.locale.language = copy_qstring(value);
emit languageChanged(value);
}
void LanguageSettingsObjectWrapper::setTimeFormat(const QString& value)
{
if (value == prefs.time_format)
return;
QSettings s;
s.beginGroup(group);
s.setValue("time_format", value);
free((void *)prefs.time_format);
prefs.time_format = copy_qstring(value);
emit timeFormatChanged(value);
}
void LanguageSettingsObjectWrapper::setDateFormat(const QString& value)
{
if (value == prefs.date_format)
return;
QSettings s;
s.beginGroup(group);
s.setValue("date_format", value);
free((void *)prefs.date_format);
prefs.date_format = copy_qstring(value);
emit dateFormatChanged(value);
}
void LanguageSettingsObjectWrapper::setDateFormatShort(const QString& value)
{
if (value == prefs.date_format_short)
return;
QSettings s;
s.beginGroup(group);
s.setValue("date_format_short", value);
free((void *)prefs.date_format_short);
prefs.date_format_short = copy_qstring(value);
emit dateFormatShortChanged(value);
}
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);
}
void LanguageSettingsObjectWrapper::setDateFormatOverride(bool value)
{
if (value == prefs.date_format_override)
return;
QSettings s;
s.beginGroup(group);
s.setValue("date_format_override", value);
prefs.date_format_override = value;
emit dateFormatOverrideChanged(value);
}
SettingsObjectWrapper::SettingsObjectWrapper(QObject* parent): SettingsObjectWrapper::SettingsObjectWrapper(QObject* parent):
QObject(parent), QObject(parent),
techDetails(new qPrefTechnicalDetails(this)), techDetails(new qPrefTechnicalDetails(this)),
@ -544,7 +402,7 @@ QObject(parent),
unit_settings(new qPrefUnits(this)), unit_settings(new qPrefUnits(this)),
general_settings(new GeneralSettingsObjectWrapper(this)), general_settings(new GeneralSettingsObjectWrapper(this)),
display_settings(new qPrefDisplay(this)), display_settings(new qPrefDisplay(this)),
language_settings(new LanguageSettingsObjectWrapper(this)), language_settings(new qPrefLanguage(this)),
animation_settings(new qPrefAnimations(this)), animation_settings(new qPrefAnimations(this)),
location_settings(new qPrefLocationService(this)), location_settings(new qPrefLocationService(this)),
update_manager_settings(new qPrefUpdateManager(this)), update_manager_settings(new qPrefUpdateManager(this)),
@ -601,16 +459,7 @@ void SettingsObjectWrapper::load()
qPrefDiveComputer::instance()->load(); qPrefDiveComputer::instance()->load();
qPrefUpdateManager::instance()->load(); qPrefUpdateManager::instance()->load();
s.beginGroup("Language"); qPrefLanguage::instance()->load();
GET_BOOL("UseSystemLanguage", locale.use_system_language);
GET_TXT("UiLanguage", locale.language);
GET_TXT("UiLangLocale", locale.lang_locale);
GET_TXT("time_format", time_format);
GET_TXT("date_format", date_format);
GET_TXT("date_format_short", date_format_short);
GET_BOOL("time_format_override", time_format_override);
GET_BOOL("date_format_override", date_format_override);
s.endGroup();
} }
void SettingsObjectWrapper::sync() void SettingsObjectWrapper::sync()

View file

@ -138,51 +138,6 @@ private:
const QString group = QStringLiteral("GeneralSettings"); const QString group = QStringLiteral("GeneralSettings");
}; };
class LanguageSettingsObjectWrapper : public QObject {
Q_OBJECT
Q_PROPERTY(QString language READ language WRITE setLanguage NOTIFY languageChanged)
Q_PROPERTY(QString time_format READ timeFormat WRITE setTimeFormat NOTIFY timeFormatChanged)
Q_PROPERTY(QString date_format READ dateFormat WRITE setDateFormat NOTIFY dateFormatChanged)
Q_PROPERTY(QString date_format_short READ dateFormatShort WRITE setDateFormatShort NOTIFY dateFormatShortChanged)
Q_PROPERTY(QString lang_locale READ langLocale WRITE setLangLocale NOTIFY langLocaleChanged)
Q_PROPERTY(bool time_format_override READ timeFormatOverride WRITE setTimeFormatOverride NOTIFY timeFormatOverrideChanged)
Q_PROPERTY(bool date_format_override READ dateFormatOverride WRITE setDateFormatOverride NOTIFY dateFormatOverrideChanged)
Q_PROPERTY(bool use_system_language READ useSystemLanguage WRITE setUseSystemLanguage NOTIFY useSystemLanguageChanged)
public:
LanguageSettingsObjectWrapper(QObject *parent);
QString language() const;
QString langLocale() const;
QString timeFormat() const;
QString dateFormat() const;
QString dateFormatShort() const;
bool timeFormatOverride() const;
bool dateFormatOverride() const;
bool useSystemLanguage() const;
public slots:
void setLangLocale (const QString& value);
void setLanguage (const QString& value);
void setTimeFormat (const QString& value);
void setDateFormat (const QString& value);
void setDateFormatShort (const QString& value);
void setTimeFormatOverride (bool value);
void setDateFormatOverride (bool value);
void setUseSystemLanguage (bool value);
signals:
void languageChanged(const QString& value);
void langLocaleChanged(const QString& value);
void timeFormatChanged(const QString& value);
void dateFormatChanged(const QString& value);
void dateFormatShortChanged(const QString& value);
void timeFormatOverrideChanged(bool value);
void dateFormatOverrideChanged(bool value);
void useSystemLanguageChanged(bool value);
private:
const QString group = QStringLiteral("Language");
};
class SettingsObjectWrapper : public QObject { class SettingsObjectWrapper : public QObject {
Q_OBJECT Q_OBJECT
@ -196,7 +151,7 @@ class SettingsObjectWrapper : public QObject {
Q_PROPERTY(qPrefUnits* units MEMBER unit_settings CONSTANT) Q_PROPERTY(qPrefUnits* units MEMBER unit_settings CONSTANT)
Q_PROPERTY(GeneralSettingsObjectWrapper* general MEMBER general_settings CONSTANT) Q_PROPERTY(GeneralSettingsObjectWrapper* general MEMBER general_settings CONSTANT)
Q_PROPERTY(qPrefDisplay* display MEMBER display_settings CONSTANT) Q_PROPERTY(qPrefDisplay* display MEMBER display_settings CONSTANT)
Q_PROPERTY(LanguageSettingsObjectWrapper* language MEMBER language_settings CONSTANT) Q_PROPERTY(qPrefLanguage* language MEMBER language_settings CONSTANT)
Q_PROPERTY(qPrefAnimations* animation MEMBER animation_settings CONSTANT) Q_PROPERTY(qPrefAnimations* animation MEMBER animation_settings CONSTANT)
Q_PROPERTY(qPrefLocationService* Location MEMBER location_settings CONSTANT) Q_PROPERTY(qPrefLocationService* Location MEMBER location_settings CONSTANT)
@ -215,7 +170,7 @@ public:
qPrefUnits *unit_settings; qPrefUnits *unit_settings;
GeneralSettingsObjectWrapper *general_settings; GeneralSettingsObjectWrapper *general_settings;
qPrefDisplay *display_settings; qPrefDisplay *display_settings;
LanguageSettingsObjectWrapper *language_settings; qPrefLanguage *language_settings;
qPrefAnimations *animation_settings; qPrefAnimations *animation_settings;
qPrefLocationService *location_settings; qPrefLocationService *location_settings;
qPrefUpdateManager *update_manager_settings; qPrefUpdateManager *update_manager_settings;

View file

@ -82,15 +82,15 @@ void PreferencesLanguage::syncSettings()
currentLocale = m->data(languages.first(),Qt::UserRole).toString(); currentLocale = m->data(languages.first(),Qt::UserRole).toString();
auto lang = SettingsObjectWrapper::instance()->language_settings; auto lang = qPrefLanguage::instance();
lang->setLanguage(currentText); lang->set_language(currentText);
lang->setLangLocale(currentLocale); lang->set_lang_locale(currentLocale);
lang->setUseSystemLanguage(ui->languageSystemDefault->isChecked()); lang->set_use_system_language(ui->languageSystemDefault->isChecked());
lang->setTimeFormatOverride(!ui->timeFormatSystemDefault->isChecked()); lang->set_time_format_override(!ui->timeFormatSystemDefault->isChecked());
lang->setDateFormatOverride(!ui->dateFormatSystemDefault->isChecked()); lang->set_date_format_override(!ui->dateFormatSystemDefault->isChecked());
lang->setTimeFormat(ui->timeFormatEntry->currentText()); lang->set_time_format(ui->timeFormatEntry->currentText());
lang->setDateFormat(ui->dateFormatEntry->currentText()); lang->set_date_format(ui->dateFormatEntry->currentText());
lang->setDateFormatShort(ui->shortDateFormatEntry->text()); lang->set_date_format_short(ui->shortDateFormatEntry->text());
uiLanguage(NULL); uiLanguage(NULL);
QString qDateTimeWeb = tr("These will be used as is. This might not be what you intended.\nSee http://doc.qt.io/qt-5/qdatetime.html#toString"); QString qDateTimeWeb = tr("These will be used as is. This might not be what you intended.\nSee http://doc.qt.io/qt-5/qdatetime.html#toString");

View file

@ -162,6 +162,7 @@ void register_qml_types()
REGISTER_TYPE(qPrefDiveComputer, "SsrfDiveComputerPrefs"); REGISTER_TYPE(qPrefDiveComputer, "SsrfDiveComputerPrefs");
REGISTER_TYPE(qPrefDivePlanner, "SsrfDivePlannerPrefs"); REGISTER_TYPE(qPrefDivePlanner, "SsrfDivePlannerPrefs");
REGISTER_TYPE(qPrefFacebook, "SsrfFacebookPrefs"); REGISTER_TYPE(qPrefFacebook, "SsrfFacebookPrefs");
REGISTER_TYPE(qPrefLanguage, "SsrfLanguagePrefs");
REGISTER_TYPE(qPrefLocationService, "SsrfLocationServicePrefs"); REGISTER_TYPE(qPrefLocationService, "SsrfLocationServicePrefs");
REGISTER_TYPE(qPrefProxy, "SsrfProxyPrefs"); REGISTER_TYPE(qPrefProxy, "SsrfProxyPrefs");
REGISTER_TYPE(qPrefTechnicalDetails, "SsrfTechnicalDetailsPrefs"); REGISTER_TYPE(qPrefTechnicalDetails, "SsrfTechnicalDetailsPrefs");

View file

@ -110,42 +110,42 @@ void TestPreferences::testPreferences()
TEST(general->pscrRatio(), 1); TEST(general->pscrRatio(), 1);
TEST(general->useDefaultFile(), false); TEST(general->useDefaultFile(), false);
auto language = pref->language_settings; auto language = qPrefLanguage::instance();
language->setLangLocale("en_US"); language->set_lang_locale("en_US");
language->setLanguage("en"); language->set_language("en");
language->setTimeFormat("hh:mm"); language->set_time_format("hh:mm");
language->setDateFormat("dd/mm/yy"); language->set_date_format("dd/mm/yy");
language->setDateFormatShort("dd/mm"); language->set_date_format_short("dd/mm");
language->setTimeFormatOverride(false); language->set_time_format_override(false);
language->setDateFormatOverride(false); language->set_date_format_override(false);
language->setUseSystemLanguage(false); language->set_use_system_language(false);
TEST(language->langLocale(), QStringLiteral("en_US")); TEST(language->lang_locale(), QStringLiteral("en_US"));
TEST(language->language(), QStringLiteral("en")); TEST(language->language(), QStringLiteral("en"));
TEST(language->timeFormat(), QStringLiteral("hh:mm")); TEST(language->time_format(), QStringLiteral("hh:mm"));
TEST(language->dateFormat(), QStringLiteral("dd/mm/yy")); TEST(language->date_format(), QStringLiteral("dd/mm/yy"));
TEST(language->dateFormatShort(), QStringLiteral("dd/mm")); TEST(language->date_format_short(), QStringLiteral("dd/mm"));
TEST(language->timeFormatOverride(), false); TEST(language->time_format_override(), false);
TEST(language->dateFormatOverride(), false); TEST(language->date_format_override(), false);
TEST(language->useSystemLanguage(), false); TEST(language->use_system_language(), false);
language->setLangLocale("en_EN"); language->set_lang_locale("en_EN");
language->setLanguage("br"); language->set_language("br");
language->setTimeFormat("mm:hh"); language->set_time_format("mm:hh");
language->setDateFormat("yy/mm/dd"); language->set_date_format("yy/mm/dd");
language->setDateFormatShort("dd/yy"); language->set_date_format_short("dd/yy");
language->setTimeFormatOverride(true); language->set_time_format_override(true);
language->setDateFormatOverride(true); language->set_date_format_override(true);
language->setUseSystemLanguage(true); language->set_use_system_language(true);
TEST(language->langLocale(), QStringLiteral("en_EN")); TEST(language->lang_locale(), QStringLiteral("en_EN"));
TEST(language->language(), QStringLiteral("br")); TEST(language->language(), QStringLiteral("br"));
TEST(language->timeFormat(), QStringLiteral("mm:hh")); TEST(language->time_format(), QStringLiteral("mm:hh"));
TEST(language->dateFormat(), QStringLiteral("yy/mm/dd")); TEST(language->date_format(), QStringLiteral("yy/mm/dd"));
TEST(language->dateFormatShort(), QStringLiteral("dd/yy")); TEST(language->date_format_short(), QStringLiteral("dd/yy"));
TEST(language->timeFormatOverride(), true); TEST(language->time_format_override(), true);
TEST(language->dateFormatOverride(), true); TEST(language->date_format_override(), true);
TEST(language->useSystemLanguage(), true); TEST(language->use_system_language(), true);
} }
QTEST_MAIN(TestPreferences) QTEST_MAIN(TestPreferences)