diff options
author | c.lamboo <casperlamboo@gmail.com> | 2022-06-06 22:45:48 +0300 |
---|---|---|
committer | c.lamboo <casperlamboo@gmail.com> | 2022-06-06 22:45:48 +0300 |
commit | 2f22002fd59e2be44934c0ff5c904c93a03fd690 (patch) | |
tree | 54f239d898619203b80a806cdfeef9959923b37e /plugins/3MFReader | |
parent | 781723fbbc54cd625b8bc3090705a17b602d5a0e (diff) |
Add header and footer components to Dialog
This provides control over how the header (the header is newly introduced in this commit) and footer components are rendered. The footer is the area where the `leftButtoons` and `rightButtons` are rendered. Having control over how this is rendered introduces for instance the possibility to render the buttons within a warning area (an example of this can bee seen in the WorkspaceDialog).
CURA-6990
Diffstat (limited to 'plugins/3MFReader')
-rw-r--r-- | plugins/3MFReader/WorkspaceDialog.qml | 58 |
1 files changed, 52 insertions, 6 deletions
diff --git a/plugins/3MFReader/WorkspaceDialog.qml b/plugins/3MFReader/WorkspaceDialog.qml index 6ac7ac701e..d0250abfd8 100644 --- a/plugins/3MFReader/WorkspaceDialog.qml +++ b/plugins/3MFReader/WorkspaceDialog.qml @@ -451,26 +451,72 @@ UM.Dialog } } - buttonWarningText: "The material used in this project is currently not installed in Cura.<br/>Install the material profile and reopen the project." - buttonWarning: manager.missingPackages.length > 0 + property bool warning: manager.missingPackages.length > 0 + + footerComponent: Rectangle + { + color: warning ? UM.Theme.getColor("warning") : "transparent" + anchors.bottom: parent.bottom + width: parent.width + height: childrenRect.height + 2 * base.margin + + Column + { + height: childrenRect.height + spacing: base.margin + + anchors.margins: base.margin + anchors.left: parent.left + anchors.right: parent.right + anchors.top: parent.top + + RowLayout + { + id: warningRow + height: childrenRect.height + visible: warning + spacing: base.margin + UM.ColorImage + { + width: UM.Theme.getSize("extruder_icon").width + height: UM.Theme.getSize("extruder_icon").height + source: UM.Theme.getIcon("Warning") + } + + UM.Label + { + id: warningText + text: "The material used in this project is currently not installed in Cura.<br/>Install the material profile and reopen the project." + } + } + + Loader + { + width: parent.width + height: childrenRect.height + sourceComponent: buttonRow + } + } + } + buttonSpacing: UM.Theme.getSize("default_margin").width rightButtons: [ Cura.TertiaryButton { - visible: !buttonWarning + visible: !warning text: catalog.i18nc("@action:button", "Cancel") onClicked: reject() }, Cura.PrimaryButton { - visible: !buttonWarning + visible: !warning text: catalog.i18nc("@action:button", "Open") onClicked: accept() }, Cura.TertiaryButton { - visible: buttonWarning + visible: warning text: catalog.i18nc("@action:button", "Open project anyway") onClicked: { manager.showMissingMaterialsWarning(); @@ -479,7 +525,7 @@ UM.Dialog }, Cura.PrimaryButton { - visible: buttonWarning + visible: warning text: catalog.i18nc("@action:button", "Install missing material") onClicked: manager.installMissingPackages() } |