Warning, /plasma/latte-dock/declarativeimports/components/ItemDelegate.qml is written in an unsupported language. File is not indexed.
0001 /* 0002 SPDX-FileCopyrightText: 2016 Marco Martin <mart@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 import QtQuick 2.5 0008 import QtQuick.Layouts 1.3 0009 import QtQuick.Templates 2.2 as T 0010 import org.kde.plasma.core 2.0 as PlasmaCore 0011 0012 import org.kde.latte.components 1.0 as LatteComponents 0013 0014 import "private" as Private 0015 0016 T.CheckDelegate { 0017 id: control 0018 implicitWidth: contentItem.implicitWidth + leftPadding + rightPadding 0019 implicitHeight: isSeparator ? 1 : Math.max(contentItem.implicitHeight, indicator ? indicator.implicitHeight : 0) + topPadding + bottomPadding 0020 hoverEnabled: !isSeparator 0021 0022 topPadding: margin 0023 bottomPadding: margin 0024 leftPadding: isSeparator ? 0 : margin 0025 rightPadding: isSeparator ? 0 : margin 0026 spacing: units.smallSpacing 0027 0028 property bool isSeparator: false 0029 0030 property bool blankSpaceForEmptyIcons: false 0031 property string icon 0032 property string iconToolTip 0033 property bool iconOnlyWhenHovered 0034 property string toolTip 0035 0036 property int textHorizontalAlignment: Text.AlignLeft 0037 0038 readonly property bool isHovered: hovered || iconMouseArea.containsMouse 0039 readonly property int margin: isSeparator ? 1 : 4 0040 0041 contentItem: RowLayout { 0042 Layout.leftMargin: control.mirrored && !isSeparator ? (control.indicator ? control.indicator.width : 0) + control.spacing : 0 0043 Layout.rightMargin: !control.mirrored && !isSeparator ? (control.indicator ? control.indicator.width : 0) + control.spacing : 0 0044 spacing: isSeparator ? 0 : units.smallSpacing 0045 enabled: control.enabled 0046 0047 Rectangle { 0048 Layout.minimumWidth: parent.height 0049 Layout.maximumWidth: parent.height 0050 Layout.minimumHeight: parent.height 0051 Layout.maximumHeight: parent.height 0052 visible: !isSeparator && icon && (!control.iconOnlyWhenHovered || (control.iconOnlyWhenHovered && control.isHovered)) 0053 color: control.iconToolTip && iconMouseArea.containsMouse ? theme.highlightColor : "transparent" 0054 0055 PlasmaCore.IconItem { 0056 id: iconElement 0057 anchors.fill: parent 0058 colorGroup: PlasmaCore.Theme.ButtonColorGroup 0059 source: control.icon 0060 } 0061 0062 LatteComponents.ToolTip{ 0063 parent: iconElement 0064 text: iconToolTip 0065 visible: iconMouseArea.containsMouse 0066 delay: 6 * units.longDuration 0067 } 0068 0069 MouseArea { 0070 id: iconMouseArea 0071 anchors.fill: parent 0072 hoverEnabled: true 0073 visible: control.iconToolTip 0074 0075 onClicked: control.ListView.view.iconClicked(index); 0076 } 0077 } 0078 0079 Rectangle { 0080 //blank space when no icon is shown 0081 Layout.minimumHeight: parent.height 0082 Layout.minimumWidth: parent.height 0083 visible: !isSeparator && control.blankSpaceForEmptyIcons && (!icon || (control.iconOnlyWhenHovered && !control.isHovered) ) 0084 color: "transparent" 0085 } 0086 0087 Label { 0088 Layout.fillWidth: true 0089 text: control.text 0090 font: control.font 0091 color: theme.viewTextColor 0092 elide: Text.ElideRight 0093 visible: !isSeparator && control.text 0094 horizontalAlignment: control.textHorizontalAlignment 0095 verticalAlignment: Text.AlignVCenter 0096 } 0097 0098 Rectangle { 0099 width: parent.width 0100 height: 1 0101 color: theme.textColor 0102 opacity: 0.25 0103 visible: isSeparator 0104 } 0105 } 0106 0107 //background: Private.DefaultListItemBackground {} 0108 background: Rectangle { 0109 visible: isSeparator ? false : (control.ListView.view ? control.ListView.view.highlight === null : true) 0110 enabled: control.enabled 0111 opacity: { 0112 if (control.highlighted || control.pressed) { 0113 return 0.6; 0114 } else if (control.isHovered && !control.pressed) { 0115 return 0.3; 0116 } 0117 0118 return 0; 0119 } 0120 0121 color: theme.highlightColor 0122 } 0123 }