Files
dotfiles/quickshell/bar/widgets/player/PlayerWidget.qml
doloro 2e94f6dac3 meow
2025-09-22 20:55:16 +00:00

89 lines
2.2 KiB
QML
Executable File

import Quickshell
import Quickshell.Io
import QtQuick
import QtQuick.Layouts
import Quickshell.Widgets
import QtQuick.Effects
// import playbutton.svg
Item {
id: root
Layout.fillHeight: true
implicitWidth: hi.width
property PlayerControllerV2 player: PlayerControllerV2;
MouseArea {
anchors.fill: parent
hoverEnabled: true
onEntered: event => {
audioPopup.visible = true;
}
onExited: event => {
audioPopup.visible = false;
}
}
Image {
source: player.activePlayer.trackArtUrl;
anchors.fill: parent
fillMode: Image.PreserveAspectCrop
layer.enabled: true
layer.effect: MultiEffect {
blur: 0.3
blurEnabled: true
}
}
// parent.aaaaa: false
RowLayout {
id: hi
Item {
implicitHeight: 30;
implicitWidth: 30;
IconImage {
implicitSize: 30;
source: "root:assets/media_player/skip_next.svg";
scale: -1
}
MouseArea {
anchors.fill: parent
onPressed: event => {
player.activePlayer.previous();
}
}
}
Item {
implicitHeight: 30;
implicitWidth: 30;
IconImage {
implicitSize: 30;
source: !player.activePlayer.isPlaying ? "root:/assets/media_player/playbutton.svg" : "root:/assets/media_player/pausebutton.svg";
}
MouseArea {
anchors.fill: parent
hoverEnabled: false
onPressed: event => {
player.activePlayer.togglePlaying();
}
}
}
Item {
implicitHeight: 30;
implicitWidth: 30;
IconImage {
implicitSize: 30;
source: "root:assets/media_player/skip_next.svg";
}
MouseArea {
anchors.fill: parent
onPressed: event => {
player.activePlayer.next();
}
}
}
}
PlayerPopup {
id: audioPopup
}
}