mirror of
https://gitgud.io/wackyideas/aerothemeplasma.git
synced 2024-08-15 00:43:43 +00:00
Very early KDE 6 release.
This commit is contained in:
parent
7cc4ccabbc
commit
686046d4f7
6272 changed files with 140920 additions and 529657 deletions
|
@ -0,0 +1,174 @@
|
|||
import QtQuick
|
||||
import QtQuick.Layouts
|
||||
|
||||
import org.kde.plasma.components as PC3
|
||||
import org.kde.plasma.core as PlasmaCore
|
||||
import org.kde.plasma.extras as PlasmaExtras
|
||||
import org.kde.ksvg as KSvg
|
||||
import org.kde.plasma.shell.panel as Panel
|
||||
import org.kde.kirigami as Kirigami
|
||||
|
||||
Item {
|
||||
id: root
|
||||
|
||||
property string text
|
||||
property /*Qt::Alignment*/int alignment: Qt.AlignHCenter | Qt.AlignBottom
|
||||
property string tooltip
|
||||
|
||||
property bool isVertical: false
|
||||
property bool checked: false
|
||||
property bool windowVisible: false
|
||||
property bool panelVisible: true
|
||||
property bool translucentPanel: false
|
||||
property bool sunkenPanel: false
|
||||
property bool adaptivePanel: false
|
||||
property bool fillAvailable: false
|
||||
property int floatingGap: 0
|
||||
property int windowZ: 0
|
||||
property var mainIconSource: null
|
||||
property int screenHeight: Math.round(screenRect.height / 2)
|
||||
|
||||
readonly property bool iconAndLabelsShouldlookSelected: checked || mouseArea.pressed
|
||||
|
||||
signal clicked()
|
||||
|
||||
implicitHeight: mainItem.height
|
||||
implicitWidth: mainItem.width
|
||||
|
||||
PC3.ToolTip {
|
||||
text: root.tooltip
|
||||
visible: mouseArea.containsMouse && text.length > 0
|
||||
}
|
||||
|
||||
PlasmaExtras.Highlight {
|
||||
anchors.fill: parent
|
||||
anchors.margins: -Kirigami.Units.smallSpacing
|
||||
hovered: mouseArea.containsMouse
|
||||
pressed: root.iconAndLabelsShouldlookSelected
|
||||
}
|
||||
|
||||
MouseArea {
|
||||
id: mouseArea
|
||||
anchors.fill: parent
|
||||
hoverEnabled: true
|
||||
onClicked: root.clicked()
|
||||
}
|
||||
|
||||
ColumnLayout {
|
||||
id: mainItem
|
||||
spacing: Kirigami.Units.smallSpacing
|
||||
Rectangle {
|
||||
id: screenRect
|
||||
|
||||
Layout.alignment: Qt.AlignHCenter
|
||||
implicitWidth: Math.round(Math.min(Kirigami.Units.gridUnit * 6, Screen.width * 0.1))
|
||||
implicitHeight: Math.round(Math.min(Kirigami.Units.gridUnit * 4, Screen.width * 0.1))
|
||||
color: Qt.tint(Kirigami.Theme.backgroundColor, Qt.rgba(1, 1, 1, 0.3))
|
||||
border.color: Kirigami.Theme.highlightColor
|
||||
radius: Kirigami.Units.cornerRadius
|
||||
clip: root.sunkenPanel
|
||||
|
||||
RowLayout {
|
||||
anchors.fill: parent
|
||||
Rectangle {
|
||||
id: panelImage
|
||||
|
||||
implicitWidth: root.isVertical ? Math.round(parent.width / 6) : Math.round(parent.width * (root.fillAvailable ? 1 : 0.8))
|
||||
implicitHeight: root.isVertical ? Math.round(parent.height * (root.fillAvailable ? 1 : 0.8)) : Math.round(parent.height / 4)
|
||||
Layout.alignment: root.alignment
|
||||
Layout.bottomMargin: root.sunkenPanel * -Math.round(height / 2) + root.floatingGap
|
||||
color: root.translucentPanel ? screenRect.color : Kirigami.Theme.backgroundColor
|
||||
opacity: root.translucentPanel ? 0.8 : 1.0
|
||||
border.color: "transparent"
|
||||
visible: root.panelVisible
|
||||
clip: root.adaptivePanel
|
||||
radius: Kirigami.Units.cornerRadius
|
||||
|
||||
z: 1
|
||||
|
||||
Loader {
|
||||
id: horizontalAdaptivePanelLoader
|
||||
active: root.adaptivePanel && !root.isVertical
|
||||
sourceComponent: Rectangle {
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
anchors.left: parent.left
|
||||
anchors.leftMargin: Math.round(panelImage.width / 3)
|
||||
color: Qt.lighter(screenRect.color)
|
||||
border.color: Kirigami.Theme.highlightColor
|
||||
width: panelImage.width
|
||||
height: Math.round(panelImage.height * 4)
|
||||
radius: Math.round(height / 2)
|
||||
rotation: 45
|
||||
}
|
||||
}
|
||||
|
||||
Loader {
|
||||
id: verticalAdaptivePanelLoader
|
||||
active: root.adaptivePanel && root.isVertical
|
||||
sourceComponent: Rectangle {
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
anchors.top: parent.top
|
||||
anchors.topMargin: Math.round(panelImage.height / 4)
|
||||
color: Qt.lighter(screenRect.color)
|
||||
border.color: Kirigami.Theme.highlightColor
|
||||
width: Math.round(panelImage.width * 2)
|
||||
height: panelImage.height
|
||||
radius: Math.round(height / 2)
|
||||
rotation: 45
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
id: panelBorder
|
||||
anchors.fill: parent
|
||||
color: "transparent"
|
||||
border.color: Kirigami.Theme.highlightColor
|
||||
radius: panelImage.radius
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
id: window
|
||||
width: Math.round(parent.width / 2)
|
||||
height: Math.round(parent.height / 2)
|
||||
visible: root.windowVisible
|
||||
radius: 5
|
||||
color: Kirigami.Theme.highlightColor
|
||||
border.color: "transparent"
|
||||
|
||||
x: root.isVertical ? Math.round(panelImage.x + panelImage.width / 2) : Math.round(screenRect.width / 2 - width / 2) + Kirigami.Units.gridUnit
|
||||
y: root.isVertical ? Math.round(screenRect.height / 2 - height / 2) : Math.round(panelImage.y - height + panelImage.height / 2)
|
||||
z: root.windowZ
|
||||
|
||||
Row {
|
||||
anchors.top: parent.top
|
||||
anchors.right: parent.right
|
||||
anchors.margins: Kirigami.Units.smallSpacing
|
||||
spacing: Kirigami.Units.smallSpacing
|
||||
Repeater {
|
||||
model: 3
|
||||
delegate: Rectangle {
|
||||
width: Math.round(Kirigami.Units.gridUnit / 6)
|
||||
height: width
|
||||
radius: Math.round(height / 2)
|
||||
color: Kirigami.Theme.textColor
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Kirigami.Icon {
|
||||
id: mainIcon
|
||||
visible: valid
|
||||
anchors.centerIn: parent
|
||||
transform: Translate {
|
||||
y: root.isVertical ? 0 : Math.round((mainIcon.y - panelImage.y) / 4)
|
||||
x: root.isVertical ? Math.round((mainIcon.x - panelImage.x) / 4) : 0
|
||||
}
|
||||
height: parent.height / 2
|
||||
source: root.mainIconSource
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue