Do not recreate the window (#2107)

This commit is contained in:
Jack Rainy
2020-03-08 23:58:32 +02:00
committed by GitHub
parent 0cf27789e9
commit f769d60826

View File

@ -22,15 +22,15 @@ import java.util.*
class LoadGameScreen : PickerScreen() {
lateinit var selectedSave:String
val copySavedGameToClipboardButton = TextButton("Copy saved game to clipboard".tr(),skin)
val saveTable = Table()
val deleteSaveButton = TextButton("Delete save".tr(), skin)
private val copySavedGameToClipboardButton = TextButton("Copy saved game to clipboard".tr(),skin)
private val saveTable = Table()
private val deleteSaveButton = TextButton("Delete save".tr(), skin)
private val showAutosavesCheckbox = CheckBox("Show autosaves".tr(), skin)
init {
setDefaultCloseAction()
rightSideButton.setText("Load game".tr())
updateLoadableGames(false)
resetWindowState()
topTable.add(ScrollPane(saveTable)).height(stage.height*2/3)
val rightSideTable = getRightSideTable()
@ -75,12 +75,11 @@ class LoadGameScreen : PickerScreen() {
deleteSaveButton.onClick {
GameSaver().deleteSave(selectedSave)
UncivGame.Current.setScreen(LoadGameScreen())
resetWindowState()
}
deleteSaveButton.disable()
rightSideTable.add(deleteSaveButton).row()
copySavedGameToClipboardButton.disable()
copySavedGameToClipboardButton.onClick {
val gameText = GameSaver().getSave(selectedSave).readString()
@ -89,8 +88,6 @@ class LoadGameScreen : PickerScreen() {
}
rightSideTable.add(copySavedGameToClipboardButton).row()
val showAutosavesCheckbox = CheckBox("Show autosaves".tr(), skin)
showAutosavesCheckbox.isChecked = false
showAutosavesCheckbox.addListener(object : ChangeListener() {
override fun changed(event: ChangeEvent?, actor: Actor?) {
@ -101,6 +98,15 @@ class LoadGameScreen : PickerScreen() {
return rightSideTable
}
private fun resetWindowState() {
updateLoadableGames(showAutosavesCheckbox.isChecked)
deleteSaveButton.disable()
copySavedGameToClipboardButton.disable()
rightSideButton.setText("Load game".tr())
rightSideButton.disable()
descriptionLabel.setText("")
}
private fun updateLoadableGames(showAutosaves:Boolean) {
saveTable.clear()
for (save in GameSaver().getSaves().sortedByDescending { GameSaver().getSave(it).lastModified() }) {