diff --git a/client/images/controls/x-circle.svg b/client/images/controls/x-circle.svg
new file mode 100644
index 00000000..2d3f5b26
--- /dev/null
+++ b/client/images/controls/x-circle.svg
@@ -0,0 +1,5 @@
+
diff --git a/client/resources.qrc b/client/resources.qrc
index 5b4d6ae7..f0494852 100644
--- a/client/resources.qrc
+++ b/client/resources.qrc
@@ -215,5 +215,6 @@
ui/qml/Controls2/ListViewWithLabelsType.qmlui/qml/Pages2/PageServiceDnsSettings.qmlui/qml/Controls2/TopCloseButtonType.qml
+ images/controls/x-circle.svg
diff --git a/client/translations/amneziavpn_ru.ts b/client/translations/amneziavpn_ru.ts
index e0bab018..92061f89 100644
--- a/client/translations/amneziavpn_ru.ts
+++ b/client/translations/amneziavpn_ru.ts
@@ -26,41 +26,41 @@
ConnectionController
-
+ VPN Protocols is not installed.
Please install VPN container at first
-
+ Connection...
-
+ Connected
-
+ Settings updated successfully, Reconnnection...
-
+ Reconnection...
-
-
-
+
+
+ Connect
-
+ Disconnection...
@@ -130,7 +130,7 @@
ImportController
-
+ Scanned %1 of %2.
@@ -139,50 +139,55 @@
InstallController
-
+ %1 installed successfully.
-
+ %1 is already installed on the server.
-
+
+Added containers that were already installed on the server
+
+
+
+
Already installed containers were found on the server. All installed containers have been added to the application
-
+ Settings updated successfully
-
+ Server '%1' was removed
-
+ All containers from server '%1' have been removed
-
+ %1 has been removed from the server '%2'
-
+ Please login as the user
-
+ Server added successfully
@@ -250,12 +255,12 @@ Already installed containers were found on the server. All installed containers
PageHome
-
+ VPN protocol
-
+ Servers
@@ -771,6 +776,11 @@ Already installed containers were found on the server. All installed containers
About AmneziaVPN
+
+
+ Close application
+
+ PageSettingsAbout
@@ -865,71 +875,76 @@ And if you don't like the app, all the more support it - the donation will
+ Allow application screenshots
+
+
+
+ Auto start
-
+ Launch the application every time
-
+ starts
-
+ Start minimized
-
+ Launch application minimized
-
+ Language
-
+ Logging
-
+ Enabled
-
+ Disabled
-
+ Reset settings and remove all data from the application
-
+ Reset settings and remove all data from the application?
-
+ All settings will be reset to default. All installed AmneziaVPN services will still remain on the server.
-
+ ContinueПродолжить
-
+ Cancel
@@ -1525,17 +1540,17 @@ It's okay as long as it's from someone you trust.
PageSetupWizardEasy
-
+ What is the level of internet control in your region?
-
+ Set up a VPN yourself
-
+ I want to choose a VPN protocol
@@ -1545,7 +1560,7 @@ It's okay as long as it's from someone you trust.
Продолжить
-
+ Set up later
@@ -1749,11 +1764,6 @@ It's okay as long as it's from someone you trust.
VPN access without the ability to manage the server
-
-
- Full access to server
-
- Server
@@ -1765,13 +1775,17 @@ It's okay as long as it's from someone you trust.
-
+
+ File with accessing settings to
+
+
+
+ Connection to
-
-
+ File with connection settings to
@@ -1795,29 +1809,30 @@ It's okay as long as it's from someone you trust.
Full access
+
+
+ Access to server management. The user with whom you share full access to the connection will be able to add and remove your protocols and services to the servers, as well as change settings.
+
+ Servers
-
- Protocols
-
-
-
-
+
+ Protocol
-
-
+
+ Connection format
-
+ Share
@@ -2433,6 +2448,16 @@ It's okay as long as it's from someone you trust.
error 0x%1: %2
+
+
+ WireGuard Configuration Highlighter
+
+
+
+
+ &Randomize colors
+
+ SelectLanguageDrawer
@@ -2459,22 +2484,22 @@ It's okay as long as it's from someone you trust.
SettingsController
-
+ Software version
-
+ All settings have been reset to default values
-
+ Cached profiles cleared
-
+ Backup file is corrupted
@@ -2504,7 +2529,7 @@ It's okay as long as it's from someone you trust.
- Show content
+ Show connection settings
diff --git a/client/translations/amneziavpn_zh_CN.ts b/client/translations/amneziavpn_zh_CN.ts
index 37e27786..6c57e9f1 100644
--- a/client/translations/amneziavpn_zh_CN.ts
+++ b/client/translations/amneziavpn_zh_CN.ts
@@ -27,40 +27,40 @@
ConnectionController
-
-
-
+
+
+ Connect连接
-
+ VPN Protocols is not installed.
Please install VPN container at first不存在VPN协议,请先安装
-
+ Connection...连接中
-
+ Connected已连接
-
+ Reconnection...重连中
-
+ Disconnection...断开中
-
+ Settings updated successfully, Reconnnection...配置已更新,重连中
@@ -130,7 +130,7 @@
ImportController
-
+ Scanned %1 of %2.扫描 %1 of %2.
@@ -147,41 +147,46 @@
-
+ %1 installed successfully. %1 安装成功。
-
+ %1 is already installed on the server. 服务器上已经安装 %1。
-
+
+Added containers that were already installed on the server
+
+
+
+
Already installed containers were found on the server. All installed containers have been added to the application
在服务上发现已经安装协议并添加到应用程序
-
+ Settings updated successfully配置更新成功
-
+ Server '%1' was removed已移除服务器 '%1'
-
+ All containers from server '%1' have been removed服务器 '%1' 的所有容器已移除
-
+ %1 has been removed from the server '%2'%1 已从服务器 '%2' 上移除
@@ -202,12 +207,12 @@ Already installed containers were found on the server. All installed containers
协议已从
-
+ Please login as the user请以用户身份登录
-
+ Server added successfully服务器添加成功
@@ -275,12 +280,12 @@ Already installed containers were found on the server. All installed containers
PageHome
-
+ VPN protocolVPN协议
-
+ Servers服务器
@@ -797,6 +802,11 @@ Already installed containers were found on the server. All installed containers
About AmneziaVPN关于
+
+
+ Close application
+
+ PageSettingsAbout
@@ -892,71 +902,76 @@ And if you don't like the app, all the more support it - the donation will
+ Allow application screenshots
+
+
+
+ Auto start自动运行
-
+ Launch the application every time 总是在系统
-
+ starts 启动时自动运行运用程序
-
+ Start minimized最小化
-
+ Launch application minimized开启应用程序时窗口最小化
-
+ Language语言
-
+ Logging日志
-
+ Enabled开启
-
+ Disabled禁用
-
+ Reset settings and remove all data from the application重置并清理应用的所有数据
-
+ Reset settings and remove all data from the application?重置并清理应用的所有数据?
-
+ All settings will be reset to default. All installed AmneziaVPN services will still remain on the server.所有配置恢复为默认值。在服务器上保留所有已安装的AmneziaVPN服务。
-
+ Continue继续
-
+ Cancel取消
@@ -1561,17 +1576,17 @@ It's okay as long as it's from someone you trust.
PageSetupWizardEasy
-
+ What is the level of internet control in your region?您所在地区的互联网控制力度如何?
-
+ Set up a VPN yourself自己架设VPN
-
+ I want to choose a VPN protocol我想选择VPN协议
@@ -1581,7 +1596,7 @@ It's okay as long as it's from someone you trust.
继续
-
+ Set up later稍后设置
@@ -1807,8 +1822,12 @@ It's okay as long as it's from someone you trust.
+ Access to server management. The user with whom you share full access to the connection will be able to add and remove your protocols and services to the servers, as well as change settings.
+
+
+ Full access to server
- 获得服务器完整授权
+ 获得服务器完整授权
@@ -1827,33 +1846,37 @@ It's okay as long as it's from someone you trust.
-
+ File with accessing settings to
+
+
+
+ File with connection settings to 连接配置文件的内容为:
- Protocols
- 协议
+ 协议
-
+
+ Protocol协议
-
+ Connection to 连接到
-
-
+
+ Connection format连接方式
-
+ Share共享
@@ -2469,6 +2492,16 @@ It's okay as long as it's from someone you trust.
error 0x%1: %2错误 0x%1: %2
+
+
+ WireGuard Configuration Highlighter
+
+
+
+
+ &Randomize colors
+
+ SelectLanguageDrawer
@@ -2495,22 +2528,22 @@ It's okay as long as it's from someone you trust.
SettingsController
-
+ Software version软件版本
-
+ Backup file is corrupted备份文件已损坏
-
+ All settings have been reset to default values所配置恢复为默认值
-
+ Cached profiles cleared缓存的配置文件已清除
@@ -2540,8 +2573,12 @@ It's okay as long as it's from someone you trust.
+ Show connection settings
+
+
+ Show content
- 展示内容
+ 展示内容
diff --git a/client/ui/controllers/pageController.cpp b/client/ui/controllers/pageController.cpp
index cb500618..ed60500a 100644
--- a/client/ui/controllers/pageController.cpp
+++ b/client/ui/controllers/pageController.cpp
@@ -157,3 +157,8 @@ void PageController::setTriggeredBtConnectButton(bool trigger)
{
m_isTriggeredByConnectButton = trigger;
}
+
+void PageController::closeApplication()
+{
+ qApp->quit();
+}
diff --git a/client/ui/controllers/pageController.h b/client/ui/controllers/pageController.h
index 70732bd9..69c80fe6 100644
--- a/client/ui/controllers/pageController.h
+++ b/client/ui/controllers/pageController.h
@@ -84,10 +84,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();
diff --git a/client/ui/qml/Controls2/LabelWithButtonType.qml b/client/ui/qml/Controls2/LabelWithButtonType.qml
index bb051f76..6bc45a8c 100644
--- a/client/ui/qml/Controls2/LabelWithButtonType.qml
+++ b/client/ui/qml/Controls2/LabelWithButtonType.qml
@@ -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"
diff --git a/client/ui/qml/Pages2/PageSettings.qml b/client/ui/qml/Pages2/PageSettings.qml
index e020dc2c..a806d472 100644
--- a/client/ui/qml/Pages2/PageSettings.qml
+++ b/client/ui/qml/Pages2/PageSettings.qml
@@ -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 {}
}
}
}