Reworked the interaction between models. Now only serversModel directly interacts with server config

This commit is contained in:
vladimir.kuznetsov 2023-12-08 13:50:03 +07:00
parent f3f98a50ed
commit b4c89ad58f
19 changed files with 412 additions and 290 deletions

View file

@ -22,10 +22,6 @@ PageType {
property string borderColor: "#2C2D30"
property string defaultServerName: ServersModel.defaultServerName
property string defaultServerHostName: ServersModel.defaultServerHostName
property string defaultContainerName: ContainersModel.defaultContainerName
Connections {
target: PageController
@ -40,41 +36,6 @@ PageType {
}
}
Connections {
target: ServersModel
function onDefaultServerIndexChanged() {
updateDescriptions()
}
}
Connections {
target: ContainersModel
function onDefaultContainerChanged() {
updateDescriptions()
}
}
function updateDescriptions() {
var description = ""
if (ServersModel.isDefaultServerHasWriteAccess()) {
if (SettingsController.isAmneziaDnsEnabled()
&& ContainersModel.isAmneziaDnsContainerInstalled(ServersModel.getDefaultServerIndex())) {
description += "Amnezia DNS | "
}
} else {
if (ServersModel.isDefaultServerConfigContainsAmneziaDns()) {
description += "Amnezia DNS | "
}
}
collapsedServerMenuDescription.text = description + root.defaultContainerName + " | " + root.defaultServerHostName
expandedServersMenuDescription.text = description + root.defaultServerHostName
}
Component.onCompleted: updateDescriptions()
MouseArea {
anchors.fill: parent
enabled: buttonContent.state === "expanded"
@ -267,7 +228,7 @@ PageType {
maximumLineCount: 2
elide: Qt.ElideRight
text: root.defaultServerName
text: ServersModel.defaultServerName
horizontalAlignment: Qt.AlignHCenter
Behavior on opacity {
@ -304,6 +265,7 @@ PageType {
Layout.bottomMargin: 44
Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter
visible: buttonContent.collapsedVisibility
text: ServersModel.defaultServerDescriptionCollapsed
}
ColumnLayout {
@ -319,7 +281,7 @@ PageType {
Layout.leftMargin: 16
Layout.rightMargin: 16
text: root.defaultServerName
text: ServersModel.defaultServerName
horizontalAlignment: Qt.AlignHCenter
maximumLineCount: 2
elide: Qt.ElideRight
@ -331,6 +293,7 @@ PageType {
Layout.fillWidth: true
horizontalAlignment: Qt.AlignHCenter
verticalAlignment: Qt.AlignVCenter
text: ServersModel.defaultServerDescriptionExpanded
}
RowLayout {
@ -349,7 +312,7 @@ PageType {
rootButtonTextTopMargin: 8
rootButtonTextBottomMargin: 8
text: root.defaultContainerName
text: ServersModel.defaultContainerName
textColor: "#0E0E11"
headerText: qsTr("VPN protocol")
headerBackButtonImage: "qrc:/images/controls/arrow-left.svg"
@ -468,7 +431,7 @@ PageType {
var description = ""
if (hasWriteAccess) {
if (SettingsController.isAmneziaDnsEnabled()
&& ContainersModel.isAmneziaDnsContainerInstalled(index)) {
&& ServersModel.isAmneziaDnsContainerInstalled(index)) {
description += "Amnezia DNS | "
}
} else {

View file

@ -66,8 +66,8 @@ PageType {
text: qsTr("Website address")
descriptionText: {
var config = ContainersModel.getCurrentlyProcessedContainerConfig()
var containerIndex = ContainersModel.getCurrentlyProcessedContainerIndex()
var config = ContainersModel.getContainerConfig(containerIndex)
return config[ContainerProps.containerTypeToString(containerIndex)]["site"]
}

View file

@ -77,7 +77,7 @@ PageType {
text: name
descriptionText: {
var servicesNameString = ""
var servicesName = ContainersModel.getAllInstalledServicesName(index)
var servicesName = ServersModel.getAllInstalledServicesName(index)
for (var i = 0; i < servicesName.length; i++) {
servicesNameString += servicesName[i] + " · "
}

View file

@ -25,7 +25,7 @@ PageType {
function onInstallContainerFinished(finishedMessage, isServiceInstall) {
if (!ConnectionController.isConnected && !isServiceInstall) {
ContainersModel.setDefaultContainer(ContainersModel.getCurrentlyProcessedContainerIndex())
ServersModel.setDefaultContainer(ContainersModel.getCurrentlyProcessedContainerIndex())
}
PageController.closePage() // close installing page

View file

@ -354,8 +354,6 @@ PageType {
currentIndex: 0
clickedFunction: function() {
protocolSelectorListView.currentItem.y
handler()
protocolSelector.menuVisible = false
@ -365,7 +363,7 @@ PageType {
target: serverSelector
function onSeverSelectorIndexChanged() {
protocolSelectorListView.currentIndex = proxyContainersModel.mapFromSource(ContainersModel.getDefaultContainer())
protocolSelectorListView.currentIndex = proxyContainersModel.mapFromSource(ServersModel.getDefaultContainer())
protocolSelectorListView.triggerCurrentItem()
}
}