diff --git a/client/resources.qrc b/client/resources.qrc
index 5d708c6a..04919412 100644
--- a/client/resources.qrc
+++ b/client/resources.qrc
@@ -104,5 +104,8 @@
ui/qml/Pages/Protocols/PageProtoOpenVPN.qml
ui/qml/Pages/Protocols/PageProtoShadowSocks.qml
ui/qml/Controls/BackButton.qml
+ ui/qml/Pages/InstallSettings/InstallSettingsBase.qml
+ ui/qml/Controls/Caption.qml
+ ui/qml/Controls/Logo.qml
diff --git a/client/ui/pages_logic/NewServerProtocolsLogic.cpp b/client/ui/pages_logic/NewServerProtocolsLogic.cpp
index cbe7b2b3..85ce813b 100644
--- a/client/ui/pages_logic/NewServerProtocolsLogic.cpp
+++ b/client/ui/pages_logic/NewServerProtocolsLogic.cpp
@@ -15,13 +15,13 @@ NewServerProtocolsLogic::NewServerProtocolsLogic(UiLogic *logic, QObject *parent
m_frameSettingsParentWireguardVisible{false},
m_checkBoxCloakChecked{true},
m_checkBoxSsChecked{false},
- m_checkBoxOpenvpnChecked{false},
+ m_checkBoxOpenVpnChecked{false},
m_progressBarConnectionMinimum{0},
m_progressBarConnectionMaximum{100}
{
set_frameSettingsParentWireguardVisible(false);
- connect(this, &NewServerProtocolsLogic::pushButtonConnectConfigureClicked, this, [this](){
+ connect(this, &NewServerProtocolsLogic::pushButtonConfigureClicked, this, [this](){
uiLogic()->installServer(getInstallConfigsFromProtocolsPage());
});
}
@@ -78,7 +78,7 @@ QMap NewServerProtocolsLogic::getInstallConfigsFro
containers.insert(DockerContainer::OpenVpnOverShadowSocks, ssConfig);
}
- if (checkBoxOpenvpnChecked()) {
+ if (checkBoxOpenVpnChecked()) {
containers.insert(DockerContainer::OpenVpn, openVpnConfig);
}
diff --git a/client/ui/pages_logic/NewServerProtocolsLogic.h b/client/ui/pages_logic/NewServerProtocolsLogic.h
index 28a41890..6ffb5eb3 100644
--- a/client/ui/pages_logic/NewServerProtocolsLogic.h
+++ b/client/ui/pages_logic/NewServerProtocolsLogic.h
@@ -21,7 +21,7 @@ class NewServerProtocolsLogic : public PageLogicBase
AUTO_PROPERTY(QString, comboBoxOpenvpnProtoText)
AUTO_PROPERTY(bool, checkBoxCloakChecked)
AUTO_PROPERTY(bool, checkBoxSsChecked)
- AUTO_PROPERTY(bool, checkBoxOpenvpnChecked)
+ AUTO_PROPERTY(bool, checkBoxOpenVpnChecked)
AUTO_PROPERTY(double, progressBarConnectionMinimum)
AUTO_PROPERTY(double, progressBarConnectionMaximum)
@@ -35,7 +35,7 @@ public:
QMap getInstallConfigsFromProtocolsPage() const;
signals:
- void pushButtonConnectConfigureClicked();
+ void pushButtonConfigureClicked();
};
#endif // NEW_SERVER_PROTOCOLS_LOGIC_H
diff --git a/client/ui/pages_logic/StartPageLogic.cpp b/client/ui/pages_logic/StartPageLogic.cpp
index 815f8d84..fc99b055 100644
--- a/client/ui/pages_logic/StartPageLogic.cpp
+++ b/client/ui/pages_logic/StartPageLogic.cpp
@@ -39,6 +39,8 @@ void StartPageLogic::updatePage()
void StartPageLogic::onPushButtonConnect()
{
+// uiLogic()->goToPage(Page::NewServer);
+// return;
if (pushButtonConnectKeyChecked()){
if (lineEditIpText().isEmpty() ||
lineEditLoginText().isEmpty() ||
diff --git a/client/ui/qml/Controls/BlueButtonType.qml b/client/ui/qml/Controls/BlueButtonType.qml
index 58759946..d8b67283 100644
--- a/client/ui/qml/Controls/BlueButtonType.qml
+++ b/client/ui/qml/Controls/BlueButtonType.qml
@@ -4,6 +4,11 @@ import QtQuick.Controls 2.12
BasicButtonType {
id: root
+ width: parent.width - 80
+ height: 40
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.topMargin: 20
+
background: Rectangle {
anchors.fill: parent
radius: 4
diff --git a/client/ui/qml/Controls/Caption.qml b/client/ui/qml/Controls/Caption.qml
new file mode 100644
index 00000000..41090e91
--- /dev/null
+++ b/client/ui/qml/Controls/Caption.qml
@@ -0,0 +1,17 @@
+import QtQuick 2.12
+import QtQuick.Controls 2.12
+
+Text {
+ font.family: "Lato"
+ font.styleName: "normal"
+ font.pixelSize: 24
+ color: "#100A44"
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ x: 10
+ y: 35
+ width: parent.width - 40
+ anchors.horizontalCenter: parent.horizontalCenter
+ wrapMode: Text.Wrap
+ //height: 31
+}
diff --git a/client/ui/qml/Controls/CheckBoxType.qml b/client/ui/qml/Controls/CheckBoxType.qml
index 3c9eab1b..c840e04e 100644
--- a/client/ui/qml/Controls/CheckBoxType.qml
+++ b/client/ui/qml/Controls/CheckBoxType.qml
@@ -20,5 +20,6 @@ CheckBox {
color: "#181922"
verticalAlignment: Text.AlignVCenter
leftPadding: root.indicator.width + root.spacing
+ wrapMode: Text.Wrap
}
}
diff --git a/client/ui/qml/Controls/LabelType.qml b/client/ui/qml/Controls/LabelType.qml
index 8b4ac4a0..cfef0d2c 100644
--- a/client/ui/qml/Controls/LabelType.qml
+++ b/client/ui/qml/Controls/LabelType.qml
@@ -2,6 +2,10 @@ import QtQuick 2.12
Text {
id: root
+ x: 40
+ width: parent.width
+ anchors.topMargin: 10
+
font.family: "Lato"
font.styleName: "normal"
font.pixelSize: 16
@@ -10,3 +14,4 @@ Text {
verticalAlignment: Text.AlignVCenter
wrapMode: Text.Wrap
}
+
diff --git a/client/ui/qml/Controls/Logo.qml b/client/ui/qml/Controls/Logo.qml
new file mode 100644
index 00000000..fc3b06cb
--- /dev/null
+++ b/client/ui/qml/Controls/Logo.qml
@@ -0,0 +1,12 @@
+import QtQuick 2.12
+import QtQuick.Controls 2.12
+
+Image {
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.bottom: parent.bottom
+ anchors.bottomMargin: 30
+// width: GC.trW(150)
+// height: GC.trH(22)
+// y: GC.trY(590)
+ source: "qrc:/images/AmneziaVPN.png"
+}
diff --git a/client/ui/qml/Controls/TextFieldType.qml b/client/ui/qml/Controls/TextFieldType.qml
index 3467bf93..d6508ab9 100644
--- a/client/ui/qml/Controls/TextFieldType.qml
+++ b/client/ui/qml/Controls/TextFieldType.qml
@@ -4,7 +4,11 @@ import QtQuick.Controls 2.12
TextField {
id: root
property bool error: false
-// font.
+
+ width: parent.width - 80
+ height: 40
+ anchors.topMargin: 5
+
selectionColor: "darkgray"
font.pixelSize: 16
color: "#333333"
diff --git a/client/ui/qml/Pages/InstallSettings/InstallSettingsBase.qml b/client/ui/qml/Pages/InstallSettings/InstallSettingsBase.qml
new file mode 100644
index 00000000..69fee7f3
--- /dev/null
+++ b/client/ui/qml/Pages/InstallSettings/InstallSettingsBase.qml
@@ -0,0 +1,75 @@
+import QtQuick 2.12
+import QtQuick.Controls 2.12
+import "./"
+import "../../Controls"
+import "../../Config"
+
+Rectangle {
+ signal containerChecked(bool checked)
+ property bool initiallyChecked: false
+ property string containerDescription
+ default property alias itemSettings: container.data
+
+ x: 5
+ y: 5
+ width: parent.width - 20
+ anchors.horizontalCenter: parent.horizontalCenter
+
+ height: frame_settings.visible ? 140 : 72
+ border.width: 1
+ border.color: "lightgray"
+ radius: 2
+ Rectangle {
+ id: frame_settings
+ height: 77
+ width: parent.width
+ border.width: 1
+ border.color: "lightgray"
+ anchors.bottom: parent.bottom
+ anchors.bottomMargin: 5
+ anchors.horizontalCenter: parent.horizontalCenter
+ visible: false
+ radius: 2
+ Grid {
+ id: container
+ anchors.fill: parent
+ columns: 2
+ horizontalItemAlignment: Grid.AlignHCenter
+ verticalItemAlignment: Grid.AlignVCenter
+ topPadding: 5
+ leftPadding: 10
+ spacing: 5
+ }
+ }
+ Row {
+ anchors.top: parent.top
+ anchors.topMargin: 5
+ leftPadding: 15
+ rightPadding: 5
+ height: 55
+ width: parent.width
+ CheckBoxType {
+ text: containerDescription
+ height: parent.height
+ width: parent.width - 50
+ checked: initiallyChecked
+ onCheckedChanged: containerChecked(checked)
+ }
+ ImageButtonType {
+ width: 35
+ height: 35
+ anchors.verticalCenter: parent.verticalCenter
+ icon.source: "qrc:/images/settings.png"
+ checkable: true
+ checked: initiallyChecked
+ onCheckedChanged: {
+ //NewServerProtocolsLogic.pushButtonSettingsCloakChecked = checked
+ if (checked) {
+ frame_settings.visible = true
+ } else {
+ frame_settings.visible = false
+ }
+ }
+ }
+ }
+}
diff --git a/client/ui/qml/Pages/PageAppSetting.qml b/client/ui/qml/Pages/PageAppSetting.qml
index 29604fad..7d86ef6d 100644
--- a/client/ui/qml/Pages/PageAppSetting.qml
+++ b/client/ui/qml/Pages/PageAppSetting.qml
@@ -9,18 +9,8 @@ PageBase {
BackButton {
id: back
}
- Text {
- font.family: "Lato"
- font.styleName: "normal"
- font.pixelSize: 24
- color: "#100A44"
- horizontalAlignment: Text.AlignHCenter
- verticalAlignment: Text.AlignVCenter
+ Caption {
text: qsTr("Application Settings")
- x: 10
- y: 35
- width: 361
- height: 31
}
CheckBoxType {
x: 30
diff --git a/client/ui/qml/Pages/PageNetworkSetting.qml b/client/ui/qml/Pages/PageNetworkSetting.qml
index 1d974a11..0f56cc40 100644
--- a/client/ui/qml/Pages/PageNetworkSetting.qml
+++ b/client/ui/qml/Pages/PageNetworkSetting.qml
@@ -9,18 +9,8 @@ Item {
BackButton {
id: back
}
- Text {
- font.family: "Lato"
- font.styleName: "normal"
- font.pixelSize: 24
- color: "#100A44"
- horizontalAlignment: Text.AlignHCenter
- verticalAlignment: Text.AlignVCenter
+ Caption {
text: qsTr("DNS Servers")
- x: 10
- y: 35
- width: 361
- height: 31
}
Image {
anchors.horizontalCenter: root.horizontalCenter
diff --git a/client/ui/qml/Pages/PageNewServer.qml b/client/ui/qml/Pages/PageNewServer.qml
index e76c840d..96447586 100644
--- a/client/ui/qml/Pages/PageNewServer.qml
+++ b/client/ui/qml/Pages/PageNewServer.qml
@@ -10,65 +10,49 @@ Item {
BackButton {
id: back_from_new_server
}
- Text {
- font.family: "Lato"
- font.styleName: "normal"
- font.pixelSize: 24
- color: "#100A44"
- horizontalAlignment: Text.AlignHCenter
- verticalAlignment: Text.AlignVCenter
+ Caption {
+ id: caption
text: qsTr("Setup your server to use VPN")
- x: 10
- y: 35
- width: 361
- height: 31
}
LabelType {
+ id: labelWizard
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
text: qsTr("If you want easily configure your server just run Wizard")
- wrapMode: Text.Wrap
- x: 40
- y: 100
- width: 301
- height: 41
- }
- LabelType {
- horizontalAlignment: Text.AlignHCenter
- verticalAlignment: Text.AlignVCenter
- text: qsTr("Press configure manually to choose VPN protocols you want to install")
- wrapMode: Text.Wrap
- x: 40
- y: 260
- width: 301
- height: 41
+ width: parent.width - 80
+ anchors.top: caption.bottom
+ anchors.topMargin: 30
}
BlueButtonType {
+ id: pushButtonWizard
text: qsTr("Run Setup Wizard")
- y: 150
- width: 301
- height: 40
- anchors.horizontalCenter: parent.horizontalCenter
+ anchors.top: labelWizard.bottom
+ anchors.topMargin: 10
onClicked: {
UiLogic.goToPage(PageEnum.Wizard);
}
}
+ LabelType {
+ id: labelManual
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ text: qsTr("Press configure manually to choose VPN protocols you want to install")
+
+ width: parent.width - 80
+ anchors.top: pushButtonWizard.bottom
+ anchors.topMargin: 40
+ }
+
BlueButtonType {
text: qsTr("Configure VPN protocols manually")
- y: 310
- width: 301
- height: 40
anchors.horizontalCenter: parent.horizontalCenter
+ anchors.top: labelManual.bottom
+ anchors.topMargin: 10
onClicked: {
UiLogic.goToPage(PageEnum.NewServerProtocols);
}
}
- Image {
- anchors.horizontalCenter: root.horizontalCenter
- width: GC.trW(150)
- height: GC.trH(22)
- y: GC.trY(590)
- source: "qrc:/images/AmneziaVPN.png"
+ Logo {
}
}
diff --git a/client/ui/qml/Pages/PageNewServerConfiguring.qml b/client/ui/qml/Pages/PageNewServerConfiguring.qml
index 6625d92b..21e4ecbe 100644
--- a/client/ui/qml/Pages/PageNewServerConfiguring.qml
+++ b/client/ui/qml/Pages/PageNewServerConfiguring.qml
@@ -7,18 +7,8 @@ import "../Config"
Item {
id: root
enabled: NewServerConfiguringLogic.pageEnabled
- Text {
- font.family: "Lato"
- font.styleName: "normal"
- font.pixelSize: 24
- color: "#100A44"
- horizontalAlignment: Text.AlignHCenter
- verticalAlignment: Text.AlignVCenter
+ Caption {
text: qsTr("Configuring...")
- x: 0
- y: 35
- width: 381
- height: 31
}
LabelType {
x: 30
diff --git a/client/ui/qml/Pages/PageNewServerProtocols.qml b/client/ui/qml/Pages/PageNewServerProtocols.qml
index a92d90cb..69108454 100644
--- a/client/ui/qml/Pages/PageNewServerProtocols.qml
+++ b/client/ui/qml/Pages/PageNewServerProtocols.qml
@@ -3,439 +3,217 @@ import QtQuick.Controls 2.12
import "./"
import "../Controls"
import "../Config"
+import "InstallSettings"
Item {
id: root
BackButton {
id: back
}
- Text {
- font.family: "Lato"
- font.styleName: "normal"
- font.pixelSize: 24
- color: "#100A44"
- horizontalAlignment: Text.AlignHCenter
- verticalAlignment: Text.AlignVCenter
+ Caption {
+ id: caption
text: qsTr("Select VPN protocols")
- x: 10
- y: 35
- width: 361
- height: 31
}
- ProgressBar {
- id: progress_bar_new_server_connection
- anchors.horizontalCenter: parent.horizontalCenter
- y: 570
- width: 301
- height: 40
- from: NewServerProtocolsLogic.progressBarConnectionMinimum
- to: NewServerProtocolsLogic.progressBarConnectionMaximum
- value: 0
- background: Rectangle {
- implicitWidth: parent.width
- implicitHeight: parent.height
- color: "#100A44"
- radius: 4
- }
- contentItem: Item {
- implicitWidth: parent.width
- implicitHeight: parent.height
- Rectangle {
- width: progress_bar_new_server_connection.visualPosition * parent.width
- height: parent.height
- radius: 4
- color: Qt.rgba(255, 255, 255, 0.15);
- }
- }
-
- LabelType {
- anchors.fill: parent
- text: qsTr("Configuring...")
- horizontalAlignment: Text.AlignHCenter
- font.family: "Lato"
- font.styleName: "normal"
- font.pixelSize: 16
- color: "#D4D4D4"
- }
- }
BlueButtonType {
+ id: pushButtonConfigure
anchors.horizontalCenter: parent.horizontalCenter
- y: 570
- width: 301
+ y: parent.height - 60
+ width: parent.width - 40
height: 40
text: qsTr("Setup server")
onClicked: {
- NewServerProtocolsLogic.pushButtonConnectConfigureClicked()
+ NewServerProtocolsLogic.pushButtonConfigureClicked()
}
}
+
+// RoundButton {
+// id: pb_add_container
+// anchors.horizontalCenter: parent.horizontalCenter
+// anchors.top: labelCaption.bottom
+// anchors.topMargin: 10
+
+// width: parent.width - 40
+// height: 40
+// text: qsTr("Add protocol")
+// onClicked: drawer_menu.visible ? drawer_menu.close() : drawer_menu.open()
+
+// }
+
+// Drawer {
+// id: drawer_menu
+// z: -3
+
+// y: 0
+// x: 0
+// edge: Qt.RightEdge
+// width: parent.width * 0.75
+// height: parent.height
+
+// modal: true
+// interactive: true
+
+// Label {
+// text: "Content goes here!"
+// anchors.centerIn: parent
+// }
+// }
+
ScrollView {
- x: 0
- y: 70
- width: 380
- height: 471
+ id: scrollView
+ width: parent.width - 40
+ anchors.horizontalCenter: parent.horizontalCenter
+
+ anchors.top: caption.bottom
+ anchors.topMargin: 10
+
+ anchors.bottom: pushButtonConfigure.top
+ anchors.bottomMargin: 10
+
clip: true
Column {
+ width: scrollView.width
+ anchors.horizontalCenter: parent.horizontalCenter
+
spacing: 5
- Rectangle {
- x: 5
- y: 5
- width: 368
- height: frame_new_server_setting_cloak.visible ? 140 : 72
- border.width: 1
- border.color: "lightgray"
- radius: 2
- Rectangle {
- id: frame_new_server_setting_cloak
- height: 77
- width: 353
- border.width: 1
- border.color: "lightgray"
- anchors.bottom: parent.bottom
- anchors.bottomMargin: 5
- anchors.horizontalCenter: parent.horizontalCenter
- visible: false
- radius: 2
- Grid {
- anchors.fill: parent
- columns: 2
- horizontalItemAlignment: Grid.AlignHCenter
- verticalItemAlignment: Grid.AlignVCenter
- topPadding: 5
- leftPadding: 10
- spacing: 5
- LabelType {
- width: 130
- height: (parent.height - parent.spacing - parent.topPadding * 2) / 2
- text: qsTr("Port (TCP)")
- }
- TextFieldType {
- width: parent.width - 130 - parent.spacing - parent.leftPadding * 2
- height: (parent.height - parent.spacing - parent.topPadding * 2) / 2
- text: NewServerProtocolsLogic.lineEditCloakPortText
- onEditingFinished: {
- NewServerProtocolsLogic.lineEditCloakPortText = text
- }
- }
- LabelType {
- width: 130
- height: (parent.height - parent.spacing - parent.topPadding * 2) / 2
- text: qsTr("Fake Web Site")
- }
- TextFieldType {
- width: parent.width - 130 - parent.spacing - parent.leftPadding * 2
- height: (parent.height - parent.spacing - parent.topPadding * 2) / 2
- text: NewServerProtocolsLogic.lineEditCloakSiteText
- onEditingFinished: {
- NewServerProtocolsLogic.lineEditCloakSiteText = text
- }
- }
+ InstallSettingsBase {
+ containerDescription: qsTr("OpenVPN and ShadowSocks\n with masking using Cloak plugin")
+ onContainerChecked: NewServerProtocolsLogic.checkBoxCloakChecked = checked
+
+ LabelType {
+ width: 130
+ height: (parent.height - parent.spacing - parent.topPadding * 2) / 2
+ text: qsTr("Port (TCP)")
+ }
+ TextFieldType {
+ width: parent.width - 130 - parent.spacing - parent.leftPadding * 2
+ height: (parent.height - parent.spacing - parent.topPadding * 2) / 2
+ text: NewServerProtocolsLogic.lineEditCloakPortText
+ onEditingFinished: {
+ NewServerProtocolsLogic.lineEditCloakPortText = text
}
}
- Row {
- anchors.top: parent.top
- anchors.topMargin: 5
- leftPadding: 15
- rightPadding: 5
- height: 55
- width: parent.width
- CheckBoxType {
- text: qsTr("OpenVPN and ShadowSocks\n with masking using Cloak plugin")
- height: parent.height
- width: 308
- checked: NewServerProtocolsLogic.checkBoxCloakChecked
- onCheckedChanged: {
- NewServerProtocolsLogic.checkBoxCloakChecked = checked
- }
- }
- ImageButtonType {
- width: 35
- height: 35
- anchors.verticalCenter: parent.verticalCenter
- icon.source: "qrc:/images/settings.png"
- checkable: true
- checked: NewServerProtocolsLogic.pushButtonSettingsCloakChecked
- onCheckedChanged: {
- NewServerProtocolsLogic.pushButtonSettingsCloakChecked = checked
- if (checked) {
- frame_new_server_setting_cloak.visible = true
- } else {
- frame_new_server_setting_cloak.visible = false
- }
- }
+ LabelType {
+ width: 130
+ height: (parent.height - parent.spacing - parent.topPadding * 2) / 2
+ text: qsTr("Fake Web Site")
+ }
+ TextFieldType {
+ width: parent.width - 130 - parent.spacing - parent.leftPadding * 2
+ height: (parent.height - parent.spacing - parent.topPadding * 2) / 2
+ text: NewServerProtocolsLogic.lineEditCloakSiteText
+ onEditingFinished: {
+ NewServerProtocolsLogic.lineEditCloakSiteText = text
}
}
+
}
- Rectangle {
- x: 5
- y: 5
- width: 368
- height: frame_new_server_settings_ss.visible ? 140 : 72
- border.width: 1
- border.color: "lightgray"
- radius: 2
- Rectangle {
- id: frame_new_server_settings_ss
- height: 77
- width: 353
- border.width: 1
- border.color: "lightgray"
- anchors.bottom: parent.bottom
- anchors.bottomMargin: 5
- anchors.horizontalCenter: parent.horizontalCenter
- radius: 2
- visible: false
- Grid {
- anchors.fill: parent
- columns: 2
- horizontalItemAlignment: Grid.AlignHCenter
- verticalItemAlignment: Grid.AlignVCenter
- topPadding: 5
- leftPadding: 10
- spacing: 5
- LabelType {
- width: 130
- height: (parent.height - parent.spacing - parent.topPadding * 2) / 2
- text: qsTr("Port (TCP)")
- }
- TextFieldType {
- width: parent.width - 130 - parent.spacing - parent.leftPadding * 2
- height: (parent.height - parent.spacing - parent.topPadding * 2) / 2
- text: NewServerProtocolsLogic.lineEditSsPortText
- onEditingFinished: {
- NewServerProtocolsLogic.lineEditSsPortText = text
- }
- }
- LabelType {
- width: 130
- height: (parent.height - parent.spacing - parent.topPadding * 2) / 2
- text: qsTr("Encryption")
- }
- ComboBoxType {
- width: parent.width - 130 - parent.spacing - parent.leftPadding * 2
- height: (parent.height - parent.spacing - parent.topPadding * 2) / 2
- model: [
- qsTr("chacha20-ietf-poly1305"),
- qsTr("xchacha20-ietf-poly1305"),
- qsTr("aes-256-gcm"),
- qsTr("aes-192-gcm"),
- qsTr("aes-128-gcm")
- ]
- currentIndex: {
- for (let i = 0; i < model.length; ++i) {
- if (NewServerProtocolsLogic.comboBoxSsCipherText === model[i]) {
- return i
- }
- }
- return -1
- }
- onCurrentTextChanged: {
- NewServerProtocolsLogic.comboBoxSsCipherText = currentText
- }
- }
+
+ InstallSettingsBase {
+ containerDescription: qsTr("ShadowSocks")
+ onContainerChecked: NewServerProtocolsLogic.checkBoxSsChecked = checked
+
+ LabelType {
+ width: 130
+ height: (parent.height - parent.spacing - parent.topPadding * 2) / 2
+ text: qsTr("Port (TCP)")
+ }
+ TextFieldType {
+ width: parent.width - 130 - parent.spacing - parent.leftPadding * 2
+ height: (parent.height - parent.spacing - parent.topPadding * 2) / 2
+ text: NewServerProtocolsLogic.lineEditSsPortText
+ onEditingFinished: {
+ NewServerProtocolsLogic.lineEditSsPortText = text
}
}
- Row {
- anchors.top: parent.top
- anchors.topMargin: 5
- leftPadding: 15
- rightPadding: 5
- height: 55
- width: parent.width
- CheckBoxType {
- text: qsTr("ShadowSocks")
- height: parent.height
- width: 308
- checked: NewServerProtocolsLogic.checkBoxSsChecked
- onCheckedChanged: {
- NewServerProtocolsLogic.checkBoxSsChecked = checked
- }
- }
- ImageButtonType {
- width: 35
- height: 35
- anchors.verticalCenter: parent.verticalCenter
- icon.source: "qrc:/images/settings.png"
- checked: NewServerProtocolsLogic.pushButtonSettingsSsChecked
- checkable: true
- onCheckedChanged: {
- NewServerProtocolsLogic.pushButtonSettingsSsChecked = checked
- if (checked) {
- frame_new_server_settings_ss.visible = true
- } else {
- frame_new_server_settings_ss.visible = false
+ LabelType {
+ width: 130
+ height: (parent.height - parent.spacing - parent.topPadding * 2) / 2
+ text: qsTr("Encryption")
+ }
+ ComboBoxType {
+ width: parent.width - 130 - parent.spacing - parent.leftPadding * 2
+ height: (parent.height - parent.spacing - parent.topPadding * 2) / 2
+ model: [
+ qsTr("chacha20-ietf-poly1305"),
+ qsTr("xchacha20-ietf-poly1305"),
+ qsTr("aes-256-gcm"),
+ qsTr("aes-192-gcm"),
+ qsTr("aes-128-gcm")
+ ]
+ currentIndex: {
+ for (let i = 0; i < model.length; ++i) {
+ if (NewServerProtocolsLogic.comboBoxSsCipherText === model[i]) {
+ return i
}
}
+ return -1
+ }
+ onCurrentTextChanged: {
+ NewServerProtocolsLogic.comboBoxSsCipherText = currentText
}
}
+
}
- Rectangle {
- x: 5
- y: 5
- width: 368
- height: frame_new_server_settings_openvpn.visible ? 140 : 72
- border.width: 1
- border.color: "lightgray"
- radius: 2
- Rectangle {
- id: frame_new_server_settings_openvpn
- height: 77
- width: 353
- border.width: 1
- border.color: "lightgray"
- anchors.bottom: parent.bottom
- anchors.bottomMargin: 5
- anchors.horizontalCenter: parent.horizontalCenter
- radius: 2
- visible: false
- Grid {
- anchors.fill: parent
- columns: 2
- horizontalItemAlignment: Grid.AlignHCenter
- verticalItemAlignment: Grid.AlignVCenter
- topPadding: 5
- leftPadding: 10
- spacing: 5
- LabelType {
- width: 130
- height: (parent.height - parent.spacing - parent.topPadding * 2) / 2
- text: qsTr("Port (TCP)")
- }
- TextFieldType {
- width: parent.width - 130 - parent.spacing - parent.leftPadding * 2
- height: (parent.height - parent.spacing - parent.topPadding * 2) / 2
- text: NewServerProtocolsLogic.lineEditOpenvpnPortText
- onEditingFinished: {
- NewServerProtocolsLogic.lineEditOpenvpnPortText = text
- }
- }
- LabelType {
- width: 130
- height: (parent.height - parent.spacing - parent.topPadding * 2) / 2
- text: qsTr("Protocol")
- }
- ComboBoxType {
- width: parent.width - 130 - parent.spacing - parent.leftPadding * 2
- height: (parent.height - parent.spacing - parent.topPadding * 2) / 2
- model: [
- qsTr("udp"),
- qsTr("tcp"),
- ]
- currentIndex: {
- for (let i = 0; i < model.length; ++i) {
- if (NewServerProtocolsLogic.comboBoxOpenvpnProtoText === model[i]) {
- return i
- }
- }
- return -1
- }
- onCurrentTextChanged: {
- NewServerProtocolsLogic.comboBoxOpenvpnProtoText = currentText
- }
- }
+
+ InstallSettingsBase {
+ containerDescription: qsTr("OpenVPN")
+ onContainerChecked: NewServerProtocolsLogic.checkBoxOpenVpnChecked = checked
+
+ LabelType {
+ width: 130
+ height: (parent.height - parent.spacing - parent.topPadding * 2) / 2
+ text: qsTr("Port (TCP/UDP)")
+ }
+ TextFieldType {
+ width: parent.width - 130 - parent.spacing - parent.leftPadding * 2
+ height: (parent.height - parent.spacing - parent.topPadding * 2) / 2
+ text: NewServerProtocolsLogic.lineEditOpenvpnPortText
+ onEditingFinished: {
+ NewServerProtocolsLogic.lineEditOpenvpnPortText = text
}
}
- Row {
- anchors.top: parent.top
- anchors.topMargin: 5
- leftPadding: 15
- rightPadding: 5
- height: 55
- width: parent.width
- CheckBoxType {
- text: qsTr("OpenVPN")
- height: parent.height
- width: 308
- checked: NewServerProtocolsLogic.checkBoxOpenvpnChecked
- onCheckedChanged: {
- NewServerProtocolsLogic.checkBoxOpenvpnChecked = checked
- }
- }
- ImageButtonType {
- width: 35
- height: 35
- anchors.verticalCenter: parent.verticalCenter
- icon.source: "qrc:/images/settings.png"
- checked: NewServerProtocolsLogic.pushButtonSettingsOpenvpnChecked
- checkable: true
- onCheckedChanged: {
- NewServerProtocolsLogic.pushButtonSettingsOpenvpnChecked = checked
- if (checked) {
- frame_new_server_settings_openvpn.visible = true
- } else {
- frame_new_server_settings_openvpn.visible = false
+ LabelType {
+ width: 130
+ height: (parent.height - parent.spacing - parent.topPadding * 2) / 2
+ text: qsTr("Protocol")
+ }
+ ComboBoxType {
+ width: parent.width - 130 - parent.spacing - parent.leftPadding * 2
+ height: (parent.height - parent.spacing - parent.topPadding * 2) / 2
+ model: [
+ qsTr("udp"),
+ qsTr("tcp"),
+ ]
+ currentIndex: {
+ for (let i = 0; i < model.length; ++i) {
+ if (NewServerProtocolsLogic.comboBoxOpenvpnProtoText === model[i]) {
+ return i
}
}
+ return -1
+ }
+ onCurrentTextChanged: {
+ NewServerProtocolsLogic.comboBoxOpenvpnProtoText = currentText
}
}
+
}
- Rectangle {
- id: frame_new_server_settings_parent_wireguard
- visible: NewServerProtocolsLogic.frameSettingsParentWireguardVisible
- x: 5
- y: 5
- width: 368
- height: frame_new_server_settings_wireguard.visible ? 109 : 72
- border.width: 1
- border.color: "lightgray"
- radius: 2
- Rectangle {
- id: frame_new_server_settings_wireguard
- height: 46
- width: 353
- border.width: 1
- border.color: "lightgray"
- anchors.bottom: parent.bottom
- anchors.bottomMargin: 5
- anchors.horizontalCenter: parent.horizontalCenter
- radius: 2
- visible: false
- Grid {
- anchors.fill: parent
- columns: 2
- horizontalItemAlignment: Grid.AlignHCenter
- verticalItemAlignment: Grid.AlignVCenter
- topPadding: 5
- leftPadding: 10
- spacing: 5
- LabelType {
- width: 130
- height: (parent.height - parent.spacing - parent.topPadding * 2)
- text: qsTr("Port (TCP)")
- }
- TextFieldType {
- width: parent.width - 130 - parent.spacing - parent.leftPadding * 2
- height: (parent.height - parent.spacing - parent.topPadding * 2)
- text: "32767"
- }
- }
+
+ InstallSettingsBase {
+ visible: false
+ containerDescription: qsTr("WireGuard")
+ onContainerChecked: NewServerProtocolsLogic.checkBoxWireGuardChecked = checked
+
+ LabelType {
+ width: 130
+ height: (parent.height - parent.spacing - parent.topPadding * 2)
+ text: qsTr("Port (UDP)")
}
- Row {
- anchors.top: parent.top
- anchors.topMargin: 5
- leftPadding: 15
- rightPadding: 5
- height: 55
- width: parent.width
- CheckBoxType {
- text: qsTr("WireGuard")
- height: parent.height
- width: 308
- }
- ImageButtonType {
- width: 35
- height: 35
- anchors.verticalCenter: parent.verticalCenter
- icon.source: "qrc:/images/settings.png"
- checkable: true
- onCheckedChanged: {
- if (checked) {
- frame_new_server_settings_wireguard.visible = true
- } else {
- frame_new_server_settings_wireguard.visible = false
- }
- }
- }
+ TextFieldType {
+ width: parent.width - 130 - parent.spacing - parent.leftPadding * 2
+ height: (parent.height - parent.spacing - parent.topPadding * 2)
+ text: "32767"
}
}
}
diff --git a/client/ui/qml/Pages/PageServerContainers.qml b/client/ui/qml/Pages/PageServerContainers.qml
index 0a3d4876..3efc920c 100644
--- a/client/ui/qml/Pages/PageServerContainers.qml
+++ b/client/ui/qml/Pages/PageServerContainers.qml
@@ -10,18 +10,8 @@ Item {
BackButton {
id: back
}
- Text {
- font.family: "Lato"
- font.styleName: "normal"
- font.pixelSize: 24
- color: "#100A44"
- horizontalAlignment: Text.AlignHCenter
- verticalAlignment: Text.AlignVCenter
+ Caption {
text: qsTr("Protocols")
- x: 10
- y: 35
- width: 361
- height: 31
}
ProgressBar {
id: progress_bar
diff --git a/client/ui/qml/Pages/PageServerList.qml b/client/ui/qml/Pages/PageServerList.qml
index 73135579..44d515de 100644
--- a/client/ui/qml/Pages/PageServerList.qml
+++ b/client/ui/qml/Pages/PageServerList.qml
@@ -11,22 +11,15 @@ Item {
BackButton {
id: back
}
- Text {
- font.family: "Lato"
- font.styleName: "normal"
- font.pixelSize: 24
- color: "#100A44"
- horizontalAlignment: Text.AlignRight
- verticalAlignment: Text.AlignVCenter
+ Caption {
+ id: caption
text: qsTr("Servers list")
- x: 50
- y: 30
- width: 171
- height: 40
}
ImageButtonType {
x: 240
y: 39
+ anchors.left: caption.right
+ anchors.leftMargin: 10
width: 24
height: 24
icon.source: "qrc:/images/plus.png"
diff --git a/client/ui/qml/Pages/PageServerSettings.qml b/client/ui/qml/Pages/PageServerSettings.qml
index eaf39748..0b37ca5e 100644
--- a/client/ui/qml/Pages/PageServerSettings.qml
+++ b/client/ui/qml/Pages/PageServerSettings.qml
@@ -12,18 +12,9 @@ Item {
BackButton {
id: back
}
- Text {
- font.family: "Lato"
- font.styleName: "normal"
- font.pixelSize: 24
- color: "#100A44"
- horizontalAlignment: Text.AlignHCenter
- verticalAlignment: Text.AlignVCenter
+ Caption {
text: qsTr("Server settings")
anchors.horizontalCenter: parent.horizontalCenter
- y: 35
- width: 361
- height: 31
}
Image {
anchors.horizontalCenter: root.horizontalCenter
diff --git a/client/ui/qml/Pages/PageSetupWizard.qml b/client/ui/qml/Pages/PageSetupWizard.qml
index ab3cb5ab..a1c8705b 100644
--- a/client/ui/qml/Pages/PageSetupWizard.qml
+++ b/client/ui/qml/Pages/PageSetupWizard.qml
@@ -10,18 +10,8 @@ Item {
BackButton {
id: back_from_setup_wizard
}
- Text {
- font.family: "Lato"
- font.styleName: "normal"
- font.pixelSize: 24
- color: "#100A44"
- horizontalAlignment: Text.AlignHCenter
- verticalAlignment: Text.AlignVCenter
+ Caption {
text: qsTr("Setup your server to use VPN")
- x: 10
- y: 35
- width: 361
- height: 31
}
Item {
x: 10
diff --git a/client/ui/qml/Pages/PageSetupWizardHighLevel.qml b/client/ui/qml/Pages/PageSetupWizardHighLevel.qml
index 9a676146..7bf56bb0 100644
--- a/client/ui/qml/Pages/PageSetupWizardHighLevel.qml
+++ b/client/ui/qml/Pages/PageSetupWizardHighLevel.qml
@@ -10,18 +10,8 @@ Item {
BackButton {
id: back_from_setup_wizard
}
- Text {
- font.family: "Lato"
- font.styleName: "normal"
- font.pixelSize: 24
- color: "#100A44"
- horizontalAlignment: Text.AlignHCenter
- verticalAlignment: Text.AlignVCenter
+ Caption {
text: qsTr("Setup Wizard")
- x: 10
- y: 35
- width: 361
- height: 31
}
Item {
x: 10
diff --git a/client/ui/qml/Pages/PageSetupWizardLowLevel.qml b/client/ui/qml/Pages/PageSetupWizardLowLevel.qml
index 9bbfd585..d05d605e 100644
--- a/client/ui/qml/Pages/PageSetupWizardLowLevel.qml
+++ b/client/ui/qml/Pages/PageSetupWizardLowLevel.qml
@@ -9,18 +9,8 @@ Item {
BackButton {
id: back_from_setup_wizard
}
- Text {
- font.family: "Lato"
- font.styleName: "normal"
- font.pixelSize: 24
- color: "#100A44"
- horizontalAlignment: Text.AlignHCenter
- verticalAlignment: Text.AlignVCenter
+ Caption {
text: qsTr("Setup Wizard")
- x: 10
- y: 35
- width: 361
- height: 31
}
Item {
x: 10
diff --git a/client/ui/qml/Pages/PageSetupWizardMediumLevel.qml b/client/ui/qml/Pages/PageSetupWizardMediumLevel.qml
index eaf0d5ef..17f6da49 100644
--- a/client/ui/qml/Pages/PageSetupWizardMediumLevel.qml
+++ b/client/ui/qml/Pages/PageSetupWizardMediumLevel.qml
@@ -7,29 +7,11 @@ import "../Config"
Item {
id: root
- ImageButtonType {
+ BackButton {
id: back_from_setup_wizard
- x: 10
- y: 10
- width: 26
- height: 20
- icon.source: "qrc:/images/arrow_left.png"
- onClicked: {
- UiLogic.closePage()
- }
}
- Text {
- font.family: "Lato"
- font.styleName: "normal"
- font.pixelSize: 24
- color: "#100A44"
- horizontalAlignment: Text.AlignHCenter
- verticalAlignment: Text.AlignVCenter
+ Caption {
text: qsTr("Setup Wizard")
- x: 10
- y: 35
- width: 361
- height: 31
}
Item {
x: 10
diff --git a/client/ui/qml/Pages/PageSetupWizardVPNMode.qml b/client/ui/qml/Pages/PageSetupWizardVPNMode.qml
index 2a5b3a88..df81fae0 100644
--- a/client/ui/qml/Pages/PageSetupWizardVPNMode.qml
+++ b/client/ui/qml/Pages/PageSetupWizardVPNMode.qml
@@ -9,18 +9,8 @@ Item {
BackButton {
id: back_from_setup_wizard
}
- Text {
- font.family: "Lato"
- font.styleName: "normal"
- font.pixelSize: 24
- color: "#100A44"
- horizontalAlignment: Text.AlignHCenter
- verticalAlignment: Text.AlignVCenter
+ Caption {
text: qsTr("Setup Wizard")
- x: 10
- y: 35
- width: 361
- height: 31
}
Item {
x: 10
diff --git a/client/ui/qml/Pages/PageStart.qml b/client/ui/qml/Pages/PageStart.qml
index bc3ea304..d6e5dbcc 100644
--- a/client/ui/qml/Pages/PageStart.qml
+++ b/client/ui/qml/Pages/PageStart.qml
@@ -9,20 +9,28 @@ Item {
BackButton {
id: back_from_start
}
- Image {
- anchors.horizontalCenter: root.horizontalCenter
- width: GC.trW(150)
- height: GC.trH(22)
- y: GC.trY(590)
- source: "qrc:/images/AmneziaVPN.png"
+
+ Caption {
+ id: caption
+ text: start_switch_page.checked ?
+ qsTr("Setup your server to use VPN") :
+ qsTr("Connect to the already created VPN server")
+ }
+
+ Logo {
+ id: logo
}
BasicButtonType {
id: start_switch_page
anchors.horizontalCenter: parent.horizontalCenter
- y: 530
- width: 301
+ anchors.bottom: logo.top
+ anchors.bottomMargin: 10
+
+ width: parent.width - 80
height: 40
+ anchors.topMargin: 20
+
text: qsTr("Set up your own server")
checked: false
checkable: true
@@ -60,239 +68,203 @@ Item {
}
+ Item {
+ id: page_start_import
+ width: parent.width
+ anchors.top: caption.bottom
+ anchors.bottom: start_switch_page.top
+ anchors.bottomMargin: 10
- Item {
- id: page_start_import
- width: 380
- height: 481
- x: 0
- y: 35
- visible: true
- Text {
- x: 0
- y: 20
- width: 381
- height: 71
+ visible: true
+
+ LabelType {
+ id: label_connection_code
+ anchors.top: parent.top
+ anchors.topMargin: 20
+ text: qsTr("Connection code")
+ }
+ TextFieldType {
+ id: lineEdit_start_existing_code
+ anchors.top: label_connection_code.bottom
+ anchors.horizontalCenter: parent.horizontalCenter
+ placeholderText: "vpn://..."
+ text: StartPageLogic.lineEditStartExistingCodeText
+ onEditingFinished: {
+ StartPageLogic.lineEditStartExistingCodeText = text
+ }
+ }
+ BlueButtonType {
+ id: new_sever_import
+ anchors.horizontalCenter: parent.horizontalCenter
+ y: 210
+ anchors.top: lineEdit_start_existing_code.bottom
+ anchors.topMargin: 40
+ text: qsTr("Connect")
+ onClicked: {
+ StartPageLogic.onPushButtonImport()
+ }
+ }
+ }
+
+
+ Item {
+ id: page_start_new_server
+ width: parent.width
+ anchors.top: caption.bottom
+ anchors.bottom: start_switch_page.top
+ anchors.bottomMargin: 10
+
+ visible: false
+
+ BasicButtonType {
+ id: new_sever_get_info
+ width: parent.width - 80
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.top: parent.top
+ anchors.topMargin: 5
+
+ text: qsTr("Where to get connection data →")
+ background: Item {
+ anchors.fill: parent
+ }
+
+ contentItem: Text {
+ anchors.fill: parent
font.family: "Lato"
font.styleName: "normal"
- font.pixelSize: 24
- font.bold: true
- color: "#100A44"
+ font.pixelSize: 16
+ color: "#15CDCB";
+ text: new_sever_get_info.text
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
- text: qsTr("Connect to the already created VPN server")
- wrapMode: Text.Wrap
}
- LabelType {
- x: 40
- y: 110
- width: 301
- height: 21
- horizontalAlignment: Text.AlignLeft
- verticalAlignment: Text.AlignVCenter
- text: qsTr("Connection code")
- wrapMode: Text.Wrap
+ antialiasing: true
+ checkable: true
+ checked: true
+ onClicked: {
+ Qt.openUrlExternally("https://amnezia.org")
}
- TextFieldType {
- id: lineEdit_start_existing_code
- x: 40
- y: 140
- width: 300
- height: 40
- placeholderText: "vpn://..."
- text: StartPageLogic.lineEditStartExistingCodeText
- onEditingFinished: {
- StartPageLogic.lineEditStartExistingCodeText = text
- }
- }
- BlueButtonType {
- id: new_sever_import
- anchors.horizontalCenter: parent.horizontalCenter
- y: 210
- width: 301
- height: 40
- text: qsTr("Connect")
- onClicked: {
- StartPageLogic.onPushButtonImport()
- }
+ }
+ LabelType {
+ id: label_server_ip
+ x: 40
+ anchors.top: new_sever_get_info.bottom
+ text: qsTr("Server IP address")
+ }
+ TextFieldType {
+ id: new_server_ip
+ anchors.top: label_server_ip.bottom
+ anchors.horizontalCenter: parent.horizontalCenter
+ text: StartPageLogic.lineEditIpText
+ onEditingFinished: {
+ StartPageLogic.lineEditIpText = text
}
}
+ LabelType {
+ id:label_login
+ x: 40
+ anchors.top: new_server_ip.bottom
+ text: qsTr("Login to connect via SSH")
+ }
+ TextFieldType {
+ id: new_server_login
+ anchors.top: label_login.bottom
+ anchors.horizontalCenter: parent.horizontalCenter
+ text: StartPageLogic.lineEditLoginText
+ onEditingFinished: {
+ StartPageLogic.lineEditLoginText = text
+ }
+ }
- Item {
- id: page_start_new_server
- width: 380
- height: 481
- x: 0
- y: 35
+ LabelType {
+ id: label_new_server_password
+ x: 40
+ anchors.top: new_server_login.bottom
+ text: qsTr("Password")
+ }
+ TextFieldType {
+ id: new_server_password
+ anchors.top: label_new_server_password.bottom
+ anchors.horizontalCenter: parent.horizontalCenter
+ echoMode: TextInput.Password
+ text: StartPageLogic.lineEditPasswordText
+ onEditingFinished: {
+ StartPageLogic.lineEditPasswordText = text
+ }
+ }
+ TextFieldType {
+ id: new_server_ssh_key
+ anchors.top: label_new_server_password.bottom
+ anchors.horizontalCenter: parent.horizontalCenter
+
+ height: 71
+ echoMode: TextInput.Password
+ font.pixelSize: 9
+ verticalAlignment: Text.AlignTop
+ text: StartPageLogic.textEditSshKeyText
+ onEditingFinished: {
+ StartPageLogic.textEditSshKeyText = text
+ }
visible: false
- Label {
- x:10
- y:0
- width: 361
- height: 31
+ }
+
+ LabelType {
+ x: 40
+ y: 390
+ width: 301
+ height: 41
+ text: StartPageLogic.labelWaitInfoText
+ visible: StartPageLogic.labelWaitInfoVisible
+ wrapMode: Text.Wrap
+ }
+
+
+
+ BlueButtonType {
+ id: new_sever_connect
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.top: new_server_ssh_key.bottom
+
+ text: StartPageLogic.pushButtonConnectText
+ visible: StartPageLogic.pushButtonConnectVisible
+ onClicked: {
+ StartPageLogic.onPushButtonConnect()
+ }
+ enabled: StartPageLogic.pushButtonConnectEnabled
+ }
+ BasicButtonType {
+ id: new_sever_connect_key
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.top: new_sever_connect.bottom
+
+ width: 281
+ height: 21
+ text: qsTr("Connect using SSH key")
+ background: Item {
+ anchors.fill: parent
+ }
+
+ contentItem: Text {
+ anchors.fill: parent
font.family: "Lato"
font.styleName: "normal"
- font.pixelSize: 24
- font.bold: true
- color: "#100A44"
+ font.pixelSize: 16
+ color: "#15CDCB";
+ text: new_sever_connect_key.text
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
- text: qsTr("Setup your server to use VPN")
- wrapMode: Text.Wrap
}
- LabelType {
- x: 40
- y: 70
- width: 171
- height: 21
- text: qsTr("Server IP address")
- }
- LabelType {
- x: 40
- y: 150
- width: 261
- height: 21
- text: qsTr("Login to connect via SSH")
- }
- LabelType {
- id: label_new_server_password
- x: 40
- y: 230
- width: 171
- height: 21
- text: qsTr("Password")
- }
- LabelType {
- x: 40
- y: 390
- width: 301
- height: 41
- text: StartPageLogic.labelWaitInfoText
- visible: StartPageLogic.labelWaitInfoVisible
- wrapMode: Text.Wrap
- }
- TextFieldType {
- id: new_server_ip
- x: 40
- y: 100
- width: 300
- height: 40
- text: StartPageLogic.lineEditIpText
- onEditingFinished: {
- StartPageLogic.lineEditIpText = text
- }
- }
- TextFieldType {
- id: new_server_login
- x: 40
- y: 180
- width: 300
- height: 40
- text: StartPageLogic.lineEditLoginText
- onEditingFinished: {
- StartPageLogic.lineEditLoginText = text
- }
- }
- TextFieldType {
- id: new_server_password
- x: 40
- y: 260
- width: 300
- height: 40
- echoMode: TextInput.Password
- text: StartPageLogic.lineEditPasswordText
- onEditingFinished: {
- StartPageLogic.lineEditPasswordText = text
- }
- }
- BlueButtonType {
- id: new_sever_connect
- anchors.horizontalCenter: parent.horizontalCenter
- y: 350
- width: 301
- height: 40
- text: StartPageLogic.pushButtonConnectText
- visible: StartPageLogic.pushButtonConnectVisible
- onClicked: {
- StartPageLogic.onPushButtonConnect()
- }
- enabled: StartPageLogic.pushButtonConnectEnabled
- }
- BasicButtonType {
- id: new_sever_connect_key
- anchors.horizontalCenter: parent.horizontalCenter
- y: 450
- width: 281
- height: 21
- text: qsTr("Connect using SSH key")
- background: Item {
- anchors.fill: parent
- }
-
- contentItem: Text {
- anchors.fill: parent
- font.family: "Lato"
- font.styleName: "normal"
- font.pixelSize: 16
- color: "#15CDCB";
- text: new_sever_connect_key.text
- horizontalAlignment: Text.AlignHCenter
- verticalAlignment: Text.AlignVCenter
- }
- antialiasing: true
- checkable: true
- checked: StartPageLogic.pushButtonConnectKeyChecked
- onCheckedChanged: {
- StartPageLogic.pushButtonConnectKeyChecked = checked
- label_new_server_password.text = checked ? qsTr("Private key") : qsTr("Password")
- new_sever_connect_key.text = checked ? qsTr("Connect using SSH password") : qsTr("Connect using SSH key")
- new_server_password.visible = !checked
- new_server_ssh_key.visible = checked
- }
- }
- BasicButtonType {
- id: new_sever_get_info
- anchors.horizontalCenter: parent.horizontalCenter
- y: 40
- width: 281
- height: 21
- text: qsTr("Where to get connection data →")
- background: Item {
- anchors.fill: parent
- }
-
- contentItem: Text {
- anchors.fill: parent
- font.family: "Lato"
- font.styleName: "normal"
- font.pixelSize: 16
- color: "#15CDCB";
- text: new_sever_get_info.text
- horizontalAlignment: Text.AlignHCenter
- verticalAlignment: Text.AlignVCenter
- }
- antialiasing: true
- checkable: true
- checked: true
- onClicked: {
- Qt.openUrlExternally("https://amnezia.org")
- }
- }
- TextFieldType {
- id: new_server_ssh_key
- x: 40
- y: 260
- width: 300
- height: 71
- echoMode: TextInput.Password
- font.pixelSize: 9
- verticalAlignment: Text.AlignTop
- text: StartPageLogic.textEditSshKeyText
- onEditingFinished: {
- StartPageLogic.textEditSshKeyText = text
- }
- visible: false
+ antialiasing: true
+ checkable: true
+ checked: StartPageLogic.pushButtonConnectKeyChecked
+ onCheckedChanged: {
+ StartPageLogic.pushButtonConnectKeyChecked = checked
+ label_new_server_password.text = checked ? qsTr("Private key") : qsTr("Password")
+ new_sever_connect_key.text = checked ? qsTr("Connect using SSH password") : qsTr("Connect using SSH key")
+ new_server_password.visible = !checked
+ new_server_ssh_key.visible = checked
}
}
+ }
}