summaryrefslogtreecommitdiff
path: root/onionshare_gui/server_status.py
diff options
context:
space:
mode:
Diffstat (limited to 'onionshare_gui/server_status.py')
-rw-r--r--onionshare_gui/server_status.py15
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.