Merge pull request #1582 from SaptakS/better-error-logs

Better error logs in the bridge connect widget
This commit is contained in:
Micah Lee 2022-05-30 15:16:18 -04:00 committed by GitHub
commit b320596190
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 49 additions and 6 deletions

View File

@ -326,11 +326,20 @@ class AutoConnectTab(QtWidgets.QWidget):
"""
self.tor_con.hide()
# If we're on first launch, switch to use bridge
# If there is a message, update the text of the bridge widget
if msg:
self.use_bridge_widget.connection_error_message.setText(msg)
# If we're on first launch, check if wasCanceled
# If cancelled, stay in first launch widget and show buttons
# Else, switch to use bridge
if self.first_launch_widget.isVisible():
self.first_launch_widget.show_buttons()
self.first_launch_widget.hide()
self.use_bridge_widget.show()
if self.tor_con.wasCanceled():
self.first_launch_widget.show_buttons()
else:
self.first_launch_widget.show_buttons()
self.first_launch_widget.hide()
self.use_bridge_widget.show()
else:
self.use_bridge_widget.show_buttons()
@ -543,12 +552,21 @@ class AutoConnectUseBridgeWidget(QtWidgets.QWidget):
common.gui.css["autoconnect_failed_to_connect_label"]
)
# Tor connection error message
self.connection_error_message = QtWidgets.QLabel(
strings._("gui_autoconnect_connection_error_msg")
)
self.connection_error_message.setTextFormat(QtCore.Qt.RichText)
self.connection_error_message.setWordWrap(True)
self.connection_error_message.setContentsMargins(0, 0, 0, 10)
# Description
self.description_label = QtWidgets.QLabel(
strings._("gui_autoconnect_bridge_description")
)
self.description_label.setTextFormat(QtCore.Qt.RichText)
self.description_label.setWordWrap(True)
self.description_label.setContentsMargins(0, 0, 0, 20)
# Detection preference
self.use_bridge = True
@ -568,6 +586,14 @@ class AutoConnectUseBridgeWidget(QtWidgets.QWidget):
detect_layout.addWidget(self.no_bridge)
detect_layout.addWidget(self.detect_automatic_radio)
detect_layout.addWidget(self.detect_manual_radio)
bridge_setting_options = QtWidgets.QGroupBox(
strings._("gui_autoconnect_bridge_setting_options")
)
bridge_setting_options.setLayout(detect_layout)
bridge_setting_options.setFlat(True)
bridge_setting_options.setStyleSheet(
common.gui.css["autoconnect_bridge_setting_options"]
)
# Country list
locale = self.common.settings.get("locale")
@ -640,8 +666,9 @@ class AutoConnectUseBridgeWidget(QtWidgets.QWidget):
# Layout
layout = QtWidgets.QVBoxLayout()
layout.addWidget(self.connection_status_label)
layout.addWidget(self.connection_error_message)
layout.addWidget(self.description_label)
layout.addLayout(detect_layout)
layout.addWidget(bridge_setting_options)
layout.addWidget(self.country_combobox)
layout.addWidget(self.task_label)
layout.addWidget(cta_widget)
@ -655,6 +682,7 @@ class AutoConnectUseBridgeWidget(QtWidgets.QWidget):
def hide_buttons(self):
self.connect_button.hide()
self.configure_button.hide()
self.connection_error_message.hide()
self.description_label.hide()
self.error_label.hide()
self.no_bridge.hide()
@ -663,6 +691,7 @@ class AutoConnectUseBridgeWidget(QtWidgets.QWidget):
def show_buttons(self):
self.connect_button.show()
self.connection_error_message.show()
self.description_label.show()
self.configure_button.show()
self.no_bridge.show()

View File

@ -194,6 +194,7 @@ class GuiCommon:
QComboBox {
padding: 10px;
font-size: 16px;
margin-left: 32px;
}
QComboBox:disabled {
color: #666666;
@ -209,6 +210,17 @@ class GuiCommon:
font-size: 18px;
font-weight: bold;
}""",
"autoconnect_bridge_setting_options": """
QGroupBox {
border: 0;
border-color: transparent;
background-color: transparent;
font-weight: bold;
margin-top: 16px;
}
QGroupBox::title {
subcontrol-origin: margin;
}""",
# Common styles between modes and their child widgets
"mode_settings_toggle_advanced": """
QPushButton {

View File

@ -46,9 +46,11 @@
"gui_enable_autoconnect_checkbox": "Connect to Tor automatically",
"gui_autoconnect_failed_to_connect_to_tor": "Failed to Connect to Tor",
"gui_autoconnect_trying_to_connect_to_tor": "Trying to Connect to Tor...",
"gui_autoconnect_bridge_description": "Are you connected to the internet?<br><br>It's also possible that your internet is being censored. You might be able to bypass this using a bridge.",
"gui_autoconnect_connection_error_msg": "Are you connected to the internet?",
"gui_autoconnect_bridge_description": "It's also possible that your internet is being censored. You might be able to bypass this using a bridge.",
"gui_autoconnect_bridge_detect_automatic": "Automatically determine my country from my IP address for bridge settings",
"gui_autoconnect_bridge_detect_manual": "Manually select my country for bridge settings",
"gui_autoconnect_bridge_setting_options": "Bridge Settings",
"gui_autoconnect_start": "Connect to Tor",
"gui_autoconnect_configure": "Network Settings",
"gui_autoconnect_no_bridge": "Try again without bridge",