diff --git a/internal/frontend/bridge-gui/bridge-gui/qml/NotificationDialog.qml b/internal/frontend/bridge-gui/bridge-gui/qml/NotificationDialog.qml index a1031ad2..9cb8f421 100644 --- a/internal/frontend/bridge-gui/bridge-gui/qml/NotificationDialog.qml +++ b/internal/frontend/bridge-gui/bridge-gui/qml/NotificationDialog.qml @@ -82,6 +82,17 @@ Dialog { implicitWidth: additionalChildrenContainer.childrenRect.width visible: children.length > 0 } + LinkLabel { + Layout.alignment: Qt.AlignHCenter + Layout.bottomMargin: 32 + colorScheme: root.colorScheme + external: true + link: notification.linkUrl + text: notification.linkText + visible: notification.linkUrl.length > 0 + + } + ColumnLayout { spacing: 8 diff --git a/internal/frontend/bridge-gui/bridge-gui/qml/Notifications/Notification.qml b/internal/frontend/bridge-gui/bridge-gui/qml/Notifications/Notification.qml index 202a250c..fb41783e 100644 --- a/internal/frontend/bridge-gui/bridge-gui/qml/Notifications/Notification.qml +++ b/internal/frontend/bridge-gui/bridge-gui/qml/Notifications/Notification.qml @@ -24,19 +24,17 @@ QtObject { property list action property bool active: false - // brief is used in status view only - property string brief + property string brief // brief is used in status view only default property var children property var data - // description is used in banners and in dialogs as description - property string description + property string description // description is used in banners and in dialogs as description property bool dismissed: false property int group property string icon + property string linkUrl: "" + property string linkText: "" readonly property var occurred: active ? new Date() : undefined - - // title is used in dialogs only - property string title + property string title // title is used in dialogs only property int type onActiveChanged: { diff --git a/internal/frontend/bridge-gui/bridge-gui/qml/Notifications/Notifications.qml b/internal/frontend/bridge-gui/bridge-gui/qml/Notifications/Notifications.qml index 5515d725..785b4120 100644 --- a/internal/frontend/bridge-gui/bridge-gui/qml/Notifications/Notifications.qml +++ b/internal/frontend/bridge-gui/bridge-gui/qml/Notifications/Notifications.qml @@ -104,9 +104,11 @@ QtObject { } property Notification apiCertIssue: Notification { brief: qsTr("Cannot establish secure connection") - description: qsTr("Bridge cannot verify the authenticity of Proton servers on your current network due to a TLS certificate error. " + "Start Bridge again after ensuring your connection is secure and/or connecting to a VPN. Learn more about TLS pinning " + "here.") + description: qsTr("Bridge cannot verify the authenticity of Proton servers on your current network due to a TLS certificate error. Start Bridge again after ensuring your connection is secure and/or connecting to a VPN.") group: Notifications.Group.Dialogs | Notifications.Group.Connection icon: "./icons/ic-exclamation-circle-filled.svg" + linkUrl: "https://proton.me/blog/tls-ssl-certificate#Extra-security-precautions-taken-by-ProtonMail" + linkText: qsTr("Learn mode about TLS pinning") title: qsTr("Unable to establish a \nsecure connection to \nProton servers") type: Notification.NotificationType.Danger