123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- // Copyright (c) 2016 Ultimaker B.V.
- // Uranium is released under the terms of the AGPLv3 or higher.
- import QtQuick 2.1
- import QtQuick.Controls 1.1
- import QtQuick.Controls.Styles 1.1
- import UM 1.1 as UM
- import Cura 1.0 as Cura
- SettingItem
- {
- id: base
- contents: ComboBox
- {
- id: control
- model: Cura.ExtrudersModel
- {
- id: extruders_model
- onModelChanged: control.color = extruders_model.getItem(control.currentIndex).color
- }
- property string color: extruders_model.getItem(control.currentIndex).color
- textRole: "name"
- anchors.fill: parent
- MouseArea
- {
- anchors.fill: parent
- acceptedButtons: Qt.NoButton
- onWheel: wheel.accepted = true;
- }
- style: ComboBoxStyle
- {
- background: Rectangle
- {
- color:
- {
- if (!enabled)
- {
- return UM.Theme.getColor("setting_control_disabled");
- }
- if(control.hovered || base.activeFocus)
- {
- return UM.Theme.getColor("setting_control_highlight");
- }
- else
- {
- return UM.Theme.getColor("setting_control");
- }
- }
- border.width: UM.Theme.getSize("default_lining").width
- border.color: !enabled ? UM.Theme.getColor("setting_control_disabled_border") : control.hovered ? UM.Theme.getColor("setting_control_border_highlight") : UM.Theme.getColor("setting_control_border")
- }
- label: Item
- {
- Rectangle
- {
- id: swatch
- height: UM.Theme.getSize("setting_control").height / 2
- width: height
- anchors.left: parent.left
- anchors.leftMargin: UM.Theme.getSize("default_lining").width
- anchors.verticalCenter: parent.verticalCenter
- color: control.color
- border.width: UM.Theme.getSize("default_lining").width
- border.color: !enabled ? UM.Theme.getColor("setting_control_disabled_border") : UM.Theme.getColor("setting_control_border")
- }
- Label
- {
- anchors.left: swatch.right
- anchors.leftMargin: UM.Theme.getSize("default_lining").width
- anchors.right: downArrow.left
- anchors.rightMargin: UM.Theme.getSize("default_lining").width
- anchors.verticalCenter: parent.verticalCenter
- text: control.currentText
- font: UM.Theme.getFont("default")
- color: !enabled ? UM.Theme.getColor("setting_control_disabled_text") : UM.Theme.getColor("setting_control_text")
- elide: Text.ElideRight
- verticalAlignment: Text.AlignVCenter
- }
- UM.RecolorImage
- {
- id: downArrow
- anchors.right: parent.right
- anchors.rightMargin: UM.Theme.getSize("default_lining").width * 2
- anchors.verticalCenter: parent.verticalCenter
- source: UM.Theme.getIcon("arrow_bottom")
- width: UM.Theme.getSize("standard_arrow").width
- height: UM.Theme.getSize("standard_arrow").height
- sourceSize.width: width + 5
- sourceSize.height: width + 5
- color: UM.Theme.getColor("setting_control_text")
- }
- }
- }
- onActivated:
- {
- forceActiveFocus();
- propertyProvider.setPropertyValue("value", extruders_model.getItem(index).index);
- control.color = extruders_model.getItem(index).color;
- }
- onModelChanged: updateCurrentIndex();
- Connections
- {
- target: propertyProvider
- onPropertiesChanged: control.updateCurrentIndex();
- }
- function updateCurrentIndex()
- {
- for(var i = 0; i < extruders_model.rowCount(); ++i)
- {
- if(extruders_model.getItem(i).index == propertyProvider.properties.value)
- {
- control.currentIndex = i;
- control.color = extruders_model.getItem(i).color;
- return;
- }
- }
- currentIndex = -1;
- }
- }
- }
|