diff --git a/src/Gui/DlgGeneralImp.cpp b/src/Gui/DlgGeneralImp.cpp index d9e2e65bf4..c184f74352 100644 --- a/src/Gui/DlgGeneralImp.cpp +++ b/src/Gui/DlgGeneralImp.cpp @@ -120,7 +120,7 @@ void DlgGeneralImp::setRecentFileSize() } } -void DlgGeneralImp::setLanguage() +bool DlgGeneralImp::setLanguage() { ParameterGrp::handle hGrp = WindowParameter::getDefaultParameter()->GetGroup("General"); QString lang = QLocale::languageToString(QLocale().language()); @@ -129,15 +129,17 @@ void DlgGeneralImp::setLanguage() if (current != language) { hGrp->SetASCII("Language", current.constData()); Translator::instance()->activateLanguage(current.constData()); + return true; } + return false; } -void DlgGeneralImp::setNumberLocale() +void DlgGeneralImp::setNumberLocale(bool force/* = false*/) { int localeFormat = ui->UseLocaleFormatting->currentIndex(); // Only make the change if locale setting has changed - if (localeIndex == localeFormat) + if (!force && localeIndex == localeFormat) return; if (localeFormat == 0) { @@ -167,8 +169,9 @@ void DlgGeneralImp::saveSettings() ui->SplashScreen->onSave(); setRecentFileSize(); - setLanguage(); - setNumberLocale(); + bool force = setLanguage(); + // In case type is "Selected language", we need to force locale change + setNumberLocale(force); ParameterGrp::handle hGrp = WindowParameter::getDefaultParameter()->GetGroup("General"); QVariant size = ui->toolbarIconSize->itemData(ui->toolbarIconSize->currentIndex()); diff --git a/src/Gui/DlgGeneralImp.h b/src/Gui/DlgGeneralImp.h index 6cfa09c918..7ea991d203 100644 --- a/src/Gui/DlgGeneralImp.h +++ b/src/Gui/DlgGeneralImp.h @@ -64,8 +64,8 @@ private: void setRecentFileSize(); void saveAsNewPreferencePack(); void revertToSavedConfig(); - void setLanguage(); - void setNumberLocale(); + bool setLanguage(); //Returns true if language has been changed + void setNumberLocale(bool force = false); private: int localeIndex;