summaryrefslogtreecommitdiff
path: root/onionshare_gui
diff options
context:
space:
mode:
authorMicah Lee <micah@micahflee.com>2018-12-05 09:13:54 -0800
committerGitHub <noreply@github.com>2018-12-05 09:13:54 -0800
commitc7ef1bba39c07ab23e6b745392fb1f0c84e959cf (patch)
tree91e66286287f91c9298ee7642a0208e1fab364e8 /onionshare_gui
parentad7a858ab07f793eaa76abfbcd1d22490f894e66 (diff)
parentd15e00061a4488aa3ac513671a99ce1213f90a51 (diff)
downloadonionshare-c7ef1bba39c07ab23e6b745392fb1f0c84e959cf.tar.gz
onionshare-c7ef1bba39c07ab23e6b745392fb1f0c84e959cf.zip
Merge pull request #752 from mig5/receiver-mode-gui-hold-timeout-share-open-til-upload-finished
Hold a share open if its timer has expired but a file is still uploading.
Diffstat (limited to 'onionshare_gui')
-rw-r--r--onionshare_gui/mode/receive_mode/__init__.py12
-rw-r--r--onionshare_gui/settings_dialog.py13
2 files changed, 10 insertions, 15 deletions
diff --git a/onionshare_gui/mode/receive_mode/__init__.py b/onionshare_gui/mode/receive_mode/__init__.py
index d6c0c351..c53f1ea1 100644
--- a/onionshare_gui/mode/receive_mode/__init__.py
+++ b/onionshare_gui/mode/receive_mode/__init__.py
@@ -96,8 +96,16 @@ class ReceiveMode(Mode):
"""
The shutdown timer expired, should we stop the server? Returns a bool
"""
- # TODO: wait until the final upload is done before stoppign the server?
- return True
+ # If there were no attempts to upload files, or all uploads are done, we can stop
+ if self.web.receive_mode.upload_count == 0 or not self.web.receive_mode.uploads_in_progress:
+ self.server_status.stop_server()
+ self.server_status_label.setText(strings._('close_on_timeout'))
+ return True
+ # An upload is probably still running - hold off on stopping the share, but block new shares.
+ else:
+ self.server_status_label.setText(strings._('timeout_upload_still_running'))
+ self.web.receive_mode.can_upload = False
+ return False
def start_server_custom(self):
"""
diff --git a/onionshare_gui/settings_dialog.py b/onionshare_gui/settings_dialog.py
index edd2528b..958d49fd 100644
--- a/onionshare_gui/settings_dialog.py
+++ b/onionshare_gui/settings_dialog.py
@@ -186,15 +186,9 @@ class SettingsDialog(QtWidgets.QDialog):
downloads_layout.addWidget(self.downloads_dir_lineedit)
downloads_layout.addWidget(downloads_button)
- # Allow the receiver to shutdown the server
- self.receive_allow_receiver_shutdown_checkbox = QtWidgets.QCheckBox()
- self.receive_allow_receiver_shutdown_checkbox.setCheckState(QtCore.Qt.Checked)
- self.receive_allow_receiver_shutdown_checkbox.setText(strings._("gui_settings_receive_allow_receiver_shutdown_checkbox"))
-
# Receiving options layout
receiving_group_layout = QtWidgets.QVBoxLayout()
receiving_group_layout.addLayout(downloads_layout)
- receiving_group_layout.addWidget(self.receive_allow_receiver_shutdown_checkbox)
receiving_group = QtWidgets.QGroupBox(strings._("gui_settings_receiving_label"))
receiving_group.setLayout(receiving_group_layout)
@@ -506,12 +500,6 @@ class SettingsDialog(QtWidgets.QDialog):
downloads_dir = self.old_settings.get('downloads_dir')
self.downloads_dir_lineedit.setText(downloads_dir)
- receive_allow_receiver_shutdown = self.old_settings.get('receive_allow_receiver_shutdown')
- if receive_allow_receiver_shutdown:
- self.receive_allow_receiver_shutdown_checkbox.setCheckState(QtCore.Qt.Checked)
- else:
- self.receive_allow_receiver_shutdown_checkbox.setCheckState(QtCore.Qt.Unchecked)
-
public_mode = self.old_settings.get('public_mode')
if public_mode:
self.public_mode_checkbox.setCheckState(QtCore.Qt.Checked)
@@ -965,7 +953,6 @@ class SettingsDialog(QtWidgets.QDialog):
settings.set('hidservauth_string', '')
settings.set('downloads_dir', self.downloads_dir_lineedit.text())
- settings.set('receive_allow_receiver_shutdown', self.receive_allow_receiver_shutdown_checkbox.isChecked())
settings.set('public_mode', self.public_mode_checkbox.isChecked())
settings.set('use_stealth', self.stealth_checkbox.isChecked())
# Always unset the HidServAuth if Stealth mode is unset