mirror of
https://gitgud.io/wackyideas/aerothemeplasma.git
synced 2026-06-19 03:45:50 +00:00
81 lines
2.8 KiB
QML
81 lines
2.8 KiB
QML
|
|
import QtQuick
|
|
import QtQuick.Controls
|
|
import QtQuick.Layouts
|
|
import QtQuick.Dialogs
|
|
import QtQuick.Window
|
|
|
|
import org.kde.plasma.plasmoid
|
|
import org.kde.plasma.core as PlasmaCore
|
|
import org.kde.plasma.components as PlasmaComponents
|
|
import org.kde.plasma.extras as PlasmaExtras
|
|
|
|
import org.kde.plasma.private.kicker as Kicker
|
|
import org.kde.coreaddons as KCoreAddons // kuser
|
|
import org.kde.plasma.private.shell 2.0
|
|
|
|
import org.kde.kquickcontrolsaddons 2.0
|
|
import org.kde.kwindowsystem 1.0
|
|
import org.kde.kirigami as Kirigami
|
|
|
|
Item {
|
|
id: floatingOrb
|
|
width: scaledWidth //buttonIconSizes.width
|
|
height: scaledHeight / 3 //buttonIconSizes.height / 3
|
|
property alias buttonIconSizes: buttonIconSizes
|
|
property alias buttonIcon: buttonIcon
|
|
property alias buttonIconPressed: buttonIconPressed
|
|
property alias buttonIconHovered: buttonIconHovered
|
|
|
|
property string orbTexture: getResolvedUrl(Plasmoid.configuration.customButtonImage, "orbs/orb" + (stickOutOrb ? "_small" : "") + ".png")
|
|
property int opacityDuration: 300
|
|
|
|
Image {
|
|
id: buttonIconSizes
|
|
smooth: true
|
|
source: orbTexture
|
|
opacity: 0;
|
|
}
|
|
clip: false
|
|
|
|
property real aspectRatio: buttonIconSizes.height === 0 ? 1 : (buttonIconSizes.width / buttonIconSizes.height)
|
|
property int scaledWidth: Plasmoid.configuration.orbWidth === 0 ? buttonIconSizes.width : Plasmoid.configuration.orbWidth
|
|
property int scaledHeight: scaledWidth / aspectRatio
|
|
|
|
Image {
|
|
id: buttonIcon
|
|
anchors.centerIn: parent
|
|
smooth: true
|
|
source: floatingOrb.orbTexture
|
|
sourceClipRect: Qt.rect(0, 0, buttonIconSizes.width, buttonIconSizes.height / 3);
|
|
fillMode: Image.PreserveAspectFit
|
|
width: floatingOrb.scaledWidth
|
|
height: floatingOrb.scaledHeight
|
|
}
|
|
Image {
|
|
id: buttonIconPressed
|
|
anchors.centerIn: parent
|
|
visible: dashWindow.visible
|
|
smooth: true
|
|
source: floatingOrb.orbTexture
|
|
sourceClipRect: Qt.rect(0, 2*buttonIconSizes.height / 3, buttonIconSizes.width, buttonIconSizes.height / 3);
|
|
fillMode: Image.PreserveAspectFit
|
|
width: floatingOrb.scaledWidth
|
|
height: floatingOrb.scaledHeight
|
|
}
|
|
Image {
|
|
id: buttonIconHovered
|
|
anchors.centerIn: parent
|
|
source: floatingOrb.orbTexture
|
|
smooth: true
|
|
opacity: mouseAreaCompositingOff.containsMouse
|
|
visible: !dashWindow.visible
|
|
Behavior on opacity {
|
|
NumberAnimation { properties: "opacity"; easing.type: Easing.Linear; duration: floatingOrb.opacityDuration }
|
|
}
|
|
sourceClipRect: Qt.rect(0, buttonIconSizes.height / 3, buttonIconSizes.width, buttonIconSizes.height / 3);
|
|
fillMode: Image.PreserveAspectFit
|
|
width: floatingOrb.scaledWidth
|
|
height: floatingOrb.scaledHeight
|
|
}
|
|
}
|