X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/67ebd66f94356b4e66005b1072919cb7b5e858bb..046749b073422646b5ee7f5cbc1646519e471698:/src/kitemviews/kstandarditemlistgroupheader.cpp diff --git a/src/kitemviews/kstandarditemlistgroupheader.cpp b/src/kitemviews/kstandarditemlistgroupheader.cpp index 22eefe5ea..00b255a9d 100644 --- a/src/kitemviews/kstandarditemlistgroupheader.cpp +++ b/src/kitemviews/kstandarditemlistgroupheader.cpp @@ -11,21 +11,19 @@ #include #include -KStandardItemListGroupHeader::KStandardItemListGroupHeader(QGraphicsWidget* parent) : - KItemListGroupHeader(parent), - m_dirtyCache(true), - m_text(), - m_pixmap() +KStandardItemListGroupHeader::KStandardItemListGroupHeader(QGraphicsWidget *parent) + : KItemListGroupHeader(parent) + , m_dirtyCache(true) + , m_text() + , m_pixmap() { - m_text.setTextFormat(Qt::PlainText); - m_text.setPerformanceHint(QStaticText::AggressiveCaching); } KStandardItemListGroupHeader::~KStandardItemListGroupHeader() { } -void KStandardItemListGroupHeader::paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget) +void KStandardItemListGroupHeader::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) { if (m_dirtyCache) { updateCache(); @@ -33,17 +31,17 @@ void KStandardItemListGroupHeader::paint(QPainter* painter, const QStyleOptionGr KItemListGroupHeader::paint(painter, option, widget); } -void KStandardItemListGroupHeader::paintRole(QPainter* painter, const QRectF& roleBounds, const QColor& color) +void KStandardItemListGroupHeader::paintRole(QPainter *painter, const QRectF &roleBounds, const QColor &color) { if (m_pixmap.isNull()) { painter->setPen(color); - painter->drawStaticText(roleBounds.topLeft(), m_text); + painter->drawText(roleBounds, 0, m_text); } else { painter->drawPixmap(roleBounds.topLeft(), m_pixmap); } } -void KStandardItemListGroupHeader::paintSeparator(QPainter* painter, const QColor& color) +void KStandardItemListGroupHeader::paintSeparator(QPainter *painter, const QColor &color) { if (itemIndex() == 0) { // No top- or left-line should be drawn for the first group-header @@ -55,7 +53,11 @@ void KStandardItemListGroupHeader::paintSeparator(QPainter* painter, const QColo if (scrollOrientation() == Qt::Horizontal) { painter->drawLine(0, 0, 0, size().height() - 1); } else { - painter->drawLine(0, 0, size().width() - 1, 0); + if (layoutDirection() == Qt::LeftToRight) { + painter->drawLine(0, 0, size().width() - 1, 0); + } else { + painter->drawLine(1, 0, size().width(), 0); + } } } @@ -66,16 +68,16 @@ void KStandardItemListGroupHeader::roleChanged(const QByteArray ¤t, const m_dirtyCache = true; } -void KStandardItemListGroupHeader::dataChanged(const QVariant& current, const QVariant& previous) +void KStandardItemListGroupHeader::dataChanged(const QVariant ¤t, const QVariant &previous) { Q_UNUSED(current) Q_UNUSED(previous) m_dirtyCache = true; } -void KStandardItemListGroupHeader::resizeEvent(QGraphicsSceneResizeEvent* event) +void KStandardItemListGroupHeader::resizeEvent(QGraphicsSceneResizeEvent *event) { - QGraphicsWidget::resizeEvent(event); + KItemListGroupHeader::resizeEvent(event); m_dirtyCache = true; } @@ -87,7 +89,7 @@ void KStandardItemListGroupHeader::updateCache() const qreal maxWidth = size().width() - 4 * styleOption().padding; if (role() == "rating") { - m_text.setText(QString()); + m_text = QString(); const qreal height = styleOption().fontMetrics.ascent(); const QSizeF pixmapSize(qMin(height * 5, maxWidth), height); @@ -104,7 +106,8 @@ void KStandardItemListGroupHeader::updateCache() QFontMetricsF fontMetrics(font()); const QString text = fontMetrics.elidedText(data().toString(), Qt::ElideRight, maxWidth); - m_text.setText(text); + m_text = text; } } +#include "moc_kstandarditemlistgroupheader.cpp"