diff --git a/internal/frontend/bridge-gui/bridge-gui/Resources.qrc b/internal/frontend/bridge-gui/bridge-gui/Resources.qrc index b79a8b40..499de55d 100644 --- a/internal/frontend/bridge-gui/bridge-gui/Resources.qrc +++ b/internal/frontend/bridge-gui/bridge-gui/Resources.qrc @@ -110,6 +110,7 @@ qml/Proton/WebFrame.qml qml/QuestionItem.qml qml/Resources/bug_report_flow.json + qml/Resources/ComingSoon.html qml/SettingsItem.qml qml/SettingsView.qml qml/SetupWizard/ClientListItem.qml diff --git a/internal/frontend/bridge-gui/bridge-gui/qml/Bridge.qml b/internal/frontend/bridge-gui/bridge-gui/qml/Bridge.qml index 9e1f6d06..ab759e83 100644 --- a/internal/frontend/bridge-gui/bridge-gui/qml/Bridge.qml +++ b/internal/frontend/bridge-gui/bridge-gui/qml/Bridge.qml @@ -43,6 +43,28 @@ QtObject { target: Backend } + WebFrameWindow { + id: webFrameWindow + colorScheme: ProtonStyle.currentStyle + flags: Qt.Tool + transientParent: mainWindow + + Connections { + function onShowWebFrameOverlay(url) { + mainWindow.showWebFrameOverlay(url); + } + function onShowWebFrameWindow(url) { + webFrameWindow.url = url; + webFrameWindow.show(); + webFrameWindow.raise(); + if (!webFrameWindow.active) { + webFrameWindow.requestActivate(); + } + } + + target: Backend + } + } } property Notifications _notifications: Notifications { id: notifications @@ -69,24 +91,6 @@ QtObject { Backend.setNormalTrayIcon(); } } - property WebFrameWindow _webFrameWindow: WebFrameWindow { - id: webFrameWindow - colorScheme: ProtonStyle.currentStyle - transientParent: mainWindow - flags: Qt.Tool - - Connections { - function onShowWebFrameWindow(url) { - webFrameWindow.url = url; - webFrameWindow.showNormal(); - } - function onShowWebFrameOverlay(url) { - mainWindow.showWebFrameOverlay(url) - } - - target: Backend - } - } property var title: Backend.appname function bound(num, lowerLimit, upperLimit) { diff --git a/internal/frontend/bridge-gui/bridge-gui/qml/Resources/ComingSoon.html b/internal/frontend/bridge-gui/bridge-gui/qml/Resources/ComingSoon.html new file mode 100644 index 00000000..0539050e --- /dev/null +++ b/internal/frontend/bridge-gui/bridge-gui/qml/Resources/ComingSoon.html @@ -0,0 +1,28 @@ + + + + + Coming soon + + + + +

+ The content of this page is under construction. +

+ + \ No newline at end of file diff --git a/internal/frontend/bridge-gui/bridge-gui/qml/SetupWizard/ClientConfigParameters.qml b/internal/frontend/bridge-gui/bridge-gui/qml/SetupWizard/ClientConfigParameters.qml index 91f5804a..704248fb 100644 --- a/internal/frontend/bridge-gui/bridge-gui/qml/SetupWizard/ClientConfigParameters.qml +++ b/internal/frontend/bridge-gui/bridge-gui/qml/SetupWizard/ClientConfigParameters.qml @@ -77,6 +77,10 @@ Rectangle { colorScheme: root.colorScheme icon.source: "/qml/icons/ic-external-link.svg" text: qsTr("Open Guide") + + onClicked: function () { + Backend.showWebFrameWindow(wizard.setupGuideLink()); + } } } } diff --git a/internal/frontend/bridge-gui/bridge-gui/qml/SetupWizard/LeftPane.qml b/internal/frontend/bridge-gui/bridge-gui/qml/SetupWizard/LeftPane.qml index 3bf09596..126c7a35 100644 --- a/internal/frontend/bridge-gui/bridge-gui/qml/SetupWizard/LeftPane.qml +++ b/internal/frontend/bridge-gui/bridge-gui/qml/SetupWizard/LeftPane.qml @@ -26,7 +26,7 @@ Item { function showAppleMailAutoconfigCertificateInstall() { showAppleMailAutoconfigCommon(); descriptionLabel.text = qsTr("Apple Mail configuration is mostly automated, but in order to work, Bridge needs to install a certificate in your keychain."); - linkLabel1.setLink("https://proton.me/support/bridge", qsTr("Why is this certificate needed?")); + linkLabel1.setCallback(showUnderConstruction, qsTr("Why is this certificate needed?")); } function showAppleMailAutoconfigCommon() { titleLabel.text = ""; @@ -39,7 +39,7 @@ Item { function showAppleMailAutoconfigProfileInstall() { showAppleMailAutoconfigCommon(); descriptionLabel.text = qsTr("The final step before you can start using Apple Mail is to install the Bridge server profile in the system preferences.\n\nAdding a server profile is necessary to ensure that your Mac can receive and send Proton Mails."); - linkLabel1.setLink("https://proton.me/support/bridge", qsTr("Why is there a yellow warning sign?")); + linkLabel1.setCallback(showUnderConstruction, qsTr("Why is there a yellow warning sign?")); linkLabel2.setCallback(wizard.showClientParams, qsTr("Configure Apple Mail manually")); } function showClientSelector() { @@ -63,12 +63,15 @@ Item { function showOnboarding() { titleLabel.text = (Backend.users.count === 0) ? qsTr("Welcome to\nProton Mail Bridge") : qsTr("Add a Proton Mail account"); descriptionLabel.text = qsTr("Bridge is the gateway between your Proton account and your email client. It runs in the background and encrypts and decrypts your messages seamlessly. "); - linkLabel1.setLink("https://proton.me/support/bridge", qsTr("Why do I need Bridge?")); + linkLabel1.setCallback(showUnderConstruction, qsTr("Why do I need Bridge?")); linkLabel2.clear(); root.iconSource = "/qml/icons/img-welcome.svg"; root.iconHeight = 148; root.iconWidth = 265; } + function showUnderConstruction() { + Backend.showWebFrameOverlay("qrc:/qml/Resources/ComingSoon.html"); + } Connections { function onLogin2FARequested() { diff --git a/internal/frontend/bridge-gui/bridge-gui/qml/SetupWizard/SetupWizard.qml b/internal/frontend/bridge-gui/bridge-gui/qml/SetupWizard/SetupWizard.qml index 1cc0d40d..5012b32c 100644 --- a/internal/frontend/bridge-gui/bridge-gui/qml/SetupWizard/SetupWizard.qml +++ b/internal/frontend/bridge-gui/bridge-gui/qml/SetupWizard/SetupWizard.qml @@ -44,11 +44,6 @@ Item { signal bugReportRequested signal wizardEnded - function showBugReport() { - closeWizard() - bugReportRequested() - } - function _showClientConfig() { showClientConfig(root.user, root.address); } @@ -85,12 +80,28 @@ Item { function closeWizard() { wizardEnded(); } + function setupGuideLink() { + switch (client) { + case SetupWizard.Client.AppleMail: + return "https://proton.me/support/protonmail-bridge-clients-apple-mail"; + case SetupWizard.Client.MicrosoftOutlook: + return (Backend.goos === "darwin") ? "https://proton.me/support/protonmail-bridge-clients-macos-outlook-2019" : "https://proton.me/support/protonmail-bridge-clients-windows-outlook-2019"; + case SetupWizard.Client.MozillaThunderbird: + return "https://proton.me/support/protonmail-bridge-clients-windows-thunderbird"; + default: + return "https://proton.me/support/protonmail-bridge-configure-client"; + } + } function showAppleMailAutoConfig() { backAction = _showClientConfig; rootStackLayout.currentIndex = SetupWizard.RootStack.TwoPanesView; rightContent.currentIndex = SetupWizard.ContentStack.ClientConfigAppleMail; clientConfigAppleMail.showAutoconfig(); // This will trigger signals that will display the appropriate left content. } + function showBugReport() { + closeWizard(); + bugReportRequested(); + } function showClientConfig(user, address) { backAction = null; root.user = user;