Share pages refactoring
This commit is contained in:
parent
396af917b5
commit
836075de10
15 changed files with 222 additions and 622 deletions
|
@ -44,13 +44,6 @@ PageBase {
|
|||
topPadding: 20
|
||||
spacing: 10
|
||||
|
||||
// Caption {
|
||||
// id: cap1
|
||||
// text: qsTr("Installed Protocols and Services")
|
||||
// font.pixelSize: 20
|
||||
|
||||
// }
|
||||
|
||||
SortFilterProxyModel {
|
||||
id: proxyProtocolsModel
|
||||
sourceModel: UiLogic.protocolsModel
|
||||
|
@ -92,323 +85,8 @@ PageBase {
|
|||
onClicked: UiLogic.onGotoShareProtocolPage(proxyProtocolsModel.mapToSource(index))
|
||||
|
||||
}
|
||||
|
||||
// Rectangle {
|
||||
// id: c_item
|
||||
// x: 0
|
||||
// y: 0
|
||||
// width: parent.width
|
||||
// height: 40
|
||||
// color: "transparent"
|
||||
// clip: true
|
||||
// radius: 2
|
||||
// LinearGradient {
|
||||
// anchors.fill: parent
|
||||
// start: Qt.point(0, 0)
|
||||
// end: Qt.point(0, height)
|
||||
// gradient: Gradient {
|
||||
// GradientStop { position: 0.0; color: "#E1E1E1" }
|
||||
// GradientStop { position: 0.4; color: "#DDDDDD" }
|
||||
// GradientStop { position: 0.5; color: "#D8D8D8" }
|
||||
// GradientStop { position: 1.0; color: "#D3D3D3" }
|
||||
// }
|
||||
// }
|
||||
// Image {
|
||||
// anchors.verticalCenter: parent.verticalCenter
|
||||
// anchors.left: parent.left
|
||||
// anchors.leftMargin: 10
|
||||
// source: "qrc:/images/share.png"
|
||||
// }
|
||||
// Rectangle {
|
||||
// anchors.left: parent.left
|
||||
// anchors.right: parent.right
|
||||
// anchors.bottom: parent.bottom
|
||||
// height: 2
|
||||
// color: "#148CD2"
|
||||
// visible: ms.containsMouse ? true : false
|
||||
// }
|
||||
// Text {
|
||||
// x: 40
|
||||
// anchors.verticalCenter: parent.verticalCenter
|
||||
// font.family: "Lato"
|
||||
// font.styleName: "normal"
|
||||
// font.pixelSize: 18
|
||||
// color: "#100A44"
|
||||
// font.bold: true
|
||||
// text: name_role
|
||||
// horizontalAlignment: Text.AlignLeft
|
||||
// verticalAlignment: Text.AlignVCenter
|
||||
// wrapMode: Text.Wrap
|
||||
// }
|
||||
// MouseArea {
|
||||
// id: ms
|
||||
// anchors.fill: parent
|
||||
// hoverEnabled: true
|
||||
// onClicked: UiLogic.onGotoShareProtocolPage(proxyProtocolsModel.mapToSource(index))
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// Item {
|
||||
// id: c_item
|
||||
// width: parent.width
|
||||
// height: row_container.height
|
||||
// anchors.left: parent.left
|
||||
// Rectangle {
|
||||
// anchors.top: parent.top
|
||||
// width: parent.width
|
||||
// height: 1
|
||||
// color: "lightgray"
|
||||
// visible: index !== tb_c.currentIndex
|
||||
// }
|
||||
// Rectangle {
|
||||
// anchors.top: row_container.top
|
||||
// anchors.bottom: row_container.bottom
|
||||
// anchors.left: parent.left
|
||||
// anchors.right: parent.right
|
||||
|
||||
// color: "#63B4FB"
|
||||
// visible: index === tb_c.currentIndex
|
||||
// }
|
||||
|
||||
// RowLayout {
|
||||
// id: row_container
|
||||
// //width: parent.width
|
||||
// anchors.left: parent.left
|
||||
// anchors.right: parent.right
|
||||
|
||||
//// anchors.top: lb_container_name.top
|
||||
//// anchors.bottom: lb_container_name.bottom
|
||||
|
||||
// Text {
|
||||
// id: lb_container_name
|
||||
// text: name_role
|
||||
// font.pixelSize: 17
|
||||
// //font.bold: true
|
||||
// color: "#100A44"
|
||||
// topPadding: 5
|
||||
// bottomPadding: 5
|
||||
// leftPadding: 10
|
||||
// verticalAlignment: Text.AlignVCenter
|
||||
// wrapMode: Text.WordWrap
|
||||
// Layout.fillWidth: true
|
||||
|
||||
// MouseArea {
|
||||
// enabled: col.visible
|
||||
// anchors.top: lb_container_name.top
|
||||
// anchors.bottom: lb_container_name.bottom
|
||||
// anchors.left: parent.left
|
||||
// anchors.right: parent.right
|
||||
// propagateComposedEvents: true
|
||||
// onClicked: {
|
||||
// if (tb_c.currentIndex === index) tb_c.currentIndex = -1
|
||||
// else tb_c.currentIndex = index
|
||||
|
||||
// UiLogic.protocolsModel.setSelectedDockerContainer(proxyContainersModel.mapToSource(index))
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
// }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// ScrollView {
|
||||
// x: 10
|
||||
// y: 40
|
||||
// width: 360
|
||||
// height: 580
|
||||
// Item {
|
||||
// id: ct
|
||||
// width: parent.width
|
||||
// height: childrenRect.height + 10
|
||||
// property var contentList: [
|
||||
// full_access,
|
||||
// share_amezia,
|
||||
// share_openvpn,
|
||||
// share_shadowshock,
|
||||
// share_cloak
|
||||
// ]
|
||||
// property int currentIndex: ShareConnectionLogic.toolBoxShareConnectionCurrentIndex
|
||||
// onCurrentIndexChanged: {
|
||||
// ShareConnectionLogic.toolBoxShareConnectionCurrentIndex = currentIndex
|
||||
// for (let i = 0; i < contentList.length; ++i) {
|
||||
// if (i == currentIndex) {
|
||||
// contentList[i].active = true
|
||||
// } else {
|
||||
// contentList[i].active = false
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
// function clearActive() {
|
||||
// for (let i = 0; i < contentList.length; ++i) {
|
||||
// contentList[i].active = false
|
||||
// }
|
||||
// currentIndex = -1;
|
||||
// }
|
||||
// Column {
|
||||
// spacing: 5
|
||||
// ShareConnectionContent {
|
||||
// id: full_access
|
||||
// x: 0
|
||||
// text: qsTr("Full access")
|
||||
// visible: ShareConnectionLogic.pageShareFullAccessVisible
|
||||
// content: Component {
|
||||
// Item {
|
||||
// width: 360
|
||||
// height: 380
|
||||
// Text {
|
||||
// x: 10
|
||||
// y: 250
|
||||
// width: 341
|
||||
// height: 111
|
||||
// font.family: "Lato"
|
||||
// font.styleName: "normal"
|
||||
// font.pixelSize: 16
|
||||
// color: "#181922"
|
||||
// horizontalAlignment: Text.AlignLeft
|
||||
// verticalAlignment: Text.AlignVCenter
|
||||
// wrapMode: Text.Wrap
|
||||
// text: qsTr("Anyone who logs in with this code will have the same permissions to use VPN and your server as you. \nThis code includes your server credentials!\nProvide this code only to TRUSTED users.")
|
||||
// }
|
||||
// ShareConnectionButtonType {
|
||||
// x: 10
|
||||
// y: 130
|
||||
// width: 341
|
||||
// height: 40
|
||||
// text: ShareConnectionLogic.pushButtonShareFullCopyText
|
||||
// onClicked: {
|
||||
// ShareConnectionLogic.onPushButtonShareFullCopyClicked()
|
||||
// }
|
||||
// }
|
||||
// ShareConnectionButtonType {
|
||||
// x: 10
|
||||
// y: 180
|
||||
// width: 341
|
||||
// height: 40
|
||||
// text: qsTr("Save file")
|
||||
// onClicked: {
|
||||
// ShareConnectionLogic.onPushButtonShareFullSaveClicked()
|
||||
// }
|
||||
// }
|
||||
// TextFieldType {
|
||||
// x: 10
|
||||
// y: 10
|
||||
// width: 341
|
||||
// height: 100
|
||||
// verticalAlignment: Text.AlignTop
|
||||
// text: ShareConnectionLogic.textEditShareFullCodeText
|
||||
// onEditingFinished: {
|
||||
// ShareConnectionLogic.textEditShareFullCodeText = text
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// onClicked: {
|
||||
// if (active) {
|
||||
// ct.currentIndex = -1
|
||||
// } else {
|
||||
// ct.clearActive()
|
||||
// ct.currentIndex = 0
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// ShareConnectionContent {
|
||||
// id: share_amezia
|
||||
// x: 0
|
||||
// text: qsTr("Share for Amnezia client")
|
||||
// visible: ShareConnectionLogic.pageShareAmneziaVisible
|
||||
// content: Component {
|
||||
// Item {
|
||||
// width: 360
|
||||
// height: 380
|
||||
// }
|
||||
// }
|
||||
// onClicked: {
|
||||
// if (active) {
|
||||
// ct.currentIndex = -1
|
||||
// } else {
|
||||
// ct.clearActive()
|
||||
// ct.currentIndex = 1
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
// ShareConnectionContent {
|
||||
// id: share_shadowshock
|
||||
// x: 0
|
||||
// text: qsTr("Share for ShadowSocks client")
|
||||
// visible: ShareConnectionLogic.pageShareShadowSocksVisible
|
||||
// content: Component {
|
||||
// Item {
|
||||
// width: 360
|
||||
// height: 380
|
||||
|
||||
// }
|
||||
// }
|
||||
// onClicked: {
|
||||
// if (active) {
|
||||
// ct.currentIndex = -1
|
||||
// } else {
|
||||
// ct.clearActive()
|
||||
// ct.currentIndex = 3
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// ShareConnectionContent {
|
||||
// id: share_cloak
|
||||
// x: 0
|
||||
// text: qsTr("Share for Cloak client")
|
||||
// visible: ShareConnectionLogic.pageShareCloakVisible
|
||||
// content: Component {
|
||||
// Item {
|
||||
// width: 360
|
||||
// height: 380
|
||||
|
||||
// }
|
||||
// }
|
||||
// onClicked: {
|
||||
// if (active) {
|
||||
// ct.currentIndex = -1
|
||||
// } else {
|
||||
// ct.clearActive()
|
||||
// ct.currentIndex = 4
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -11,6 +11,11 @@ PageShareProtocolBase {
|
|||
protocol: ProtocolEnum.Any
|
||||
logic: ShareConnectionLogic
|
||||
|
||||
readonly property string generateConfigText: qsTr("Generate config")
|
||||
readonly property string generatingConfigText: qsTr("Generating config...")
|
||||
readonly property string showConfigText: qsTr("Show config")
|
||||
property bool genConfigProcess: false
|
||||
|
||||
BackButton {
|
||||
id: back
|
||||
}
|
||||
|
@ -19,72 +24,113 @@ PageShareProtocolBase {
|
|||
text: qsTr("Share for Amnezia")
|
||||
}
|
||||
|
||||
Text {
|
||||
id: lb_desc
|
||||
Flickable {
|
||||
id: fl
|
||||
width: root.width
|
||||
anchors.top: caption.bottom
|
||||
anchors.topMargin: 20
|
||||
width: parent.width - 60
|
||||
anchors.horizontalCenter: root.horizontalCenter
|
||||
|
||||
font.family: "Lato"
|
||||
font.styleName: "normal"
|
||||
font.pixelSize: 16
|
||||
color: "#181922"
|
||||
horizontalAlignment: Text.AlignLeft
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
wrapMode: Text.Wrap
|
||||
text: qsTr("Anyone who logs in with this code will be able to connect to this VPN server. \nThis code does not include server credentials.")
|
||||
}
|
||||
|
||||
TextAreaType {
|
||||
anchors.top: lb_desc.bottom
|
||||
anchors.topMargin: 20
|
||||
anchors.bottom: pb_gen.top
|
||||
anchors.bottomMargin: 20
|
||||
|
||||
anchors.horizontalCenter: root.horizontalCenter
|
||||
width: parent.width - 60
|
||||
|
||||
textArea.readOnly: true
|
||||
textArea.wrapMode: TextEdit.WrapAnywhere
|
||||
textArea.verticalAlignment: Text.AlignTop
|
||||
textArea.text: ShareConnectionLogic.textEditShareAmneziaCodeText
|
||||
}
|
||||
|
||||
|
||||
ShareConnectionButtonType {
|
||||
id: pb_gen
|
||||
anchors.bottom: pb_copy.top
|
||||
anchors.bottomMargin: 10
|
||||
anchors.horizontalCenter: root.horizontalCenter
|
||||
width: parent.width - 60
|
||||
text: ShareConnectionLogic.pushButtonShareAmneziaGenerateText
|
||||
enabled: ShareConnectionLogic.pushButtonShareAmneziaGenerateEnabled
|
||||
onClicked: {
|
||||
ShareConnectionLogic.onPushButtonShareAmneziaGenerateClicked()
|
||||
}
|
||||
}
|
||||
ShareConnectionButtonType {
|
||||
id: pb_copy
|
||||
anchors.bottom: pb_save.top
|
||||
anchors.bottomMargin: 10
|
||||
anchors.horizontalCenter: root.horizontalCenter
|
||||
width: parent.width - 60
|
||||
text: ShareConnectionLogic.pushButtonShareAmneziaCopyText
|
||||
onClicked: {
|
||||
ShareConnectionLogic.onPushButtonShareAmneziaCopyClicked()
|
||||
}
|
||||
enabled: ShareConnectionLogic.pushButtonShareAmneziaCopyEnabled
|
||||
}
|
||||
ShareConnectionButtonType {
|
||||
id: pb_save
|
||||
anchors.bottom: root.bottom
|
||||
anchors.bottomMargin: 10
|
||||
anchors.horizontalCenter: root.horizontalCenter
|
||||
width: parent.width - 60
|
||||
text: qsTr("Save file")
|
||||
onClicked: {
|
||||
ShareConnectionLogic.onPushButtonShareAmneziaSaveClicked()
|
||||
anchors.bottomMargin: 20
|
||||
anchors.left: root.left
|
||||
anchors.leftMargin: 30
|
||||
anchors.right: root.right
|
||||
anchors.rightMargin: 30
|
||||
|
||||
contentHeight: content.height + 20
|
||||
clip: true
|
||||
|
||||
ColumnLayout {
|
||||
id: content
|
||||
enabled: logic.pageEnabled
|
||||
anchors.top: parent.top
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
|
||||
Text {
|
||||
id: lb_desc
|
||||
Layout.fillWidth: true
|
||||
font.family: "Lato"
|
||||
font.styleName: "normal"
|
||||
font.pixelSize: 16
|
||||
color: "#181922"
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
wrapMode: Text.Wrap
|
||||
text: ShareConnectionLogic.shareFullAccess
|
||||
? qsTr("Anyone who logs in with this code will have the same permissions to use VPN and YOUR SERVER as you. \n
|
||||
This code includes your server credentials!\n
|
||||
Provide this code only to TRUSTED users.")
|
||||
: qsTr("Anyone who logs in with this code will be able to connect to this VPN server. \n
|
||||
This code does not include server credentials.")
|
||||
|
||||
}
|
||||
|
||||
ShareConnectionButtonType {
|
||||
id: pb_gen
|
||||
Layout.topMargin: 20
|
||||
Layout.fillWidth: true
|
||||
Layout.preferredHeight: 40
|
||||
|
||||
text: ShareConnectionLogic.shareFullAccess
|
||||
? showConfigText
|
||||
: (genConfigProcess ? generatingConfigText : generateConfigText)
|
||||
onClicked: {
|
||||
enabled = false
|
||||
genConfigProcess = true
|
||||
ShareConnectionLogic.onPushButtonShareAmneziaGenerateClicked()
|
||||
enabled = true
|
||||
genConfigProcess = false
|
||||
}
|
||||
}
|
||||
|
||||
TextAreaType {
|
||||
id: tfShareCode
|
||||
|
||||
Layout.topMargin: 20
|
||||
Layout.bottomMargin: 20
|
||||
Layout.preferredHeight: 200
|
||||
|
||||
Layout.fillWidth: true
|
||||
|
||||
textArea.readOnly: true
|
||||
textArea.wrapMode: TextEdit.WrapAnywhere
|
||||
textArea.verticalAlignment: Text.AlignTop
|
||||
textArea.text: ShareConnectionLogic.textEditShareAmneziaCodeText
|
||||
|
||||
visible: tfShareCode.textArea.length > 0
|
||||
}
|
||||
|
||||
|
||||
ShareConnectionButtonCopyType {
|
||||
id: pb_copy
|
||||
Layout.bottomMargin: 10
|
||||
Layout.fillWidth: true
|
||||
Layout.preferredHeight: 40
|
||||
enabled: tfShareCode.textArea.length > 0
|
||||
visible: tfShareCode.textArea.length > 0
|
||||
}
|
||||
ShareConnectionButtonType {
|
||||
id: pb_save
|
||||
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"), "*.vpn", tfShareCode.textArea.text)
|
||||
}
|
||||
}
|
||||
|
||||
Image {
|
||||
id: label_share_code
|
||||
Layout.topMargin: 20
|
||||
Layout.fillWidth: true
|
||||
Layout.preferredHeight: width
|
||||
smooth: false
|
||||
source: ShareConnectionLogic.shareAmneziaQrCodeText
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -29,22 +29,15 @@ PageShareProtocolBase {
|
|||
width: parent.width - 60
|
||||
|
||||
textArea.readOnly: true
|
||||
|
||||
textArea.text: ShareConnectionLogic.plainTextEditShareCloakText
|
||||
textArea.text: ShareConnectionLogic.textEditShareCloakText
|
||||
}
|
||||
|
||||
ShareConnectionButtonType {
|
||||
ShareConnectionButtonCopyType {
|
||||
id: pb_save
|
||||
anchors.bottom: root.bottom
|
||||
anchors.bottomMargin: 10
|
||||
anchors.horizontalCenter: root.horizontalCenter
|
||||
width: parent.width - 60
|
||||
text: ShareConnectionLogic.pushButtonShareCloakCopyText
|
||||
//enabled: ShareConnectionLogic.pushButtonShareCloakCopyEnabled
|
||||
onClicked: {
|
||||
ShareConnectionLogic.onPushButtonShareCloakCopyClicked()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -20,6 +20,7 @@ PageShareProtocolBase {
|
|||
}
|
||||
|
||||
TextAreaType {
|
||||
id: tfShareCode
|
||||
anchors.top: caption.bottom
|
||||
anchors.topMargin: 20
|
||||
anchors.bottom: pb_gen.top
|
||||
|
@ -44,22 +45,19 @@ PageShareProtocolBase {
|
|||
|
||||
text: ShareConnectionLogic.pushButtonShareOpenVpnGenerateText
|
||||
onClicked: {
|
||||
enabled = false
|
||||
ShareConnectionLogic.onPushButtonShareOpenVpnGenerateClicked()
|
||||
enabled = true
|
||||
}
|
||||
enabled: ShareConnectionLogic.pushButtonShareOpenVpnGenerateEnabled
|
||||
}
|
||||
ShareConnectionButtonType {
|
||||
ShareConnectionButtonCopyType {
|
||||
id: pb_copy
|
||||
anchors.bottom: pb_save.top
|
||||
anchors.bottomMargin: 10
|
||||
anchors.horizontalCenter: root.horizontalCenter
|
||||
width: parent.width - 60
|
||||
|
||||
text: ShareConnectionLogic.pushButtonShareOpenVpnCopyText
|
||||
enabled: ShareConnectionLogic.pushButtonShareOpenVpnCopyEnabled
|
||||
onClicked: {
|
||||
ShareConnectionLogic.onPushButtonShareOpenVpnCopyClicked()
|
||||
}
|
||||
enabled: tfShareCode.textArea.length > 0
|
||||
}
|
||||
ShareConnectionButtonType {
|
||||
id: pb_save
|
||||
|
@ -68,10 +66,11 @@ PageShareProtocolBase {
|
|||
anchors.horizontalCenter: root.horizontalCenter
|
||||
width: parent.width - 60
|
||||
|
||||
text: qsTr("Save file")
|
||||
enabled: ShareConnectionLogic.pushButtonShareOpenVpnSaveEnabled
|
||||
text: qsTr("Save to file")
|
||||
enabled: tfShareCode.textArea.length > 0
|
||||
|
||||
onClicked: {
|
||||
ShareConnectionLogic.onPushButtonShareOpenVpnSaveClicked()
|
||||
UiLogic.saveTextFile(qsTr("Save OpenVPN config"), "*.ovpn", tfShareCode.textArea.text)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -24,7 +24,7 @@ PageShareProtocolBase {
|
|||
width: root.width
|
||||
anchors.top: caption.bottom
|
||||
anchors.topMargin: 20
|
||||
anchors.bottom: parent.bottom
|
||||
anchors.bottom: root.bottom
|
||||
anchors.bottomMargin: 20
|
||||
anchors.left: root.left
|
||||
anchors.leftMargin: 30
|
||||
|
@ -108,14 +108,10 @@ PageShareProtocolBase {
|
|||
text: ShareConnectionLogic.lineEditShareShadowSocksStringText
|
||||
readOnly: true
|
||||
}
|
||||
ShareConnectionButtonType {
|
||||
height: 40
|
||||
ShareConnectionButtonCopyType {
|
||||
Layout.preferredHeight: 40
|
||||
Layout.fillWidth: true
|
||||
text: ShareConnectionLogic.pushButtonShareShadowSocksCopyText
|
||||
enabled: tfConnString.length > 0
|
||||
onClicked: {
|
||||
ShareConnectionLogic.onPushButtonShareShadowSocksCopyClicked()
|
||||
}
|
||||
}
|
||||
|
||||
Image {
|
||||
|
@ -124,7 +120,7 @@ PageShareProtocolBase {
|
|||
Layout.fillWidth: true
|
||||
Layout.preferredHeight: width
|
||||
smooth: false
|
||||
source: ShareConnectionLogic.labelShareShadowSocksQrCodeText
|
||||
source: ShareConnectionLogic.shareShadowSocksQrCodeText
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue