import QtQuick 2.12 import QtQuick.Controls 2.12 import QtQuick.Layouts 1.15 import ProtocolEnum 1.0 import "../" import "../../Controls" import "../../Config" PageShareProtocolBase { id: root protocol: ProtocolEnum.Cloak BackButton { id: back } Caption { id: caption text: qsTr("Share Cloak Settings") } Flickable { id: fl width: root.width anchors.top: caption.bottom anchors.topMargin: 20 anchors.bottom: root.bottom anchors.bottomMargin: 20 anchors.left: root.left anchors.leftMargin: 30 anchors.right: root.right anchors.rightMargin: 30 contentHeight: content.height clip: true ColumnLayout { id: content enabled: logic.pageEnabled anchors.top: parent.top anchors.left: parent.left anchors.right: parent.right LabelType { id: lb_desc Layout.fillWidth: true Layout.topMargin: 10 horizontalAlignment: Text.AlignHCenter wrapMode: Text.Wrap text: qsTr("Note: Cloak protocol using same password for all connections") } ShareConnectionButtonType { Layout.topMargin: 10 Layout.fillWidth: true Layout.preferredHeight: 40 text: genConfigProcess ? generatingConfigText : generateConfigText onClicked: { enabled = false genConfigProcess = true ShareConnectionLogic.onPushButtonShareCloakGenerateClicked() enabled = true genConfigProcess = false } } TextAreaType { id: tfShareCode Layout.topMargin: 20 Layout.bottomMargin: 20 Layout.fillWidth: true Layout.preferredHeight: 200 textArea.readOnly: true textArea.text: ShareConnectionLogic.textEditShareCloakText visible: tfShareCode.textArea.length > 0 } ShareConnectionButtonCopyType { Layout.bottomMargin: 10 Layout.fillWidth: true Layout.preferredHeight: 40 copyText: tfShareCode.textArea.text } ShareConnectionButtonType { Layout.bottomMargin: 10 Layout.fillWidth: true Layout.preferredHeight: 40 text: qsTr("Save to file") enabled: tfShareCode.textArea.length > 0 visible: tfShareCode.textArea.length > 0 onClicked: { UiLogic.saveTextFile(qsTr("Save AmneziaVPN config"), "*.json", tfShareCode.textArea.text) } } } } }