shift-shell/components/mobilehomescreencomponents/qml/LauncherContainer.qml

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

85 lines
2.4 KiB
QML
Raw Normal View History

2019-08-16 13:50:37 +00:00
/*
2021-03-01 20:03:25 +00:00
* SPDX-FileCopyrightText: 2019 Marco Martin <mart@kde.org>
2019-08-16 13:50:37 +00:00
*
2021-03-01 20:03:25 +00:00
* SPDX-License-Identifier: GPL-2.0-or-later
2019-08-16 13:50:37 +00:00
*/
import QtQuick 2.4
import QtQuick.Layouts 1.1
import QtQuick.Controls 2.3 as Controls
import org.kde.plasma.plasmoid 2.0
import org.kde.plasma.core 2.0 as PlasmaCore
import org.kde.kquickcontrolsaddons 2.0
import org.kde.plasma.private.containmentlayoutmanager 1.0 as ContainmentLayoutManager
2019-08-16 13:50:37 +00:00
2019-08-23 10:54:19 +00:00
Item {
2019-08-16 13:50:37 +00:00
id: root
readonly property int reservedSpaceForLabel: metrics.height
2021-09-13 16:40:56 +00:00
readonly property int cellWidth: root.width / Math.floor(root.width / ((availableCellHeight - reservedSpaceForLabel) + PlasmaCore.Units.smallSpacing*4))
readonly property int cellHeight: availableCellHeight
2021-09-13 16:40:56 +00:00
property int availableCellHeight: PlasmaCore.Units.iconSizes.huge + reservedSpaceForLabel
2019-08-16 13:50:37 +00:00
property ContainmentLayoutManager.AppletsLayout appletsLayout
2019-08-16 13:50:37 +00:00
2019-08-23 10:54:19 +00:00
property alias frame: frame
property alias flow: applicationsFlow
2019-08-16 13:50:37 +00:00
2019-08-23 10:54:19 +00:00
implicitWidth: frame.implicitWidth
2021-09-13 16:40:56 +00:00
implicitHeight: Math.max(PlasmaCore.Units.gridUnit*3, frame.implicitHeight)
2019-08-16 13:50:37 +00:00
2019-08-23 10:54:19 +00:00
Controls.Label {
id: metrics
2019-10-14 14:10:08 +00:00
text: "M\nM"
2019-08-23 10:54:19 +00:00
visible: false
font.pointSize: PlasmaCore.Theme.defaultFont.pointSize * 0.9
2019-08-16 13:50:37 +00:00
}
2019-08-23 10:54:19 +00:00
Item {
id: spacer
2021-09-13 16:40:56 +00:00
width: PlasmaCore.Units.gridUnit * 4
2019-08-23 10:54:19 +00:00
height: width
}
2019-08-16 13:50:37 +00:00
2019-08-23 10:54:19 +00:00
Controls.Control {
id: frame
anchors.centerIn: parent
2020-02-06 15:59:52 +00:00
implicitWidth: contentItem.implicitWidth
implicitHeight: contentItem.implicitHeight
height: parent.height
2019-08-23 10:54:19 +00:00
2020-02-06 15:59:52 +00:00
leftPadding: 0
topPadding: 0
rightPadding: 0
bottomPadding: 0
2020-02-17 09:28:23 +00:00
2019-10-04 09:45:37 +00:00
// With a mousearea, it will be possible to drag with touch also on empty places
contentItem: MouseArea {
implicitWidth: applicationsFlow.implicitWidth
implicitHeight: applicationsFlow.implicitHeight
Flow {
id: applicationsFlow
spacing: 0
anchors.fill: parent
move: Transition {
NumberAnimation {
2021-09-13 16:40:56 +00:00
duration: PlasmaCore.Units.longDuration
2019-10-04 09:45:37 +00:00
easing.type: Easing.InOutQuad
properties: "x,y"
}
2019-08-16 13:50:37 +00:00
}
}
}
2019-09-03 10:11:39 +00:00
Behavior on implicitWidth {
NumberAnimation {
2021-09-13 16:40:56 +00:00
duration: PlasmaCore.Units.longDuration
2019-09-03 10:11:39 +00:00
easing.type: Easing.InOutQuad
}
}
2019-08-16 13:50:37 +00:00
}
}