From 882057eafc8fdbfab3f08d669a60ef7ca182caf5 Mon Sep 17 00:00:00 2001 From: Miguel Jacq Date: Thu, 9 Nov 2017 18:23:11 +1100 Subject: [PATCH] only prevent the share from starting when the timeout has expired, if the timeout feature was even set at all --- onionshare_gui/onionshare_gui.py | 11 ++++++----- onionshare_gui/server_status.py | 13 ++++++++----- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/onionshare_gui/onionshare_gui.py b/onionshare_gui/onionshare_gui.py index 9b7a35bd..508db655 100644 --- a/onionshare_gui/onionshare_gui.py +++ b/onionshare_gui/onionshare_gui.py @@ -387,11 +387,12 @@ class OnionShareGui(QtWidgets.QMainWindow): # If the auto-shutdown timer has stopped, stop the server if self.server_status.status == self.server_status.STATUS_STARTED: - if self.app.shutdown_timer and self.server_status.timer_enabled and self.timeout > 0: - if not self.app.shutdown_timer.is_alive(): - self.stop_server() - self.status_bar.showMessage(strings._('close_on_timeout',True)) - self.server_status.shutdown_timeout_reset() + if self.app.shutdown_timer and self.server_status.timer_enabled: + if self.timeout > 0: + if not self.app.shutdown_timer.is_alive(): + self.stop_server() + self.status_bar.showMessage(strings._('close_on_timeout',True)) + self.server_status.shutdown_timeout_reset() # scroll to the bottom of the dl progress bar log pane # if a new download has been added diff --git a/onionshare_gui/server_status.py b/onionshare_gui/server_status.py index 297bb791..452c2062 100644 --- a/onionshare_gui/server_status.py +++ b/onionshare_gui/server_status.py @@ -186,11 +186,14 @@ class ServerStatus(QtWidgets.QVBoxLayout): Toggle starting or stopping the server. """ if self.status == self.STATUS_STOPPED: - # Get the timeout chosen, stripped of its seconds. This prevents confusion if the share stops at (say) 37 seconds past the minute chosen - self.timeout = self.server_shutdown_timeout.dateTime().toPyDateTime().replace(second=0, microsecond=0) - # If the timeout has actually passed already before the user hit Start, refuse to start the server. - if QtCore.QDateTime.currentDateTime().toPyDateTime() > self.timeout: - Alert(strings._('gui_server_timeout_expired', QtWidgets.QMessageBox.Warning)) + if self.timer_enabled: + # Get the timeout chosen, stripped of its seconds. This prevents confusion if the share stops at (say) 37 seconds past the minute chosen + self.timeout = self.server_shutdown_timeout.dateTime().toPyDateTime().replace(second=0, microsecond=0) + # If the timeout has actually passed already before the user hit Start, refuse to start the server. + if QtCore.QDateTime.currentDateTime().toPyDateTime() > self.timeout: + Alert(strings._('gui_server_timeout_expired', QtWidgets.QMessageBox.Warning)) + else: + self.start_server() else: self.start_server() elif self.status == self.STATUS_STARTED: