Delete the selected host.
(self, host_to_delete: SSHHost = None)
| 235 | self.select_host(duplicated_host) |
| 236 | |
| 237 | def delete_host(self, host_to_delete: SSHHost = None): |
| 238 | """Delete the selected host.""" |
| 239 | if host_to_delete is None: |
| 240 | host_to_delete = self._get_selected_host() |
| 241 | if host_to_delete is not None: |
| 242 | title = _("Delete host?") |
| 243 | body = _(f"Delete host '{', '.join(host_to_delete.patterns)}'?") |
| 244 | dialog = Adw.AlertDialog.new(title, body) |
| 245 | dialog.add_response("cancel", _("Cancel")) |
| 246 | dialog.add_response("delete", _("Delete")) |
| 247 | try: |
| 248 | dialog.set_response_appearance( |
| 249 | "delete", Adw.ResponseAppearance.DESTRUCTIVE |
| 250 | ) |
| 251 | dialog.set_default_response("cancel") |
| 252 | dialog.set_close_response("cancel") |
| 253 | except Exception: |
| 254 | pass |
| 255 | |
| 256 | def on_response(dlg, response): |
| 257 | if response == "delete": |
| 258 | self.emit("host-deleted", host_to_delete) |
| 259 | if host_to_delete in self.hosts: |
| 260 | self.hosts.remove(host_to_delete) |
| 261 | if host_to_delete in self.filtered_hosts: |
| 262 | self.filtered_hosts.remove(host_to_delete) |
| 263 | self._refresh_view() |
| 264 | |
| 265 | dialog.connect("response", on_response) |
| 266 | try: |
| 267 | dialog.present(self.get_root()) |
| 268 | except Exception: |
| 269 | dialog.present(None) |
| 270 | |
| 271 | def _duplicate_host(self, original_host: SSHHost) -> SSHHost: |
| 272 | duplicated_host = SSHHost() |
no test coverage detected