Warning, /frameworks/kirigami/src/controls/Chip.qml is written in an unsupported language. File is not indexed.
0001 // SPDX-FileCopyrightText: 2022 Felipe Kinoshita <kinofhek@gmail.com>
0002 // SPDX-License-Identifier: GPL-2.0-or-later
0003
0004 import QtQuick
0005 import QtQuick.Controls as QQC2
0006 import QtQuick.Layouts
0007 import org.kde.kirigami as Kirigami
0008
0009 import "templates" as KT
0010 import "private" as P
0011
0012 /**
0013 * @brief A compact element that represents an attribute, action, or filter.
0014 *
0015 * Should be used in a group of multiple elements. e.g when displaying tags in a image viewer.
0016 *
0017 * Example usage:
0018 * * @code
0019 * import org.kde.kirigami 2.19 as Kirigami
0020 *
0021 * Flow {
0022 * Repeater {
0023 * model: chipsModel
0024 *
0025 * Kirigami.Chip {
0026 * text: model.text
0027 * icon.name: "tag-symbolic"
0028 * closable: model.closable
0029 * onClicked: {
0030 * [...]
0031 * }
0032 * onRemoved: {
0033 * [...]
0034 * }
0035 * }
0036 * }
0037 * }
0038 * @endcode
0039 *
0040 * @since 2.19
0041 */
0042 KT.Chip {
0043 id: chip
0044
0045 implicitWidth: layout.implicitWidth
0046 implicitHeight: toolButton.implicitHeight
0047
0048 checkable: !closable
0049
0050 /**
0051 * @brief This property holds the label item; used for accessing the usual Text properties.
0052 * @property QtQuick.Controls.Label labelItem
0053 */
0054 property alias labelItem: label
0055
0056 contentItem: RowLayout {
0057 id: layout
0058 spacing: 0
0059
0060 Kirigami.Icon {
0061 id: icon
0062 visible: icon.valid
0063 Layout.preferredWidth: Kirigami.Units.iconSizes.small
0064 Layout.preferredHeight: Kirigami.Units.iconSizes.small
0065 Layout.leftMargin: Kirigami.Units.smallSpacing
0066 color: chip.icon.color
0067 isMask: chip.iconMask
0068 source: chip.icon.name || chip.icon.source
0069 }
0070 QQC2.Label {
0071 id: label
0072 Layout.fillWidth: true
0073 Layout.minimumWidth: Kirigami.Units.gridUnit * 1.5
0074 Layout.leftMargin: icon.visible ? Kirigami.Units.smallSpacing : Kirigami.Units.largeSpacing
0075 Layout.rightMargin: chip.closable ? Kirigami.Units.smallSpacing : Kirigami.Units.largeSpacing
0076 verticalAlignment: Text.AlignVCenter
0077 horizontalAlignment: Text.AlignHCenter
0078 text: chip.text
0079 color: Kirigami.Theme.textColor
0080 elide: Text.ElideRight
0081 }
0082 QQC2.ToolButton {
0083 id: toolButton
0084 visible: chip.closable
0085 text: qsTr("Remove Tag")
0086 icon.name: "edit-delete-remove"
0087 icon.width: Kirigami.Units.iconSizes.sizeForLabels
0088 icon.height: Kirigami.Units.iconSizes.sizeForLabels
0089 display: QQC2.AbstractButton.IconOnly
0090 onClicked: chip.removed()
0091 }
0092 }
0093
0094 background: P.DefaultChipBackground {}
0095 }