mirror of
https://github.com/onionshare/onionshare.git
synced 2024-10-01 01:35:40 -04:00
OnionShare connects fine when connection_type isn't bundled_tor, and it now displays errors and opens Settings when it can't connect to Tor
This commit is contained in:
parent
4d522e1e85
commit
ad2c5e94b4
@ -25,6 +25,7 @@ from onionshare.settings import Settings
|
||||
from onionshare.onion import *
|
||||
|
||||
from .tor_connection_dialog import TorConnectionDialog
|
||||
from .settings_dialog import SettingsDialog
|
||||
from .menu import Menu
|
||||
from .file_selection import FileSelection
|
||||
from .server_status import ServerStatus
|
||||
@ -59,6 +60,7 @@ class OnionShareGui(QtWidgets.QMainWindow):
|
||||
# Start the "Connecting to Tor" dialog, which calls onion.connect()
|
||||
tor_con = TorConnectionDialog(self.settings, self.onion)
|
||||
tor_con.canceled.connect(self._tor_connection_canceled)
|
||||
tor_con.open_settings.connect(self._tor_connection_open_settings)
|
||||
tor_con.start()
|
||||
|
||||
# Menu bar
|
||||
@ -146,9 +148,19 @@ class OnionShareGui(QtWidgets.QMainWindow):
|
||||
def quit():
|
||||
self.qtapp.quit()
|
||||
|
||||
# Wait 1ms for the event loop to finish closing the TorConnectionDialog before quitting
|
||||
# Wait 1ms for the event loop to finish closing the TorConnectionDialog
|
||||
QtCore.QTimer.singleShot(1, quit)
|
||||
|
||||
def _tor_connection_open_settings(self):
|
||||
"""
|
||||
The TorConnectionDialog wants to open the Settings dialog
|
||||
"""
|
||||
def open_settings():
|
||||
SettingsDialog(self.qtapp)
|
||||
|
||||
# Wait 1ms for the event loop to finish closing the TorConnectionDialog
|
||||
QtCore.QTimer.singleShot(1, open_settings)
|
||||
|
||||
def start_server(self):
|
||||
"""
|
||||
Start the onionshare server. This uses multiple threads to start the Tor onion
|
||||
|
@ -22,10 +22,14 @@ from PyQt5 import QtCore, QtWidgets, QtGui
|
||||
from onionshare import strings, helpers
|
||||
from onionshare.onion import *
|
||||
|
||||
from .alert import Alert
|
||||
|
||||
class TorConnectionDialog(QtWidgets.QProgressDialog):
|
||||
"""
|
||||
Connecting to Tor dialog.
|
||||
"""
|
||||
open_settings = QtCore.pyqtSignal()
|
||||
|
||||
def __init__(self, settings, onion):
|
||||
super(TorConnectionDialog, self).__init__(None)
|
||||
self.settings = settings
|
||||
@ -62,10 +66,16 @@ class TorConnectionDialog(QtWidgets.QProgressDialog):
|
||||
|
||||
except BundledTorCanceled as e:
|
||||
self.cancel()
|
||||
|
||||
except Exception as e:
|
||||
print(e.args[0])
|
||||
# TODO: Open settings to connect to Tor properly
|
||||
sys.exit()
|
||||
# Cancel connecting to Tor
|
||||
self.cancel()
|
||||
|
||||
# Display the exception in an alert box
|
||||
Alert("{}\n\nTry adjusting how OnionShare connects to the Tor network in Settings.".format(e.args[0]), QtWidgets.QMessageBox.Warning)
|
||||
|
||||
# Open settings
|
||||
self.open_settings.emit()
|
||||
|
||||
def tor_status_update(self, progress, summary):
|
||||
self.setValue(int(progress))
|
||||
|
Loading…
Reference in New Issue
Block a user