[plasma/plasma-workspace/Plasma/6.7] 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 b256a63824fefeeadba5ba5e2ddae10bec90f22e by Nate Graham.
Committed on 18/08/2026 at 14:23.
Pushed by ngraham into branch 'Plasma/6.7'.

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


(cherry picked from commit 557c8443927a5e98dd59fdb6d82f5adaa0410feb)

7116bb9f applets/digital-clock: fix tooltip overflow and center time zones

Co-authored-by: Luis Bocanegra <[email protected]>

M  +10   -13   applets/digital-clock/Tooltip.qml

https://invent.kde.org/plasma/plasma-workspace/-/commit/b256a63824fefeeadba5ba5e2ddae10bec90f22e

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
         }
     }
 }
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.