mirror of
https://github.com/onionshare/onionshare.git
synced 2025-06-24 22:40:36 -04:00
does starting server work in a separate thread to keep GUI responsive
This commit is contained in:
parent
2da38ce775
commit
9ed128938f
1 changed files with 14 additions and 6 deletions
|
@ -24,6 +24,9 @@ class Application(QtGui.QApplication):
|
||||||
QtGui.QApplication.__init__(self, sys.argv)
|
QtGui.QApplication.__init__(self, sys.argv)
|
||||||
|
|
||||||
class OnionShareGui(QtGui.QWidget):
|
class OnionShareGui(QtGui.QWidget):
|
||||||
|
start_server_finished = QtCore.pyqtSignal()
|
||||||
|
stop_server_finished = QtCore.pyqtSignal()
|
||||||
|
|
||||||
def __init__(self, qtapp, app):
|
def __init__(self, qtapp, app):
|
||||||
super(OnionShareGui, self).__init__()
|
super(OnionShareGui, self).__init__()
|
||||||
self.qtapp = qtapp
|
self.qtapp = qtapp
|
||||||
|
@ -45,6 +48,8 @@ class OnionShareGui(QtGui.QWidget):
|
||||||
self.server_status.server_started.connect(self.start_server)
|
self.server_status.server_started.connect(self.start_server)
|
||||||
self.server_status.server_stopped.connect(self.file_selection.server_stopped)
|
self.server_status.server_stopped.connect(self.file_selection.server_stopped)
|
||||||
self.server_status.server_stopped.connect(self.stop_server)
|
self.server_status.server_stopped.connect(self.stop_server)
|
||||||
|
self.start_server_finished.connect(self.server_status.start_server_finished)
|
||||||
|
self.stop_server_finished.connect(self.server_status.stop_server_finished)
|
||||||
self.file_selection.file_list.files_updated.connect(self.server_status.update)
|
self.file_selection.file_list.files_updated.connect(self.server_status.update)
|
||||||
|
|
||||||
# downloads
|
# downloads
|
||||||
|
@ -85,11 +90,15 @@ class OnionShareGui(QtGui.QWidget):
|
||||||
t.daemon = True
|
t.daemon = True
|
||||||
t.start()
|
t.start()
|
||||||
|
|
||||||
# prepare the files for sending
|
# prepare the files for sending in a new thread
|
||||||
|
def finish_starting_server(self):
|
||||||
web.set_file_info(self.file_selection.file_list.filenames)
|
web.set_file_info(self.file_selection.file_list.filenames)
|
||||||
self.app.cleanup_filenames.append(web.zip_filename)
|
self.app.cleanup_filenames.append(web.zip_filename)
|
||||||
|
self.start_server_finished.emit()
|
||||||
|
|
||||||
self.server_status.start_server_finished()
|
t = threading.Thread(target=finish_starting_server, kwargs={'self':self})
|
||||||
|
t.daemon = True
|
||||||
|
t.start()
|
||||||
|
|
||||||
def stop_server(self):
|
def stop_server(self):
|
||||||
# to stop flask, load http://127.0.0.1:<port>/<shutdown_slug>/shutdown
|
# to stop flask, load http://127.0.0.1:<port>/<shutdown_slug>/shutdown
|
||||||
|
@ -98,8 +107,7 @@ class OnionShareGui(QtGui.QWidget):
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
self.app.cleanup()
|
self.app.cleanup()
|
||||||
|
self.stop_server_finished.emit()
|
||||||
self.server_status.stop_server_finished()
|
|
||||||
|
|
||||||
def check_for_requests(self):
|
def check_for_requests(self):
|
||||||
self.update()
|
self.update()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue