parent
7730dd510c
commit
5f631eaa76
23 changed files with 1814 additions and 1657 deletions
|
@ -63,10 +63,10 @@ qt6_add_resources(QRC ${QRC} ${CMAKE_CURRENT_LIST_DIR}/resources.qrc)
|
||||||
set(CMAKE_AUTORCC ON)
|
set(CMAKE_AUTORCC ON)
|
||||||
|
|
||||||
set(AMNEZIAVPN_TS_FILES
|
set(AMNEZIAVPN_TS_FILES
|
||||||
${CMAKE_CURRENT_LIST_DIR}/translations/amneziavpn_ru.ts
|
${CMAKE_CURRENT_LIST_DIR}/translations/amneziavpn_ru_RU.ts
|
||||||
${CMAKE_CURRENT_LIST_DIR}/translations/amneziavpn_zh_CN.ts
|
${CMAKE_CURRENT_LIST_DIR}/translations/amneziavpn_zh_CN.ts
|
||||||
${CMAKE_CURRENT_LIST_DIR}/translations/amneziavpn_fa_IR.ts
|
${CMAKE_CURRENT_LIST_DIR}/translations/amneziavpn_fa_IR.ts
|
||||||
${CMAKE_CURRENT_LIST_DIR}/translations/amneziavpn_ar.ts
|
${CMAKE_CURRENT_LIST_DIR}/translations/amneziavpn_ar_EG.ts
|
||||||
${CMAKE_CURRENT_LIST_DIR}/translations/amneziavpn_my_MM.ts
|
${CMAKE_CURRENT_LIST_DIR}/translations/amneziavpn_my_MM.ts
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -213,7 +213,11 @@ QMap<DockerContainer, QString> ContainerProps::containerDetailedDescriptions()
|
||||||
|
|
||||||
{ DockerContainer::TorWebSite, QObject::tr("Website in Tor network") },
|
{ DockerContainer::TorWebSite, QObject::tr("Website in Tor network") },
|
||||||
{ DockerContainer::Dns, QObject::tr("DNS Service") },
|
{ DockerContainer::Dns, QObject::tr("DNS Service") },
|
||||||
{ DockerContainer::Sftp, QObject::tr("Sftp file sharing service - is secure FTP service") }
|
{ DockerContainer::Sftp,
|
||||||
|
QObject::tr("After installation, Amnezia will create a\n\n file storage on your server. "
|
||||||
|
"You will be able to access it using\n FileZilla or other SFTP clients, "
|
||||||
|
"as well as mount the disk on your device to access\n it directly from your device.\n\n"
|
||||||
|
"For more detailed information, you can\n find it in the support section under \"Create SFTP file storage.\" ") }
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
5
client/images/controls/alert-circle.svg
Normal file
5
client/images/controls/alert-circle.svg
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z" stroke="#D7D8DB" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||||
|
<path d="M12 8V12" stroke="#D7D8DB" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||||
|
<path d="M12 16H12.01" stroke="#D7D8DB" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 518 B |
5
client/images/controls/file-check-2.svg
Normal file
5
client/images/controls/file-check-2.svg
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M4 22H18C18.5304 22 19.0391 21.7893 19.4142 21.4142C19.7893 21.0391 20 20.5304 20 20V7.5L14.5 2H6C5.46957 2 4.96086 2.21071 4.58579 2.58579C4.21071 2.96086 4 3.46957 4 4V8" stroke="#D7D8DB" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||||
|
<path d="M14 2V8H20" stroke="#D7D8DB" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||||
|
<path d="M3 15L5 17L9 13" stroke="#D7D8DB" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 581 B |
|
@ -228,5 +228,8 @@
|
||||||
<file>ui/qml/Components/HomeSplitTunnelingDrawer.qml</file>
|
<file>ui/qml/Components/HomeSplitTunnelingDrawer.qml</file>
|
||||||
<file>images/controls/split-tunneling.svg</file>
|
<file>images/controls/split-tunneling.svg</file>
|
||||||
<file>ui/qml/Controls2/DrawerType2.qml</file>
|
<file>ui/qml/Controls2/DrawerType2.qml</file>
|
||||||
|
<file>images/controls/alert-circle.svg</file>
|
||||||
|
<file>images/controls/file-check-2.svg</file>
|
||||||
|
<file>ui/qml/Controls2/WarningType.qml</file>
|
||||||
</qresource>
|
</qresource>
|
||||||
</RCC>
|
</RCC>
|
||||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
51
client/ui/qml/Controls2/WarningType.qml
Normal file
51
client/ui/qml/Controls2/WarningType.qml
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
import QtQuick
|
||||||
|
import QtQuick.Controls
|
||||||
|
import QtQuick.Layouts
|
||||||
|
|
||||||
|
import "TextTypes"
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
property string textColor: "#D7D8DB"
|
||||||
|
property string backGroundColor: "#1C1D21"
|
||||||
|
property string textString
|
||||||
|
|
||||||
|
property string iconPath
|
||||||
|
property real iconWidth: 16
|
||||||
|
property real iconHeight: 16
|
||||||
|
|
||||||
|
color: backGroundColor
|
||||||
|
radius: 8
|
||||||
|
implicitHeight: content.implicitHeight + content.anchors.topMargin + content.anchors.bottomMargin
|
||||||
|
|
||||||
|
RowLayout {
|
||||||
|
id: content
|
||||||
|
width: parent.width
|
||||||
|
anchors.fill: parent
|
||||||
|
|
||||||
|
anchors.leftMargin: 16
|
||||||
|
anchors.rightMargin: 16
|
||||||
|
anchors.topMargin: 8
|
||||||
|
anchors.bottomMargin: 8
|
||||||
|
|
||||||
|
spacing: 0
|
||||||
|
|
||||||
|
Image {
|
||||||
|
Layout.alignment: Qt.AlignTop
|
||||||
|
|
||||||
|
width: iconWidth
|
||||||
|
height: iconHeight
|
||||||
|
|
||||||
|
source: iconPath
|
||||||
|
}
|
||||||
|
|
||||||
|
CaptionTextType {
|
||||||
|
id: supportingText
|
||||||
|
|
||||||
|
Layout.fillWidth: true
|
||||||
|
Layout.leftMargin: 8
|
||||||
|
|
||||||
|
text: textString
|
||||||
|
color: textColor
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -325,7 +325,7 @@ PageType {
|
||||||
|
|
||||||
onClicked: {
|
onClicked: {
|
||||||
var headerText = qsTr("Remove AmneziaWG from server?")
|
var headerText = qsTr("Remove AmneziaWG from server?")
|
||||||
var descriptionText = qsTr("All users with whom you shared a connection will no longer be able to connect to it.")
|
var descriptionText = qsTr("All users with whom you shared a connection with will no longer be able to connect to it.")
|
||||||
var yesButtonText = qsTr("Continue")
|
var yesButtonText = qsTr("Continue")
|
||||||
var noButtonText = qsTr("Cancel")
|
var noButtonText = qsTr("Cancel")
|
||||||
|
|
||||||
|
@ -359,15 +359,24 @@ PageType {
|
||||||
|
|
||||||
text: qsTr("Save")
|
text: qsTr("Save")
|
||||||
|
|
||||||
clickedFunc: function() {
|
onClicked: {
|
||||||
forceActiveFocus()
|
var headerText = qsTr("Save settings?")
|
||||||
PageController.goToPage(PageEnum.PageSetupWizardInstalling);
|
var descriptionText = qsTr("All users with whom you shared a connection with will no longer be able to connect to it.")
|
||||||
InstallController.updateContainer(AwgConfigModel.getConfig())
|
var yesButtonText = qsTr("Continue")
|
||||||
|
var noButtonText = qsTr("Cancel")
|
||||||
|
|
||||||
|
var yesButtonFunction = function() {
|
||||||
|
forceActiveFocus()
|
||||||
|
PageController.goToPage(PageEnum.PageSetupWizardInstalling);
|
||||||
|
InstallController.updateContainer(AwgConfigModel.getConfig())
|
||||||
|
}
|
||||||
|
var noButtonFunction = function() {
|
||||||
|
}
|
||||||
|
showQuestionDrawer(headerText, descriptionText, yesButtonText, noButtonText, yesButtonFunction, noButtonFunction)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -382,7 +382,7 @@ PageType {
|
||||||
|
|
||||||
clickedFunc: function() {
|
clickedFunc: function() {
|
||||||
var headerText = qsTr("Remove OpenVpn from server?")
|
var headerText = qsTr("Remove OpenVpn from server?")
|
||||||
var descriptionText = qsTr("All users with whom you shared a connection will no longer be able to connect to it.")
|
var descriptionText = qsTr("All users with whom you shared a connection with will no longer be able to connect to it.")
|
||||||
var yesButtonText = qsTr("Continue")
|
var yesButtonText = qsTr("Continue")
|
||||||
var noButtonText = qsTr("Cancel")
|
var noButtonText = qsTr("Cancel")
|
||||||
|
|
||||||
|
|
|
@ -182,7 +182,7 @@ PageType {
|
||||||
|
|
||||||
clickedFunction: function() {
|
clickedFunction: function() {
|
||||||
var headerText = qsTr("Remove %1 from server?").arg(ContainersModel.getCurrentlyProcessedContainerName())
|
var headerText = qsTr("Remove %1 from server?").arg(ContainersModel.getCurrentlyProcessedContainerName())
|
||||||
var descriptionText = qsTr("All users with whom you shared a connection will no longer be able to connect to it.")
|
var descriptionText = qsTr("All users with whom you shared a connection with will no longer be able to connect to it.")
|
||||||
var yesButtonText = qsTr("Continue")
|
var yesButtonText = qsTr("Continue")
|
||||||
var noButtonText = qsTr("Cancel")
|
var noButtonText = qsTr("Cancel")
|
||||||
|
|
||||||
|
|
|
@ -121,7 +121,7 @@ PageType {
|
||||||
LabelWithButtonType {
|
LabelWithButtonType {
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
|
||||||
text: qsTr("Login")
|
text: qsTr("User name")
|
||||||
descriptionText: username
|
descriptionText: username
|
||||||
|
|
||||||
descriptionOnTop: true
|
descriptionOnTop: true
|
||||||
|
|
|
@ -68,44 +68,10 @@ PageType {
|
||||||
height: 20
|
height: 20
|
||||||
font.pixelSize: 14
|
font.pixelSize: 14
|
||||||
|
|
||||||
text: qsTr("This is a free and open source application. If you like it, support the developers with a donation. ") +
|
text: qsTr("Amnezia is a free and open-source application. You can support the developers if you like it.")
|
||||||
qsTr("And if you don’t like the application, all the more reason to support it - the donation will be used for the improving the application.")
|
|
||||||
color: "#CCCAC8"
|
color: "#CCCAC8"
|
||||||
}
|
}
|
||||||
|
|
||||||
BasicButtonType {
|
|
||||||
Layout.fillWidth: true
|
|
||||||
Layout.topMargin: 24
|
|
||||||
Layout.leftMargin: 16
|
|
||||||
Layout.rightMargin: 16
|
|
||||||
|
|
||||||
text: qsTr("Card on Patreon")
|
|
||||||
|
|
||||||
clickedFunc: function() {
|
|
||||||
Qt.openUrlExternally(qsTr("https://www.patreon.com/amneziavpn"))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
BasicButtonType {
|
|
||||||
Layout.fillWidth: true
|
|
||||||
Layout.topMargin: 8
|
|
||||||
Layout.leftMargin: 16
|
|
||||||
Layout.rightMargin: 16
|
|
||||||
|
|
||||||
defaultColor: "transparent"
|
|
||||||
hoveredColor: Qt.rgba(1, 1, 1, 0.08)
|
|
||||||
pressedColor: Qt.rgba(1, 1, 1, 0.12)
|
|
||||||
disabledColor: "#878B91"
|
|
||||||
textColor: "#D7D8DB"
|
|
||||||
borderWidth: 1
|
|
||||||
|
|
||||||
text: qsTr("Show other methods on Github")
|
|
||||||
|
|
||||||
clickedFunc: function() {
|
|
||||||
Qt.openUrlExternally(qsTr("https://github.com/amnezia-vpn/amnezia-client#donate"))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
ParagraphTextType {
|
ParagraphTextType {
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
Layout.topMargin: 32
|
Layout.topMargin: 32
|
||||||
|
@ -197,6 +163,25 @@ PageType {
|
||||||
Qt.openUrlExternally("https://github.com/amnezia-vpn/desktop-client/releases/latest")
|
Qt.openUrlExternally("https://github.com/amnezia-vpn/desktop-client/releases/latest")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BasicButtonType {
|
||||||
|
Layout.alignment: Qt.AlignHCenter
|
||||||
|
Layout.bottomMargin: 16
|
||||||
|
Layout.topMargin: -15
|
||||||
|
implicitHeight: 25
|
||||||
|
|
||||||
|
defaultColor: "transparent"
|
||||||
|
hoveredColor: Qt.rgba(1, 1, 1, 0.08)
|
||||||
|
pressedColor: Qt.rgba(1, 1, 1, 0.12)
|
||||||
|
disabledColor: "#878B91"
|
||||||
|
textColor: "#FBB26A"
|
||||||
|
|
||||||
|
text: qsTr("Privacy Policy")
|
||||||
|
|
||||||
|
clickedFunc: function() {
|
||||||
|
Qt.openUrlExternally("https://amnezia.org/en/policy")
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -63,22 +63,18 @@ PageType {
|
||||||
HeaderType {
|
HeaderType {
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
|
||||||
headerText: qsTr("Backup")
|
headerText: qsTr("Back up your configuration")
|
||||||
|
descriptionText: qsTr("You can save your settings to a backup file to restore them the next time you install the application.")
|
||||||
}
|
}
|
||||||
|
|
||||||
ListItemTitleType {
|
WarningType {
|
||||||
|
Layout.topMargin: 16
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
Layout.topMargin: 10
|
|
||||||
|
|
||||||
text: qsTr("Configuration backup")
|
textString: qsTr("The backup will contain your passwords and private keys for all servers added " +
|
||||||
}
|
"to AmneziaVPN. Keep this information in a secure place.")
|
||||||
|
|
||||||
CaptionTextType {
|
iconPath: "qrc:/images/controls/alert-circle.svg"
|
||||||
Layout.fillWidth: true
|
|
||||||
Layout.topMargin: -12
|
|
||||||
|
|
||||||
text: qsTr("You can save your settings to a backup file to restore them the next time you install the application.")
|
|
||||||
color: "#878B91"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
BasicButtonType {
|
BasicButtonType {
|
||||||
|
|
|
@ -57,6 +57,8 @@ disabled after 14 days, and all log files will be deleted.")
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
|
||||||
headerText: qsTr("Logging")
|
headerText: qsTr("Logging")
|
||||||
|
descriptionText: qsTr("Enabling this function will save application's logs automatically, " +
|
||||||
|
"By default, logging functionality is disabled. Enable log saving in case of application malfunction.")
|
||||||
}
|
}
|
||||||
|
|
||||||
SwitcherType {
|
SwitcherType {
|
||||||
|
|
|
@ -166,7 +166,7 @@ PageType {
|
||||||
LabelWithButtonType {
|
LabelWithButtonType {
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
|
||||||
text: qsTr("Remove this server from the app")
|
text: qsTr("Remove server from application")
|
||||||
textColor: "#EB5757"
|
textColor: "#EB5757"
|
||||||
|
|
||||||
clickedFunction: function() {
|
clickedFunction: function() {
|
||||||
|
@ -196,12 +196,12 @@ PageType {
|
||||||
visible: content.isServerWithWriteAccess
|
visible: content.isServerWithWriteAccess
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
|
||||||
text: qsTr("Clear server Amnezia-installed services")
|
text: qsTr("Clear server from Amnezia software")
|
||||||
textColor: "#EB5757"
|
textColor: "#EB5757"
|
||||||
|
|
||||||
clickedFunction: function() {
|
clickedFunction: function() {
|
||||||
var headerText = qsTr("Do you want to clear server Amnezia-installed services?")
|
var headerText = qsTr("Do you want to clear server from Amnezia software?")
|
||||||
var descriptionText = qsTr("All containers will be deleted on the server. This means that configuration files, keys and certificates will be deleted.")
|
var descriptionText = qsTr("All users whom you shared a connection with will no longer be able to connect to it.")
|
||||||
var yesButtonText = qsTr("Continue")
|
var yesButtonText = qsTr("Continue")
|
||||||
var noButtonText = qsTr("Cancel")
|
var noButtonText = qsTr("Cancel")
|
||||||
|
|
||||||
|
|
|
@ -163,7 +163,7 @@ PageType {
|
||||||
}
|
}
|
||||||
TabButtonType {
|
TabButtonType {
|
||||||
isSelected: tabBar.currentIndex === 2
|
isSelected: tabBar.currentIndex === 2
|
||||||
text: qsTr("Data")
|
text: qsTr("Management")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -67,7 +67,7 @@ PageType {
|
||||||
id: username
|
id: username
|
||||||
|
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
headerText: qsTr("Login to connect via SSH")
|
headerText: qsTr("SSH Username")
|
||||||
textFieldPlaceholderText: "root"
|
textFieldPlaceholderText: "root"
|
||||||
|
|
||||||
textField.onFocusChanged: {
|
textField.onFocusChanged: {
|
||||||
|
|
|
@ -136,8 +136,7 @@ PageType {
|
||||||
CardType {
|
CardType {
|
||||||
implicitWidth: parent.width
|
implicitWidth: parent.width
|
||||||
|
|
||||||
headerText: qsTr("Set up a VPN yourself")
|
headerText: qsTr("Choose a VPN protocol")
|
||||||
bodyText: qsTr("I want to choose a VPN protocol")
|
|
||||||
|
|
||||||
ButtonGroup.group: buttonGroup
|
ButtonGroup.group: buttonGroup
|
||||||
|
|
||||||
|
@ -194,7 +193,7 @@ PageType {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
text: qsTr("Set up later")
|
text: qsTr("Skip setup")
|
||||||
|
|
||||||
clickedFunc: function() {
|
clickedFunc: function() {
|
||||||
PageController.goToPage(PageEnum.PageSetupWizardInstalling)
|
PageController.goToPage(PageEnum.PageSetupWizardInstalling)
|
||||||
|
|
|
@ -74,7 +74,7 @@ PageType {
|
||||||
visible: fileName.text !== ""
|
visible: fileName.text !== ""
|
||||||
|
|
||||||
Image {
|
Image {
|
||||||
source: "qrc:/images/controls/file-cog-2.svg"
|
source: "qrc:/images/controls/file-check-2.svg"
|
||||||
}
|
}
|
||||||
|
|
||||||
Header2TextType {
|
Header2TextType {
|
||||||
|
@ -87,14 +87,6 @@ PageType {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
CaptionTextType {
|
|
||||||
Layout.fillWidth: true
|
|
||||||
Layout.topMargin: 16
|
|
||||||
|
|
||||||
text: qsTr("Do not use connection codes from untrusted sources, as they may be created to intercept your data.")
|
|
||||||
color: "#878B91"
|
|
||||||
}
|
|
||||||
|
|
||||||
BasicButtonType {
|
BasicButtonType {
|
||||||
Layout.topMargin: 16
|
Layout.topMargin: 16
|
||||||
Layout.leftMargin: -8
|
Layout.leftMargin: -8
|
||||||
|
@ -113,6 +105,15 @@ PageType {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
WarningType {
|
||||||
|
Layout.topMargin: 16
|
||||||
|
Layout.fillWidth: true
|
||||||
|
|
||||||
|
textString: qsTr("Use connection codes only from sources you trust. Codes from public sources may have been created to intercept your data.")
|
||||||
|
|
||||||
|
iconPath: "qrc:/images/controls/alert-circle.svg"
|
||||||
|
}
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
Layout.bottomMargin: 16
|
Layout.bottomMargin: 16
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue