eros: fix freeze when refreshing server ping

This commit is contained in:
Bixilon 2022-04-18 23:43:06 +02:00
parent 818d3af996
commit f274367c08
No known key found for this signature in database
GPG Key ID: 5CAD791931B09AC4

View File

@ -139,7 +139,7 @@ class ServerListController : EmbeddedJavaFXController<Pane>(), Refreshable {
account.connections -= server account.connections -= server
serverCard.connections -= connection serverCard.connections -= connection
} }
JavaFXUtil.runLater { updateServer(server) } JavaFXUtil.runLater { updateServer(server, true) }
} }
connection.registerEvent(JavaFXEventInvoker.of<KickEvent> { event -> connection.registerEvent(JavaFXEventInvoker.of<KickEvent> { event ->
@ -200,7 +200,7 @@ class ServerListController : EmbeddedJavaFXController<Pane>(), Refreshable {
} }
} }
private fun updateServer(server: Server) { private fun updateServer(server: Server, refreshInfo: Boolean = false) {
val serverType = serverType ?: return val serverType = serverType ?: return
if (server !in serverType.servers) { if (server !in serverType.servers) {
return return
@ -224,7 +224,9 @@ class ServerListController : EmbeddedJavaFXController<Pane>(), Refreshable {
if (wasSelected) { if (wasSelected) {
serverListViewFX.selectionModel.select(card) serverListViewFX.selectionModel.select(card)
setServerInfo(card) if (refreshInfo) {
setServerInfo(card)
}
} }
} }
@ -316,7 +318,7 @@ class ServerListController : EmbeddedJavaFXController<Pane>(), Refreshable {
} }
isDisable = serverCard.ping.state != StatusConnectionStates.PING_DONE && serverCard.ping.state != StatusConnectionStates.ERROR isDisable = serverCard.ping.state != StatusConnectionStates.PING_DONE && serverCard.ping.state != StatusConnectionStates.ERROR
ctext = TranslatableComponents.GENERAL_REFRESH ctext = TranslatableComponents.GENERAL_REFRESH
serverCard.ping::state.observeFX(this) { isDisable = serverCard.ping.state != StatusConnectionStates.PING_DONE && serverCard.ping.state != StatusConnectionStates.ERROR } serverCard.ping::state.observeFX(this) { state -> isDisable = state != StatusConnectionStates.PING_DONE && state != StatusConnectionStates.ERROR }
}, 3, 0) }, 3, 0)
it.add(Button("Connect").apply { it.add(Button("Connect").apply {
setOnAction { setOnAction {