Warning, /plasma/kwin/src/kcms/decoration/ui/ButtonGroup.qml is written in an unsupported language. File is not indexed.
0001 /*
0002 SPDX-FileCopyrightText: 2014 Martin Gräßlin <mgraesslin@kde.org>
0003
0004 SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
0005 */
0006 import QtQuick
0007
0008 import org.kde.kirigami 2.20 as Kirigami
0009 import org.kde.kwin.private.kdecoration as KDecoration
0010
0011 ListView {
0012 id: view
0013 property string key
0014 property bool dragActive: false
0015 property int iconSize: Kirigami.Units.iconSizes.small
0016 orientation: ListView.Horizontal
0017 interactive: false
0018 spacing: Kirigami.Units.smallSpacing
0019 implicitHeight: iconSize
0020 implicitWidth: count * (iconSize + Kirigami.Units.smallSpacing) - Math.min(1, count) * Kirigami.Units.smallSpacing
0021 delegate: Item {
0022 width: view.iconSize
0023 height: view.iconSize
0024 KDecoration.Button {
0025 id: button
0026 property int itemIndex: index
0027 property var buttonsModel: parent.ListView.view.model
0028 bridge: bridgeItem.bridge
0029 settings: settingsItem
0030 type: model["button"]
0031 width: view.iconSize
0032 height: view.iconSize
0033 anchors.fill: Drag.active ? undefined : parent
0034 Drag.keys: [ "decoButtonRemove", view.key ]
0035 Drag.active: dragArea.drag.active
0036 Drag.onActiveChanged: view.dragActive = Drag.active
0037 color: palette.windowText
0038 opacity: parent.enabled ? 1.0 : 0.3
0039 }
0040 MouseArea {
0041 id: dragArea
0042 cursorShape: Qt.SizeAllCursor
0043 anchors.fill: parent
0044 drag.target: button
0045 onReleased: {
0046 if (drag.target.Drag.target) {
0047 drag.target.Drag.drop();
0048 } else {
0049 drag.target.Drag.cancel();
0050 }
0051 }
0052 }
0053 }
0054 add: Transition {
0055 NumberAnimation { property: "opacity"; from: 0; to: 1.0; duration: Kirigami.Units.longDuration/2 }
0056 NumberAnimation { property: "scale"; from: 0; to: 1.0; duration: Kirigami.Units.longDuration/2 }
0057 }
0058 move: Transition {
0059 NumberAnimation { property: "opacity"; from: 0; to: 1.0; duration: Kirigami.Units.longDuration/2 }
0060 NumberAnimation { property: "scale"; from: 0; to: 1.0; duration: Kirigami.Units.longDuration/2 }
0061 }
0062 displaced: Transition {
0063 NumberAnimation { properties: "x,y"; duration: Kirigami.Units.longDuration; easing.type: Easing.OutBounce }
0064 }
0065 }