diff --git a/package/contents/config/main.xml b/package/contents/config/main.xml
index 0be466a..eeccdeb 100644
--- a/package/contents/config/main.xml
+++ b/package/contents/config/main.xml
@@ -38,6 +38,10 @@
+
+
+ false
+
custom
diff --git a/package/contents/ui/Representation.qml b/package/contents/ui/Representation.qml
index df5db51..1989c66 100644
--- a/package/contents/ui/Representation.qml
+++ b/package/contents/ui/Representation.qml
@@ -14,6 +14,7 @@ MouseArea {
property string configuredLabelVisibilityMode: "auto"
property string configuredLabelPlacement: "left"
property string configuredLabelText: "NOW\nPLAYING"
+ property bool configuredUseLabelArtwork: false
property string configuredBackgroundStyle: "custom"
property string configuredBackgroundColor: "transparent"
property int configuredBackgroundRadius: 0
@@ -82,7 +83,7 @@ MouseArea {
HoverHandler {
id: rootHoverHandler
- margin: 12
+ margin: 60
}
Timer {
@@ -143,25 +144,58 @@ MouseArea {
Layout.alignment: mediaControlsMouseArea.labelsOnRight ? Qt.AlignLeft : Qt.AlignRight
Layout.fillWidth: true
- spacing: mediaControlsMouseArea.effectiveLabelVerticalSpacing
visible: mediaControlsMouseArea.nowPlayingLabelsVisible
- Repeater {
- model: mediaControlsMouseArea.effectiveLabelLines
+ Item {
+ id: labelContent
- delegate: ShadowedLabel {
- required property string modelData
+ readonly property bool artworkReady: mediaControlsMouseArea.configuredUseLabelArtwork && artworkImage.status === Image.Ready && artworkImage.source.toString().length > 0
+
+ Layout.alignment: mediaControlsMouseArea.labelsOnRight ? Qt.AlignLeft : Qt.AlignRight
+ Layout.fillWidth: true
+ clip: artworkReady
+ implicitHeight: artworkReady ? mediaControlsMouseArea.labelRailWidth : labelTextColumn.implicitHeight
+
+ Image {
+ id: artworkImage
+
+ anchors.fill: parent
+ asynchronous: true
+ cache: true
+ fillMode: Image.PreserveAspectCrop
+ source: mediaControlsMouseArea.configuredUseLabelArtwork ? player.artUrl : ""
+ sourceSize.width: mediaControlsMouseArea.labelRailWidth
+ sourceSize.height: mediaControlsMouseArea.labelRailWidth
+ visible: labelContent.artworkReady
+ }
+
+ Column {
+ id: labelTextColumn
+
+ anchors.left: parent.left
+ anchors.right: parent.right
+ spacing: mediaControlsMouseArea.effectiveLabelVerticalSpacing
+ visible: !labelContent.artworkReady
+
+ Repeater {
+ model: mediaControlsMouseArea.effectiveLabelLines
+
+ delegate: ShadowedLabel {
+ required property string modelData
+
+ width: labelTextColumn.width
+ shadowEnabled: mediaControlsMouseArea.configuredTextShadowEnabled
+ text: modelData
+ lineHeight: 0.8
+ font.bold: true
+ font.pixelSize: mediaControlsMouseArea.effectiveLabelFontSize
+ font.family: mediaControlsMouseArea.configuredFontFamily
+ color: mediaControlsMouseArea.effectiveForegroundColor
+ horizontalAlignment: mediaControlsMouseArea.labelsOnRight ? Text.AlignLeft : Text.AlignRight
+ }
+
+ }
- Layout.alignment: mediaControlsMouseArea.labelsOnRight ? Qt.AlignLeft : Qt.AlignRight
- Layout.fillWidth: true
- shadowEnabled: mediaControlsMouseArea.configuredTextShadowEnabled
- text: modelData
- lineHeight: 0.8
- font.bold: true
- font.pixelSize: mediaControlsMouseArea.effectiveLabelFontSize
- font.family: mediaControlsMouseArea.configuredFontFamily
- color: mediaControlsMouseArea.effectiveForegroundColor
- horizontalAlignment: mediaControlsMouseArea.labelsOnRight ? Text.AlignLeft : Text.AlignRight
}
}
diff --git a/package/contents/ui/configGeneral.qml b/package/contents/ui/configGeneral.qml
index 68737ec..470ae60 100644
--- a/package/contents/ui/configGeneral.qml
+++ b/package/contents/ui/configGeneral.qml
@@ -16,6 +16,7 @@ KCM.SimpleKCM {
property string cfg_labelVisibilityMode
property string cfg_labelPlacement
property alias cfg_labelText: labelTextArea.text
+ property alias cfg_useLabelArtwork: useLabelArtworkCheckBox.checked
property string cfg_backgroundStyle
property alias cfg_backgroundColor: backgroundColorField.text
property alias cfg_backgroundRadius: backgroundRadiusSpinBox.value
@@ -67,33 +68,6 @@ KCM.SimpleKCM {
return options[resolvedIndex].value;
}
- component SectionHeader: Item {
- required property string title
- Kirigami.FormData.isSection: true
- implicitHeight: sectionLayout.implicitHeight
-
- ColumnLayout {
- id: sectionLayout
- anchors.left: parent.left
- anchors.right: parent.right
- spacing: Kirigami.Units.smallSpacing
-
- QQC2.Label {
- text: parent.parent.title
- font.bold: true
- }
-
- Rectangle {
- Layout.fillWidth: true
- implicitHeight: 1
- color: Kirigami.Theme.textColor
- opacity: 0.25
- }
-
- }
-
- }
-
onCfg_fontFamilyChanged: {
const index = availableFonts.indexOf(cfg_fontFamily);
if (index >= 0 && fontFamilyComboBox.currentIndex !== index)
@@ -239,6 +213,13 @@ KCM.SimpleKCM {
onActivated: configRoot.cfg_labelPlacement = currentValue
}
+ QQC2.CheckBox {
+ id: useLabelArtworkCheckBox
+
+ Kirigami.FormData.label: i18n("Label image:")
+ text: i18n("Show track image when available")
+ }
+
QQC2.TextArea {
id: labelTextArea
@@ -327,4 +308,33 @@ KCM.SimpleKCM {
onAccepted: configRoot.cfg_foregroundColor = selectedColor.toString()
}
+ component SectionHeader: Item {
+ required property string title
+
+ Kirigami.FormData.isSection: true
+ implicitHeight: sectionLayout.implicitHeight
+
+ ColumnLayout {
+ id: sectionLayout
+
+ anchors.left: parent.left
+ anchors.right: parent.right
+ spacing: Kirigami.Units.smallSpacing
+
+ QQC2.Label {
+ text: parent.parent.title
+ font.bold: true
+ }
+
+ Rectangle {
+ Layout.fillWidth: true
+ implicitHeight: 1
+ color: Kirigami.Theme.textColor
+ opacity: 0.25
+ }
+
+ }
+
+ }
+
}
diff --git a/package/contents/ui/main.qml b/package/contents/ui/main.qml
index caca2a2..d903508 100644
--- a/package/contents/ui/main.qml
+++ b/package/contents/ui/main.qml
@@ -27,6 +27,8 @@ PlasmoidItem {
// qmllint disable missing-property
property string configuredLabelText: plasmoid.configuration.labelText
// qmllint disable missing-property
+ property bool configuredUseLabelArtwork: plasmoid.configuration.useLabelArtwork
+ // qmllint disable missing-property
property string configuredBackgroundStyle: plasmoid.configuration.backgroundStyle
// qmllint disable missing-property
property string configuredBackgroundColor: plasmoid.configuration.backgroundColor
@@ -81,6 +83,7 @@ PlasmoidItem {
configuredLabelVisibilityMode: root.configuredLabelVisibilityMode
configuredLabelPlacement: root.configuredLabelPlacement
configuredLabelText: root.configuredLabelText
+ configuredUseLabelArtwork: root.configuredUseLabelArtwork
configuredBackgroundStyle: root.configuredBackgroundStyle
configuredBackgroundColor: root.configuredBackgroundColor
configuredBackgroundRadius: root.configuredBackgroundRadius
@@ -107,6 +110,7 @@ PlasmoidItem {
configuredLabelVisibilityMode: root.configuredLabelVisibilityMode
configuredLabelPlacement: root.configuredLabelPlacement
configuredLabelText: root.configuredLabelText
+ configuredUseLabelArtwork: root.configuredUseLabelArtwork
configuredBackgroundStyle: root.configuredBackgroundStyle
configuredBackgroundColor: root.configuredBackgroundColor
configuredBackgroundRadius: root.configuredBackgroundRadius