diff --git a/README.md b/README.md
index 5e124e6..85e4270 100644
--- a/README.md
+++ b/README.md
@@ -97,6 +97,7 @@ make hooks-install
The widget appearance can be tuned from the Plasma widget settings, including:
- custom multiline label text
+- independent label, title, and artist font sizes
- title/artist vertical spacing
- NOW/PLAYING label vertical spacing
- separator gap from labels
diff --git a/package/contents/config/main.xml b/package/contents/config/main.xml
index c0316fd..0be466a 100644
--- a/package/contents/config/main.xml
+++ b/package/contents/config/main.xml
@@ -13,6 +13,18 @@
Noto Sans
+
+
+ 16
+
+
+
+ 28
+
+
+
+ 26
+
auto
diff --git a/package/contents/ui/Representation.qml b/package/contents/ui/Representation.qml
index 3624dab..a9ebd14 100644
--- a/package/contents/ui/Representation.qml
+++ b/package/contents/ui/Representation.qml
@@ -8,6 +8,9 @@ MouseArea {
id: mediaControlsMouseArea
property string configuredFontFamily: "Noto Sans"
+ property int configuredLabelFontSize: 16
+ property int configuredTitleFontSize: 28
+ property int configuredArtistFontSize: 26
property string configuredLabelVisibilityMode: "auto"
property string configuredLabelPlacement: "left"
property string configuredLabelText: "NOW\nPLAYING"
@@ -31,6 +34,9 @@ MouseArea {
readonly property string effectiveBackgroundColor: configuredBackgroundColor || "transparent"
readonly property int effectiveBackgroundRadius: Math.max(0, configuredBackgroundRadius)
readonly property string effectiveForegroundColor: configuredForegroundColor || "white"
+ readonly property int effectiveLabelFontSize: Math.max(1, configuredLabelFontSize)
+ readonly property int effectiveTitleFontSize: Math.max(1, configuredTitleFontSize)
+ readonly property int effectiveArtistFontSize: Math.max(1, configuredArtistFontSize)
readonly property int effectiveTrackTextVerticalSpacing: configuredTrackTextVerticalSpacing
readonly property int effectiveLabelVerticalSpacing: configuredLabelVerticalSpacing
readonly property int effectiveSeparatorGapLabel: Math.max(0, configuredSeparatorGapLabel)
@@ -115,6 +121,7 @@ MouseArea {
id: nowPlayingLabels
Layout.alignment: mediaControlsMouseArea.labelsOnRight ? Qt.AlignLeft : Qt.AlignRight
+ Layout.fillWidth: true
spacing: mediaControlsMouseArea.effectiveLabelVerticalSpacing
visible: mediaControlsMouseArea.nowPlayingLabelsVisible
@@ -125,11 +132,12 @@ MouseArea {
required property string modelData
Layout.alignment: mediaControlsMouseArea.labelsOnRight ? Qt.AlignLeft : Qt.AlignRight
+ Layout.fillWidth: true
shadowEnabled: mediaControlsMouseArea.configuredTextShadowEnabled
text: modelData
lineHeight: 0.8
font.bold: true
- font.pixelSize: 16
+ font.pixelSize: mediaControlsMouseArea.effectiveLabelFontSize
font.family: mediaControlsMouseArea.configuredFontFamily
color: mediaControlsMouseArea.effectiveForegroundColor
horizontalAlignment: mediaControlsMouseArea.labelsOnRight ? Text.AlignLeft : Text.AlignRight
@@ -256,7 +264,7 @@ MouseArea {
Layout.fillWidth: true
shadowEnabled: mediaControlsMouseArea.configuredTextShadowEnabled
text: player.title
- font.pixelSize: 28
+ font.pixelSize: mediaControlsMouseArea.effectiveTitleFontSize
font.bold: true
font.family: mediaControlsMouseArea.configuredFontFamily
color: mediaControlsMouseArea.effectiveForegroundColor
@@ -270,7 +278,7 @@ MouseArea {
Layout.alignment: mediaControlsMouseArea.labelsOnRight ? Qt.AlignRight : Qt.AlignLeft
shadowEnabled: mediaControlsMouseArea.configuredTextShadowEnabled
text: player.artists
- font.pixelSize: 26
+ font.pixelSize: mediaControlsMouseArea.effectiveArtistFontSize
font.family: mediaControlsMouseArea.configuredFontFamily
color: mediaControlsMouseArea.effectiveForegroundColor
lineHeight: 0.8
diff --git a/package/contents/ui/configGeneral.qml b/package/contents/ui/configGeneral.qml
index 1bc3423..fd1496a 100644
--- a/package/contents/ui/configGeneral.qml
+++ b/package/contents/ui/configGeneral.qml
@@ -10,6 +10,9 @@ KCM.SimpleKCM {
property alias cfg_opacity: opacitySpinBox.value
property string cfg_fontFamily
+ property alias cfg_labelFontSize: labelFontSizeSpinBox.value
+ property alias cfg_titleFontSize: titleFontSizeSpinBox.value
+ property alias cfg_artistFontSize: artistFontSizeSpinBox.value
property string cfg_labelVisibilityMode
property string cfg_labelPlacement
property alias cfg_labelText: labelTextArea.text
@@ -106,6 +109,30 @@ KCM.SimpleKCM {
onActivated: configRoot.cfg_fontFamily = currentText
}
+ QQC2.SpinBox {
+ id: labelFontSizeSpinBox
+
+ Kirigami.FormData.label: i18n("Label font size:")
+ from: 8
+ to: 72
+ }
+
+ QQC2.SpinBox {
+ id: titleFontSizeSpinBox
+
+ Kirigami.FormData.label: i18n("Title font size:")
+ from: 8
+ to: 96
+ }
+
+ QQC2.SpinBox {
+ id: artistFontSizeSpinBox
+
+ Kirigami.FormData.label: i18n("Artist font size:")
+ from: 8
+ to: 96
+ }
+
QQC2.ComboBox {
id: labelVisibilityModeComboBox
@@ -206,23 +233,23 @@ KCM.SimpleKCM {
QQC2.SpinBox {
id: trackTextVerticalSpacingSpinBox
- Kirigami.FormData.label: i18n("Title/artist spacing:")
- from: -12
- to: 24
+ Kirigami.FormData.label: i18n("Title/artist spacing (negatives possible):")
+ from: -200
+ to: 200
}
QQC2.SpinBox {
id: labelVerticalSpacingSpinBox
- Kirigami.FormData.label: i18n("NOW/PLAYING spacing:")
- from: -12
- to: 24
+ Kirigami.FormData.label: i18n("Label line spacing (negatives possible):")
+ from: -200
+ to: 200
}
QQC2.SpinBox {
id: separatorGapLabelSpinBox
- Kirigami.FormData.label: i18n("Separator gap from labels:")
+ Kirigami.FormData.label: i18n("Separator gap from label:")
from: 0
to: 24
}
diff --git a/package/contents/ui/main.qml b/package/contents/ui/main.qml
index 78d468f..4da6a0e 100644
--- a/package/contents/ui/main.qml
+++ b/package/contents/ui/main.qml
@@ -14,8 +14,15 @@ PlasmoidItem {
// qmllint disable missing-property
property string configuredFontFamily: plasmoid.configuration.fontFamily
// qmllint disable missing-property
+ property int configuredLabelFontSize: plasmoid.configuration.labelFontSize
+ // qmllint disable missing-property
+ property int configuredTitleFontSize: plasmoid.configuration.titleFontSize
+ // qmllint disable missing-property
+ property int configuredArtistFontSize: plasmoid.configuration.artistFontSize
+ // qmllint disable missing-property
property string configuredLabelVisibilityMode: plasmoid.configuration.labelVisibilityMode
// qmllint disable missing-property
+ // qmllint disable missing-property
property string configuredLabelPlacement: plasmoid.configuration.labelPlacement
// qmllint disable missing-property
property string configuredLabelText: plasmoid.configuration.labelText
@@ -66,6 +73,9 @@ PlasmoidItem {
Layout.preferredWidth: root.width
Layout.preferredHeight: root.height
configuredFontFamily: root.configuredFontFamily
+ configuredLabelFontSize: root.configuredLabelFontSize
+ configuredTitleFontSize: root.configuredTitleFontSize
+ configuredArtistFontSize: root.configuredArtistFontSize
configuredLabelVisibilityMode: root.configuredLabelVisibilityMode
configuredLabelPlacement: root.configuredLabelPlacement
configuredLabelText: root.configuredLabelText
@@ -87,6 +97,9 @@ PlasmoidItem {
Layout.preferredWidth: root.width
Layout.preferredHeight: root.height
configuredFontFamily: root.configuredFontFamily
+ configuredLabelFontSize: root.configuredLabelFontSize
+ configuredTitleFontSize: root.configuredTitleFontSize
+ configuredArtistFontSize: root.configuredArtistFontSize
configuredLabelVisibilityMode: root.configuredLabelVisibilityMode
configuredLabelPlacement: root.configuredLabelPlacement
configuredLabelText: root.configuredLabelText