mirror of
https://github.com/yairm210/Unciv.git
synced 2025-07-12 08:49:22 +07:00
Do not recreate the window (#2107)
This commit is contained in:
@ -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() }) {
|
||||||
|
Reference in New Issue
Block a user