123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 |
- // Copyright (c) 2022 Ultimaker B.V.
- // Cura is released under the terms of the LGPLv3 or higher.
- import QtQuick 2.10
- import QtQuick.Controls 2.3
- import UM 1.5 as UM
- import Cura 1.0 as Cura
- Item
- {
- id: objectSelector
- width: UM.Theme.getSize("objects_menu_size").width
- property bool opened: UM.Preferences.getValue("cura/show_list_of_objects")
- // Eat up all the mouse events (we don't want the scene to react or have the scene context menu showing up)
- MouseArea
- {
- anchors.fill: parent
- acceptedButtons: Qt.AllButtons
- }
- Button
- {
- id: openCloseButton
- width: parent.width
- height: contentItem.height + bottomPadding
- hoverEnabled: true
- padding: 0
- bottomPadding: UM.Theme.getSize("narrow_margin").height / 2 | 0
- anchors
- {
- bottom: contents.top
- horizontalCenter: parent.horizontalCenter
- }
- contentItem: Item
- {
- width: parent.width
- height: label.height
- UM.ColorImage
- {
- id: openCloseIcon
- width: UM.Theme.getSize("standard_arrow").width
- height: UM.Theme.getSize("standard_arrow").height
- anchors.left: parent.left
- color: openCloseButton.hovered ? UM.Theme.getColor("small_button_text_hover") : UM.Theme.getColor("small_button_text")
- source: objectSelector.opened ? UM.Theme.getIcon("ChevronSingleDown") : UM.Theme.getIcon("ChevronSingleUp")
- }
- UM.Label
- {
- id: label
- anchors.left: openCloseIcon.right
- anchors.leftMargin: UM.Theme.getSize("default_margin").width
- text: catalog.i18nc("@label", "Object list")
- color: openCloseButton.hovered ? UM.Theme.getColor("small_button_text_hover") : UM.Theme.getColor("small_button_text")
- elide: Text.ElideRight
- }
- }
- background: Item {}
- onClicked:
- {
- UM.Preferences.setValue("cura/show_list_of_objects", !objectSelector.opened)
- objectSelector.opened = UM.Preferences.getValue("cura/show_list_of_objects")
- }
- }
- Rectangle
- {
- id: contents
- width: parent.width
- visible: objectSelector.opened
- height: visible ? listView.height + border.width * 2 : 0
- color: UM.Theme.getColor("main_background")
- border.width: UM.Theme.getSize("default_lining").width
- border.color: UM.Theme.getColor("lining")
- Behavior on height { NumberAnimation { duration: 100 } }
- anchors.bottom: parent.bottom
- property var extrudersModel: CuraApplication.getExtrudersModel()
- UM.SettingPropertyProvider
- {
- id: machineExtruderCount
- containerStack: Cura.MachineManager.activeMachine
- key: "machine_extruder_count"
- watchedProperties: [ "value" ]
- storeIndex: 0
- }
- ListView
- {
- id: listView
- anchors
- {
- left: parent.left
- right: parent.right
- top: parent.top
- margins: UM.Theme.getSize("default_lining").width
- }
- property real maximumHeight: UM.Theme.getSize("objects_menu_size").height
- height: Math.min(contentHeight, maximumHeight)
- ScrollBar.vertical: UM.ScrollBar
- {
- id: scrollBar
- }
- clip: true
- model: Cura.ObjectsModel {}
- delegate: ObjectItemButton
- {
- id: modelButton
- Binding
- {
- target: modelButton
- property: "checked"
- value: model.selected
- }
- text: model.name
- width: listView.width - scrollBar.width
- property bool outsideBuildArea: model.outside_build_area
- property int perObjectSettingsCount: model.per_object_settings_count
- property string meshType: model.mesh_type
- property int extruderNumber: model.extruder_number
- property string extruderColor:
- {
- if (model.extruder_number == -1)
- {
- return "";
- }
- return contents.extrudersModel.getItem(model.extruder_number).color;
- }
- property bool showExtruderSwatches: machineExtruderCount.properties.value > 1
- }
- }
- }
- }
|