Unify config into shell.json and add Noctalia plugin support
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
import QtQuick
|
||||
import qs.Commons
|
||||
|
||||
// Noctalia compat shim. Auto-scrolling label.
|
||||
Item {
|
||||
id: root
|
||||
|
||||
property string text: ""
|
||||
property real maxWidth: 200
|
||||
property real pointSize: Style.fontSizeM
|
||||
property int scrollMode: NScrollText.ScrollMode.Hover
|
||||
property bool forcedHover: false
|
||||
property real fadeExtent: 0.1
|
||||
property real fadeCornerRadius: 0
|
||||
property bool fadeRoundLeftCorners: false
|
||||
property bool fadeRoundRightCorners: false
|
||||
property color textColor: Color.mOnSurface
|
||||
|
||||
enum ScrollMode { Always, Hover, Never }
|
||||
|
||||
implicitHeight: label.implicitHeight
|
||||
implicitWidth: Math.min(maxWidth, label.implicitWidth)
|
||||
clip: true
|
||||
|
||||
readonly property bool overflowing: label.implicitWidth > width
|
||||
readonly property bool shouldScroll: {
|
||||
if (!overflowing) return false
|
||||
if (scrollMode === NScrollText.ScrollMode.Always) return true
|
||||
if (scrollMode === NScrollText.ScrollMode.Hover) return forcedHover
|
||||
return false
|
||||
}
|
||||
|
||||
Text {
|
||||
id: label
|
||||
text: root.text
|
||||
color: root.textColor
|
||||
font.family: "JetBrainsMono Nerd Font"
|
||||
font.pixelSize: root.pointSize
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
height: parent.height
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
|
||||
NumberAnimation on x {
|
||||
id: scrollAnim
|
||||
running: root.shouldScroll
|
||||
loops: Animation.Infinite
|
||||
duration: Math.max(5000, label.implicitWidth * 22)
|
||||
from: root.width
|
||||
to: -label.implicitWidth
|
||||
easing.type: Easing.Linear
|
||||
}
|
||||
|
||||
onShouldScrollChanged: if (!root.shouldScroll) x = 0
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user