2023-04-12 19:13:41 +03:00
|
|
|
import QtQuick
|
|
|
|
|
import QtQuick.Controls
|
|
|
|
|
import QtQuick.Layouts
|
2023-07-25 16:56:10 +09:00
|
|
|
import QtQuick.Shapes
|
2023-04-12 19:13:41 +03:00
|
|
|
|
|
|
|
|
import PageEnum 1.0
|
2024-07-07 13:42:38 +03:00
|
|
|
import Style 1.0
|
2023-04-12 19:13:41 +03:00
|
|
|
|
|
|
|
|
import "./"
|
|
|
|
|
import "../Controls2"
|
2023-04-26 08:30:02 +03:00
|
|
|
import "../Controls2/TextTypes"
|
2023-05-06 06:52:23 +03:00
|
|
|
import "../Config"
|
2023-10-09 20:19:22 +05:00
|
|
|
import "../Components"
|
2023-04-12 19:13:41 +03:00
|
|
|
|
2023-05-25 15:40:17 +08:00
|
|
|
PageType {
|
2023-04-12 19:13:41 +03:00
|
|
|
id: root
|
|
|
|
|
|
2024-03-06 14:22:44 +05:00
|
|
|
property bool isControlsDisabled: false
|
2024-03-31 12:40:42 +05:00
|
|
|
property bool isTabBarDisabled: false
|
2024-03-06 14:22:44 +05:00
|
|
|
|
2023-05-25 15:40:17 +08:00
|
|
|
Connections {
|
2024-12-31 04:16:52 +01:00
|
|
|
objectName: "pageControllerConnection"
|
|
|
|
|
|
2023-05-25 15:40:17 +08:00
|
|
|
target: PageController
|
|
|
|
|
|
|
|
|
|
function onGoToPageHome() {
|
2024-08-20 16:54:05 +07:00
|
|
|
if (PageController.isStartPageVisible()) {
|
|
|
|
|
tabBar.visible = false
|
|
|
|
|
tabBarStackView.goToTabBarPage(PageEnum.PageSetupWizardStart)
|
|
|
|
|
} else {
|
|
|
|
|
tabBar.visible = true
|
|
|
|
|
tabBar.setCurrentIndex(0)
|
|
|
|
|
tabBarStackView.goToTabBarPage(PageEnum.PageHome)
|
|
|
|
|
}
|
2023-05-25 15:40:17 +08:00
|
|
|
}
|
|
|
|
|
|
2023-06-21 20:56:00 +09:00
|
|
|
function onGoToPageSettings() {
|
2023-10-09 20:19:22 +05:00
|
|
|
tabBar.setCurrentIndex(2)
|
2023-08-09 18:17:29 +05:00
|
|
|
tabBarStackView.goToTabBarPage(PageEnum.PageSettings)
|
2023-06-21 20:56:00 +09:00
|
|
|
}
|
|
|
|
|
|
2023-07-24 16:31:04 +09:00
|
|
|
function onGoToPageViewConfig() {
|
|
|
|
|
var pagePath = PageController.getPagePath(PageEnum.PageSetupWizardViewConfig)
|
|
|
|
|
tabBarStackView.push(pagePath, { "objectName" : pagePath }, StackView.PushTransition)
|
|
|
|
|
}
|
|
|
|
|
|
2024-02-28 19:39:28 +07:00
|
|
|
function onDisableControls(disabled) {
|
2024-03-06 14:22:44 +05:00
|
|
|
isControlsDisabled = disabled
|
2023-08-09 18:17:29 +05:00
|
|
|
}
|
|
|
|
|
|
2024-03-31 12:40:42 +05:00
|
|
|
function onDisableTabBar(disabled) {
|
|
|
|
|
isTabBarDisabled = disabled
|
|
|
|
|
}
|
|
|
|
|
|
2023-07-24 16:31:04 +09:00
|
|
|
function onClosePage() {
|
|
|
|
|
if (tabBarStackView.depth <= 1) {
|
2024-03-31 14:14:12 +03:00
|
|
|
PageController.hideWindow()
|
2023-07-24 16:31:04 +09:00
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
tabBarStackView.pop()
|
|
|
|
|
}
|
2023-09-06 13:37:37 +05:00
|
|
|
|
|
|
|
|
function onGoToPage(page, slide) {
|
|
|
|
|
var pagePath = PageController.getPagePath(page)
|
2024-02-17 23:09:05 +02:00
|
|
|
|
2023-09-06 13:37:37 +05:00
|
|
|
if (slide) {
|
|
|
|
|
tabBarStackView.push(pagePath, { "objectName" : pagePath }, StackView.PushTransition)
|
|
|
|
|
} else {
|
|
|
|
|
tabBarStackView.push(pagePath, { "objectName" : pagePath }, StackView.Immediate)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function onGoToStartPage() {
|
|
|
|
|
while (tabBarStackView.depth > 1) {
|
|
|
|
|
tabBarStackView.pop()
|
|
|
|
|
}
|
|
|
|
|
}
|
2024-02-28 19:39:28 +07:00
|
|
|
|
|
|
|
|
function onEscapePressed() {
|
2024-03-31 12:40:42 +05:00
|
|
|
if (root.isControlsDisabled || root.isTabBarDisabled) {
|
2024-02-28 19:39:28 +07:00
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var pageName = tabBarStackView.currentItem.objectName
|
|
|
|
|
if ((pageName === PageController.getPagePath(PageEnum.PageShare)) ||
|
2024-08-20 16:54:05 +07:00
|
|
|
(pageName === PageController.getPagePath(PageEnum.PageSettings)) ||
|
|
|
|
|
(pageName === PageController.getPagePath(PageEnum.PageSetupWizardConfigSource))) {
|
2024-02-28 19:39:28 +07:00
|
|
|
PageController.goToPageHome()
|
|
|
|
|
} else {
|
|
|
|
|
PageController.closePage()
|
|
|
|
|
}
|
|
|
|
|
}
|
2023-05-25 15:40:17 +08:00
|
|
|
}
|
|
|
|
|
|
2023-07-31 20:38:13 +09:00
|
|
|
Connections {
|
2024-12-31 04:16:52 +01:00
|
|
|
objectName: "installControllerConnections"
|
|
|
|
|
|
2023-07-31 20:38:13 +09:00
|
|
|
target: InstallController
|
|
|
|
|
|
2024-05-25 13:00:51 +03:00
|
|
|
function onInstallationErrorOccurred(error) {
|
2023-11-30 19:21:57 +07:00
|
|
|
PageController.showBusyIndicator(false)
|
2024-05-25 13:00:51 +03:00
|
|
|
|
|
|
|
|
PageController.showErrorMessage(error)
|
2023-07-31 20:38:13 +09:00
|
|
|
|
|
|
|
|
var needCloseCurrentPage = false
|
2023-08-02 20:37:43 +09:00
|
|
|
var currentPageName = tabBarStackView.currentItem.objectName
|
2023-07-31 20:38:13 +09:00
|
|
|
|
|
|
|
|
if (currentPageName === PageController.getPagePath(PageEnum.PageSetupWizardInstalling)) {
|
|
|
|
|
needCloseCurrentPage = true
|
|
|
|
|
} else if (currentPageName === PageController.getPagePath(PageEnum.PageDeinstalling)) {
|
|
|
|
|
needCloseCurrentPage = true
|
|
|
|
|
}
|
|
|
|
|
if (needCloseCurrentPage) {
|
|
|
|
|
PageController.closePage()
|
|
|
|
|
}
|
|
|
|
|
}
|
2023-09-17 17:03:39 +05:00
|
|
|
|
2024-10-13 15:14:43 +04:00
|
|
|
function onWrongInstallationUser(message) {
|
|
|
|
|
onInstallationErrorOccurred(message)
|
|
|
|
|
}
|
|
|
|
|
|
2023-09-17 17:03:39 +05:00
|
|
|
function onUpdateContainerFinished(message) {
|
|
|
|
|
PageController.showNotificationMessage(message)
|
2023-12-01 14:16:27 +07:00
|
|
|
PageController.closePage()
|
2023-09-17 17:03:39 +05:00
|
|
|
}
|
2024-04-01 20:20:02 +07:00
|
|
|
|
|
|
|
|
function onCachedProfileCleared(message) {
|
|
|
|
|
PageController.showNotificationMessage(message)
|
|
|
|
|
}
|
2024-08-20 16:54:05 +07:00
|
|
|
|
|
|
|
|
function onApiConfigRemoved(message) {
|
|
|
|
|
PageController.showNotificationMessage(message)
|
|
|
|
|
}
|
|
|
|
|
|
2025-02-06 15:26:47 +07:00
|
|
|
function onRemoveProcessedServerFinished(finishedMessage) {
|
|
|
|
|
if (!ServersModel.getServersCount()) {
|
|
|
|
|
PageController.goToPageHome()
|
|
|
|
|
} else {
|
|
|
|
|
PageController.goToStartPage()
|
|
|
|
|
PageController.goToPage(PageEnum.PageSettingsServersList)
|
|
|
|
|
}
|
|
|
|
|
PageController.showNotificationMessage(finishedMessage)
|
|
|
|
|
}
|
2025-02-15 11:50:42 +07:00
|
|
|
|
|
|
|
|
function onNoInstalledContainers() {
|
|
|
|
|
PageController.setTriggeredByConnectButton(true)
|
|
|
|
|
|
|
|
|
|
ServersModel.processedIndex = ServersModel.getDefaultServerIndex()
|
|
|
|
|
InstallController.setShouldCreateServer(false)
|
|
|
|
|
PageController.goToPage(PageEnum.PageSetupWizardEasy)
|
|
|
|
|
}
|
2023-09-17 17:03:39 +05:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Connections {
|
2024-12-31 04:16:52 +01:00
|
|
|
objectName: "connectionControllerConnections"
|
|
|
|
|
|
2023-09-17 17:03:39 +05:00
|
|
|
target: ConnectionController
|
|
|
|
|
|
|
|
|
|
function onReconnectWithUpdatedContainer(message) {
|
|
|
|
|
PageController.showNotificationMessage(message)
|
2023-12-01 14:16:27 +07:00
|
|
|
PageController.closePage()
|
2023-09-17 17:03:39 +05:00
|
|
|
}
|
2024-02-09 23:23:26 +05:00
|
|
|
}
|
|
|
|
|
|
2024-03-14 04:22:10 +07:00
|
|
|
Connections {
|
2024-12-31 04:16:52 +01:00
|
|
|
objectName: "importControllerConnections"
|
|
|
|
|
|
2024-03-14 04:22:10 +07:00
|
|
|
target: ImportController
|
|
|
|
|
|
2024-05-25 13:00:51 +03:00
|
|
|
function onImportErrorOccurred(error, goToPageHome) {
|
|
|
|
|
PageController.showErrorMessage(error)
|
2024-03-14 04:22:10 +07:00
|
|
|
}
|
2024-08-20 16:54:05 +07:00
|
|
|
|
|
|
|
|
function onRestoreAppConfig(data) {
|
|
|
|
|
PageController.showBusyIndicator(true)
|
|
|
|
|
SettingsController.restoreAppConfigFromData(data)
|
|
|
|
|
PageController.showBusyIndicator(false)
|
|
|
|
|
}
|
2024-03-14 04:22:10 +07:00
|
|
|
}
|
|
|
|
|
|
2024-03-20 21:22:29 +07:00
|
|
|
Connections {
|
2024-12-31 04:16:52 +01:00
|
|
|
objectName: "settingsControllerConnections"
|
|
|
|
|
|
2024-03-20 21:22:29 +07:00
|
|
|
target: SettingsController
|
|
|
|
|
|
|
|
|
|
function onLoggingDisableByWatcher() {
|
|
|
|
|
PageController.showNotificationMessage(qsTr("Logging was disabled after 14 days, log files were deleted"))
|
|
|
|
|
}
|
2024-08-20 16:54:05 +07:00
|
|
|
|
|
|
|
|
function onRestoreBackupFinished() {
|
|
|
|
|
PageController.showNotificationMessage(qsTr("Settings restored from backup file"))
|
|
|
|
|
PageController.goToPageHome()
|
|
|
|
|
}
|
2024-09-09 20:53:44 +04:00
|
|
|
|
|
|
|
|
function onLoggingStateChanged() {
|
|
|
|
|
if (SettingsController.isLoggingEnabled) {
|
|
|
|
|
var message = qsTr("Logging is enabled. Note that logs will be automatically" +
|
|
|
|
|
"disabled after 14 days, and all log files will be deleted.")
|
|
|
|
|
PageController.showNotificationMessage(message)
|
|
|
|
|
}
|
|
|
|
|
}
|
2024-03-20 21:22:29 +07:00
|
|
|
}
|
|
|
|
|
|
2025-02-10 15:10:59 +07:00
|
|
|
Connections {
|
|
|
|
|
target: ApiSettingsController
|
|
|
|
|
|
|
|
|
|
function onErrorOccurred(error) {
|
|
|
|
|
PageController.showErrorMessage(error)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2025-02-15 11:50:42 +07:00
|
|
|
Connections {
|
|
|
|
|
target: ApiConfigsController
|
|
|
|
|
|
|
|
|
|
function onInstallServerFromApiFinished(message) {
|
|
|
|
|
if (!ConnectionController.isConnected) {
|
|
|
|
|
ServersModel.setDefaultServerIndex(ServersModel.getServersCount() - 1);
|
|
|
|
|
ServersModel.processedIndex = ServersModel.defaultIndex
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
PageController.goToPageHome()
|
|
|
|
|
PageController.showNotificationMessage(message)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function onChangeApiCountryFinished(message) {
|
|
|
|
|
PageController.goToPageHome()
|
|
|
|
|
PageController.showNotificationMessage(message)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function onReloadServerFromApiFinished(message) {
|
|
|
|
|
PageController.goToPageHome()
|
|
|
|
|
PageController.showNotificationMessage(message)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2023-06-01 11:25:33 +08:00
|
|
|
StackViewType {
|
|
|
|
|
id: tabBarStackView
|
2024-12-31 04:16:52 +01:00
|
|
|
objectName: "tabBarStackView"
|
2023-04-12 19:13:41 +03:00
|
|
|
|
2023-05-06 06:52:23 +03:00
|
|
|
anchors.top: parent.top
|
|
|
|
|
anchors.right: parent.right
|
|
|
|
|
anchors.left: parent.left
|
|
|
|
|
anchors.bottom: tabBar.top
|
2023-04-12 19:13:41 +03:00
|
|
|
|
2024-03-06 14:22:44 +05:00
|
|
|
enabled: !root.isControlsDisabled
|
|
|
|
|
|
2023-06-01 11:25:33 +08:00
|
|
|
function goToTabBarPage(page) {
|
|
|
|
|
var pagePath = PageController.getPagePath(page)
|
2023-09-14 15:21:35 +05:00
|
|
|
tabBarStackView.clear(StackView.Immediate)
|
|
|
|
|
tabBarStackView.replace(pagePath, { "objectName" : pagePath }, StackView.Immediate)
|
2023-05-06 06:52:23 +03:00
|
|
|
}
|
2023-04-12 19:13:41 +03:00
|
|
|
|
2023-06-01 11:25:33 +08:00
|
|
|
Component.onCompleted: {
|
2024-08-20 16:54:05 +07:00
|
|
|
var pagePath
|
|
|
|
|
if (PageController.isStartPageVisible()) {
|
|
|
|
|
tabBar.visible = false
|
|
|
|
|
pagePath = PageController.getPagePath(PageEnum.PageSetupWizardStart)
|
|
|
|
|
} else {
|
|
|
|
|
tabBar.visible = true
|
|
|
|
|
pagePath = PageController.getPagePath(PageEnum.PageHome)
|
|
|
|
|
ServersModel.processedIndex = ServersModel.defaultIndex
|
|
|
|
|
}
|
|
|
|
|
|
2023-06-07 13:17:48 +03:00
|
|
|
tabBarStackView.push(pagePath, { "objectName" : pagePath })
|
2023-05-06 06:52:23 +03:00
|
|
|
}
|
2024-08-20 16:54:05 +07:00
|
|
|
|
|
|
|
|
Keys.onPressed: function(event) {
|
2024-12-31 04:16:52 +01:00
|
|
|
console.debug(">>>> ", event.key, " Event is caught by StartPage")
|
|
|
|
|
switch (event.key) {
|
|
|
|
|
case Qt.Key_Tab:
|
|
|
|
|
case Qt.Key_Down:
|
|
|
|
|
case Qt.Key_Right:
|
|
|
|
|
FocusController.nextKeyTabItem()
|
|
|
|
|
break
|
|
|
|
|
case Qt.Key_Backtab:
|
|
|
|
|
case Qt.Key_Up:
|
|
|
|
|
case Qt.Key_Left:
|
|
|
|
|
FocusController.previousKeyTabItem()
|
|
|
|
|
break
|
|
|
|
|
default:
|
|
|
|
|
PageController.keyPressEvent(event.key)
|
|
|
|
|
event.accepted = true
|
|
|
|
|
}
|
2024-08-20 16:54:05 +07:00
|
|
|
}
|
2023-05-06 06:52:23 +03:00
|
|
|
}
|
2023-04-12 19:13:41 +03:00
|
|
|
|
2023-05-06 06:52:23 +03:00
|
|
|
TabBar {
|
|
|
|
|
id: tabBar
|
2024-12-31 04:16:52 +01:00
|
|
|
objectName: "tabBar"
|
2023-04-12 19:13:41 +03:00
|
|
|
|
2023-05-06 06:52:23 +03:00
|
|
|
anchors.right: parent.right
|
|
|
|
|
anchors.left: parent.left
|
|
|
|
|
anchors.bottom: parent.bottom
|
2023-04-12 19:13:41 +03:00
|
|
|
|
2023-05-06 06:52:23 +03:00
|
|
|
topPadding: 8
|
2023-07-25 16:56:10 +09:00
|
|
|
bottomPadding: 8
|
2023-10-09 20:19:22 +05:00
|
|
|
leftPadding: 96
|
|
|
|
|
rightPadding: 96
|
2023-04-12 19:13:41 +03:00
|
|
|
|
2024-08-20 16:54:05 +07:00
|
|
|
height: visible ? homeTabButton.implicitHeight + tabBar.topPadding + tabBar.bottomPadding : 0
|
|
|
|
|
|
2024-03-31 12:40:42 +05:00
|
|
|
enabled: !root.isControlsDisabled && !root.isTabBarDisabled
|
2024-03-06 14:22:44 +05:00
|
|
|
|
2023-07-25 16:56:10 +09:00
|
|
|
background: Shape {
|
2024-12-31 04:16:52 +01:00
|
|
|
objectName: "backgroundShape"
|
|
|
|
|
|
2023-07-25 16:56:10 +09:00
|
|
|
width: parent.width
|
|
|
|
|
height: parent.height
|
|
|
|
|
|
|
|
|
|
ShapePath {
|
|
|
|
|
startX: 0
|
|
|
|
|
startY: 0
|
|
|
|
|
|
|
|
|
|
PathLine { x: width; y: 0 }
|
2024-07-26 22:26:15 +04:00
|
|
|
PathLine { x: width; y: tabBar.height - 1 }
|
|
|
|
|
PathLine { x: 0; y: tabBar.height - 1 }
|
2023-07-25 16:56:10 +09:00
|
|
|
PathLine { x: 0; y: 0 }
|
|
|
|
|
|
|
|
|
|
strokeWidth: 1
|
2024-08-20 16:54:05 +07:00
|
|
|
strokeColor: AmneziaStyle.color.slateGray
|
|
|
|
|
fillColor: AmneziaStyle.color.onyxBlack
|
2023-07-25 16:56:10 +09:00
|
|
|
}
|
2023-05-06 06:52:23 +03:00
|
|
|
}
|
2023-04-12 19:13:41 +03:00
|
|
|
|
2023-05-06 06:52:23 +03:00
|
|
|
TabImageButtonType {
|
2024-04-18 17:54:55 +04:00
|
|
|
id: homeTabButton
|
2024-12-31 04:16:52 +01:00
|
|
|
objectName: "homeTabButton"
|
|
|
|
|
|
2024-03-04 22:35:34 +07:00
|
|
|
isSelected: tabBar.currentIndex === 0
|
2023-05-06 06:52:23 +03:00
|
|
|
image: "qrc:/images/controls/home.svg"
|
2024-04-18 17:54:55 +04:00
|
|
|
clickedFunc: function () {
|
2023-06-07 13:17:48 +03:00
|
|
|
tabBarStackView.goToTabBarPage(PageEnum.PageHome)
|
2024-02-19 19:54:15 +05:00
|
|
|
ServersModel.processedIndex = ServersModel.defaultIndex
|
2024-04-18 17:54:55 +04:00
|
|
|
tabBar.currentIndex = 0
|
2023-05-27 22:46:41 +08:00
|
|
|
}
|
2023-05-06 06:52:23 +03:00
|
|
|
}
|
2023-10-09 20:19:22 +05:00
|
|
|
|
2023-05-06 06:52:23 +03:00
|
|
|
TabImageButtonType {
|
2023-06-23 15:24:40 +09:00
|
|
|
id: shareTabButton
|
2024-12-31 04:16:52 +01:00
|
|
|
objectName: "shareTabButton"
|
2023-06-23 15:24:40 +09:00
|
|
|
|
|
|
|
|
Connections {
|
|
|
|
|
target: ServersModel
|
|
|
|
|
|
2023-07-31 00:13:08 +09:00
|
|
|
function onModelReset() {
|
2024-12-31 04:16:52 +01:00
|
|
|
if (!SettingsController.isOnTv()) {
|
|
|
|
|
var hasServerWithWriteAccess = ServersModel.hasServerWithWriteAccess()
|
|
|
|
|
shareTabButton.visible = hasServerWithWriteAccess
|
|
|
|
|
shareTabButton.width = hasServerWithWriteAccess ? undefined : 0
|
|
|
|
|
}
|
2023-06-23 15:24:40 +09:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2024-12-31 04:16:52 +01:00
|
|
|
visible: !SettingsController.isOnTv() && ServersModel.hasServerWithWriteAccess()
|
|
|
|
|
width: !SettingsController.isOnTv() && ServersModel.hasServerWithWriteAccess() ? undefined : 0
|
2023-06-23 15:24:40 +09:00
|
|
|
|
2023-05-06 06:52:23 +03:00
|
|
|
isSelected: tabBar.currentIndex === 1
|
|
|
|
|
image: "qrc:/images/controls/share-2.svg"
|
2024-04-18 17:54:55 +04:00
|
|
|
clickedFunc: function () {
|
2023-06-13 20:03:20 +09:00
|
|
|
tabBarStackView.goToTabBarPage(PageEnum.PageShare)
|
2024-04-18 17:54:55 +04:00
|
|
|
tabBar.currentIndex = 1
|
2023-06-13 20:03:20 +09:00
|
|
|
}
|
2023-04-12 19:13:41 +03:00
|
|
|
}
|
2023-10-09 20:19:22 +05:00
|
|
|
|
2023-05-06 06:52:23 +03:00
|
|
|
TabImageButtonType {
|
2024-04-18 17:54:55 +04:00
|
|
|
id: settingsTabButton
|
2024-12-31 04:16:52 +01:00
|
|
|
objectName: "settingsTabButton"
|
|
|
|
|
|
2024-03-04 22:35:34 +07:00
|
|
|
isSelected: tabBar.currentIndex === 2
|
2025-01-09 09:33:35 +03:00
|
|
|
image: "qrc:/images/controls/settings.svg"
|
2024-04-18 17:54:55 +04:00
|
|
|
clickedFunc: function () {
|
2023-06-01 11:25:33 +08:00
|
|
|
tabBarStackView.goToTabBarPage(PageEnum.PageSettings)
|
2024-04-18 17:54:55 +04:00
|
|
|
tabBar.currentIndex = 2
|
2023-10-09 20:19:22 +05:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
TabImageButtonType {
|
2024-04-18 17:54:55 +04:00
|
|
|
id: plusTabButton
|
2024-12-31 04:16:52 +01:00
|
|
|
objectName: "plusTabButton"
|
|
|
|
|
|
2023-10-09 20:19:22 +05:00
|
|
|
isSelected: tabBar.currentIndex === 3
|
|
|
|
|
image: "qrc:/images/controls/plus.svg"
|
2024-04-18 17:54:55 +04:00
|
|
|
clickedFunc: function () {
|
2024-08-20 16:54:05 +07:00
|
|
|
tabBarStackView.goToTabBarPage(PageEnum.PageSetupWizardConfigSource)
|
|
|
|
|
tabBar.currentIndex = 3
|
2023-05-27 22:46:41 +08:00
|
|
|
}
|
2023-05-06 06:52:23 +03:00
|
|
|
}
|
|
|
|
|
}
|
2023-04-12 19:13:41 +03:00
|
|
|
}
|