Files
illogical-impulse/dots/.config/quickshell/ii/modules/common/widgets/PagePlaceholder.qml
T
2025-11-02 00:57:50 +01:00

62 lines
1.8 KiB
QML

import QtQuick
import QtQuick.Layouts
import qs.modules.common
import qs.modules.common.widgets
Item {
id: root
property bool shown: true
property alias icon: shapeWidget.text
property alias title: widgetNameText.text
property alias description: widgetDescriptionText.text
property alias shape: shapeWidget.shape
property alias descriptionHorizontalAlignment: widgetDescriptionText.horizontalAlignment
opacity: shown ? 1 : 0
visible: opacity > 0
anchors {
fill: parent
topMargin: -30 * (1 - opacity)
bottomMargin: 30 * (1 - opacity)
}
Behavior on opacity {
animation: Appearance.animation.elementMoveEnter.numberAnimation.createObject(this)
}
ColumnLayout {
anchors.centerIn: parent
spacing: 5
MaterialShapeWrappedMaterialSymbol {
id: shapeWidget
Layout.alignment: Qt.AlignHCenter
padding: 12
iconSize: 56
rotation: -30 * (1 - root.opacity)
}
StyledText {
id: widgetNameText
visible: title !== ""
Layout.alignment: Qt.AlignHCenter
font {
family: Appearance.font.family.title
pixelSize: Appearance.font.pixelSize.larger
variableAxes: Appearance.font.variableAxes.title
}
color: Appearance.m3colors.m3outline
horizontalAlignment: Text.AlignHCenter
}
StyledText {
id: widgetDescriptionText
visible: description !== ""
Layout.fillWidth: true
font.pixelSize: Appearance.font.pixelSize.small
color: Appearance.m3colors.m3outline
horizontalAlignment: Text.AlignLeft
wrapMode: Text.Wrap
}
}
}