From f769d60826b317ee638ed8c8bb072199426aa163 Mon Sep 17 00:00:00 2001 From: Jack Rainy Date: Sun, 8 Mar 2020 23:58:32 +0200 Subject: [PATCH] Do not recreate the window (#2107) --- core/src/com/unciv/ui/saves/LoadGameScreen.kt | 24 ++++++++++++------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/core/src/com/unciv/ui/saves/LoadGameScreen.kt b/core/src/com/unciv/ui/saves/LoadGameScreen.kt index 419b56ca4a..e807f619f3 100644 --- a/core/src/com/unciv/ui/saves/LoadGameScreen.kt +++ b/core/src/com/unciv/ui/saves/LoadGameScreen.kt @@ -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() }) {