12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- // Copyright (c) 2021 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.3 as UM
- import Cura 1.1 as Cura
- //
- // Cura-style TextField
- //
- TextField
- {
- id: textField
- property alias leftIcon: iconLeft.source
- UM.I18nCatalog { id: catalog; name: "cura" }
- hoverEnabled: true
- selectByMouse: true
- font: UM.Theme.getFont("default")
- color: UM.Theme.getColor("text")
- renderType: Text.NativeRendering
- leftPadding: iconLeft.visible ? iconLeft.width + UM.Theme.getSize("default_margin").width * 2 : UM.Theme.getSize("thin_margin").width
- states: [
- State
- {
- name: "disabled"
- when: !textField.enabled
- PropertyChanges { target: backgroundRectangle.border; color: UM.Theme.getColor("setting_control_disabled_border")}
- PropertyChanges { target: backgroundRectangle; color: UM.Theme.getColor("setting_control_disabled")}
- },
- State
- {
- name: "invalid"
- when: !textField.acceptableInput
- PropertyChanges { target: backgroundRectangle.border; color: UM.Theme.getColor("setting_validation_error")}
- PropertyChanges { target: backgroundRectangle; color: UM.Theme.getColor("setting_validation_error_background")}
- },
- State
- {
- name: "hovered"
- when: textField.hovered || textField.activeFocus
- PropertyChanges { target: backgroundRectangle.border; color: UM.Theme.getColor("setting_control_border_highlight") }
- }
- ]
- background: Rectangle
- {
- id: backgroundRectangle
- color: UM.Theme.getColor("main_background")
- radius: UM.Theme.getSize("setting_control_radius").width
- border.color:
- {
- if (!textField.enabled)
- {
- return UM.Theme.getColor("setting_control_disabled_border")
- }
- if (textField.hovered || textField.activeFocus)
- {
- return UM.Theme.getColor("setting_control_border_highlight")
- }
- return UM.Theme.getColor("setting_control_border")
- }
- //Optional icon added on the left hand side.
- UM.RecolorImage
- {
- id: iconLeft
- anchors
- {
- verticalCenter: parent.verticalCenter
- left: parent.left
- leftMargin: UM.Theme.getSize("default_margin").width
- }
- visible: source != ""
- height: UM.Theme.getSize("small_button_icon").height
- width: visible ? height : 0
- color: textField.color
- }
- }
- }
|