Fix that you can only cancel in WizardDialog

CURA-6483
This commit is contained in:
Lipu Fei 2019-04-29 15:16:40 +02:00
parent bed13bf42b
commit defcba6927
5 changed files with 17 additions and 19 deletions

View file

@ -15,6 +15,7 @@ class AddPrinterPagesModel(WelcomePagesModel):
"page_url": self._getBuiltinWelcomePagePath("AddNetworkOrLocalPrinterContent.qml"), "page_url": self._getBuiltinWelcomePagePath("AddNetworkOrLocalPrinterContent.qml"),
"next_page_id": "machine_actions", "next_page_id": "machine_actions",
"next_page_button_text": self._catalog.i18nc("@action:button", "Add"), "next_page_button_text": self._catalog.i18nc("@action:button", "Add"),
"previous_page_button_text": self._catalog.i18nc("@action:button", "Cancel"),
}) })
self._pages.append({"id": "add_printer_by_ip", self._pages.append({"id": "add_printer_by_ip",
"page_url": self._getBuiltinWelcomePagePath("AddPrinterByIpContent.qml"), "page_url": self._getBuiltinWelcomePagePath("AddPrinterByIpContent.qml"),

View file

@ -39,6 +39,7 @@ class WelcomePagesModel(ListModel):
PageUrlRole = Qt.UserRole + 2 # URL to the page's QML file PageUrlRole = Qt.UserRole + 2 # URL to the page's QML file
NextPageIdRole = Qt.UserRole + 3 # The next page ID it should go to NextPageIdRole = Qt.UserRole + 3 # The next page ID it should go to
NextPageButtonTextRole = Qt.UserRole + 4 # The text for the next page button NextPageButtonTextRole = Qt.UserRole + 4 # The text for the next page button
PreviousPageButtonTextRole = Qt.UserRole + 5 # The text for the previous page button
def __init__(self, application: "CuraApplication", parent: Optional["QObject"] = None) -> None: def __init__(self, application: "CuraApplication", parent: Optional["QObject"] = None) -> None:
super().__init__(parent) super().__init__(parent)
@ -47,6 +48,7 @@ class WelcomePagesModel(ListModel):
self.addRoleName(self.PageUrlRole, "page_url") self.addRoleName(self.PageUrlRole, "page_url")
self.addRoleName(self.NextPageIdRole, "next_page_id") self.addRoleName(self.NextPageIdRole, "next_page_id")
self.addRoleName(self.NextPageButtonTextRole, "next_page_button_text") self.addRoleName(self.NextPageButtonTextRole, "next_page_button_text")
self.addRoleName(self.PreviousPageButtonTextRole, "previous_page_button_text")
self._application = application self._application = application
self._catalog = i18nCatalog("cura") self._catalog = i18nCatalog("cura")

View file

@ -795,7 +795,6 @@ UM.MainWindow
title: catalog.i18nc("@title:window", "Add Printer") title: catalog.i18nc("@title:window", "Add Printer")
model: CuraApplication.getAddPrinterPagesModel() model: CuraApplication.getAddPrinterPagesModel()
progressBarVisible: false progressBarVisible: false
hasCancelButton: true
} }
Cura.WizardDialog Cura.WizardDialog
@ -804,7 +803,6 @@ UM.MainWindow
title: catalog.i18nc("@title:window", "What's New") title: catalog.i18nc("@title:window", "What's New")
model: CuraApplication.getWhatsNewPagesModel() model: CuraApplication.getWhatsNewPagesModel()
progressBarVisible: false progressBarVisible: false
hasCancelButton: false
} }
Connections Connections

View file

@ -104,6 +104,20 @@ Item
} }
} }
// This "Back" button only shows in the "Add Machine" dialog, which has "back_button_text" set to "Cancel"
Cura.SecondaryButton
{
id: backButton
anchors.left: parent.left
anchors.bottom: parent.bottom
visible: base.currentItem.previous_page_button_text
text: base.currentItem.previous_page_button_text
onClicked:
{
base.endWizard()
}
}
Cura.PrimaryButton Cura.PrimaryButton
{ {
id: nextButton id: nextButton

View file

@ -31,7 +31,6 @@ Window
property var model: null // Needs to be set by whoever is using this dialog. property var model: null // Needs to be set by whoever is using this dialog.
property alias progressBarVisible: wizardPanel.progressBarVisible property alias progressBarVisible: wizardPanel.progressBarVisible
property alias hasCancelButton: cancelButton.visible
onVisibilityChanged: onVisibilityChanged:
{ {
@ -54,20 +53,4 @@ Window
target: model target: model
onAllFinished: dialog.hide() onAllFinished: dialog.hide()
} }
Cura.SecondaryButton
{
id: cancelButton
text: catalog.i18nc("@button", "Cancel")
visible: false
anchors.left: parent.left
anchors.bottom: parent.bottom
anchors.margins: UM.Theme.getSize("default_margin").width
enabled: true
onClicked: dialog.visible = false
}
} }