#742: fix options screen bug when language changed

This commit is contained in:
etourdot 2019-05-12 23:25:00 +02:00 committed by Yair Morgenstern
parent c9bd56da95
commit 995ebb5cf8

View File

@ -28,7 +28,7 @@ class Language(val language:String){
} }
class WorldScreenOptionsTable(screen:WorldScreen) : PopupTable(screen){ class WorldScreenOptionsTable(screen:WorldScreen) : PopupTable(screen){
val languageSelectBox = SelectBox<Language>(skin) var selectedLanguage: String = "English"
init { init {
update() update()
@ -157,7 +157,7 @@ class WorldScreenOptionsTable(screen:WorldScreen) : PopupTable(screen){
private fun addLanguageSelectBox() { private fun addLanguageSelectBox() {
add("Language".toLabel()) add("Language".toLabel())
val languageSelectBox = SelectBox<Language>(skin)
val languageArray = Array<Language>() val languageArray = Array<Language>()
GameBasics.Translations.getLanguages().map { Language(it) }.sortedByDescending { it.percentComplete } GameBasics.Translations.getLanguages().map { Language(it) }.sortedByDescending { it.percentComplete }
.forEach { languageArray.add(it) } .forEach { languageArray.add(it) }
@ -167,7 +167,7 @@ class WorldScreenOptionsTable(screen:WorldScreen) : PopupTable(screen){
languageSelectBox.addListener(object : ChangeListener() { languageSelectBox.addListener(object : ChangeListener() {
override fun changed(event: ChangeEvent?, actor: Actor?) { override fun changed(event: ChangeEvent?, actor: Actor?) {
val selectedLanguage = languageSelectBox.selected.language selectedLanguage = languageSelectBox.selected.language
if (Fonts().containsFont(Fonts().getFontForLanguage(selectedLanguage))) if (Fonts().containsFont(Fonts().getFontForLanguage(selectedLanguage)))
selectLanguage() selectLanguage()
else { else {
@ -206,7 +206,7 @@ class WorldScreenOptionsTable(screen:WorldScreen) : PopupTable(screen){
fun selectLanguage(){ fun selectLanguage(){
UnCivGame.Current.settings.language = languageSelectBox.selected.language UnCivGame.Current.settings.language = selectedLanguage
UnCivGame.Current.settings.save() UnCivGame.Current.settings.save()
CameraStageBaseScreen.resetFonts() CameraStageBaseScreen.resetFonts()