[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 } } }