[plasma/plasma-workspace] applets/digital-clock: applets/digital-clock: fix tooltip overflow and center time zones
Nate Graham <[email protected]>
| Newsgroups | gmane.comp.kde.cvs |
|---|---|
| Message-ID | <[email protected]> |
Git commit 557c8443927a5e98dd59fdb6d82f5adaa0410feb by Nate Graham, on behalf of Luis Bocanegra.
Committed on 18/08/2026 at 14:22.
Pushed by ngraham into branch 'master'.
applets/digital-clock: fix tooltip overflow and center time zones
Currently the tooltip forces a maximum width, which can cause the time
zones grid to overflow. This change takes that grid into account when
calculating that width. Also centers the time zones list, and enables
wrapping for the remaining labels.
BUG: 524390
BUG: 501555
FIXED-IN: 6.7.5
M +10 -13 applets/digital-clock/Tooltip.qml
https://invent.kde.org/plasma/plasma-workspace/-/commit/557c8443927a5e98dd59fdb6d82f5adaa0410feb
diff --git a/applets/digital-clock/Tooltip.qml b/applets/digital-clock/Tooltip.qml
index 53761f7c53..c35f6dc804 100644
--- a/applets/digital-clock/Tooltip.qml
+++ b/applets/digital-clock/Tooltip.qml
@@ -18,7 +18,8 @@ import org.kde.plasma.private.digitalclock
Item {
id: toolTipContentItem
- property int preferredTextWidth: Kirigami.Units.gridUnit * 20
+ property int minimumTextWidth: Kirigami.Units.gridUnit * 25
+ property int maximumTextWidth: Math.max(minimumTextWidth, clocks.implicitWidth)
implicitWidth: mainLayout.implicitWidth + Kirigami.Units.gridUnit
implicitHeight: mainLayout.implicitHeight + Kirigami.Units.gridUnit
@@ -62,11 +63,9 @@ Item {
Kirigami.Heading {
id: tooltipMaintext
- Layout.minimumWidth: Math.min(implicitWidth, toolTipContentItem.preferredTextWidth)
- Layout.maximumWidth: toolTipContentItem.preferredTextWidth
+ Layout.maximumWidth: toolTipContentItem.maximumTextWidth
level: 3
- elide: Text.ElideRight
// keep this consistent with toolTipMainText in analog-clock
property var mainText: {
const text = clocks.visible ? Qt.formatDate(clock.dateTime, Qt.locale(), Locale.LongFormat) : Qt.locale().toString(clock.dateTime, "dddd");
@@ -75,13 +74,13 @@ Item {
property bool anyTimezoneSet: !!mainText
text: anyTimezoneSet ? mainText : i18nc("@label main text shown in digital clock's tooltip when timezone is missing", "Time zone is not set")
textFormat: Text.PlainText
+ wrapMode: Text.Wrap
}
PlasmaComponents.Label {
id: tooltipSubtext
- Layout.minimumWidth: Math.min(implicitWidth, toolTipContentItem.preferredTextWidth)
- Layout.maximumWidth: toolTipContentItem.preferredTextWidth
+ Layout.maximumWidth: toolTipContentItem.maximumTextWidth
maximumLineCount: 2
wrapMode: Text.Wrap
@@ -103,23 +102,21 @@ Item {
PlasmaComponents.Label {
id: tooltipSubLabelText
- Layout.minimumWidth: Math.min(implicitWidth, toolTipContentItem.preferredTextWidth)
- Layout.maximumWidth: toolTipContentItem.preferredTextWidth
+ Layout.maximumWidth: toolTipContentItem.maximumTextWidth
text: (root.fullRepresentationItem as CalendarView)?.monthView.todayAuxilliaryText ?? ""
textFormat: Text.PlainText
opacity: 0.75
visible: !clocks.visible && text.length > 0
+ wrapMode: Text.Wrap
}
GridLayout {
id: clocks
-
- Layout.minimumWidth: Math.min(implicitWidth, toolTipContentItem.preferredTextWidth)
- Layout.maximumWidth: toolTipContentItem.preferredTextWidth
Layout.minimumHeight: childrenRect.height
visible: timeZoneRepeater.count > 0 && tooltipMaintext.anyTimezoneSet
columns: 2
rowSpacing: 0
+ Layout.alignment: Qt.AlignHCenter
Repeater {
id: timeZoneRepeater
@@ -176,12 +173,12 @@ Item {
}
PlasmaComponents.Label {
- Layout.minimumWidth: Math.min(implicitWidth, toolTipContentItem.preferredTextWidth)
- Layout.maximumWidth: toolTipContentItem.preferredTextWidth
+ Layout.maximumWidth: toolTipContentItem.maximumTextWidth
visible: ApplicationIntegration.calendarInstalled
text: i18nc("@info:tooltip %1 is the name of a calendar application", "Middle-click to open %1", ApplicationIntegration.calendarApplicationName)
textFormat: Text.PlainText
opacity: 0.75
+ wrapMode: Text.Wrap
}
}
}