From cc35eb0195be04ea198a1e6fa506231c533fcfec Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Mon, 11 Mar 2019 15:34:53 +0100 Subject: [PATCH] WIP: Add gotoPage --- cura/UI/WelcomePagesModel.py | 3 ++- .../AddNetworkPrinterScrollView.qml | 5 ++++ .../WelcomePages/AddPrinterByIpContent.qml | 2 +- .../AddPrinterBySelectionContent.qml | 10 ++++++++ resources/qml/WelcomePages/StepPanel.qml | 24 +++++++++++++++++++ 5 files changed, 42 insertions(+), 2 deletions(-) diff --git a/cura/UI/WelcomePagesModel.py b/cura/UI/WelcomePagesModel.py index 68c91a5e8e..b4fd199a28 100644 --- a/cura/UI/WelcomePagesModel.py +++ b/cura/UI/WelcomePagesModel.py @@ -3,7 +3,7 @@ import os from typing import TYPE_CHECKING, Optional -from PyQt5.QtCore import QUrl, Qt +from PyQt5.QtCore import QUrl, Qt, pyqtSlot from UM.Qt.ListModel import ListModel from UM.Resources import Resources @@ -11,6 +11,7 @@ from UM.Resources import Resources if TYPE_CHECKING: from PyQt5.QtCore import QObject + class WelcomePagesModel(ListModel): IdRole = Qt.UserRole + 1 # Page ID diff --git a/resources/qml/WelcomePages/AddNetworkPrinterScrollView.qml b/resources/qml/WelcomePages/AddNetworkPrinterScrollView.qml index d0a16cb71d..68105b9a37 100644 --- a/resources/qml/WelcomePages/AddNetworkPrinterScrollView.qml +++ b/resources/qml/WelcomePages/AddNetworkPrinterScrollView.qml @@ -23,6 +23,9 @@ Item property alias maxItemCountAtOnce: networkPrinterScrollView.maxItemCountAtOnce property var selectedItem: networkPrinterListView.model[networkPrinterListView.currentIndex] + signal refreshButtonClicked() + signal addByIpButtonClicked() + ScrollView { id: networkPrinterScrollView @@ -87,6 +90,7 @@ Item anchors.verticalCenter: parent.verticalCenter text: catalog.i18nc("@label", "Refresh") height: UM.Theme.getSize("message_action_button").height + onClicked: base.refreshButtonClicked() } Cura.SecondaryButton @@ -97,6 +101,7 @@ Item anchors.verticalCenter: parent.verticalCenter text: catalog.i18nc("@label", "Add printer by IP") height: UM.Theme.getSize("message_action_button").height + onClicked: base.addByIpButtonClicked() } Item diff --git a/resources/qml/WelcomePages/AddPrinterByIpContent.qml b/resources/qml/WelcomePages/AddPrinterByIpContent.qml index 25a6d532ce..31d2cb4257 100644 --- a/resources/qml/WelcomePages/AddPrinterByIpContent.qml +++ b/resources/qml/WelcomePages/AddPrinterByIpContent.qml @@ -223,7 +223,7 @@ Item text: catalog.i18nc("@button", "Back") width: 140 fixedWidthMode: true - onClicked: base.showPreviousPage() + onClicked: base.gotoPage("add_printer_by_selection") enabled: true } diff --git a/resources/qml/WelcomePages/AddPrinterBySelectionContent.qml b/resources/qml/WelcomePages/AddPrinterBySelectionContent.qml index a2d5312dde..5d02cb1099 100644 --- a/resources/qml/WelcomePages/AddPrinterBySelectionContent.qml +++ b/resources/qml/WelcomePages/AddPrinterBySelectionContent.qml @@ -58,6 +58,16 @@ Item id: networkPrinterScrollView maxItemCountAtOnce: 6 // show at max 6 items at once, otherwise you need to scroll. + + onRefreshButtonClicked: + { + // TODO: implement refresh + } + + onAddByIpButtonClicked: + { + base.gotoPage("add_printer_by_ip") + } } } } diff --git a/resources/qml/WelcomePages/StepPanel.qml b/resources/qml/WelcomePages/StepPanel.qml index 40569fe39b..bc99320e02 100644 --- a/resources/qml/WelcomePages/StepPanel.qml +++ b/resources/qml/WelcomePages/StepPanel.qml @@ -33,6 +33,7 @@ Item signal showNextPage() signal showPreviousPage() signal passLastPage() // Emitted when there is no more page to show + signal gotoPage(string page_id) // Go to a specific page by the given page_id. onShowNextPage: { @@ -53,6 +54,29 @@ Item } } + onGotoPage: + { + // find the page index + var page_index = -1 + for (var i = 0; i < base.model.count; i++) + { + const item = base.model.getItem(i) + if (item.id == page_id) + { + page_index = i + break + } + } + if (page_index > 0) + { + currentStep = page_index + } + else + { + console.log("Error: cannot find page with page_id = [", page_id, "]") + } + } + onVisibleChanged: { if (visible)