diff options
Diffstat (limited to 'onionshare_gui/server_status.py')
-rw-r--r-- | onionshare_gui/server_status.py | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/onionshare_gui/server_status.py b/onionshare_gui/server_status.py index 6c5cc080..03540415 100644 --- a/onionshare_gui/server_status.py +++ b/onionshare_gui/server_status.py @@ -29,6 +29,7 @@ class ServerStatus(QtWidgets.QWidget): """ server_started = QtCore.pyqtSignal() server_stopped = QtCore.pyqtSignal() + server_canceled = QtCore.pyqtSignal() button_clicked = QtCore.pyqtSignal() url_copied = QtCore.pyqtSignal() hidservauth_copied = QtCore.pyqtSignal() @@ -190,7 +191,7 @@ class ServerStatus(QtWidgets.QWidget): self.server_button.setToolTip(strings._('gui_stop_server_shutdown_timeout_tooltip', True).format(self.timeout)) elif self.status == self.STATUS_WORKING: self.server_button.setStyleSheet(button_working_style) - self.server_button.setEnabled(False) + self.server_button.setEnabled(True) self.server_button.setText(strings._('gui_please_wait')) if self.settings.get('shutdown_timeout'): self.shutdown_timeout_container.hide() @@ -218,6 +219,8 @@ class ServerStatus(QtWidgets.QWidget): self.start_server() elif self.status == self.STATUS_STARTED: self.stop_server() + elif self.status == self.STATUS_WORKING: + self.cancel_server() self.button_clicked.emit() def start_server(self): @@ -245,6 +248,16 @@ class ServerStatus(QtWidgets.QWidget): self.update() self.server_stopped.emit() + def cancel_server(self): + """ + Cancel the server. + """ + common.log('ServerStatus', 'cancel_server', 'Canceling the server mid-startup') + self.status = self.STATUS_WORKING + self.shutdown_timeout_reset() + self.update() + self.server_canceled.emit() + def stop_server_finished(self): """ The server has finished stopping. |