┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/panels/information/metatextlabel.cpp
diff options
context:
space:
mode:
authorPeter Penz <[email protected]>2009-02-17 22:24:14 +0000
committerPeter Penz <[email protected]>2009-02-17 22:24:14 +0000
commit93b955c3e634530a1910c522a3c973ba031df6bb (patch)
tree4bf48104878e9c70bfe0d9b9427d5f87d0e3b2eb /src/panels/information/metatextlabel.cpp
parent85dbeb2598c5e57235e4c8df0239ce8fe89dea6e (diff)
assure that the size hint calculation and the painting code are consistent
svn path=/trunk/KDE/kdebase/apps/; revision=927623
Diffstat (limited to 'src/panels/information/metatextlabel.cpp')
-rw-r--r--src/panels/information/metatextlabel.cpp33
1 files changed, 26 insertions, 7 deletions
diff --git a/src/panels/information/metatextlabel.cpp b/src/panels/information/metatextlabel.cpp
index 017d5e1dc..94ed22666 100644
--- a/src/panels/information/metatextlabel.cpp
+++ b/src/panels/information/metatextlabel.cpp
@@ -71,9 +71,8 @@ void MetaTextLabel::paintEvent(QPaintEvent* event)
const int infoWidth = width() / 2;
const int labelWidth = infoWidth - 2 * Spacing;
const int infoX = infoWidth;
- const int maxHeight = fontMetrics().height() * 5;
+ const int maxHeight = maxHeightPerLine();
- QRect boundingRect;
foreach (const MetaInfo& metaInfo, m_metaInfos) {
// draw label (e. g. "Date:")
painter.setPen(labelColor);
@@ -85,17 +84,27 @@ void MetaTextLabel::paintEvent(QPaintEvent* event)
painter.setPen(infoColor);
painter.drawText(infoX, y, infoWidth, maxHeight,
Qt::AlignTop | Qt::AlignLeft | Qt::TextWordWrap,
- metaInfo.info,
- &boundingRect);
+ metaInfo.info);
- y += boundingRect.height() + Spacing;
+ y += requiredHeight(metaInfo);
}
}
+void MetaTextLabel::resizeEvent(QResizeEvent* event)
+{
+ QWidget::resizeEvent(event);
+
+ int minimumHeight = 0;
+ foreach (const MetaInfo& metaInfo, m_metaInfos) {
+ minimumHeight += requiredHeight(metaInfo);
+ }
+ setMinimumHeight(minimumHeight);
+}
+
int MetaTextLabel::requiredHeight(const MetaInfo& metaInfo) const
{
QTextOption textOption;
- textOption.setWrapMode(QTextOption::WrapAtWordBoundaryOrAnywhere);
+ textOption.setWrapMode(QTextOption::WordWrap);
qreal height = 0;
const int leading = fontMetrics().leading();
@@ -115,7 +124,17 @@ int MetaTextLabel::requiredHeight(const MetaInfo& metaInfo) const
}
textLayout.endLayout();
- return static_cast<int>(height) + Spacing;
+ int adjustedHeight = static_cast<int>(height);
+ if (adjustedHeight > maxHeightPerLine()) {
+ adjustedHeight = maxHeightPerLine();
+ }
+
+ return adjustedHeight + Spacing;
+}
+
+int MetaTextLabel::maxHeightPerLine() const
+{
+ return fontMetrics().height() * 100;
}
#include "metatextlabel.moc"