123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405 |
- // Copyright (c) 2016 Ultimaker B.V.
- // Cura is released under the terms of the LGPLv3 or higher.
- import QtQuick 2.1
- import QtQuick.Controls 1.1
- import QtQuick.Layouts 1.1
- import QtQuick.Window 2.1
- import UM 1.1 as UM
- UM.Dialog
- {
- id: base
- title: catalog.i18nc("@title:window", "Open Project")
- minimumWidth: 500 * screenScaleFactor
- minimumHeight: 450 * screenScaleFactor
- width: minimumWidth
- height: minimumHeight
- property int comboboxHeight: 15 * screenScaleFactor
- property int spacerHeight: 10 * screenScaleFactor
- onClosing: manager.notifyClosed()
- onVisibleChanged:
- {
- if(visible)
- {
- machineResolveComboBox.currentIndex = 0
- qualityChangesResolveComboBox.currentIndex = 0
- materialResolveComboBox.currentIndex = 0
- }
- }
- Item
- {
- anchors.fill: parent
- anchors.margins: 20 * screenScaleFactor
- UM.I18nCatalog
- {
- id: catalog
- name: "cura"
- }
- SystemPalette
- {
- id: palette
- }
- ListModel
- {
- id: resolveStrategiesModel
- // Instead of directly adding the list elements, we add them afterwards.
- // This is because it's impossible to use setting function results to be bound to listElement properties directly.
- // See http://stackoverflow.com/questions/7659442/listelement-fields-as-properties
- Component.onCompleted:
- {
- append({"key": "override", "label": catalog.i18nc("@action:ComboBox option", "Update existing")});
- append({"key": "new", "label": catalog.i18nc("@action:ComboBox option", "Create new")});
- }
- }
- Column
- {
- anchors.fill: parent
- spacing: 2 * screenScaleFactor
- Label
- {
- id: titleLabel
- text: catalog.i18nc("@action:title", "Summary - Cura Project")
- font.pointSize: 18
- }
- Rectangle
- {
- id: separator
- color: palette.text
- width: parent.width
- height: 1
- }
- Item // Spacer
- {
- height: spacerHeight
- width: height
- }
- Row
- {
- height: childrenRect.height
- width: parent.width
- Label
- {
- text: catalog.i18nc("@action:label", "Printer settings")
- font.bold: true
- width: (parent.width / 3) | 0
- }
- Item
- {
- // spacer
- height: spacerHeight
- width: (parent.width / 3) | 0
- }
- UM.TooltipArea
- {
- id: machineResolveTooltip
- width: (parent.width / 3) | 0
- height: visible ? comboboxHeight : 0
- visible: manager.machineConflict
- text: catalog.i18nc("@info:tooltip", "How should the conflict in the machine be resolved?")
- ComboBox
- {
- model: resolveStrategiesModel
- textRole: "label"
- id: machineResolveComboBox
- width: parent.width
- onActivated:
- {
- manager.setResolveStrategy("machine", resolveStrategiesModel.get(index).key)
- }
- }
- }
- }
- Row
- {
- width: parent.width
- height: childrenRect.height
- Label
- {
- text: catalog.i18nc("@action:label", "Type")
- width: (parent.width / 3) | 0
- }
- Label
- {
- text: manager.machineType
- width: (parent.width / 3) | 0
- }
- }
- Row
- {
- width: parent.width
- height: childrenRect.height
- Label
- {
- text: catalog.i18nc("@action:label", "Name")
- width: (parent.width / 3) | 0
- }
- Label
- {
- text: manager.machineName
- width: (parent.width / 3) | 0
- }
- }
- Item // Spacer
- {
- height: spacerHeight
- width: height
- }
- Row
- {
- height: childrenRect.height
- width: parent.width
- Label
- {
- text: catalog.i18nc("@action:label", "Profile settings")
- font.bold: true
- width: (parent.width / 3) | 0
- }
- Item
- {
- // spacer
- height: spacerHeight
- width: (parent.width / 3) | 0
- }
- UM.TooltipArea
- {
- id: qualityChangesResolveTooltip
- width: (parent.width / 3) | 0
- height: visible ? comboboxHeight : 0
- visible: manager.qualityChangesConflict
- text: catalog.i18nc("@info:tooltip", "How should the conflict in the profile be resolved?")
- ComboBox
- {
- model: resolveStrategiesModel
- textRole: "label"
- id: qualityChangesResolveComboBox
- width: parent.width
- onActivated:
- {
- manager.setResolveStrategy("quality_changes", resolveStrategiesModel.get(index).key)
- }
- }
- }
- }
- Row
- {
- width: parent.width
- height: childrenRect.height
- Label
- {
- text: catalog.i18nc("@action:label", "Name")
- width: (parent.width / 3) | 0
- }
- Label
- {
- text: manager.qualityName
- width: (parent.width / 3) | 0
- }
- }
- Row
- {
- width: parent.width
- height: manager.numUserSettings != 0 ? childrenRect.height : 0
- Label
- {
- text: catalog.i18nc("@action:label", "Not in profile")
- width: (parent.width / 3) | 0
- }
- Label
- {
- text: catalog.i18ncp("@action:label", "%1 override", "%1 overrides", manager.numUserSettings).arg(manager.numUserSettings)
- width: (parent.width / 3) | 0
- }
- visible: manager.numUserSettings != 0
- }
- Row
- {
- width: parent.width
- height: manager.numSettingsOverridenByQualityChanges != 0 ? childrenRect.height : 0
- Label
- {
- text: catalog.i18nc("@action:label", "Derivative from")
- width: (parent.width / 3) | 0
- }
- Label
- {
- text: catalog.i18ncp("@action:label", "%1, %2 override", "%1, %2 overrides", manager.numSettingsOverridenByQualityChanges).arg(manager.qualityType).arg(manager.numSettingsOverridenByQualityChanges)
- width: (parent.width / 3) | 0
- }
- visible: manager.numSettingsOverridenByQualityChanges != 0
- }
- Item // Spacer
- {
- height: spacerHeight
- width: height
- }
- Row
- {
- height: childrenRect.height
- width: parent.width
- Label
- {
- text: catalog.i18nc("@action:label", "Material settings")
- font.bold: true
- width: (parent.width / 3) | 0
- }
- Item
- {
- // spacer
- height: spacerHeight
- width: (parent.width / 3) | 0
- }
- UM.TooltipArea
- {
- id: materialResolveTooltip
- width: (parent.width / 3) | 0
- height: visible ? comboboxHeight : 0
- visible: manager.materialConflict
- text: catalog.i18nc("@info:tooltip", "How should the conflict in the material be resolved?")
- ComboBox
- {
- model: resolveStrategiesModel
- textRole: "label"
- id: materialResolveComboBox
- width: parent.width
- onActivated:
- {
- manager.setResolveStrategy("material", resolveStrategiesModel.get(index).key)
- }
- }
- }
- }
- Repeater
- {
- model: manager.materialLabels
- delegate: Row
- {
- width: parent.width
- height: childrenRect.height
- Label
- {
- text: catalog.i18nc("@action:label", "Name")
- width: (parent.width / 3) | 0
- }
- Label
- {
- text: modelData
- width: (parent.width / 3) | 0
- }
- }
- }
- Item // Spacer
- {
- height: spacerHeight
- width: height
- }
- Label
- {
- text: catalog.i18nc("@action:label", "Setting visibility")
- font.bold: true
- }
- Row
- {
- width: parent.width
- height: childrenRect.height
- Label
- {
- text: catalog.i18nc("@action:label", "Mode")
- width: (parent.width / 3) | 0
- }
- Label
- {
- text: manager.activeMode
- width: (parent.width / 3) | 0
- }
- }
- Row
- {
- width: parent.width
- height: childrenRect.height
- visible: manager.hasVisibleSettingsField
- Label
- {
- text: catalog.i18nc("@action:label", "Visible settings:")
- width: (parent.width / 3) | 0
- }
- Label
- {
- text: catalog.i18nc("@action:label", "%1 out of %2" ).arg(manager.numVisibleSettings).arg(manager.totalNumberOfSettings)
- width: (parent.width / 3) | 0
- }
- }
- Item // Spacer
- {
- height: spacerHeight
- width: height
- }
- Row
- {
- width: parent.width
- height: childrenRect.height
- visible: manager.hasObjectsOnPlate
- UM.RecolorImage
- {
- width: warningLabel.height
- height: width
- source: UM.Theme.getIcon("notice")
- color: palette.text
- }
- Label
- {
- id: warningLabel
- text: catalog.i18nc("@action:warning", "Loading a project will clear all models on the build plate.")
- wrapMode: Text.Wrap
- }
- }
- }
- Button
- {
- id: cancel_button
- text: catalog.i18nc("@action:button","Cancel");
- onClicked: { manager.onCancelButtonClicked() }
- enabled: true
- anchors.bottom: parent.bottom
- anchors.right: ok_button.left
- anchors.rightMargin: 2 * screenScaleFactor
- }
- Button
- {
- id: ok_button
- text: catalog.i18nc("@action:button","Open");
- onClicked: { manager.closeBackend(); manager.onOkButtonClicked() }
- anchors.bottom: parent.bottom
- anchors.right: parent.right
- }
- }
- function accept() {
- manager.closeBackend();
- manager.onOkButtonClicked();
- base.visible = false;
- base.accept();
- }
- function reject() {
- manager.onCancelButtonClicked();
- base.visible = false;
- base.rejected();
- }
- }
|