Merge branch 'dev' of github.com:amnezia-vpn/amnezia-client into feature/amnezia-wireguard-client-impl
This commit is contained in:
commit
0ce30a4e81
24 changed files with 107 additions and 69 deletions
|
@ -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/"
|
||||
)
|
||||
|
|
5
client/images/controls/x-circle.svg
Normal file
5
client/images/controls/x-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="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 |
|
@ -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>
|
||||
|
|
|
@ -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'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's okay as long as it'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>
|
||||
|
|
|
@ -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'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's okay as long as it'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>
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -157,3 +157,8 @@ void PageController::setTriggeredBtConnectButton(bool trigger)
|
|||
{
|
||||
m_isTriggeredByConnectButton = trigger;
|
||||
}
|
||||
|
||||
void PageController::closeApplication()
|
||||
{
|
||||
qApp->quit();
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -213,6 +213,7 @@ DrawerType {
|
|||
|
||||
Image {
|
||||
anchors.fill: parent
|
||||
anchors.margins: 2
|
||||
smooth: false
|
||||
|
||||
source: ExportController.qrCodesCount ? ExportController.qrCodes[0] : ""
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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")
|
||||
|
||||
|
|
|
@ -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")
|
||||
|
||||
|
|
|
@ -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 {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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 don’t like the application, all the more reason to support it - the donation will be used for the improving the application.")
|
||||
color: "#CCCAC8"
|
||||
}
|
||||
|
||||
|
|
|
@ -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"
|
||||
}
|
||||
|
||||
|
|
|
@ -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() {
|
||||
|
|
|
@ -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")
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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()
|
||||
}
|
||||
|
||||
|
|
|
@ -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()
|
||||
}
|
||||
}
|
||||
|
|
|
@ -187,7 +187,7 @@ PageType {
|
|||
|
||||
drawerHeight: 0.4375
|
||||
|
||||
descriptionText: qsTr("Servers")
|
||||
descriptionText: qsTr("Server")
|
||||
headerText: qsTr("Server")
|
||||
|
||||
listView: ListViewWithRadioButtonType {
|
||||
|
|
|
@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue