Commit fcbfbcbf authored by Marco Martin's avatar Marco Martin Committed by Nate Graham

properly size date label in vertical panels

the Text.Fit sizing policy will size the font in order to fit given a fixed
size of the label, but it can't really cause the other way around which we need:
cause a vertical resize in order to accomodate a larger font.
In order to fake that, we fix the date label to an arbitrary tall height
(will overflow outside the applet) and then size the applet based on the label contentheight instead,
leaving the invisible part of the label outside.
In order to avoid the huge text it used to have, limit the maximum size to an arbitrarly
small value, in this case
Math.min(0.7 * timeLabel.height, theme.defaultFont.pixelSize * 1.4)

BUG:417852
FIXED-IN: 5.21
parent 4bbf78a2
......@@ -152,6 +152,7 @@ Item {
height: 0.8 * timeLabel.height
width: dateLabel.paintedWidth
verticalAlignment: Text.AlignVCenter
font.pixelSize: dateLabel.height
}
......@@ -212,6 +213,8 @@ Item {
height: timeLabel.height
width: dateLabel.paintedWidth
font.pixelSize: 1024
verticalAlignment: Text.AlignVCenter
anchors.rightMargin: labelsGrid.columnSpacing
fontSizeMode: Text.VerticalFit
......@@ -268,7 +271,7 @@ Item {
PropertyChanges {
target: contentItem
height: main.showDate ? labelsGrid.height + dateLabel.height : labelsGrid.height
height: main.showDate ? labelsGrid.height + dateLabel.contentHeight : labelsGrid.height
width: main.width
}
......@@ -303,9 +306,15 @@ Item {
target: dateLabel
width: main.width
//NOTE: in order for Text.Fit to work as intended, the actual height needs to be quite big, in order for the font to enlarge as much it needs for the available width, and then request a sensible height, for which contentHeight will need to be considered as opposed to height
height: PlasmaCore.Units.gridUnit * 10
fontSizeMode: Text.Fit
font.minimumPixelSize: Math.max(theme.smallestFont.pixelSize, timeLabel.height)
verticalAlignment: Text.AlignTop
// Those magic numbers are purely what looks nice as maximum size, here we have it the smallest
// between slightly bigger than the default font (1.4 times) and a bit smaller than the time font
font.pixelSize: Math.min(0.7 * timeLabel.height, PlasmaCore.Theme.defaultFont.pixelSize * 1.4)
font.minimumPixelSize: theme.smallestFont.pixelSize
elide: Text.ElideRight
wrapMode: Text.WordWrap
}
......@@ -374,8 +383,10 @@ Item {
PropertyChanges {
target: dateLabel
height: 0.8 * timeLabel.height
height: 0.7 * timeLabel.height
font.pixelSize: 1024
width: Math.max(timeLabel.contentWidth, units.gridUnit * 3)
verticalAlignment: Text.AlignVCenter
fontSizeMode: Text.Fit
minimumPixelSize: 1
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment