┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/kitemviews/kfileitemlistgroupheader.cpp
diff options
context:
space:
mode:
authorPeter Penz <[email protected]>2011-10-24 00:22:03 +0200
committerPeter Penz <[email protected]>2011-10-24 00:22:27 +0200
commit54b5a283765f168575f2eaeff95c93dbeca3d63d (patch)
tree2cb153973acbc55ddbcb8be31036e1f124de07ed /src/kitemviews/kfileitemlistgroupheader.cpp
parent517ebd721e12e3a4a3430ac3cba8ce99b33c5b0e (diff)
Make group-headers less ugly
Diffstat (limited to 'src/kitemviews/kfileitemlistgroupheader.cpp')
-rw-r--r--src/kitemviews/kfileitemlistgroupheader.cpp37
1 files changed, 34 insertions, 3 deletions
diff --git a/src/kitemviews/kfileitemlistgroupheader.cpp b/src/kitemviews/kfileitemlistgroupheader.cpp
index 969bd925b..06d410f28 100644
--- a/src/kitemviews/kfileitemlistgroupheader.cpp
+++ b/src/kitemviews/kfileitemlistgroupheader.cpp
@@ -25,8 +25,12 @@
#include <QPainter>
KFileItemListGroupHeader::KFileItemListGroupHeader(QGraphicsWidget* parent) :
- KItemListGroupHeader(parent)
+ KItemListGroupHeader(parent),
+ m_font(),
+ m_text()
{
+ m_text.setTextFormat(Qt::PlainText);
+ m_text.setPerformanceHint(QStaticText::AggressiveCaching);
}
KFileItemListGroupHeader::~KFileItemListGroupHeader()
@@ -36,8 +40,35 @@ KFileItemListGroupHeader::~KFileItemListGroupHeader()
void KFileItemListGroupHeader::paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget)
{
KItemListGroupHeader::paint(painter, option, widget);
- // TODO: Use dataChanged() hook to prepare a cached property
- painter->drawText(QRectF(0, 0, size().width(), size().height()), data().toString());
+
+ painter->setPen(styleOption().palette.text().color());
+ painter->setFont(m_font);
+ const int margin = styleOption().margin;
+ painter->drawStaticText(margin * 2, margin, m_text);
+}
+
+void KFileItemListGroupHeader::dataChanged(const QVariant& current, const QVariant& previous)
+{
+ Q_UNUSED(current);
+ Q_UNUSED(previous);
+ updateText();
+}
+
+void KFileItemListGroupHeader::resizeEvent(QGraphicsSceneResizeEvent* event)
+{
+ QGraphicsWidget::resizeEvent(event);
+ updateText();
+}
+
+void KFileItemListGroupHeader::updateText()
+{
+ const qreal width = size().width() - 4 * styleOption().margin;
+ m_font = font();
+ m_font.setBold(true);
+
+ QFontMetricsF fontMetrics(m_font);
+ const QString text = fontMetrics.elidedText(data().toString(), Qt::ElideRight, width);
+ m_text.setText(text);
}
#include "kfileitemlistgroupheader.moc"