Merge branch 'dev' of github.com:amnezia-vpn/amnezia-client into feature/amnezia-wireguard-client-impl

This commit is contained in:
vladimir.kuznetsov 2023-10-09 23:19:48 +05:00
commit 0ce30a4e81
24 changed files with 107 additions and 69 deletions

View file

@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.25.0 FATAL_ERROR)
set(PROJECT AmneziaVPN)
project(${PROJECT} VERSION 4.0.7.1
project(${PROJECT} VERSION 4.0.8.1
DESCRIPTION "AmneziaVPN"
HOMEPAGE_URL "https://amnezia.org/"
)

View 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="M15 9L9 15" stroke="#D7D8DB" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M9 9L15 15" stroke="#D7D8DB" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 518 B

View file

@ -215,6 +215,7 @@
<file>ui/qml/Controls2/ListViewWithLabelsType.qml</file>
<file>ui/qml/Pages2/PageServiceDnsSettings.qml</file>
<file>ui/qml/Controls2/TopCloseButtonType.qml</file>
<file>images/controls/x-circle.svg</file>
<file>ui/qml/Pages2/PageProtocolAwgSettings.qml</file>
<file>server_scripts/amnezia_wireguard/template.conf</file>
<file>server_scripts/amnezia_wireguard/start.sh</file>

View file

@ -130,7 +130,7 @@
<context>
<name>ImportController</name>
<message>
<location filename="../ui/controllers/importController.cpp" line="429"/>
<location filename="../ui/controllers/importController.cpp" line="375"/>
<source>Scanned %1 of %2.</source>
<translation type="unfinished"></translation>
</message>
@ -260,7 +260,7 @@ Already installed containers were found on the server. All installed containers
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageHome.qml" line="390"/>
<location filename="../ui/qml/Pages2/PageHome.qml" line="388"/>
<source>Servers</source>
<translation type="unfinished"></translation>
</message>
@ -864,6 +864,11 @@ Already installed containers were found on the server. All installed containers
<source>About AmneziaVPN</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettings.qml" line="114"/>
<source>Close application</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>PageSettingsAbout</name>
@ -1426,7 +1431,7 @@ And if you don&apos;t like the app, all the more support it - the donation will
<context>
<name>PageSettingsServersList</name>
<message>
<location filename="../ui/qml/Pages2/PageSettingsServersList.qml" line="39"/>
<location filename="../ui/qml/Pages2/PageSettingsServersList.qml" line="37"/>
<source>Servers</source>
<translation type="unfinished"></translation>
</message>
@ -1651,33 +1656,33 @@ It&apos;s okay as long as it&apos;s from someone you trust.</source>
<context>
<name>PageSetupWizardInstalling</name>
<message>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="61"/>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="57"/>
<source>The server has already been added to the application</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="66"/>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="62"/>
<source>Amnesia has detected that your server is currently </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="67"/>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="63"/>
<source>busy installing other software. Amnesia installation </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="68"/>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="64"/>
<source>will pause until the server finishes installing other software</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="125"/>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="121"/>
<source>Installing</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="21"/>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="71"/>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="67"/>
<source>Usually it takes no more than 5 minutes</source>
<translation type="unfinished"></translation>
</message>

View file

@ -30,6 +30,9 @@
<location filename="../ui/controllers/connectionController.cpp" line="80"/>
<location filename="../ui/controllers/connectionController.cpp" line="94"/>
<location filename="../ui/controllers/connectionController.cpp" line="100"/>
<location filename="../ui/controllers/connectionController.cpp" line="80"/>
<location filename="../ui/controllers/connectionController.cpp" line="94"/>
<location filename="../ui/controllers/connectionController.cpp" line="100"/>
<source>Connect</source>
<translation type="unfinished"></translation>
</message>
@ -130,7 +133,7 @@
<context>
<name>ImportController</name>
<message>
<location filename="../ui/controllers/importController.cpp" line="429"/>
<location filename="../ui/controllers/importController.cpp" line="375"/>
<source>Scanned %1 of %2.</source>
<translation type="unfinished"> %1 of %2.</translation>
</message>
@ -285,7 +288,7 @@ Already installed containers were found on the server. All installed containers
<translation type="unfinished">VPN协议</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageHome.qml" line="390"/>
<location filename="../ui/qml/Pages2/PageHome.qml" line="388"/>
<source>Servers</source>
<translation type="unfinished"></translation>
</message>
@ -890,6 +893,11 @@ Already installed containers were found on the server. All installed containers
<source>About AmneziaVPN</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSettings.qml" line="114"/>
<source>Close application</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>PageSettingsAbout</name>
@ -1461,7 +1469,7 @@ And if you don&apos;t like the app, all the more support it - the donation will
<context>
<name>PageSettingsServersList</name>
<message>
<location filename="../ui/qml/Pages2/PageSettingsServersList.qml" line="39"/>
<location filename="../ui/qml/Pages2/PageSettingsServersList.qml" line="37"/>
<source>Servers</source>
<translation type="unfinished"></translation>
</message>
@ -1688,32 +1696,32 @@ It&apos;s okay as long as it&apos;s from someone you trust.</source>
<name>PageSetupWizardInstalling</name>
<message>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="21"/>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="71"/>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="67"/>
<source>Usually it takes no more than 5 minutes</source>
<translation type="unfinished">5</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="61"/>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="57"/>
<source>The server has already been added to the application</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="66"/>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="62"/>
<source>Amnesia has detected that your server is currently </source>
<translation type="unfinished">Amnezia </translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="67"/>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="63"/>
<source>busy installing other software. Amnesia installation </source>
<translation type="unfinished">Amnezia安装</translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="68"/>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="64"/>
<source>will pause until the server finishes installing other software</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="125"/>
<location filename="../ui/qml/Pages2/PageSetupWizardInstalling.qml" line="121"/>
<source>Installing</source>
<translation type="unfinished"></translation>
</message>

View file

@ -183,6 +183,7 @@ void InstallController::installContainer(DockerContainer container, QJsonObject
"All installed containers have been added to the application");
}
m_containersModel->setData(m_containersModel->index(0, 0), container, ContainersModel::Roles::IsDefaultRole);
emit installContainerFinished(finishMessage, ContainerProps::containerService(container) == ServiceType::Other);
return;
}

View file

@ -157,3 +157,8 @@ void PageController::setTriggeredBtConnectButton(bool trigger)
{
m_isTriggeredByConnectButton = trigger;
}
void PageController::closeApplication()
{
qApp->quit();
}

View file

@ -85,10 +85,11 @@ public slots:
void drawerOpen();
void drawerClose();
bool isTriggeredByConnectButton();
void setTriggeredBtConnectButton(bool trigger);
void closeApplication();
signals:
void goToPage(PageLoader::PageEnum page, bool slide = true);
void goToStartPage();

View file

@ -75,7 +75,6 @@ ListView {
if (needReconnected && (ConnectionController.isConnected || ConnectionController.isConnectionInProgress)) {
PageController.showNotificationMessage(qsTr("Reconnect via VPN Procotol: ") + name)
PageController.goToPageHome()
menu.visible = false
ConnectionController.openConnection()
}
} else {
@ -83,7 +82,6 @@ ListView {
InstallController.setShouldCreateServer(false)
PageController.goToPage(PageEnum.PageSetupWizardProtocolSettings)
containersDropDown.menuVisible = false
menu.visible = false
}
}

View file

@ -213,6 +213,7 @@ DrawerType {
Image {
anchors.fill: parent
anchors.margins: 2
smooth: false
source: ExportController.qrCodesCount ? ExportController.qrCodes[0] : ""

View file

@ -17,6 +17,7 @@ Item {
property string rightImageSource
property string leftImageSource
property bool isLeftImageHoverEnabled: true //todo separete this qml file to 3
property string textColor: "#d7d8db"
property string descriptionColor: "#878B91"
@ -42,9 +43,9 @@ Item {
visible: leftImageSource ? true : false
Layout.preferredHeight: rightImageSource ? leftImage.implicitHeight : 56
Layout.preferredWidth: rightImageSource ? leftImage.implicitWidth : 56
Layout.rightMargin: rightImageSource ? 16 : 0
Layout.preferredHeight: rightImageSource || !isLeftImageHoverEnabled ? leftImage.implicitHeight : 56
Layout.preferredWidth: rightImageSource || !isLeftImageHoverEnabled ? leftImage.implicitWidth : 56
Layout.rightMargin: rightImageSource || !isLeftImageHoverEnabled ? 16 : 0
radius: 12
color: "transparent"

View file

@ -96,7 +96,7 @@ PageType {
id: dragArea
anchors.fill: buttonBackground
cursorShape: Qt.PointingHandCursor
cursorShape: buttonContent.state === "collapsed" ? Qt.PointingHandCursor : Qt.ArrowCursor
hoverEnabled: true
drag.target: buttonContent
@ -385,18 +385,7 @@ PageType {
Layout.rightMargin: 16
visible: buttonContent.expandedVisibility
actionButtonImage: "qrc:/images/controls/plus.svg"
headerText: qsTr("Servers")
actionButtonFunction: function() {
buttonContent.state = "collapsed"
connectionTypeSelection.visible = true
}
}
ConnectionTypeSelectionDrawer {
id: connectionTypeSelection
}
}

View file

@ -360,7 +360,7 @@ PageType {
onClicked: {
questionDrawer.headerText = qsTr("Remove OpenVpn from server?")
questionDrawer.descriptionText = qsTr("All users with whom you shared a connection will no longer be able to connect to it")
questionDrawer.descriptionText = qsTr("All users who you shared a connection with will no longer be able to connect to it.")
questionDrawer.yesButtonText = qsTr("Continue")
questionDrawer.noButtonText = qsTr("Cancel")

View file

@ -174,7 +174,7 @@ PageType {
clickedFunction: function() {
questionDrawer.headerText = qsTr("Remove %1 from server?").arg(ContainersModel.getCurrentlyProcessedContainerName())
questionDrawer.descriptionText = qsTr("All users with whom you shared a connection will no longer be able to connect to it")
questionDrawer.descriptionText = qsTr("All users who you shared a connection with will no longer be able to connect to it.")
questionDrawer.yesButtonText = qsTr("Continue")
questionDrawer.noButtonText = qsTr("Cancel")

View file

@ -107,6 +107,20 @@ PageType {
}
DividerType {}
LabelWithButtonType {
Layout.fillWidth: true
text: qsTr("Close application")
leftImageSource: "qrc:/images/controls/x-circle.svg"
isLeftImageHoverEnabled: false
clickedFunction: function() {
PageController.closeApplication()
}
}
DividerType {}
}
}
}

View file

@ -68,8 +68,8 @@ PageType {
height: 20
font.pixelSize: 14
text: qsTr("This is a free and open source application. If you like it, support the developers with a donation.
And if you don't like the app, all the more support it - the donation will be used to improve the app.")
text: qsTr("This is a free and open source application. If you like it, support the developers with a donation. ") +
qsTr("And if you dont like the application, all the more reason to support it - the donation will be used for the improving the application.")
color: "#CCCAC8"
}

View file

@ -77,7 +77,7 @@ PageType {
Layout.fillWidth: true
Layout.topMargin: -12
text: qsTr("It will help you instantly restore connection settings at the next installation")
text: qsTr("You can save your settings to a backup file to restore them the next time you install the application.")
color: "#878B91"
}

View file

@ -97,7 +97,7 @@ PageType {
Layout.fillWidth: true
text: qsTr("Split site tunneling")
descriptionText: qsTr("Allows you to connect to some sites through a secure connection, and to others bypassing it")
descriptionText: qsTr("Allows you to choose which sites you want to use the VPN for.")
rightImageSource: "qrc:/images/controls/chevron-right.svg"
clickedFunction: function() {

View file

@ -114,7 +114,7 @@ PageType {
clickedFunction: function() {
questionDrawer.headerText = qsTr("Remove %1 from server?").arg(ContainersModel.getCurrentlyProcessedContainerName())
questionDrawer.descriptionText = qsTr("All users with whom you shared a connection will no longer be able to connect to it")
questionDrawer.descriptionText = qsTr("All users who you shared a connection with will no longer be able to connect to it.")
questionDrawer.yesButtonText = qsTr("Continue")
questionDrawer.noButtonText = qsTr("Cancel")

View file

@ -34,19 +34,9 @@ PageType {
Layout.leftMargin: 16
Layout.rightMargin: 16
actionButtonImage: "qrc:/images/controls/plus.svg"
headerText: qsTr("Servers")
actionButtonFunction: function() {
connectionTypeSelection.visible = true
}
}
}
ConnectionTypeSelectionDrawer {
id: connectionTypeSelection
}
FlickableType {
anchors.top: header.bottom

View file

@ -42,11 +42,7 @@ PageType {
function onInstallServerFinished(finishedMessage) {
PageController.goToStartPage()
if (stackView.currentItem.objectName === PageController.getPagePath(PageEnum.PageHome)) {
PageController.restorePageHomeState()
} else if (stackView.currentItem.objectName === PageController.getPagePath(PageEnum.PageSettings)) {
PageController.goToPage(PageEnum.PageSettingsServersList, false)
} else {
if (stackView.currentItem.objectName === PageController.getPagePath(PageEnum.PageSetupWizardStart)) {
PageController.replaceStartPage()
}

View file

@ -25,11 +25,7 @@ PageType {
function onImportFinished() {
PageController.goToStartPage()
if (stackView.currentItem.objectName === PageController.getPagePath(PageEnum.PageHome)) {
PageController.restorePageHomeState()
} else if (stackView.currentItem.objectName === PageController.getPagePath(PageEnum.PageSettings)) {
PageController.goToPage(PageEnum.PageSettingsServersList, false)
} else {
if (stackView.currentItem.objectName === PageController.getPagePath(PageEnum.PageSetupWizardStart)) {
PageController.replaceStartPage()
}
}

View file

@ -187,7 +187,7 @@ PageType {
drawerHeight: 0.4375
descriptionText: qsTr("Servers")
descriptionText: qsTr("Server")
headerText: qsTr("Server")
listView: ListViewWithRadioButtonType {

View file

@ -9,6 +9,7 @@ import "./"
import "../Controls2"
import "../Controls2/TextTypes"
import "../Config"
import "../Components"
PageType {
id: root
@ -17,14 +18,14 @@ PageType {
target: PageController
function onGoToPageHome() {
tabBar.currentIndex = 0
tabBar.setCurrentIndex(0)
tabBarStackView.goToTabBarPage(PageEnum.PageHome)
PageController.updateDrawerRootPage(PageEnum.PageHome)
}
function onGoToPageSettings() {
tabBar.currentIndex = 2
tabBar.setCurrentIndex(2)
tabBarStackView.goToTabBarPage(PageEnum.PageSettings)
PageController.updateDrawerRootPage(PageEnum.PageSettings)
@ -70,6 +71,7 @@ PageType {
}
function onGoToStartPage() {
connectionTypeSelection.close()
while (tabBarStackView.depth > 1) {
tabBarStackView.pop()
}
@ -120,6 +122,8 @@ PageType {
height: root.height - tabBar.implicitHeight
function goToTabBarPage(page) {
connectionTypeSelection.close()
var pagePath = PageController.getPagePath(page)
tabBarStackView.clear(StackView.Immediate)
tabBarStackView.replace(pagePath, { "objectName" : pagePath }, StackView.Immediate)
@ -137,14 +141,16 @@ PageType {
TabBar {
id: tabBar
property int previousIndex: 0
anchors.right: parent.right
anchors.left: parent.left
anchors.bottom: parent.bottom
topPadding: 8
bottomPadding: 8
leftPadding: shareTabButton.visible ? 96 : 128
rightPadding: shareTabButton.visible ? 96 : 128
leftPadding: 96
rightPadding: 96
background: Shape {
width: parent.width
@ -171,8 +177,10 @@ PageType {
onClicked: {
tabBarStackView.goToTabBarPage(PageEnum.PageHome)
ServersModel.currentlyProcessedIndex = ServersModel.defaultIndex
tabBar.previousIndex = 0
}
}
TabImageButtonType {
id: shareTabButton
@ -193,13 +201,24 @@ PageType {
image: "qrc:/images/controls/share-2.svg"
onClicked: {
tabBarStackView.goToTabBarPage(PageEnum.PageShare)
tabBar.previousIndex = 1
}
}
TabImageButtonType {
isSelected: tabBar.currentIndex === 2
image: "qrc:/images/controls/settings-2.svg"
onClicked: {
tabBarStackView.goToTabBarPage(PageEnum.PageSettings)
tabBar.previousIndex = 2
}
}
TabImageButtonType {
isSelected: tabBar.currentIndex === 3
image: "qrc:/images/controls/plus.svg"
onClicked: {
connectionTypeSelection.open()
}
}
}
@ -215,4 +234,12 @@ PageType {
x: tabBarStackView.width - topCloseButton.width
z: 1
}
ConnectionTypeSelectionDrawer {
id: connectionTypeSelection
onAboutToHide: {
tabBar.setCurrentIndex(tabBar.previousIndex)
}
}
}