107 lines
2.9 KiB
QML
107 lines
2.9 KiB
QML
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.OpenVpn
|
|
|
|
BackButton {
|
|
id: back
|
|
}
|
|
Caption {
|
|
id: caption
|
|
text: qsTr("Share OpenVPN 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: content.bottom
|
|
anchors.topMargin: 20
|
|
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("New encryption keys pair will be generated.")
|
|
}
|
|
|
|
ShareConnectionButtonType {
|
|
Layout.topMargin: 20
|
|
Layout.fillWidth: true
|
|
Layout.preferredHeight: 40
|
|
|
|
text: genConfigProcess ? generatingConfigText : generateConfigText
|
|
onClicked: {
|
|
enabled = false
|
|
genConfigProcess = true
|
|
ShareConnectionLogic.onPushButtonShareOpenVpnGenerateClicked()
|
|
genConfigProcess = false
|
|
enabled = true
|
|
}
|
|
}
|
|
|
|
TextAreaType {
|
|
id: tfShareCode
|
|
Layout.topMargin: 20
|
|
Layout.preferredHeight: 200
|
|
Layout.fillWidth: true
|
|
|
|
textArea.readOnly: true
|
|
|
|
textArea.verticalAlignment: Text.AlignTop
|
|
textArea.text: ShareConnectionLogic.textEditShareOpenVpnCodeText
|
|
|
|
visible: tfShareCode.textArea.length > 0
|
|
}
|
|
|
|
ShareConnectionButtonCopyType {
|
|
Layout.preferredHeight: 40
|
|
Layout.fillWidth: true
|
|
|
|
copyText: tfShareCode.textArea.text
|
|
}
|
|
ShareConnectionButtonType {
|
|
Layout.bottomMargin: 10
|
|
Layout.fillWidth: true
|
|
Layout.preferredHeight: 40
|
|
width: parent.width - 60
|
|
|
|
text: qsTr("Save to file")
|
|
enabled: tfShareCode.textArea.length > 0
|
|
visible: tfShareCode.textArea.length > 0
|
|
|
|
onClicked: {
|
|
UiLogic.saveTextFile(qsTr("Save OpenVPN config"), "*.ovpn", tfShareCode.textArea.text)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|