replace a server alias with its host when the ssl switch differs from the aliased server, and keep the alias when opening server settings

This commit is contained in:
Craig Raw
2026-10-01 15:08:54 +02:00
parent 711ded4625
commit e6efcef35b
@@ -381,7 +381,13 @@ public class ServerSettingsController extends SettingsDetailController {
}); });
electrumUseSsl.selectedProperty().addListener((observable, oldValue, newValue) -> { electrumUseSsl.selectedProperty().addListener((observable, oldValue, newValue) -> {
setElectrumServerInConfig(config); //An alias names a server at one protocol as it does at one port, so changing either leaves the host it names to be connected to as entered
Server aliasServer = config.getRecentElectrumServers().stream().filter(server -> electrumHost.getText().equals(server.getAlias())).findFirst().orElse(null);
if(aliasServer != null && aliasServer.getProtocol() != getProtocol()) {
electrumHost.setText(aliasServer.getHost());
} else {
setElectrumServerInConfig(config);
}
electrumCertificate.setDisable(!newValue); electrumCertificate.setDisable(!newValue);
electrumCertificateSelect.setDisable(!newValue); electrumCertificateSelect.setDisable(!newValue);
electrumPort.setPromptText(newValue ? "e.g. 50002" : "e.g. 50001"); electrumPort.setPromptText(newValue ? "e.g. 50002" : "e.g. 50001");
@@ -468,10 +474,11 @@ public class ServerSettingsController extends SettingsDetailController {
if(server != null) { if(server != null) {
coreHost.setLeft(getGlyph(FontAwesome5.Glyph.TAG, null)); coreHost.setLeft(getGlyph(FontAwesome5.Glyph.TAG, null));
} }
coreHost.setText(server == null || server.getAlias() == null ? hostAndPort.getHost() : server.getAlias()); //The port is set first, as an alias in the host field is only kept while the port field holds the port of the server it names
if(hostAndPort.hasPort()) { if(hostAndPort.hasPort()) {
corePort.setText(Integer.toString(hostAndPort.getPort())); corePort.setText(Integer.toString(hostAndPort.getPort()));
} }
coreHost.setText(server == null || server.getAlias() == null ? hostAndPort.getHost() : server.getAlias());
} else { } else {
coreHost.setText("127.0.0.1"); coreHost.setText("127.0.0.1");
corePort.setText(String.valueOf(Network.get().getDefaultPort())); corePort.setText(String.valueOf(Network.get().getDefaultPort()));
@@ -502,10 +509,10 @@ public class ServerSettingsController extends SettingsDetailController {
if(server != null) { if(server != null) {
electrumHost.setLeft(getGlyph(FontAwesome5.Glyph.TAG, null)); electrumHost.setLeft(getGlyph(FontAwesome5.Glyph.TAG, null));
} }
electrumHost.setText(server == null || server.getAlias() == null ? hostAndPort.getHost() : server.getAlias());
if(hostAndPort.hasPort()) { if(hostAndPort.hasPort()) {
electrumPort.setText(Integer.toString(hostAndPort.getPort())); electrumPort.setText(Integer.toString(hostAndPort.getPort()));
} }
electrumHost.setText(server == null || server.getAlias() == null ? hostAndPort.getHost() : server.getAlias());
} }
File certificateFile = config.getElectrumServerCert(); File certificateFile = config.getElectrumServerCert();
@@ -892,7 +899,7 @@ public class ServerSettingsController extends SettingsDetailController {
private ChangeListener<String> getElectrumServerListener(Config config) { private ChangeListener<String> getElectrumServerListener(Config config) {
return (observable, oldValue, newValue) -> { return (observable, oldValue, newValue) -> {
Server existingServer = config.getRecentElectrumServers().stream().filter(server -> electrumHost.getText().equals(server.getAlias())).findFirst().orElse(null); Server existingServer = config.getRecentElectrumServers().stream().filter(server -> electrumHost.getText().equals(server.getAlias())).findFirst().orElse(null);
if(existingServer != null && !existingServer.portEquals(electrumPort.getText())) { if(existingServer != null && (!existingServer.portEquals(electrumPort.getText()) || existingServer.getProtocol() != getProtocol())) {
electrumHost.setText(existingServer.getHost()); electrumHost.setText(existingServer.getHost());
existingServer = null; existingServer = null;
} }