plasma-taskmanager-zoom/contents/ui/ScrollableTextWrapper.qml

68 lines
1.4 KiB
QML

/*
SPDX-FileCopyrightText: 2020 Tranter Madi <trmdi@yandex.com>
SPDX-License-Identifier: LGPL-2.0-or-later
*/
pragma ComponentBehavior: Bound
import QtQuick
MouseArea {
id: root
required property Text textItem
onTextItemChanged: {
textItem.parent = this;
textItem.width = Qt.binding(() => width);
}
clip: textItem.elide === Text.ElideNone
hoverEnabled: true
onContainsMouseChanged: {
if (!containsMouse) {
state = "";
}
}
Timer {
id: timer
interval: 500
running: root.containsMouse
onTriggered: {
if (root.width < root.textItem.implicitWidth) {
root.state = "ShowRight";
}
}
}
states: [
State {
name: ""
PropertyChanges {
target: root.textItem
x: 0
}
},
State {
name: "ShowRight"
PropertyChanges {
target: root.textItem
x: root.width - root.textItem.implicitWidth
}
}
]
transitions: Transition {
to: "ShowRight"
NumberAnimation {
target: root.textItem
properties: "x"
easing.type: Easing.Linear
duration: Math.abs(root.textItem.implicitWidth - root.width) * 25
}
}
}