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