summaryrefslogtreecommitdiff
path: root/modules/launcher/EmptyIndicator.qml
diff options
context:
space:
mode:
Diffstat (limited to 'modules/launcher/EmptyIndicator.qml')
-rw-r--r--modules/launcher/EmptyIndicator.qml62
1 files changed, 62 insertions, 0 deletions
diff --git a/modules/launcher/EmptyIndicator.qml b/modules/launcher/EmptyIndicator.qml
new file mode 100644
index 0000000..9593a2e
--- /dev/null
+++ b/modules/launcher/EmptyIndicator.qml
@@ -0,0 +1,62 @@
+import "root:/widgets"
+import "root:/config"
+import QtQuick
+
+Loader {
+ id: root
+
+ required property bool empty
+
+ active: false
+ opacity: 0
+ scale: 0
+ asynchronous: true
+ anchors.horizontalCenter: parent.horizontalCenter
+ anchors.verticalCenter: parent.verticalCenter
+
+ sourceComponent: Item {
+ implicitWidth: childrenRect.width
+ implicitHeight: icon.height
+
+ MaterialIcon {
+ id: icon
+
+ text: "manage_search"
+ color: Appearance.colours.m3outline
+ font.pointSize: Appearance.font.size.extraLarge
+
+ anchors.verticalCenter: parent.verticalCenter
+ }
+
+ StyledText {
+ anchors.left: icon.right
+ anchors.leftMargin: Appearance.spacing.small
+ anchors.verticalCenter: icon.verticalCenter
+
+ text: qsTr("No matching apps found")
+ color: Appearance.colours.m3outline
+ font.pointSize: Appearance.font.size.larger
+ font.weight: 500
+ }
+ }
+
+ states: State {
+ name: "visible"
+ when: root.empty
+
+ PropertyChanges {
+ root.active: true
+ root.opacity: 1
+ root.scale: 1
+ }
+ }
+
+ transitions: Transition {
+ NumberAnimation {
+ properties: "opacity,scale"
+ duration: Appearance.anim.durations.large
+ easing.type: Easing.BezierSpline
+ easing.bezierCurve: Appearance.anim.curves.standard
+ }
+ }
+}