123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- // Copyright (c) 2018 Ultimaker B.V.
- // Cura is released under the terms of the LGPLv3 or higher.
- import QtQuick 2.7
- import QtQuick.Controls 1.4
- import QtQuick.Controls.Styles 1.4
- import QtQuick.Layouts 1.3
- import QtQuick.Dialogs 1.2
- import UM 1.2 as UM
- import Cura 1.0 as Cura
- // A single material row, typically used in a MaterialsBrandSection
- Rectangle
- {
- id: materialSlot
- property var material: null
- property var hovered: false
- property var is_favorite: material != null && material.is_favorite
- height: UM.Theme.getSize("favorites_row").height
- width: parent.width
- //color: material != null ? (base.currentItem.root_material_id == material.root_material_id ? UM.Theme.getColor("favorites_row_selected") : "transparent") : "transparent"
- color:
- {
- if(material !== null && base.currentItem !== null)
- {
- if(base.currentItem.root_material_id === material.root_material_id)
- {
- return UM.Theme.getColor("favorites_row_selected")
- }
- }
- return "transparent"
- }
- Rectangle
- {
- id: swatch
- color: material != null ? material.color_code : "transparent"
- border.width: UM.Theme.getSize("default_lining").width
- border.color: "black"
- width: UM.Theme.getSize("favorites_button_icon").width
- height: UM.Theme.getSize("favorites_button_icon").height
- anchors.verticalCenter: materialSlot.verticalCenter
- anchors.left: materialSlot.left
- anchors.leftMargin: UM.Theme.getSize("default_margin").width
- }
- Label
- {
- text: material != null ? material.brand + " " + material.name : ""
- verticalAlignment: Text.AlignVCenter
- height: parent.height
- anchors.left: swatch.right
- anchors.verticalCenter: materialSlot.verticalCenter
- anchors.leftMargin: UM.Theme.getSize("narrow_margin").width
- font.italic: material != null && Cura.MachineManager.currentRootMaterialId[Cura.ExtruderManager.activeExtruderIndex] == material.root_material_id
- }
- MouseArea
- {
- anchors.fill: parent
- onClicked:
- {
- materialList.currentBrand = material.brand
- materialList.currentType = material.brand + "_" + material.material
- base.setExpandedActiveMaterial(material.root_material_id)
- }
- hoverEnabled: true
- onEntered: { materialSlot.hovered = true }
- onExited: { materialSlot.hovered = false }
- }
- Button
- {
- id: favorite_button
- text: ""
- implicitWidth: UM.Theme.getSize("favorites_button").width
- implicitHeight: UM.Theme.getSize("favorites_button").height
- visible: materialSlot.hovered || materialSlot.is_favorite || favorite_button.hovered
- anchors
- {
- right: materialSlot.right
- verticalCenter: materialSlot.verticalCenter
- }
- onClicked:
- {
- if (materialSlot.is_favorite)
- {
- CuraApplication.getMaterialManagementModel().removeFavorite(material.root_material_id)
- }
- else
- {
- CuraApplication.getMaterialManagementModel().addFavorite(material.root_material_id)
- }
- }
- style: ButtonStyle
- {
- background: Item { }
- }
- UM.RecolorImage
- {
- anchors
- {
- verticalCenter: favorite_button.verticalCenter
- horizontalCenter: favorite_button.horizontalCenter
- }
- width: UM.Theme.getSize("favorites_button_icon").width
- height: UM.Theme.getSize("favorites_button_icon").height
- color:
- {
- if (favorite_button.hovered)
- {
- return UM.Theme.getColor("primary_hover")
- }
- else
- {
- if (materialSlot.is_favorite)
- {
- return UM.Theme.getColor("primary")
- }
- else
- {
- UM.Theme.getColor("text_inactive")
- }
- }
- }
- source: materialSlot.is_favorite ? UM.Theme.getIcon("favorites_star_full") : UM.Theme.getIcon("favorites_star_empty")
- }
- }
- }
|