Gui: fix algorithmic issue in language change

If number format mode is "Selected language", even if this mode isn't modified,
 we need to force 'setLocale' to update if "Language" has been changed
This commit is contained in:
0penBrain
2022-03-28 19:00:10 +02:00
committed by wwmayer
parent 63d211dca9
commit c6ea26a70c
2 changed files with 10 additions and 7 deletions

View File

@@ -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());

View File

@@ -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;