mirror of
https://github.com/onionshare/onionshare.git
synced 2025-09-20 04:24:37 -04:00
- Refactor the Web.ShareMode client_cancel variable to be Web.stop_q, a thread-safe queue that communicates to both share and receive mode when the user stops the server. In share mode this still stops sending the file. In receive mode, if there's a transfer in progress, it cancels it in the middle, and doesn't end up saving that file
- In receive mode, make the receive mode dir right before saving a file (so if it doesn't complete, don't make an empty dir) - Minor UX tweak: resizing the window stretches the History widget first
This commit is contained in:
parent
ae5b46d475
commit
053d0ed615
8 changed files with 102 additions and 39 deletions
|
@ -335,3 +335,9 @@ class Mode(QtWidgets.QWidget):
|
|||
Handle REQUEST_UPLOAD_FINISHED event.
|
||||
"""
|
||||
pass
|
||||
|
||||
def handle_request_upload_canceled(self, event):
|
||||
"""
|
||||
Handle REQUEST_UPLOAD_CANCELED event.
|
||||
"""
|
||||
pass
|
||||
|
|
|
@ -184,7 +184,7 @@ class UploadHistoryItemFile(QtWidgets.QWidget):
|
|||
|
||||
# macOS
|
||||
elif self.common.platform == 'Darwin':
|
||||
subprocess.call(['open', '-R', abs_filename])
|
||||
subprocess.call(['open', '-R', abs_filename])
|
||||
|
||||
# Windows
|
||||
elif self.common.platform == 'Windows':
|
||||
|
@ -295,6 +295,13 @@ class UploadHistoryItem(HistoryItem):
|
|||
)
|
||||
self.label.setText(text)
|
||||
|
||||
elif data['action'] == 'canceled':
|
||||
# Hide the progress bar
|
||||
self.progress_bar.hide()
|
||||
|
||||
# Change the label
|
||||
self.label.setText(strings._('gui_canceled'))
|
||||
|
||||
|
||||
class HistoryItemList(QtWidgets.QScrollArea):
|
||||
"""
|
||||
|
|
|
@ -83,7 +83,7 @@ class ReceiveMode(Mode):
|
|||
# Wrapper layout
|
||||
self.wrapper_layout = QtWidgets.QHBoxLayout()
|
||||
self.wrapper_layout.addLayout(self.main_layout)
|
||||
self.wrapper_layout.addWidget(self.history)
|
||||
self.wrapper_layout.addWidget(self.history, stretch=1)
|
||||
self.setLayout(self.wrapper_layout)
|
||||
|
||||
def get_stop_server_shutdown_timeout_text(self):
|
||||
|
@ -198,6 +198,18 @@ class ReceiveMode(Mode):
|
|||
self.history.update_completed()
|
||||
self.history.update_in_progress()
|
||||
|
||||
def handle_request_upload_canceled(self, event):
|
||||
"""
|
||||
Handle REQUEST_UPLOAD_CANCELED event.
|
||||
"""
|
||||
self.history.update(event["data"]["id"], {
|
||||
'action': 'canceled'
|
||||
})
|
||||
self.history.completed_count += 1
|
||||
self.history.in_progress_count -= 1
|
||||
self.history.update_completed()
|
||||
self.history.update_in_progress()
|
||||
|
||||
def on_reload_settings(self):
|
||||
"""
|
||||
We should be ok to re-enable the 'Start Receive Mode' button now.
|
||||
|
|
|
@ -115,7 +115,7 @@ class ShareMode(Mode):
|
|||
# Wrapper layout
|
||||
self.wrapper_layout = QtWidgets.QHBoxLayout()
|
||||
self.wrapper_layout.addLayout(self.main_layout)
|
||||
self.wrapper_layout.addWidget(self.history)
|
||||
self.wrapper_layout.addWidget(self.history, stretch=1)
|
||||
self.setLayout(self.wrapper_layout)
|
||||
|
||||
# Always start with focus on file selection
|
||||
|
|
|
@ -396,6 +396,9 @@ class OnionShareGui(QtWidgets.QMainWindow):
|
|||
elif event["type"] == Web.REQUEST_UPLOAD_FINISHED:
|
||||
mode.handle_request_upload_finished(event)
|
||||
|
||||
elif event["type"] == Web.REQUEST_UPLOAD_CANCELED:
|
||||
mode.handle_request_upload_canceled(event)
|
||||
|
||||
if event["type"] == Web.REQUEST_ERROR_DOWNLOADS_DIR_CANNOT_CREATE:
|
||||
Alert(self.common, strings._('error_cannot_create_downloads_dir').format(event["data"]["receive_mode_dir"]))
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue