Skip to content

Commit 5251790

Browse files
committed
Remote client: Improve UI and fix some issues with buttons in ConnectionDialog
- Rename buttons with two words to a single one. This will help to display a simpler interface in other languages. - Stop is hidden when a connection is inactive and Connect when it's established. - Fix showing/hiding Back and enabling/disabling Save.
1 parent 9ff384f commit 5251790

File tree

1 file changed

+39
-20
lines changed

1 file changed

+39
-20
lines changed

spyder/plugins/remoteclient/widgets/connectiondialog.py

Lines changed: 39 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -91,23 +91,23 @@ def create_buttons(self):
9191

9292
self._button_cancel = bbox.button(QDialogButtonBox.Cancel)
9393

94-
self._button_save_connection = QPushButton(_("Save connection"))
94+
self._button_save_connection = QPushButton(_("Save"))
9595
self._button_save_connection.clicked.connect(
9696
self._save_connection_info
9797
)
9898
bbox.addButton(
9999
self._button_save_connection, QDialogButtonBox.ResetRole
100100
)
101101

102-
self._button_remove_connection = QPushButton(_("Remove connection"))
102+
self._button_remove_connection = QPushButton(_("Remove"))
103103
self._button_remove_connection.clicked.connect(
104104
self._remove_connection_info
105105
)
106106
bbox.addButton(
107107
self._button_remove_connection, QDialogButtonBox.ResetRole
108108
)
109109

110-
self._button_clear_settings = QPushButton(_("Clear settings"))
110+
self._button_clear_settings = QPushButton(_("Clear"))
111111
self._button_clear_settings.clicked.connect(self._clear_settings)
112112
bbox.addButton(
113113
self._button_clear_settings, QDialogButtonBox.ActionRole
@@ -150,13 +150,18 @@ def current_page_changed(self, index):
150150
self._button_connect.setHidden(True)
151151
self._button_next.setHidden(False)
152152
self._button_back.setHidden(True)
153+
self._button_save_connection.setEnabled(False)
153154
else:
154-
self._button_back.setHidden(False)
155155
self._set_buttons_for_env_creation_method()
156156
else:
157157
self._button_connect.setHidden(False)
158158
self._button_next.setHidden(True)
159159
self._button_back.setHidden(True)
160+
self._button_save_connection.setEnabled(True)
161+
else:
162+
self._button_connect.setHidden(False)
163+
self._button_next.setHidden(True)
164+
self._button_back.setHidden(True)
160165
else:
161166
if page.is_modified:
162167
self._button_save_connection.setEnabled(True)
@@ -172,20 +177,20 @@ def current_page_changed(self, index):
172177
self._button_next.setHidden(True)
173178
self._button_back.setHidden(True)
174179

175-
if page.status in [
176-
ConnectionStatus.Inactive,
177-
ConnectionStatus.Error,
178-
]:
179-
self._button_connect.setEnabled(True)
180-
else:
181-
self._button_connect.setEnabled(False)
180+
if page.status in [
181+
ConnectionStatus.Inactive,
182+
ConnectionStatus.Error,
183+
]:
184+
self._button_connect.setHidden(False)
185+
else:
186+
self._button_connect.setHidden(True)
182187

183188
# TODO: Check if it's possible to stop a connection while it's
184189
# connecting
185190
if page.status == ConnectionStatus.Active:
186-
self._button_stop.setEnabled(True)
191+
self._button_stop.setHidden(False)
187192
else:
188-
self._button_stop.setEnabled(False)
193+
self._button_stop.setHidden(True)
189194

190195
# ---- Private API
191196
# -------------------------------------------------------------------------
@@ -322,7 +327,7 @@ def _stop_server(self):
322327

323328
# The stop button is not visible in the new connection page
324329
if not page.NEW_CONNECTION:
325-
self._button_stop.setEnabled(False)
330+
self._button_stop.setHidden(True)
326331
self.sig_stop_server_requested.emit(page.host_id)
327332

328333
def _add_connection_page(self, host_id: str, new: bool):
@@ -367,37 +372,46 @@ def _update_buttons_state_on_info_change(self, state: bool):
367372
self._button_cancel.setText("Cancel")
368373

369374
def _update_connection_buttons_state(self, info: ConnectionInfo):
370-
"""Update the state of the 'Connect' button."""
375+
"""Update the state of the Connect/Stop buttons."""
371376
page = self.get_page()
372377
if page.host_id == info["id"]:
373378
if info["status"] in [
374379
ConnectionStatus.Inactive,
375380
ConnectionStatus.Error,
376381
]:
377-
self._button_connect.setEnabled(True)
382+
self._button_connect.setHidden(False)
378383
else:
379-
self._button_connect.setEnabled(False)
384+
self._button_connect.setHidden(True)
380385

381386
# TODO: Check if it's possible to stop a connection while it's
382387
# connecting
383388
if info["status"] == ConnectionStatus.Active:
384-
self._button_stop.setEnabled(True)
389+
self._button_stop.setHidden(False)
385390
else:
386-
self._button_stop.setEnabled(False)
391+
self._button_stop.setHidden(True)
387392

388393
def _set_buttons_for_env_creation_method(
389394
self, id_: CreateEnvMethods | None = None
390395
):
391396
if id_ is None:
392397
id_ = self._new_connection_page.selected_env_creation_method()
393398

399+
# When creating a new env, users need to provide a list of packages for
400+
# it, so the connection can't be established yet
394401
if id_ == CreateEnvMethods.NewEnv:
395402
self._button_connect.setHidden(True)
396403
self._button_next.setHidden(False)
397404
else:
398405
self._button_connect.setHidden(False)
399406
self._button_next.setHidden(True)
400407

408+
# Connection info can be saved if users decide to create no env
409+
if id_ == CreateEnvMethods.NoEnv:
410+
self._button_save_connection.setEnabled(True)
411+
else:
412+
self._button_save_connection.setEnabled(False)
413+
414+
# The back button will always be visible in this case.
401415
self._button_back.setHidden(False)
402416

403417
def _on_button_next_clicked(self):
@@ -408,11 +422,14 @@ def _on_button_next_clicked(self):
408422
return
409423

410424
page.show_env_creation_widget()
411-
self._button_back.setHidden(False)
425+
self._set_buttons_for_env_creation_method()
412426

413427
def _on_back_button_clicked(self):
414428
self._new_connection_page.show_ssh_info_widget()
415429
self._button_back.setHidden(True)
430+
self._button_connect.setHidden(True)
431+
self._button_next.setHidden(False)
432+
self._button_save_connection.setEnabled(False)
416433

417434
def _on_new_connection_page_tab_changed(self, index):
418435
page = self._new_connection_page
@@ -421,12 +438,14 @@ def _on_new_connection_page_tab_changed(self, index):
421438
self._button_connect.setHidden(True)
422439
self._button_next.setHidden(False)
423440
self._button_back.setHidden(True)
441+
self._button_save_connection.setEnabled(False)
424442
else:
425443
self._set_buttons_for_env_creation_method()
426444
else:
427445
self._button_connect.setHidden(False)
428446
self._button_next.setHidden(True)
429447
self._button_back.setHidden(True)
448+
self._button_save_connection.setEnabled(True)
430449

431450

432451
def test():

0 commit comments

Comments
 (0)